Rename isFirstIteration to isFirstCycle and kStatus_Uhk_NoTransfer to kStatus_Uhk_IdleCycle.
This commit is contained in:
@@ -39,7 +39,7 @@ status_t KbootSlaveDriver_Update(uint8_t kbootInstanceId)
|
|||||||
case 1:
|
case 1:
|
||||||
KbootDriverState.status = Slaves[SlaveId_KbootDriver].previousStatus;
|
KbootDriverState.status = Slaves[SlaveId_KbootDriver].previousStatus;
|
||||||
KbootDriverState.phase = KbootDriverState.status == kStatus_Success ? 2 : 0;
|
KbootDriverState.phase = KbootDriverState.status == kStatus_Success ? 2 : 0;
|
||||||
return kStatus_Uhk_NoTransfer;
|
return kStatus_Uhk_IdleCycle;
|
||||||
case 2:
|
case 2:
|
||||||
status = rx(10);
|
status = rx(10);
|
||||||
KbootDriverState.phase++;
|
KbootDriverState.phase++;
|
||||||
@@ -50,7 +50,7 @@ status_t KbootSlaveDriver_Update(uint8_t kbootInstanceId)
|
|||||||
KbootDriverState.commandType = KbootCommand_Idle;
|
KbootDriverState.commandType = KbootCommand_Idle;
|
||||||
} else {
|
} else {
|
||||||
KbootDriverState.phase = 0;
|
KbootDriverState.phase = 0;
|
||||||
return kStatus_Uhk_NoTransfer;
|
return kStatus_Uhk_IdleCycle;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ status_t UhkModuleSlaveDriver_Update(uint8_t uhkModuleDriverId)
|
|||||||
case UhkModulePhase_ProcessSync: {
|
case UhkModulePhase_ProcessSync: {
|
||||||
bool isMessageValid = CRC16_IsMessageValid(rxMessage);
|
bool isMessageValid = CRC16_IsMessageValid(rxMessage);
|
||||||
bool isSyncValid = memcmp(rxMessage->data, SlaveSyncString, SLAVE_SYNC_STRING_LENGTH) == 0;
|
bool isSyncValid = memcmp(rxMessage->data, SlaveSyncString, SLAVE_SYNC_STRING_LENGTH) == 0;
|
||||||
status = kStatus_Uhk_NoTransfer;
|
status = kStatus_Uhk_IdleCycle;
|
||||||
*uhkModulePhase = isSyncValid && isMessageValid
|
*uhkModulePhase = isSyncValid && isMessageValid
|
||||||
? UhkModulePhase_RequestModuleProtocolVersion
|
? UhkModulePhase_RequestModuleProtocolVersion
|
||||||
: UhkModulePhase_RequestSync;
|
: UhkModulePhase_RequestSync;
|
||||||
@@ -115,7 +115,7 @@ status_t UhkModuleSlaveDriver_Update(uint8_t uhkModuleDriverId)
|
|||||||
if (isMessageValid) {
|
if (isMessageValid) {
|
||||||
memcpy(&uhkModuleState->moduleProtocolVersion, rxMessage->data, sizeof(version_t));
|
memcpy(&uhkModuleState->moduleProtocolVersion, rxMessage->data, sizeof(version_t));
|
||||||
}
|
}
|
||||||
status = kStatus_Uhk_NoTransfer;
|
status = kStatus_Uhk_IdleCycle;
|
||||||
*uhkModulePhase = isMessageValid ? UhkModulePhase_RequestFirmwareVersion : UhkModulePhase_RequestModuleProtocolVersion;
|
*uhkModulePhase = isMessageValid ? UhkModulePhase_RequestFirmwareVersion : UhkModulePhase_RequestModuleProtocolVersion;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -137,7 +137,7 @@ status_t UhkModuleSlaveDriver_Update(uint8_t uhkModuleDriverId)
|
|||||||
if (isMessageValid) {
|
if (isMessageValid) {
|
||||||
memcpy(&uhkModuleState->firmwareVersion, rxMessage->data, sizeof(version_t));
|
memcpy(&uhkModuleState->firmwareVersion, rxMessage->data, sizeof(version_t));
|
||||||
}
|
}
|
||||||
status = kStatus_Uhk_NoTransfer;
|
status = kStatus_Uhk_IdleCycle;
|
||||||
*uhkModulePhase = isMessageValid ? UhkModulePhase_RequestModuleId : UhkModulePhase_RequestFirmwareVersion;
|
*uhkModulePhase = isMessageValid ? UhkModulePhase_RequestModuleId : UhkModulePhase_RequestFirmwareVersion;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -159,7 +159,7 @@ status_t UhkModuleSlaveDriver_Update(uint8_t uhkModuleDriverId)
|
|||||||
if (isMessageValid) {
|
if (isMessageValid) {
|
||||||
uhkModuleState->moduleId = rxMessage->data[0];
|
uhkModuleState->moduleId = rxMessage->data[0];
|
||||||
}
|
}
|
||||||
status = kStatus_Uhk_NoTransfer;
|
status = kStatus_Uhk_IdleCycle;
|
||||||
*uhkModulePhase = isMessageValid ? UhkModulePhase_RequestModuleKeyCount : UhkModulePhase_RequestModuleId;
|
*uhkModulePhase = isMessageValid ? UhkModulePhase_RequestModuleKeyCount : UhkModulePhase_RequestModuleId;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -181,7 +181,7 @@ status_t UhkModuleSlaveDriver_Update(uint8_t uhkModuleDriverId)
|
|||||||
if (isMessageValid) {
|
if (isMessageValid) {
|
||||||
uhkModuleState->keyCount = rxMessage->data[0];
|
uhkModuleState->keyCount = rxMessage->data[0];
|
||||||
}
|
}
|
||||||
status = kStatus_Uhk_NoTransfer;
|
status = kStatus_Uhk_IdleCycle;
|
||||||
*uhkModulePhase = isMessageValid ? UhkModulePhase_RequestModulePointerCount : UhkModulePhase_RequestModuleKeyCount;
|
*uhkModulePhase = isMessageValid ? UhkModulePhase_RequestModulePointerCount : UhkModulePhase_RequestModuleKeyCount;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -203,7 +203,7 @@ status_t UhkModuleSlaveDriver_Update(uint8_t uhkModuleDriverId)
|
|||||||
if (isMessageValid) {
|
if (isMessageValid) {
|
||||||
uhkModuleState->pointerCount = rxMessage->data[0];
|
uhkModuleState->pointerCount = rxMessage->data[0];
|
||||||
}
|
}
|
||||||
status = kStatus_Uhk_NoTransfer;
|
status = kStatus_Uhk_IdleCycle;
|
||||||
*uhkModulePhase = isMessageValid ? UhkModulePhase_RequestKeyStates : UhkModulePhase_RequestModulePointerCount;
|
*uhkModulePhase = isMessageValid ? UhkModulePhase_RequestKeyStates : UhkModulePhase_RequestModulePointerCount;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -227,14 +227,14 @@ status_t UhkModuleSlaveDriver_Update(uint8_t uhkModuleDriverId)
|
|||||||
KeyStates[slotId][keyId].current = keyStatesBuffer[keyId];
|
KeyStates[slotId][keyId].current = keyStatesBuffer[keyId];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
status = kStatus_Uhk_NoTransfer;
|
status = kStatus_Uhk_IdleCycle;
|
||||||
*uhkModulePhase = UhkModulePhase_SetTestLed;
|
*uhkModulePhase = UhkModulePhase_SetTestLed;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Set test LED
|
// Set test LED
|
||||||
case UhkModulePhase_SetTestLed:
|
case UhkModulePhase_SetTestLed:
|
||||||
if (uhkModuleSourceVars->isTestLedOn == uhkModuleTargetVars->isTestLedOn) {
|
if (uhkModuleSourceVars->isTestLedOn == uhkModuleTargetVars->isTestLedOn) {
|
||||||
status = kStatus_Uhk_NoTransfer;
|
status = kStatus_Uhk_IdleCycle;
|
||||||
} else {
|
} else {
|
||||||
txMessage.data[0] = SlaveCommand_SetTestLed;
|
txMessage.data[0] = SlaveCommand_SetTestLed;
|
||||||
txMessage.data[1] = uhkModuleSourceVars->isTestLedOn;
|
txMessage.data[1] = uhkModuleSourceVars->isTestLedOn;
|
||||||
@@ -248,7 +248,7 @@ status_t UhkModuleSlaveDriver_Update(uint8_t uhkModuleDriverId)
|
|||||||
// Set PWM brightness
|
// Set PWM brightness
|
||||||
case UhkModulePhase_SetLedPwmBrightness:
|
case UhkModulePhase_SetLedPwmBrightness:
|
||||||
if (uhkModuleSourceVars->ledPwmBrightness == uhkModuleTargetVars->ledPwmBrightness) {
|
if (uhkModuleSourceVars->ledPwmBrightness == uhkModuleTargetVars->ledPwmBrightness) {
|
||||||
status = kStatus_Uhk_NoTransfer;
|
status = kStatus_Uhk_IdleCycle;
|
||||||
} else {
|
} else {
|
||||||
txMessage.data[0] = SlaveCommand_SetLedPwmBrightness;
|
txMessage.data[0] = SlaveCommand_SetLedPwmBrightness;
|
||||||
txMessage.data[1] = uhkModuleSourceVars->ledPwmBrightness;
|
txMessage.data[1] = uhkModuleSourceVars->ledPwmBrightness;
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ uhk_slave_t Slaves[] = {
|
|||||||
|
|
||||||
static void slaveSchedulerCallback(I2C_Type *base, i2c_master_handle_t *handle, status_t previousStatus, void *userData)
|
static void slaveSchedulerCallback(I2C_Type *base, i2c_master_handle_t *handle, status_t previousStatus, void *userData)
|
||||||
{
|
{
|
||||||
bool isFirstIteration = true;
|
bool isFirstCycle = true;
|
||||||
bool isTransferScheduled = false;
|
bool isTransferScheduled = false;
|
||||||
I2cSlaveScheduler_Counter++;
|
I2cSlaveScheduler_Counter++;
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ static void slaveSchedulerCallback(I2C_Type *base, i2c_master_handle_t *handle,
|
|||||||
uhk_slave_t *previousSlave = Slaves + previousSlaveId;
|
uhk_slave_t *previousSlave = Slaves + previousSlaveId;
|
||||||
uhk_slave_t *currentSlave = Slaves + currentSlaveId;
|
uhk_slave_t *currentSlave = Slaves + currentSlaveId;
|
||||||
|
|
||||||
if (isFirstIteration) {
|
if (isFirstCycle) {
|
||||||
previousSlave->previousStatus = previousStatus;
|
previousSlave->previousStatus = previousStatus;
|
||||||
if (IS_STATUS_I2C_ERROR(previousStatus)) {
|
if (IS_STATUS_I2C_ERROR(previousStatus)) {
|
||||||
LogI2cError(previousSlaveId, previousStatus);
|
LogI2cError(previousSlaveId, previousStatus);
|
||||||
@@ -72,7 +72,7 @@ static void slaveSchedulerCallback(I2C_Type *base, i2c_master_handle_t *handle,
|
|||||||
previousSlave->disconnect(previousSlaveId);
|
previousSlave->disconnect(previousSlaveId);
|
||||||
}
|
}
|
||||||
|
|
||||||
isFirstIteration = false;
|
isFirstCycle = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!currentSlave->isConnected) {
|
if (!currentSlave->isConnected) {
|
||||||
@@ -83,12 +83,12 @@ static void slaveSchedulerCallback(I2C_Type *base, i2c_master_handle_t *handle,
|
|||||||
if (IS_STATUS_I2C_ERROR(currentStatus)) {
|
if (IS_STATUS_I2C_ERROR(currentStatus)) {
|
||||||
LogI2cError(currentSlaveId, currentStatus);
|
LogI2cError(currentSlaveId, currentStatus);
|
||||||
}
|
}
|
||||||
isTransferScheduled = currentStatus != kStatus_Uhk_IdleSlave && currentStatus != kStatus_Uhk_NoTransfer;
|
isTransferScheduled = currentStatus != kStatus_Uhk_IdleSlave && currentStatus != kStatus_Uhk_IdleCycle;
|
||||||
if (isTransferScheduled) {
|
if (isTransferScheduled) {
|
||||||
currentSlave->isConnected = true;
|
currentSlave->isConnected = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentStatus != kStatus_Uhk_NoTransfer) {
|
if (currentStatus != kStatus_Uhk_IdleCycle) {
|
||||||
previousSlaveId = currentSlaveId++;
|
previousSlaveId = currentSlaveId++;
|
||||||
if (currentSlaveId >= SLAVE_COUNT) {
|
if (currentSlaveId >= SLAVE_COUNT) {
|
||||||
currentSlaveId = 0;
|
currentSlaveId = 0;
|
||||||
|
|||||||
@@ -44,8 +44,8 @@
|
|||||||
} uhk_status_group_t;
|
} uhk_status_group_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
kStatus_Uhk_IdleSlave = MAKE_STATUS(kStatusGroup_Uhk, 0), // Another slave should be scheduled
|
kStatus_Uhk_IdleSlave = MAKE_STATUS(kStatusGroup_Uhk, 0), // Another slave should be scheduled
|
||||||
kStatus_Uhk_NoTransfer = MAKE_STATUS(kStatusGroup_Uhk, 1), // The same slave should be rescheduled
|
kStatus_Uhk_IdleCycle = MAKE_STATUS(kStatusGroup_Uhk, 1), // The same slave should be rescheduled
|
||||||
} uhk_status_t;
|
} uhk_status_t;
|
||||||
|
|
||||||
// Variables:
|
// Variables:
|
||||||
|
|||||||
Reference in New Issue
Block a user