Make UsbCommand_JumpToSlaveBootloader expect a slave slot id instead of a uhkModuleDriverId.

This commit is contained in:
László Monda
2017-11-06 00:32:08 +01:00
parent 379fe6a4c7
commit 003f313947
5 changed files with 10 additions and 5 deletions

View File

@@ -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:

View File

@@ -13,6 +13,7 @@
// Macros:
#define SLOT_COUNT 4
#define IS_VALID_SLAVE_SLOT(slotId) (SlotId_LeftKeyboardHalf <= (slotId) && (slotId) <= SlotId_RightModule)
// Typedefs:

View File

@@ -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;
}

View File

@@ -8,7 +8,7 @@
// Typedefs:
typedef enum {
UsbStatusCode_JumpToSlaveBootloader_InvalidModuleDriverId = 2,
UsbStatusCode_JumpToSlaveBootloader_InvalidSlaveSlotId = 2,
} usb_status_code_jump_to_slave_bootloader_t;
#endif