Update the isConnected status of the correct slaves.

This commit is contained in:
László Monda
2017-08-03 01:22:45 +02:00
parent 7b1f9dc2b7
commit 7092e1acf9

View File

@@ -8,6 +8,7 @@
#include "i2c_addresses.h" #include "i2c_addresses.h"
#include "test_states.h" #include "test_states.h"
uint8_t previousSlaveId = 0;
uint8_t currentSlaveId = 0; uint8_t currentSlaveId = 0;
uhk_slave_t Slaves[] = { uhk_slave_t Slaves[] = {
@@ -24,14 +25,19 @@ static void bridgeProtocolCallback(I2C_Type *base, i2c_master_handle_t *handle,
if (TestStates.disableI2c) { if (TestStates.disableI2c) {
return; return;
} }
uhk_slave_t *slave = Slaves + currentSlaveId;
slave->isConnected = status == kStatus_Success; uhk_slave_t *previousSlave = Slaves + previousSlaveId;
if (!slave->isConnected) { uhk_slave_t *currentSlave = Slaves + currentSlaveId;
slave->initializer(slave->perDriverId);
previousSlave->isConnected = status == kStatus_Success;
if (!currentSlave->isConnected) {
currentSlave->initializer(currentSlave->perDriverId);
} }
slave->updater(slave->perDriverId); currentSlave->updater(currentSlave->perDriverId);
previousSlaveId = currentSlaveId;
currentSlaveId++; currentSlaveId++;
if (currentSlaveId >= (sizeof(Slaves) / sizeof(uhk_slave_t))) { if (currentSlaveId >= (sizeof(Slaves) / sizeof(uhk_slave_t))) {