From 5e2c0a68bcee16b91ed7a067e2e992dedb401e8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Fri, 17 Mar 2017 02:03:03 +0100 Subject: [PATCH] Respect the return value of bridge protocol handlers and increment currentBridgeSlaveId accordingly. --- right/src/bridge_protocol_scheduler.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/right/src/bridge_protocol_scheduler.c b/right/src/bridge_protocol_scheduler.c index 349dd7f..27520e2 100644 --- a/right/src/bridge_protocol_scheduler.c +++ b/right/src/bridge_protocol_scheduler.c @@ -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; + } } }