diff --git a/right/src/slave_drivers/slave_driver_led_driver.c b/right/src/slave_drivers/slave_driver_led_driver.c index d8e54dd..3bddf43 100644 --- a/right/src/slave_drivers/slave_driver_led_driver.c +++ b/right/src/slave_drivers/slave_driver_led_driver.c @@ -56,7 +56,7 @@ uint8_t setShutdownModeNormalBuffer[] = {LED_DRIVER_REGISTER_SHUTDOWN, SHUTDOWN_ uint8_t setFrame1Buffer[] = {LED_DRIVER_REGISTER_FRAME, LED_DRIVER_FRAME_1}; uint8_t updatePwmRegistersBuffer[PWM_REGISTER_BUFFER_LENGTH]; -void LedSlaveDriver_Init() { +void LedSlaveDriver_Init(uint8_t ledDriverId) { ledDriverStates[LedDriverId_Left].setupLedControlRegistersCommand[7] |= 0b00000010; // Enable the LED of the ISO key. SetLeds(0xff); } diff --git a/right/src/slave_drivers/slave_driver_led_driver.h b/right/src/slave_drivers/slave_driver_led_driver.h index e8b892b..53b0426 100644 --- a/right/src/slave_drivers/slave_driver_led_driver.h +++ b/right/src/slave_drivers/slave_driver_led_driver.h @@ -39,7 +39,7 @@ // Functions: - extern void LedSlaveDriver_Init(); + extern void LedSlaveDriver_Init(uint8_t ledDriverId); extern void LedSlaveDriver_Update(uint8_t ledDriverId); extern void SetLeds(uint8_t ledBrightness); diff --git a/right/src/slave_drivers/slave_driver_uhk_module.c b/right/src/slave_drivers/slave_driver_uhk_module.c index 6459e07..9a316c6 100644 --- a/right/src/slave_drivers/slave_driver_uhk_module.c +++ b/right/src/slave_drivers/slave_driver_uhk_module.c @@ -13,13 +13,11 @@ uhk_module_phase_t uhkModulePhase = UhkModulePhase_SendKeystatesRequestCommand; uint8_t txBuffer[2]; uint8_t rxBuffer[KEY_STATE_BUFFER_SIZE]; -void UhkModuleSlaveDriver_Init() +void UhkModuleSlaveDriver_Init(uint8_t uhkModuleId) { - for (uint8_t moduleId=0; moduleIdisTestLedOn = true; - uhkModuleState->ledPwmBrightness = 0x64; - } + uhk_module_state_t* uhkModuleState = UhkModuleStates + uhkModuleId; + uhkModuleState->isTestLedOn = true; + uhkModuleState->ledPwmBrightness = 0x64; } void UhkModuleSlaveDriver_Update(uint8_t uhkModuleId) diff --git a/right/src/slave_drivers/slave_driver_uhk_module.h b/right/src/slave_drivers/slave_driver_uhk_module.h index 55fe693..5f20d4f 100644 --- a/right/src/slave_drivers/slave_driver_uhk_module.h +++ b/right/src/slave_drivers/slave_driver_uhk_module.h @@ -35,7 +35,7 @@ // Functions: - extern void UhkModuleSlaveDriver_Init(); + extern void UhkModuleSlaveDriver_Init(uint8_t uhkModuleId); extern void UhkModuleSlaveDriver_Update(uint8_t uhkModuleId); #endif diff --git a/right/src/slave_scheduler.c b/right/src/slave_scheduler.c index 20ac119..a4aab63 100644 --- a/right/src/slave_scheduler.c +++ b/right/src/slave_scheduler.c @@ -10,15 +10,10 @@ uint8_t currentSlaveId = 0; -slave_driver_initializer_t slaveDriverInitializers[] = { - UhkModuleSlaveDriver_Init, - LedSlaveDriver_Init, -}; - uhk_slave_t slaves[] = { - { .updater = UhkModuleSlaveDriver_Update, .perDriverId = 0 }, - { .updater = LedSlaveDriver_Update, .perDriverId = 0 }, - { .updater = LedSlaveDriver_Update, .perDriverId = 1 }, + { .initializer = UhkModuleSlaveDriver_Init, .updater = UhkModuleSlaveDriver_Update, .perDriverId = 0 }, + { .initializer = LedSlaveDriver_Init, .updater = LedSlaveDriver_Update, .perDriverId = 0 }, + { .initializer = LedSlaveDriver_Init, .updater = LedSlaveDriver_Update, .perDriverId = 1 }, }; static void bridgeProtocolCallback(I2C_Type *base, i2c_master_handle_t *handle, status_t status, void *userData) @@ -38,8 +33,8 @@ static void bridgeProtocolCallback(I2C_Type *base, i2c_master_handle_t *handle, static void initSlaveDrivers() { - for (uint8_t i=0; i