From e75d3662455929cf9dd0b8aba0b9185f5d8eed19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Sat, 6 Jan 2018 17:00:59 +0100 Subject: [PATCH] Update and log previous I2C status within the if (isFirstIteration) block. --- right/src/slave_scheduler.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/right/src/slave_scheduler.c b/right/src/slave_scheduler.c index 5210c0e..47d3a5c 100644 --- a/right/src/slave_scheduler.c +++ b/right/src/slave_scheduler.c @@ -60,17 +60,18 @@ static void slaveSchedulerCallback(I2C_Type *base, i2c_master_handle_t *handle, uhk_slave_t *previousSlave = Slaves + previousSlaveId; uhk_slave_t *currentSlave = Slaves + currentSlaveId; - previousSlave->previousStatus = previousStatus; - if (IS_STATUS_I2C_ERROR(previousStatus)) { - LogI2cError(previousSlaveId, previousStatus); - } - if (isFirstIteration) { + previousSlave->previousStatus = previousStatus; + if (IS_STATUS_I2C_ERROR(previousStatus)) { + LogI2cError(previousSlaveId, previousStatus); + } + bool wasPreviousSlaveConnected = previousSlave->isConnected; previousSlave->isConnected = previousStatus == kStatus_Success; if (wasPreviousSlaveConnected && !previousSlave->isConnected && previousSlave->disconnect) { previousSlave->disconnect(previousSlaveId); } + isFirstIteration = false; }