Reinitialize slaves after reconnecting them.

This commit is contained in:
László Monda
2017-06-01 01:32:57 +02:00
parent 909c6196b2
commit 7be20e34c2
2 changed files with 7 additions and 0 deletions

View File

@@ -57,6 +57,9 @@ uint8_t setFrame1Buffer[] = {LED_DRIVER_REGISTER_FRAME, LED_DRIVER_FRAME_1};
uint8_t updatePwmRegistersBuffer[PWM_REGISTER_BUFFER_LENGTH];
void LedSlaveDriver_Init(uint8_t ledDriverId) {
led_driver_state_t *currentLedDriverState = ledDriverStates + ledDriverId;
currentLedDriverState->phase = LedDriverPhase_SetFunctionFrame;
currentLedDriverState->ledIndex = 0;
ledDriverStates[LedDriverId_Left].setupLedControlRegistersCommand[7] |= 0b00000010; // Enable the LED of the ISO key.
SetLeds(0xff);
}

View File

@@ -23,6 +23,10 @@ static void bridgeProtocolCallback(I2C_Type *base, i2c_master_handle_t *handle,
}
uhk_slave_t *slave = slaves + currentSlaveId;
if (status != kStatus_Success) {
slave->initializer(slave->perDriverId);
}
slave->updater(slave->perDriverId);
currentSlaveId++;