Обновление
This commit is contained in:
parent
fc9c5e7b04
commit
8f478c98e2
|
|
@ -8,6 +8,7 @@
|
||||||
#include "fc7xxx_driver_lin.h"
|
#include "fc7xxx_driver_lin.h"
|
||||||
#include "Lins.h"
|
#include "Lins.h"
|
||||||
#include "LoggerInterface.h"
|
#include "LoggerInterface.h"
|
||||||
|
#include "string.h"
|
||||||
|
|
||||||
//#define LOG_SIGN "Lin0"
|
//#define LOG_SIGN "Lin0"
|
||||||
#define LOGGER env->logger
|
#define LOGGER env->logger
|
||||||
|
|
@ -543,6 +544,8 @@ static bool setState20(tLinTaskActuator *env, bool isError, uint8_t index) {
|
||||||
env->linCommandActuator[index].COM = LIN_ACT_CFR_SUCCESSFUL;
|
env->linCommandActuator[index].COM = LIN_ACT_CFR_SUCCESSFUL;
|
||||||
env->linCommandActuator[index].isRFR_STA = 1;
|
env->linCommandActuator[index].isRFR_STA = 1;
|
||||||
|
|
||||||
|
env->linStateActuator[index].Stall_Slave = LIN_STALL_STA_OFF;
|
||||||
|
|
||||||
if (env->linCommandActuator[index].BUS_ADR == 0) {
|
if (env->linCommandActuator[index].BUS_ADR == 0) {
|
||||||
|
|
||||||
if (isBroadCast(env)) {
|
if (isBroadCast(env)) {
|
||||||
|
|
@ -552,6 +555,8 @@ static bool setState20(tLinTaskActuator *env, bool isError, uint8_t index) {
|
||||||
env->linCommandActuator[j].COM = LIN_ACT_CFR_SUCCESSFUL;
|
env->linCommandActuator[j].COM = LIN_ACT_CFR_SUCCESSFUL;
|
||||||
env->linCommandActuator[j].isRFR_STA = 1;
|
env->linCommandActuator[j].isRFR_STA = 1;
|
||||||
|
|
||||||
|
env->linStateActuator[index].Stall_Slave = LIN_STALL_STA_OFF;
|
||||||
|
|
||||||
if (isError) {
|
if (isError) {
|
||||||
env->linStateActuator[j].error_connect = 1;
|
env->linStateActuator[j].error_connect = 1;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -566,7 +571,7 @@ static bool setState20(tLinTaskActuator *env, bool isError, uint8_t index) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) {
|
||||||
|
|
||||||
lin_event_id_t ret = LIN_NO_EVENT;
|
lin_event_id_t ret = LIN_NO_EVENT;
|
||||||
|
|
||||||
|
|
@ -579,7 +584,8 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
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, LOG_SIGN, "Sending a command (BROADCAST): LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
|
"Sending a command (BROADCAST): LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
env->linCommandActuator[0].MODE)
|
env->linCommandActuator[0].MODE)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -588,7 +594,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"Command completed successfully (BROADCAST): LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
"Command completed successfully (BROADCAST): LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
env->linCommandActuator[0].MODE)
|
env->linCommandActuator[0].MODE)
|
||||||
|
|
@ -596,7 +602,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
setState20(env, false, 0);
|
setState20(env, false, 0);
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"Command failed (BROADCAST) [%d]: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
"Command failed (BROADCAST) [%d]: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
env->linCommandActuator[0].MODE)
|
env->linCommandActuator[0].MODE)
|
||||||
|
|
@ -609,7 +615,8 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
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, LOG_SIGN, "Sending a command (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
|
"Sending a command (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
env->linCommandActuator[0].POS)
|
env->linCommandActuator[0].POS)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -619,7 +626,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"Command completed successfully (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
"Command completed successfully (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
env->linCommandActuator[0].BUS_ADR, env->linCommandActuator[0].POS)
|
env->linCommandActuator[0].BUS_ADR, env->linCommandActuator[0].POS)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -627,7 +634,8 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Command failed (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
|
"Command failed (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
env->linCommandActuator[0].POS)
|
env->linCommandActuator[0].POS)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -640,7 +648,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
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, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"Sending a command (BROADCAST): LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
"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].BUS_ADR,
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
env->linCommandActuator[0].POS,
|
env->linCommandActuator[0].POS,
|
||||||
|
|
@ -662,7 +670,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"Command completed successfully (BROADCAST): LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
"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].BUS_ADR,
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
env->linCommandActuator[0].POS,
|
env->linCommandActuator[0].POS,
|
||||||
|
|
@ -676,7 +684,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"Command failed (BROADCAST): LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
"Command failed (BROADCAST): LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
||||||
env->linCommandActuator[0].BUS_ADR,
|
env->linCommandActuator[0].BUS_ADR,
|
||||||
env->linCommandActuator[0].POS,
|
env->linCommandActuator[0].POS,
|
||||||
|
|
@ -703,7 +711,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Let's skip the command: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Let's skip the command: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
env->linCommandActuator[i].MODE)
|
env->linCommandActuator[i].MODE)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -713,7 +721,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_MOD) {
|
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_MOD) {
|
||||||
|
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Sending a command: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Sending a command: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
env->linCommandActuator[i].MODE)
|
env->linCommandActuator[i].MODE)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -722,7 +730,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"Command completed successfully: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
"Command completed successfully: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
env->linCommandActuator[i].MODE)
|
env->linCommandActuator[i].MODE)
|
||||||
|
|
@ -732,7 +740,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Command failed [%d]: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Command failed [%d]: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)",
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
env->linCommandActuator[i].MODE)
|
env->linCommandActuator[i].MODE)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -747,7 +755,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Let's skip the command: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Let's skip the command: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
env->linCommandActuator[i].POS)
|
env->linCommandActuator[i].POS)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -756,7 +764,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_INI) {
|
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_INI) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Sending a command: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Sending a command: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
env->linCommandActuator[i].POS)
|
env->linCommandActuator[i].POS)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -766,7 +774,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"Command completed successfully: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
"Command completed successfully: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
env->linCommandActuator[i].BUS_ADR, env->linCommandActuator[i].POS)
|
env->linCommandActuator[i].BUS_ADR, env->linCommandActuator[i].POS)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -774,7 +782,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Command failed: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Command failed: LIN_ACT_CFR_INI (ADR = %d POS = %d)",
|
||||||
env->linCommandActuator[i].BUS_ADR,
|
env->linCommandActuator[i].BUS_ADR,
|
||||||
env->linCommandActuator[i].POS)
|
env->linCommandActuator[i].POS)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -790,7 +798,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"Let's skip the command: LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
"Let's skip the 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].BUS_ADR,
|
||||||
env->linCommandActuator[i].POS,
|
env->linCommandActuator[i].POS,
|
||||||
|
|
@ -805,7 +813,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_SET) {
|
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_SET) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
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)",
|
"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].BUS_ADR,
|
||||||
env->linCommandActuator[i].POS,
|
env->linCommandActuator[i].POS,
|
||||||
|
|
@ -826,7 +834,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"Command completed successfully: LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
"Command completed successfully: 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].BUS_ADR,
|
||||||
env->linCommandActuator[i].POS,
|
env->linCommandActuator[i].POS,
|
||||||
|
|
@ -841,7 +849,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"Command failed: LIN_ACT_CFR_SET (ADR = %d POS = %d STALL= %d LNOISE = %d AUTOS = %d SPEED = %d COILS = %d)",
|
"Command failed: 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].BUS_ADR,
|
||||||
env->linCommandActuator[i].POS,
|
env->linCommandActuator[i].POS,
|
||||||
|
|
@ -890,10 +898,10 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
&Reset_Slave);
|
&Reset_Slave);
|
||||||
|
|
||||||
if (ret == LIN_RX_COMPLETED) {
|
if (ret == LIN_RX_COMPLETED) {
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "OK: State = %d", i)
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "OK: State = %d", i)
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "ERROR: State = %d", i)
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "ERROR: State = %d", i)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -967,7 +975,6 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
BUS_ADR = BUS_ADR - 1;
|
BUS_ADR = BUS_ADR - 1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (BUS_ADR != i) {
|
if (BUS_ADR != i) {
|
||||||
asm("nop");
|
asm("nop");
|
||||||
}
|
}
|
||||||
|
|
@ -984,7 +991,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
Error4_Permanent_Electrical_Slave)
|
Error4_Permanent_Electrical_Slave)
|
||||||
) {
|
) {
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
"State: ADR = %d CPOS = %d Emrf = %d Mode = %d ErrSupply = %d ErrComm = %d ErrTemp = %d ErrElect = %d",
|
"State: ADR = %d CPOS = %d Emrf = %d Mode = %d ErrSupply = %d ErrComm = %d ErrTemp = %d ErrElect = %d",
|
||||||
BUS_ADR + 1,
|
BUS_ADR + 1,
|
||||||
CPOS_ALL,
|
CPOS_ALL,
|
||||||
|
|
@ -1011,7 +1018,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
if (Stall_Slave == LIN_STALL_STA_ON) {
|
if (Stall_Slave == LIN_STALL_STA_ON) {
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Detect STALL: (ADR = %d POS = %d)",
|
LoggerFormatInfo(LOGGER, env->SIGN_LOG, "Detect STALL: (ADR = %d POS = %d)",
|
||||||
BUS_ADR + 1,
|
BUS_ADR + 1,
|
||||||
CPOS_ALL)
|
CPOS_ALL)
|
||||||
}
|
}
|
||||||
|
|
@ -1021,7 +1028,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
|
|
||||||
env->linStateActuator[BUS_ADR].Reset_Slave = Reset_Slave;
|
env->linStateActuator[BUS_ADR].Reset_Slave = Reset_Slave;
|
||||||
|
|
||||||
// LoggerFormatInfo(LOGGER, LOG_SIGN, "BUS_ADR = %d, CPOS_ALL = %d, Stall_Slave = %d", BUS_ADR,
|
// LoggerFormatInfo(LOGGER, env->SIGN_LOG, "BUS_ADR = %d, CPOS_ALL = %d, Stall_Slave = %d", BUS_ADR,
|
||||||
// env->linStateActuator[BUS_ADR].CPOS_ALL,
|
// env->linStateActuator[BUS_ADR].CPOS_ALL,
|
||||||
// env->linStateActuator[BUS_ADR].Stall_Slave)
|
// env->linStateActuator[BUS_ADR].Stall_Slave)
|
||||||
|
|
||||||
|
|
@ -1033,7 +1040,7 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
//#if (LOG_LIN_ACTUATOR == 1)
|
//#if (LOG_LIN_ACTUATOR == 1)
|
||||||
// LoggerFormatInfo(LOGGER, LOG_SIGN,
|
// LoggerFormatInfo(LOGGER, env->SIGN_LOG,
|
||||||
// "Command READ - ERROR: ADR = %d ",
|
// "Command READ - ERROR: ADR = %d ",
|
||||||
// i
|
// i
|
||||||
// )
|
// )
|
||||||
|
|
@ -1064,28 +1071,12 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) {
|
||||||
void resetStall(tLinTaskActuator *env, uint8_t *dataLocalStall, char *LOG_SIGN) {
|
void resetStall(tLinTaskActuator *env, uint8_t *dataLocalStall, char *LOG_SIGN) {
|
||||||
|
|
||||||
#if (LOG_LIN_ACTUATOR == 1)
|
#if (LOG_LIN_ACTUATOR == 1)
|
||||||
LoggerInfoStatic(LOGGER, LOG_SIGN, "Reset STALL (DETECT STALL RESET)")
|
LoggerInfoStatic(LOGGER, env->SIGN_LOG, "Reset LOCAL STALL (DETECT STALL RESET)")
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
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].COM == LIN_ACT_CFR_SET) {
|
|
||||||
// !!!!!! env->linStateActuator[i].Stall_Slave = LIN_STALL_STA_OFF;
|
|
||||||
dataLocalStall[i] = LIN_STALL_STA_OFF;
|
dataLocalStall[i] = LIN_STALL_STA_OFF;
|
||||||
/*
|
|
||||||
if (env->linCommandActuator[i].BUS_ADR == 0) {
|
|
||||||
|
|
||||||
for (uint8_t j = 0; j < env->LIN_ISSR_ALL; ++j) {
|
|
||||||
env->linStateActuator[j].Stall_Slave = LIN_STALL_STA_OFF;
|
|
||||||
dataLocalStall[j] = LIN_STALL_STA_OFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//начало----------------------------------------- LIN 1 ----------------------------------------------------------------
|
//начало----------------------------------------- LIN 1 ----------------------------------------------------------------
|
||||||
|
|
@ -1105,6 +1096,8 @@ void Lin_1_Init(tLinTaskActuator *env,
|
||||||
env->LIN_ISSR_ALL = LIN_ISSR_ALL;
|
env->LIN_ISSR_ALL = LIN_ISSR_ALL;
|
||||||
env->access = osMutexNew(NULL);
|
env->access = osMutexNew(NULL);
|
||||||
|
|
||||||
|
memcpy(env->SIGN_LOG, "Ln1 ", sizeof("Ln1 ") - 1);
|
||||||
|
|
||||||
InitThreadAtrStatic(&env->threadLin.attr, "Ln1", env->threadLin.controlBlock, env->threadLin.stack,
|
InitThreadAtrStatic(&env->threadLin.attr, "Ln1", env->threadLin.controlBlock, env->threadLin.stack,
|
||||||
osPriorityNormal);
|
osPriorityNormal);
|
||||||
}
|
}
|
||||||
|
|
@ -1113,8 +1106,8 @@ void Lin_1_Init(tLinTaskActuator *env,
|
||||||
static _Noreturn void Lin1_Thread(tLinTaskActuator *env) {
|
static _Noreturn void Lin1_Thread(tLinTaskActuator *env) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
|
||||||
if (osMutexAcquire(env->access, 1000) == osOK) {
|
if (osMutexAcquire(env->access, 5000) == osOK) {
|
||||||
lin_event_id_t res = Lin_Scheduler(env, "Ln1 ");
|
lin_event_id_t res = Lin_Scheduler(env);
|
||||||
|
|
||||||
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) {
|
||||||
|
|
@ -1131,6 +1124,8 @@ static _Noreturn void Lin1_Thread(tLinTaskActuator *env) {
|
||||||
env->busy = false;
|
env->busy = false;
|
||||||
|
|
||||||
osMutexRelease(env->access);
|
osMutexRelease(env->access);
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, "Ln1 ", "Mutex acquisition error")
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemDelayMs(500);
|
SystemDelayMs(500);
|
||||||
|
|
@ -1168,6 +1163,8 @@ void Lin_2_Init(tLinTaskActuator *env,
|
||||||
env->LIN_ISSR_ALL = LIN_ISSR_ALL;
|
env->LIN_ISSR_ALL = LIN_ISSR_ALL;
|
||||||
env->access = osMutexNew(NULL);
|
env->access = osMutexNew(NULL);
|
||||||
|
|
||||||
|
memcpy(env->SIGN_LOG, "Ln2 ", sizeof("Ln2 ") - 1);
|
||||||
|
|
||||||
InitThreadAtrStatic(&env->threadLin.attr, "Ln2", env->threadLin.controlBlock, env->threadLin.stack,
|
InitThreadAtrStatic(&env->threadLin.attr, "Ln2", env->threadLin.controlBlock, env->threadLin.stack,
|
||||||
osPriorityNormal);
|
osPriorityNormal);
|
||||||
}
|
}
|
||||||
|
|
@ -1176,8 +1173,8 @@ void Lin_2_Init(tLinTaskActuator *env,
|
||||||
static _Noreturn void Lin2_Thread(tLinTaskActuator *env) {
|
static _Noreturn void Lin2_Thread(tLinTaskActuator *env) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
|
||||||
if (osMutexAcquire(env->access, 1000) == osOK) {
|
if (osMutexAcquire(env->access, 5000) == osOK) {
|
||||||
lin_event_id_t res = Lin_Scheduler(env, "Ln2 ");
|
lin_event_id_t res = Lin_Scheduler(env);
|
||||||
|
|
||||||
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) {
|
||||||
|
|
@ -1194,6 +1191,8 @@ static _Noreturn void Lin2_Thread(tLinTaskActuator *env) {
|
||||||
env->busy = false;
|
env->busy = false;
|
||||||
|
|
||||||
osMutexRelease(env->access);
|
osMutexRelease(env->access);
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, "Ln2 ", "Mutex acquisition error")
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemDelayMs(500);
|
SystemDelayMs(500);
|
||||||
|
|
@ -1231,6 +1230,8 @@ void Lin_3_Init(tLinTaskActuator *env,
|
||||||
env->LIN_ISSR_ALL = LIN_ISSR_ALL;
|
env->LIN_ISSR_ALL = LIN_ISSR_ALL;
|
||||||
env->access = osMutexNew(NULL);
|
env->access = osMutexNew(NULL);
|
||||||
|
|
||||||
|
memcpy(env->SIGN_LOG, "Ln3 ", sizeof("Ln3 ") - 1);
|
||||||
|
|
||||||
InitThreadAtrStatic(&env->threadLin.attr, "Ln3", env->threadLin.controlBlock, env->threadLin.stack,
|
InitThreadAtrStatic(&env->threadLin.attr, "Ln3", env->threadLin.controlBlock, env->threadLin.stack,
|
||||||
osPriorityNormal);
|
osPriorityNormal);
|
||||||
}
|
}
|
||||||
|
|
@ -1239,8 +1240,8 @@ void Lin_3_Init(tLinTaskActuator *env,
|
||||||
static _Noreturn void Lin3_Thread(tLinTaskActuator *env) {
|
static _Noreturn void Lin3_Thread(tLinTaskActuator *env) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
|
||||||
if (osMutexAcquire(env->access, 1000) == osOK) {
|
if (osMutexAcquire(env->access, 5000) == osOK) {
|
||||||
lin_event_id_t res = Lin_Scheduler(env, "Ln3 ");
|
lin_event_id_t res = Lin_Scheduler(env);
|
||||||
|
|
||||||
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) {
|
||||||
|
|
@ -1257,6 +1258,8 @@ static _Noreturn void Lin3_Thread(tLinTaskActuator *env) {
|
||||||
env->busy = false;
|
env->busy = false;
|
||||||
|
|
||||||
osMutexRelease(env->access);
|
osMutexRelease(env->access);
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, "Ln3 ", "Mutex acquisition error")
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemDelayMs(500);
|
SystemDelayMs(500);
|
||||||
|
|
|
||||||
|
|
@ -446,6 +446,8 @@ typedef struct {
|
||||||
bool busy; // Устройство занято
|
bool busy; // Устройство занято
|
||||||
uint8_t error_connect; // Ошибка соединения (устройство не отвечает)
|
uint8_t error_connect; // Ошибка соединения (устройство не отвечает)
|
||||||
|
|
||||||
|
char SIGN_LOG[5];
|
||||||
|
|
||||||
tLinStateFullActuator linStateActuator[9];
|
tLinStateFullActuator linStateActuator[9];
|
||||||
tLinCommandActuator linCommandActuator[9];
|
tLinCommandActuator linCommandActuator[9];
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue