Make the slave scheduler always jump to the next slave by disallowing slave drivers to lock the scheduler.
This commit is contained in:
@@ -54,7 +54,7 @@ uint8_t setFunctionFrameBuffer[] = {LED_DRIVER_REGISTER_FRAME, LED_DRIVER_FRAME_
|
||||
uint8_t setShutdownModeNormalBuffer[] = {LED_DRIVER_REGISTER_SHUTDOWN, SHUTDOWN_MODE_NORMAL};
|
||||
uint8_t setFrame1Buffer[] = {LED_DRIVER_REGISTER_FRAME, LED_DRIVER_FRAME_1};
|
||||
|
||||
bool BridgeSlaveLedDriverHandler(uint8_t ledDriverId) {
|
||||
void BridgeSlaveLedDriverHandler(uint8_t ledDriverId) {
|
||||
uint8_t *ledDriverState = ledDriverStates + ledDriverId;
|
||||
uint8_t ledDriverAddress = ledDriverId ? I2C_ADDRESS_LED_DRIVER_LEFT : I2C_ADDRESS_LED_DRIVER_RIGHT;
|
||||
uint8_t *ledControlBuffer = ledDriverId ? ledControlBufferLeft : ledControlBufferRight;
|
||||
@@ -80,7 +80,6 @@ bool BridgeSlaveLedDriverHandler(uint8_t ledDriverId) {
|
||||
I2cAsyncWrite(ledDriverAddress, ledsBuffer, BUFFER_SIZE);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void SetLeds(uint8_t ledBrightness)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
// Functions:
|
||||
|
||||
extern bool BridgeSlaveLedDriverHandler(uint8_t ledDriverId);
|
||||
extern void BridgeSlaveLedDriverHandler(uint8_t ledDriverId);
|
||||
extern void SetLeds(uint8_t ledBrightness);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -20,7 +20,7 @@ void InitUhkModules()
|
||||
}
|
||||
}
|
||||
|
||||
bool BridgeSlaveUhkModuleHandler(uint8_t uhkModuleId)
|
||||
void BridgeSlaveUhkModuleHandler(uint8_t uhkModuleId)
|
||||
{
|
||||
uhk_module_state_t *uhkModuleInternalState = UhkModuleStates + uhkModuleId;
|
||||
//uhk_module_state_t *uhkModuleExternalState = uhkModuleExternalStates + uhkModuleId;
|
||||
@@ -66,6 +66,4 @@ bool BridgeSlaveUhkModuleHandler(uint8_t uhkModuleId)
|
||||
currentUhkModuleField = UhkModuleField_SendKeystatesRequestCommand;
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,6 @@
|
||||
// Functions:
|
||||
|
||||
extern void InitUhkModules();
|
||||
extern bool BridgeSlaveUhkModuleHandler(uint8_t uhkModuleId);
|
||||
extern void BridgeSlaveUhkModuleHandler(uint8_t uhkModuleId);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,13 +23,11 @@ static void bridgeProtocolCallback(I2C_Type *base, i2c_master_handle_t *handle,
|
||||
}
|
||||
uhk_slave_t *bridgeSlave = bridgeSlaves + currentBridgeSlaveId;
|
||||
|
||||
bool isFinished = bridgeSlave->slaveHandler(bridgeSlave->moduleId);
|
||||
if (isFinished) {
|
||||
currentBridgeSlaveId++;
|
||||
bridgeSlave->slaveHandler(bridgeSlave->moduleId);
|
||||
currentBridgeSlaveId++;
|
||||
|
||||
if (currentBridgeSlaveId >= (sizeof(bridgeSlaves) / sizeof(uhk_slave_t))) {
|
||||
currentBridgeSlaveId = 0;
|
||||
}
|
||||
if (currentBridgeSlaveId >= (sizeof(bridgeSlaves) / sizeof(uhk_slave_t))) {
|
||||
currentBridgeSlaveId = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
UhkSlaveType_Touchpad
|
||||
} uhk_slave_type_t;
|
||||
|
||||
typedef bool (slave_handler_t)(uint8_t);
|
||||
typedef void (slave_handler_t)(uint8_t);
|
||||
|
||||
typedef struct {
|
||||
uint8_t moduleId; // This is a unique, per-module ID.
|
||||
|
||||
Reference in New Issue
Block a user