diff --git a/lib/agent b/lib/agent index a5c478d..b3a38a5 160000 --- a/lib/agent +++ b/lib/agent @@ -1 +1 @@ -Subproject commit a5c478d51c1cefa0f4281f662ea1087bf3cebf53 +Subproject commit b3a38a5d6c64ab163861fd4e30b6e1d18e48b635 diff --git a/right/src/slave_drivers/uhk_module_driver.h b/right/src/slave_drivers/uhk_module_driver.h index 65aea8e..5a0f69c 100644 --- a/right/src/slave_drivers/uhk_module_driver.h +++ b/right/src/slave_drivers/uhk_module_driver.h @@ -10,6 +10,8 @@ #define UHK_MODULE_MAX_COUNT 3 #define MAX_PWM_BRIGHTNESS 0x64 + #define SLOT_ID_TO_UHK_MODULE_DRIVER_ID(slotId) ((slotId)-1) + #define UHK_MODULE_DRIVER_ID_TO_SLOT_ID(uhkModuleDriverId) ((uhkModuleDriverId)+1) // Typedefs: diff --git a/right/src/slot.h b/right/src/slot.h index 47b74d0..618e33a 100644 --- a/right/src/slot.h +++ b/right/src/slot.h @@ -13,6 +13,7 @@ // Macros: #define SLOT_COUNT 4 + #define IS_VALID_SLAVE_SLOT(slotId) (SlotId_LeftKeyboardHalf <= (slotId) && (slotId) <= SlotId_RightModule) // Typedefs: diff --git a/right/src/usb_commands/usb_command_jump_to_slave_bootloader.c b/right/src/usb_commands/usb_command_jump_to_slave_bootloader.c index 4c0246d..8f7c4fb 100644 --- a/right/src/usb_commands/usb_command_jump_to_slave_bootloader.c +++ b/right/src/usb_commands/usb_command_jump_to_slave_bootloader.c @@ -1,15 +1,17 @@ #include "usb_protocol_handler.h" #include "usb_commands/usb_command_jump_to_slave_bootloader.h" +#include "slot.h" #include "slave_drivers/uhk_module_driver.h" void UsbCommand_JumpToSlaveBootloader(void) { - uint8_t uhkModuleDriverId = GET_USB_BUFFER_UINT8(1); + uint8_t slotId = GET_USB_BUFFER_UINT8(1); - if (uhkModuleDriverId >= UHK_MODULE_MAX_COUNT) { - SET_USB_BUFFER_UINT8(0, UsbStatusCode_JumpToSlaveBootloader_InvalidModuleDriverId); + if (!IS_VALID_SLAVE_SLOT(slotId)) { + SET_USB_BUFFER_UINT8(0, UsbStatusCode_JumpToSlaveBootloader_InvalidSlaveSlotId); return; } + uint8_t uhkModuleDriverId = SLOT_ID_TO_UHK_MODULE_DRIVER_ID(slotId); UhkModuleStates[uhkModuleDriverId].jumpToBootloader = true; } diff --git a/right/src/usb_commands/usb_command_jump_to_slave_bootloader.h b/right/src/usb_commands/usb_command_jump_to_slave_bootloader.h index 6481b9e..a81fd9e 100644 --- a/right/src/usb_commands/usb_command_jump_to_slave_bootloader.h +++ b/right/src/usb_commands/usb_command_jump_to_slave_bootloader.h @@ -8,7 +8,7 @@ // Typedefs: typedef enum { - UsbStatusCode_JumpToSlaveBootloader_InvalidModuleDriverId = 2, + UsbStatusCode_JumpToSlaveBootloader_InvalidSlaveSlotId = 2, } usb_status_code_jump_to_slave_bootloader_t; #endif