Обновление
This commit is contained in:
parent
44986e710f
commit
af90f443bf
|
|
@ -571,7 +571,12 @@ static bool setState20(tLinTaskActuator *env, bool isError, uint8_t index) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
#define IS_LOGGING_ENABLED(numAct) \
|
||||||
|
( (numAct == 1 && LOG_LIN1_ACTUATOR == 1) || \
|
||||||
|
(numAct == 2 && LOG_LIN2_ACTUATOR == 1) || \
|
||||||
|
(numAct == 3 && LOG_LIN3_ACTUATOR == 1) )
|
||||||
|
|
||||||
|
static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, uint8_t numAct) {
|
||||||
|
|
||||||
lin_event_id_t ret = LIN_NO_EVENT;
|
lin_event_id_t ret = LIN_NO_EVENT;
|
||||||
|
|
||||||
|
|
@ -584,28 +589,34 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
if (env->linCommandActuator[0].COM == LIN_ACT_CFR_MOD) {
|
if (env->linCommandActuator[0].COM == LIN_ACT_CFR_MOD) {
|
||||||
|
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Sending a command (BROADCAST): LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
"Sending a command (BROADCAST): LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
||||||
env->linCommandActuator[0].MODE)
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
|
env->linCommandActuator[0].MODE)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
ret = CFR_MOD_x(env->linIo, env->linData, env->linCommandActuator[0].BUS_ADR | 0x20,
|
ret = CFR_MOD_x(env->linIo, env->linData, env->linCommandActuator[0].BUS_ADR | 0x20,
|
||||||
env->linCommandActuator[0].MODE);
|
env->linCommandActuator[0].MODE);
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Command completed successfully (BROADCAST): LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
"Command completed successfully (BROADCAST): LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
||||||
env->linCommandActuator[0].MODE)
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
|
env->linCommandActuator[0].MODE)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, false, 0);
|
setState20(env, false, 0);
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Command failed (BROADCAST) [%d]: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
"Command failed (BROADCAST) [%d]: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
||||||
env->linCommandActuator[0].MODE)
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
|
env->linCommandActuator[0].MODE)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, true, 0);
|
setState20(env, true, 0);
|
||||||
}
|
}
|
||||||
|
|
@ -615,10 +626,12 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
|
|
||||||
if (env->linCommandActuator[0].COM == LIN_ACT_CFR_INI) {
|
if (env->linCommandActuator[0].COM == LIN_ACT_CFR_INI) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Sending a command (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
"Sending a command (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
env->linCommandActuator[0].POS)
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
|
env->linCommandActuator[0].POS)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
ret = CFR_INI_x(env->linIo, env->linData,
|
ret = CFR_INI_x(env->linIo, env->linData,
|
||||||
env->linCommandActuator[0].BUS_ADR | 0x20,
|
env->linCommandActuator[0].BUS_ADR | 0x20,
|
||||||
|
|
@ -626,18 +639,22 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Command completed successfully (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[0].BUS_ADR, env->linCommandActuator[0].POS)
|
"Command completed successfully (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
|
env->linCommandActuator[0].BUS_ADR, env->linCommandActuator[0].POS)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, false, 0);
|
setState20(env, false, 0);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Command failed (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
"Command failed (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
env->linCommandActuator[0].POS)
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
|
env->linCommandActuator[0].POS)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, true, 0);
|
setState20(env, true, 0);
|
||||||
}
|
}
|
||||||
|
|
@ -648,16 +665,18 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
|
|
||||||
if (env->linCommandActuator[0].COM == LIN_ACT_CFR_SET) {
|
if (env->linCommandActuator[0].COM == LIN_ACT_CFR_SET) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Sending a command (BROADCAST): LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
"Sending a command (BROADCAST): LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
||||||
env->linCommandActuator[0].POS,
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
env->linCommandActuator[0].Stall_SET,
|
env->linCommandActuator[0].POS,
|
||||||
env->linCommandActuator[0].Lnoise_SET,
|
env->linCommandActuator[0].Stall_SET,
|
||||||
env->linCommandActuator[0].Autos_SET,
|
env->linCommandActuator[0].Lnoise_SET,
|
||||||
env->linCommandActuator[0].Speed_SET,
|
env->linCommandActuator[0].Autos_SET,
|
||||||
env->linCommandActuator[0].Coils_Stop_SET
|
env->linCommandActuator[0].Speed_SET,
|
||||||
)
|
env->linCommandActuator[0].Coils_Stop_SET
|
||||||
|
)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
ret = CFR_SET_x(env->linIo, env->linData,
|
ret = CFR_SET_x(env->linIo, env->linData,
|
||||||
env->linCommandActuator[0].BUS_ADR | 0x20,
|
env->linCommandActuator[0].BUS_ADR | 0x20,
|
||||||
|
|
@ -670,30 +689,34 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Command completed successfully (BROADCAST): LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
"Command completed successfully (BROADCAST): LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
||||||
env->linCommandActuator[0].POS,
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
env->linCommandActuator[0].Stall_SET,
|
env->linCommandActuator[0].POS,
|
||||||
env->linCommandActuator[0].Lnoise_SET,
|
env->linCommandActuator[0].Stall_SET,
|
||||||
env->linCommandActuator[0].Autos_SET,
|
env->linCommandActuator[0].Lnoise_SET,
|
||||||
env->linCommandActuator[0].Speed_SET,
|
env->linCommandActuator[0].Autos_SET,
|
||||||
env->linCommandActuator[0].Coils_Stop_SET)
|
env->linCommandActuator[0].Speed_SET,
|
||||||
|
env->linCommandActuator[0].Coils_Stop_SET)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, false, 0);
|
setState20(env, false, 0);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Command failed (BROADCAST): LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
"Command failed (BROADCAST): LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
||||||
env->linCommandActuator[0].POS,
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
env->linCommandActuator[0].Stall_SET,
|
env->linCommandActuator[0].POS,
|
||||||
env->linCommandActuator[0].Lnoise_SET,
|
env->linCommandActuator[0].Stall_SET,
|
||||||
env->linCommandActuator[0].Autos_SET,
|
env->linCommandActuator[0].Lnoise_SET,
|
||||||
env->linCommandActuator[0].Speed_SET,
|
env->linCommandActuator[0].Autos_SET,
|
||||||
env->linCommandActuator[0].Coils_Stop_SET
|
env->linCommandActuator[0].Speed_SET,
|
||||||
)
|
env->linCommandActuator[0].Coils_Stop_SET
|
||||||
|
)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, true, 0);
|
setState20(env, true, 0);
|
||||||
|
|
||||||
|
|
@ -709,42 +732,51 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
|
|
||||||
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
||||||
|
|
||||||
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
|
||||||
"Let's skip the command: LIN_ACT_CFR_MOD (ADR = %d (%d) MODE = %d)",
|
|
||||||
env->linCommandActuator[i].BUS_ADR, i + 1,
|
|
||||||
env->linCommandActuator[i].MODE)
|
|
||||||
#endif
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_MOD) {
|
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_MOD) {
|
||||||
|
|
||||||
|
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Sending a command: LIN_ACT_CFR_MOD (ADR = %d (%d) MODE = %d)",
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
env->linCommandActuator[i].BUS_ADR, i,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[i].MODE)
|
"Let's skip the command: LIN_ACT_CFR_MOD (ADR = %d (%d) MODE = %d)",
|
||||||
|
env->linCommandActuator[i].BUS_ADR, i + 1,
|
||||||
|
env->linCommandActuator[i].MODE)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
|
"Sending a command: LIN_ACT_CFR_MOD (ADR = %d (%d) MODE = %d)",
|
||||||
|
env->linCommandActuator[i].BUS_ADR, i,
|
||||||
|
env->linCommandActuator[i].MODE)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
ret = CFR_MOD_x(env->linIo, env->linData, env->linCommandActuator[i].BUS_ADR | 0x20,
|
ret = CFR_MOD_x(env->linIo, env->linData, env->linCommandActuator[i].BUS_ADR | 0x20,
|
||||||
env->linCommandActuator[i].MODE);
|
env->linCommandActuator[i].MODE);
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Command completed successfully: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
"Command completed successfully: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
||||||
env->linCommandActuator[i].MODE)
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
|
env->linCommandActuator[i].MODE)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, false, i);
|
setState20(env, false, i);
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Command failed [%d]: LIN_ACT_CFR_MOD (ADR = %d (%d) MODE = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[i].BUS_ADR, i,
|
"Command failed [%d]: LIN_ACT_CFR_MOD (ADR = %d (%d) MODE = %d)",
|
||||||
env->linCommandActuator[i].MODE)
|
env->linCommandActuator[i].BUS_ADR, i,
|
||||||
|
env->linCommandActuator[i].MODE)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, true, i);
|
setState20(env, true, i);
|
||||||
}
|
}
|
||||||
|
|
@ -755,21 +787,26 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
|
|
||||||
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
||||||
|
|
||||||
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
|
||||||
"Let's skip the command: LIN_ACT_CFR_INI (ADR = %d (%d) POS = %d)",
|
|
||||||
env->linCommandActuator[i].BUS_ADR, i + 1,
|
|
||||||
env->linCommandActuator[i].POS)
|
|
||||||
#endif
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_INI) {
|
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_INI) {
|
||||||
|
|
||||||
|
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Sending a command: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[i].POS)
|
"Let's skip the command: LIN_ACT_CFR_INI (ADR = %d (%d) POS = %d)",
|
||||||
|
env->linCommandActuator[i].BUS_ADR, i + 1,
|
||||||
|
env->linCommandActuator[i].POS)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Sending a command: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
|
env->linCommandActuator[i].POS)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
ret = CFR_INI_x(env->linIo, env->linData,
|
ret = CFR_INI_x(env->linIo, env->linData,
|
||||||
env->linCommandActuator[i].BUS_ADR | 0x20,
|
env->linCommandActuator[i].BUS_ADR | 0x20,
|
||||||
|
|
@ -777,17 +814,21 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Command completed successfully: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[i].BUS_ADR, env->linCommandActuator[i].POS)
|
"Command completed successfully: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
|
env->linCommandActuator[i].BUS_ADR, env->linCommandActuator[i].POS)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, false, i);
|
setState20(env, false, i);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Command failed: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Command failed: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
env->linCommandActuator[i].POS)
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
|
env->linCommandActuator[i].POS)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, true, i);
|
setState20(env, true, i);
|
||||||
|
|
||||||
|
|
@ -799,32 +840,37 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
|
|
||||||
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
||||||
|
|
||||||
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
|
||||||
"Let's skip the command: LIN_ACT_CFR_SET (ADR = %d POS = %d (%d) STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
|
||||||
env->linCommandActuator[i].BUS_ADR, i + 1,
|
|
||||||
env->linCommandActuator[i].POS,
|
|
||||||
env->linCommandActuator[i].Stall_SET,
|
|
||||||
env->linCommandActuator[i].Lnoise_SET,
|
|
||||||
env->linCommandActuator[i].Autos_SET,
|
|
||||||
env->linCommandActuator[i].Speed_SET,
|
|
||||||
env->linCommandActuator[i].Coils_Stop_SET)
|
|
||||||
#endif
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_SET) {
|
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_SET) {
|
||||||
|
|
||||||
|
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Sending a command: LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
"Let's skip the command: LIN_ACT_CFR_SET (ADR = %d POS = %d (%d) STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
||||||
env->linCommandActuator[i].POS,
|
env->linCommandActuator[i].BUS_ADR, i + 1,
|
||||||
env->linCommandActuator[i].Stall_SET,
|
env->linCommandActuator[i].POS,
|
||||||
env->linCommandActuator[i].Lnoise_SET,
|
env->linCommandActuator[i].Stall_SET,
|
||||||
env->linCommandActuator[i].Autos_SET,
|
env->linCommandActuator[i].Lnoise_SET,
|
||||||
env->linCommandActuator[i].Speed_SET,
|
env->linCommandActuator[i].Autos_SET,
|
||||||
env->linCommandActuator[i].Coils_Stop_SET)
|
env->linCommandActuator[i].Speed_SET,
|
||||||
|
env->linCommandActuator[i].Coils_Stop_SET)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
|
"Sending a command: LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
||||||
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
|
env->linCommandActuator[i].POS,
|
||||||
|
env->linCommandActuator[i].Stall_SET,
|
||||||
|
env->linCommandActuator[i].Lnoise_SET,
|
||||||
|
env->linCommandActuator[i].Autos_SET,
|
||||||
|
env->linCommandActuator[i].Speed_SET,
|
||||||
|
env->linCommandActuator[i].Coils_Stop_SET)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
ret = CFR_SET_x(env->linIo, env->linData,
|
ret = CFR_SET_x(env->linIo, env->linData,
|
||||||
env->linCommandActuator[i].BUS_ADR | 0x20,
|
env->linCommandActuator[i].BUS_ADR | 0x20,
|
||||||
|
|
@ -837,31 +883,35 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Command completed successfully: LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
"Command completed successfully: LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
||||||
env->linCommandActuator[i].POS,
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
env->linCommandActuator[i].Stall_SET,
|
env->linCommandActuator[i].POS,
|
||||||
env->linCommandActuator[i].Lnoise_SET,
|
env->linCommandActuator[i].Stall_SET,
|
||||||
env->linCommandActuator[i].Autos_SET,
|
env->linCommandActuator[i].Lnoise_SET,
|
||||||
env->linCommandActuator[i].Speed_SET,
|
env->linCommandActuator[i].Autos_SET,
|
||||||
env->linCommandActuator[i].Coils_Stop_SET
|
env->linCommandActuator[i].Speed_SET,
|
||||||
)
|
env->linCommandActuator[i].Coils_Stop_SET
|
||||||
|
)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, false, i);
|
setState20(env, false, i);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"Command failed: LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
"Command failed: LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
||||||
env->linCommandActuator[i].POS,
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
env->linCommandActuator[i].Stall_SET,
|
env->linCommandActuator[i].POS,
|
||||||
env->linCommandActuator[i].Lnoise_SET,
|
env->linCommandActuator[i].Stall_SET,
|
||||||
env->linCommandActuator[i].Autos_SET,
|
env->linCommandActuator[i].Lnoise_SET,
|
||||||
env->linCommandActuator[i].Speed_SET,
|
env->linCommandActuator[i].Autos_SET,
|
||||||
env->linCommandActuator[i].Coils_Stop_SET
|
env->linCommandActuator[i].Speed_SET,
|
||||||
)
|
env->linCommandActuator[i].Coils_Stop_SET
|
||||||
|
)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
setState20(env, true, i);
|
setState20(env, true, i);
|
||||||
|
|
||||||
|
|
@ -997,19 +1047,21 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
Error4_Permanent_Electrical_Slave)
|
Error4_Permanent_Electrical_Slave)
|
||||||
) {
|
) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
"State: ADR = %d CPOS = %d Stall_Slave = %d Emrf = %d Mode = %d Reset = %d ErrSupply = %d ErrComm = %d ErrTemp = %d ErrElect = %d",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
BUS_ADR + 1,
|
"State: ADR = %d CPOS = %d Stall_Slave = %d Emrf = %d Mode = %d Reset = %d ErrSupply = %d ErrComm = %d ErrTemp = %d ErrElect = %d",
|
||||||
CPOS_ALL,
|
BUS_ADR + 1,
|
||||||
Stall_Slave,
|
CPOS_ALL,
|
||||||
Emrf_Slave,
|
Stall_Slave,
|
||||||
Mode_Slave,
|
Emrf_Slave,
|
||||||
Reset_Slave,
|
Mode_Slave,
|
||||||
Error1_Supply_Slave,
|
Reset_Slave,
|
||||||
Error2_Communication_Slave,
|
Error1_Supply_Slave,
|
||||||
Error3_Temperature_Slave,
|
Error2_Communication_Slave,
|
||||||
Error4_Permanent_Electrical_Slave
|
Error3_Temperature_Slave,
|
||||||
)
|
Error4_Permanent_Electrical_Slave
|
||||||
|
)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1025,9 +1077,11 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
if (Stall_Slave == LIN_STALL_STA_ON) {
|
if (Stall_Slave == LIN_STALL_STA_ON) {
|
||||||
env->linStateActuator[BUS_ADR].Stall_Slave = Stall_Slave;
|
env->linStateActuator[BUS_ADR].Stall_Slave = Stall_Slave;
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Detect STALL: (ADR = %d POS = %d)",
|
if (IS_LOGGING_ENABLED(numAct)) {
|
||||||
BUS_ADR + 1,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Detect STALL: (ADR = %d POS = %d)",
|
||||||
CPOS_ALL)
|
BUS_ADR + 1,
|
||||||
|
CPOS_ALL)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1102,7 +1156,7 @@ static _Noreturn void Lin1_Thread(tLinTaskActuator *env) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
|
||||||
if (osMutexAcquire(env->access, 5000) == osOK) {
|
if (osMutexAcquire(env->access, 5000) == osOK) {
|
||||||
lin_event_id_t res = Lin_Scheduler(env);
|
lin_event_id_t res = Lin_Scheduler(env, 1);
|
||||||
|
|
||||||
uint8_t isError = 0;
|
uint8_t isError = 0;
|
||||||
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
||||||
|
|
@ -1169,7 +1223,7 @@ static _Noreturn void Lin2_Thread(tLinTaskActuator *env) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
|
||||||
if (osMutexAcquire(env->access, 5000) == osOK) {
|
if (osMutexAcquire(env->access, 5000) == osOK) {
|
||||||
lin_event_id_t res = Lin_Scheduler(env);
|
lin_event_id_t res = Lin_Scheduler(env, 2);
|
||||||
|
|
||||||
uint8_t isError = 0;
|
uint8_t isError = 0;
|
||||||
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
||||||
|
|
@ -1236,7 +1290,7 @@ static _Noreturn void Lin3_Thread(tLinTaskActuator *env) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
|
||||||
if (osMutexAcquire(env->access, 5000) == osOK) {
|
if (osMutexAcquire(env->access, 5000) == osOK) {
|
||||||
lin_event_id_t res = Lin_Scheduler(env);
|
lin_event_id_t res = Lin_Scheduler(env, 3);
|
||||||
|
|
||||||
uint8_t isError = 0;
|
uint8_t isError = 0;
|
||||||
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) {
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,11 @@
|
||||||
#include "LinIO.h"
|
#include "LinIO.h"
|
||||||
#include "LoggerInterface.h"
|
#include "LoggerInterface.h"
|
||||||
|
|
||||||
#define LOG_LIN_ACTUATOR 0
|
#define LOG_LIN_ACTUATOR 1
|
||||||
|
#define LOG_LIN1_ACTUATOR 1
|
||||||
|
#define LOG_LIN2_ACTUATOR 0
|
||||||
|
#define LOG_LIN3_ACTUATOR 0
|
||||||
|
|
||||||
|
|
||||||
typedef struct __attribute__ ((packed)) {
|
typedef struct __attribute__ ((packed)) {
|
||||||
uint8_t BUS_ADR;
|
uint8_t BUS_ADR;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue