From ef8f00eaa945c4aa77a6cc95552eb58865c21405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Fri, 17 Mar 2017 23:04:01 +0100 Subject: [PATCH] Extract LED driver bridge slave handler into bridge_slave_led_driver_handler.[ch] --- right/src/bridge_protocol_scheduler.c | 19 ++++--------------- right/src/bridge_slave_led_driver_handler.c | 16 ++++++++++++++++ right/src/bridge_slave_led_driver_handler.h | 13 +++++++++++++ 3 files changed, 33 insertions(+), 15 deletions(-) create mode 100644 right/src/bridge_slave_led_driver_handler.c create mode 100644 right/src/bridge_slave_led_driver_handler.h diff --git a/right/src/bridge_protocol_scheduler.c b/right/src/bridge_protocol_scheduler.c index 27520e2..1249223 100644 --- a/right/src/bridge_protocol_scheduler.c +++ b/right/src/bridge_protocol_scheduler.c @@ -1,19 +1,13 @@ #include "fsl_i2c.h" -#include "led_driver.h" #include "bridge_protocol_scheduler.h" #include "slot.h" #include "main.h" +#include "bridge_slave_led_driver_handler.h" +#include "i2c.h" +#include "i2c_addresses.h" -#define BUFFER_SIZE (LED_DRIVER_LED_COUNT + 1) - -uint8_t ledsBuffer[BUFFER_SIZE] = {FRAME_REGISTER_PWM_FIRST}; uint8_t currentBridgeSlaveId = 0; -bool BridgeSlaveLedDriverHandler(uint8_t ledDriverId) { - I2cAsyncWrite(I2C_ADDRESS_LED_DRIVER_LEFT, ledsBuffer, BUFFER_SIZE); - return true; -} - bool BridgeSlaveUhkModuleHandler(uint8_t uhkModuleId) { I2cAsyncRead(I2C_ADDRESS_LEFT_KEYBOARD_HALF, CurrentKeyStates[SLOT_ID_LEFT_KEYBOARD_HALF], LEFT_KEYBOARD_HALF_KEY_COUNT); return true; @@ -43,10 +37,5 @@ void InitBridgeProtocolScheduler() { SetLeds(0xff); I2C_MasterTransferCreateHandle(I2C_MAIN_BUS_BASEADDR, &I2cMasterHandle, bridgeProtocolCallback, NULL); - I2cAsyncWrite(I2C_ADDRESS_LED_DRIVER_LEFT, ledsBuffer, BUFFER_SIZE); -} - -void SetLeds(uint8_t ledBrightness) -{ - memset(ledsBuffer+1, ledBrightness, LED_DRIVER_LED_COUNT); + bridgeSlaves[0].slaveHandler(bridgeSlaves[0].moduleId); } diff --git a/right/src/bridge_slave_led_driver_handler.c b/right/src/bridge_slave_led_driver_handler.c new file mode 100644 index 0000000..e9bb53a --- /dev/null +++ b/right/src/bridge_slave_led_driver_handler.c @@ -0,0 +1,16 @@ +#include "bridge_slave_led_driver_handler.h" +#include "led_driver.h" + +#define BUFFER_SIZE (LED_DRIVER_LED_COUNT + 1) + +uint8_t ledsBuffer[BUFFER_SIZE] = {FRAME_REGISTER_PWM_FIRST}; + +bool BridgeSlaveLedDriverHandler(uint8_t ledDriverId) { + I2cAsyncWrite(I2C_ADDRESS_LED_DRIVER_LEFT, ledsBuffer, BUFFER_SIZE); + return true; +} + +void SetLeds(uint8_t ledBrightness) +{ + memset(ledsBuffer+1, ledBrightness, LED_DRIVER_LED_COUNT); +} diff --git a/right/src/bridge_slave_led_driver_handler.h b/right/src/bridge_slave_led_driver_handler.h new file mode 100644 index 0000000..1473548 --- /dev/null +++ b/right/src/bridge_slave_led_driver_handler.h @@ -0,0 +1,13 @@ +#ifndef __BRIDGE_SLAVE_LED_DRIVER_HANDLER_H__ +#define __BRIDGE_SLAVE_LED_DRIVER_HANDLER_H__ + +// Includes: + + #include "fsl_common.h" + +// Functions: + + extern bool BridgeSlaveLedDriverHandler(uint8_t ledDriverId); + extern void SetLeds(uint8_t ledBrightness); + +#endif