Respect the return value of bridge protocol handlers and increment currentBridgeSlaveId accordingly.

This commit is contained in:
László Monda
2017-03-17 02:03:03 +01:00
parent 38d3da05a4
commit 5e2c0a68bc

View File

@@ -29,10 +29,13 @@ static void bridgeProtocolCallback(I2C_Type *base, i2c_master_handle_t *handle,
bridge_slave_t *bridgeSlave = bridgeSlaves + currentBridgeSlaveId;
SetLeds(0xff);
bridgeSlave->slaveHandler(bridgeSlave->moduleId);
bool isFinished = bridgeSlave->slaveHandler(bridgeSlave->moduleId);
if (isFinished) {
currentBridgeSlaveId++;
if (++currentBridgeSlaveId >= (sizeof(bridgeSlaves) / sizeof(bridge_slave_t))) {
currentBridgeSlaveId = 0;
if (currentBridgeSlaveId >= (sizeof(bridgeSlaves) / sizeof(bridge_slave_t))) {
currentBridgeSlaveId = 0;
}
}
}