From 2a9cd135cfc3691db25b72319d09accb73e8cc40 Mon Sep 17 00:00:00 2001 From: Andrey Gusakov Date: Sat, 20 Apr 2024 16:19:42 +0300 Subject: [PATCH] MS IO-Box: pick settings from config --- firmware/hw_layer/drivers/gpio/can_gpio.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/firmware/hw_layer/drivers/gpio/can_gpio.cpp b/firmware/hw_layer/drivers/gpio/can_gpio.cpp index 3371916b0bd..9de09a00ddf 100644 --- a/firmware/hw_layer/drivers/gpio/can_gpio.cpp +++ b/firmware/hw_layer/drivers/gpio/can_gpio.cpp @@ -415,10 +415,15 @@ CanListener* MsIoBox::request(void) { static MsIoBox instance[BOARD_CAN_GPIO_COUNT]; void initCanGpio() { + if (engineConfiguration->msIoBox0.id == MsIoBoxId::OFF) { + return; + } // CAN_PIN_0 for (size_t i = 0; i < BOARD_CAN_GPIO_COUNT; i++) { - /* TODO: pick can bus, base CAN ID (and refresh rate) from settings */ - if (instance[i].config(0, CAN_IOBOX_BASE1, 20) == 0) { + uint32_t can_id = CAN_IOBOX_BASE1 + 0x20 * (static_cast(engineConfiguration->msIoBox0.id) - static_cast(MsIoBoxId::ID200)); + + /* TODO: pick can bus and refresh rate from settings */ + if (instance[i].config(0, can_id, 20) == 0) { registerCanListener(instance[i]); } }