From 6ec5140eca0db7c7bdf56a11b5dd0a7f591c5c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Thu, 28 Sep 2017 18:10:33 +0200 Subject: [PATCH] Add and initialize firmwareI2cAddress and bootloaderI2cAddress to uhk_module_state_t. --- right/src/slave_drivers/uhk_module_driver.c | 20 ++++++++++++++++++++ right/src/slave_drivers/uhk_module_driver.h | 7 +++++++ 2 files changed, 27 insertions(+) diff --git a/right/src/slave_drivers/uhk_module_driver.c b/right/src/slave_drivers/uhk_module_driver.c index d37c11f..4f1fe39 100644 --- a/right/src/slave_drivers/uhk_module_driver.c +++ b/right/src/slave_drivers/uhk_module_driver.c @@ -9,9 +9,25 @@ #include "crc16.h" uhk_module_vars_t UhkModuleVars[UHK_MODULE_MAX_COUNT]; + static uhk_module_state_t uhkModuleStates[UHK_MODULE_MAX_COUNT]; static i2c_message_t txMessage; +static uhk_module_i2c_addresses_t moduleIdsToI2cAddresses[] = { + { // UhkModuleId_LeftKeyboardHalf + .firmwareI2cAddress = I2C_ADDRESS_LEFT_KEYBOARD_HALF_FIRMWARE, + .bootloaderI2cAddress = I2C_ADDRESS_LEFT_KEYBOARD_HALF_BOOTLOADER + }, + { // UhkModuleId_LeftAddon + .firmwareI2cAddress = I2C_ADDRESS_LEFT_ADDON_FIRMWARE, + .bootloaderI2cAddress = I2C_ADDRESS_LEFT_ADDON_BOOTLOADER + }, + { // UhkModuleId_RightAddon + .firmwareI2cAddress = I2C_ADDRESS_RIGHT_ADDON_FIRMWARE, + .bootloaderI2cAddress = I2C_ADDRESS_RIGHT_ADDON_BOOTLOADER + }, +}; + static status_t tx(void) { return I2cAsyncWriteMessage(I2C_ADDRESS_LEFT_KEYBOARD_HALF_FIRMWARE, &txMessage); } @@ -34,6 +50,10 @@ void UhkModuleSlaveDriver_Init(uint8_t uhkModuleId) uhk_module_phase_t *uhkModulePhase = &uhkModuleState->phase; *uhkModulePhase = UhkModulePhase_RequestKeyStates; + + uhk_module_i2c_addresses_t *uhkModuleI2cAddresses = moduleIdsToI2cAddresses + uhkModuleId; + uhkModuleState->firmwareI2cAddress = uhkModuleI2cAddresses->firmwareI2cAddress; + uhkModuleState->bootloaderI2cAddress = uhkModuleI2cAddresses->bootloaderI2cAddress; } status_t UhkModuleSlaveDriver_Update(uint8_t uhkModuleId) diff --git a/right/src/slave_drivers/uhk_module_driver.h b/right/src/slave_drivers/uhk_module_driver.h index 13f463f..d4b98a7 100644 --- a/right/src/slave_drivers/uhk_module_driver.h +++ b/right/src/slave_drivers/uhk_module_driver.h @@ -37,8 +37,15 @@ uhk_module_phase_t phase; uhk_module_vars_t targetVars; i2c_message_t rxMessage; + uint8_t firmwareI2cAddress; + uint8_t bootloaderI2cAddress; } uhk_module_state_t; + typedef struct { + uint8_t firmwareI2cAddress; + uint8_t bootloaderI2cAddress; + } uhk_module_i2c_addresses_t; + // Variables: extern uhk_module_vars_t UhkModuleVars[UHK_MODULE_MAX_COUNT];