From 4023c117d7731c04b03d6a99cb6cc008d4dbcd70 Mon Sep 17 00:00:00 2001 From: cfif Date: Fri, 13 Feb 2026 15:59:41 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LinActuatorTasks.c | 445 +++++++++++++++++++++++++++++++-------------- LinActuatorTasks.h | 4 +- 2 files changed, 310 insertions(+), 139 deletions(-) diff --git a/LinActuatorTasks.c b/LinActuatorTasks.c index 2380847..2378afe 100644 --- a/LinActuatorTasks.c +++ b/LinActuatorTasks.c @@ -9,7 +9,7 @@ #include "Lins.h" #include "LoggerInterface.h" -#define LOG_SIGN "Lin0" +//#define LOG_SIGN "Lin0" #define LOGGER env->logger @@ -112,7 +112,7 @@ static lin_event_id_t SEND_ACTUATOR_COM_x(tLinIO *linIo, uint8_t COM_ADR) { static lin_event_id_t DFR_PRG_x(tLinIO *linIo, tLinData *linData, - uint8_t BUS_ADR) { + uint8_t BUS_ADR) { lin_event_id_t res; linData->direction = LIN_DIRECTION_SET; @@ -142,13 +142,13 @@ static lin_event_id_t DFR_PRG_x(tLinIO *linIo, tLinData *linData, } static lin_event_id_t RFR_PRG_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_ADDRESS, - uint8_t *BUS_ADR, - uint8_t *BUS_NEW_ADR, - uint8_t *NOTL_DREH_Master, - uint8_t *NOTL_ENAB_Master, - uint8_t *DREH_Slave, - uint8_t *ParitySlave, - uint8_t *Version_CFR) { + uint8_t *BUS_ADR, + uint8_t *BUS_NEW_ADR, + uint8_t *NOTL_DREH_Master, + uint8_t *NOTL_ENAB_Master, + uint8_t *DREH_Slave, + uint8_t *ParitySlave, + uint8_t *Version_CFR) { lin_event_id_t res; ACT_RFR_PRG *ACT_RFR_PRG_ = (ACT_RFR_PRG *) linData->g_aRxBuffer; @@ -190,7 +190,7 @@ static lin_event_id_t RFR_PRG_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_AD static lin_event_id_t DFR_IDE_x(tLinIO *linIo, tLinData *linData, - uint8_t BUS_ADR) { + uint8_t BUS_ADR) { lin_event_id_t res; linData->direction = LIN_DIRECTION_SET; @@ -218,10 +218,10 @@ static lin_event_id_t DFR_IDE_x(tLinIO *linIo, tLinData *linData, } static lin_event_id_t RFR_IDE_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_ADDRESS, - uint8_t *BUS_ADR, - uint8_t *IDE_ref, - uint8_t *IDE_Sup, - uint8_t *IDE_Har) { + uint8_t *BUS_ADR, + uint8_t *IDE_ref, + uint8_t *IDE_Sup, + uint8_t *IDE_Har) { lin_event_id_t res; ACT_RFR_IDE *ACT_RFR_IDE_ = (ACT_RFR_IDE *) linData->g_aRxBuffer; @@ -286,16 +286,16 @@ static lin_event_id_t DFR_STA_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_AD } static lin_event_id_t RFR_STA_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_ADDRESS, - uint8_t *BUS_ADR, - uint16_t *CPOS_ALL, - eEmrf_Slave_STA *Emrf_Slave, - eMode_Mod *Mode_Slave, - uint8_t *Error1_Supply_Slave, - uint8_t *Error2_Communication_Slave, - uint8_t *Error3_Temperature_Slave, - uint8_t *Error4_Permanent_Electrical_Slave, - eStall_STA *Stall_Slave, - eReset_STA *Reset_Slave) { + uint8_t *BUS_ADR, + uint16_t *CPOS_ALL, + eEmrf_Slave_STA *Emrf_Slave, + eMode_Mod *Mode_Slave, + uint8_t *Error1_Supply_Slave, + uint8_t *Error2_Communication_Slave, + uint8_t *Error3_Temperature_Slave, + uint8_t *Error4_Permanent_Electrical_Slave, + eStall_STA *Stall_Slave, + eReset_STA *Reset_Slave) { lin_event_id_t res; ACT_RFR_STA *ACT_RFR_STA_ = (ACT_RFR_STA *) linData->g_aRxBuffer; @@ -341,9 +341,9 @@ static lin_event_id_t RFR_STA_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_AD } static lin_event_id_t ISSR_x(tLinIO *linIo, tLinData *linData, uint8_t COM, - uint8_t *BLOCK_MT, - uint16_t *CPOS_ALL, - uint8_t *DIAGNOSE_MT) { + uint8_t *BLOCK_MT, + uint16_t *CPOS_ALL, + uint8_t *DIAGNOSE_MT) { lin_event_id_t res; linData->direction = LIN_DIRECTION_GET; @@ -376,7 +376,7 @@ static lin_event_id_t ISSR_x(tLinIO *linIo, tLinData *linData, uint8_t COM, } static lin_event_id_t CFR_MOD_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_ADDRESS, - eMode_Mod Mode_Slave) { + eMode_Mod Mode_Slave) { lin_event_id_t res; linData->direction = LIN_DIRECTION_SET; @@ -407,7 +407,7 @@ static lin_event_id_t CFR_MOD_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_AD } static lin_event_id_t CFR_INI_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_ADDRESS, - uint16 INI_CPOS) { + uint16 INI_CPOS) { lin_event_id_t res; linData->direction = LIN_DIRECTION_SET; @@ -437,12 +437,12 @@ static lin_event_id_t CFR_INI_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_AD } static lin_event_id_t CFR_SET_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_ADDRESS, - uint16 FINAL_POS, - eStall_SET Stall_SET, - eLnoise_SET Lnoise_SET, - eAutos_SET Autos_SET, - eSpeed_SET Speed_SET, - eCoils_Stop_SET Coils_Stop_SET) { + uint16 FINAL_POS, + eStall_SET Stall_SET, + eLnoise_SET Lnoise_SET, + eAutos_SET Autos_SET, + eSpeed_SET Speed_SET, + eCoils_Stop_SET Coils_Stop_SET) { lin_event_id_t res; linData->direction = LIN_DIRECTION_SET; @@ -551,140 +551,311 @@ static bool setState20(tLinTaskActuator *env, bool isError, uint8_t index) { return false; } +static bool isBroadCast(tLinTaskActuator *env) { -static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) { + for (uint8_t j = 0; j < env->LIN_ISSR_ALL; ++j) { + if (env->linCommandActuator[j].BUS_ADR != 0) { + return false; + } + } + + return true; +} + +static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env, char *LOG_SIGN) { lin_event_id_t ret = LIN_NO_EVENT; - for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) { + if (isBroadCast(env)) { - if (env->linCommandActuator[i].COM == LIN_ACT_CFR_MOD) { +//--------------------------------------BROADCAST--------------------------------------------------------- +//--------------------------------------BROADCAST--------------------------------------------------------- +//--------------------------------------BROADCAST--------------------------------------------------------- + + if (env->linCommandActuator[0].COM == LIN_ACT_CFR_MOD) { #if (LOG_LIN_ACTUATOR == 1) - LoggerFormatInfo(LOGGER, LOG_SIGN, "Sending a command: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)", - env->linCommandActuator[i].BUS_ADR, - env->linCommandActuator[i].MODE) + LoggerFormatInfo(LOGGER, LOG_SIGN, "Sending a command (BROADCAST): LIN_ACT_CFR_MOD (ADR = %d MODE = %d)", + env->linCommandActuator[0].BUS_ADR, + env->linCommandActuator[0].MODE) #endif - ret = CFR_MOD_x(env->linIo, env->linData, env->linCommandActuator[i].BUS_ADR | 0x20, - env->linCommandActuator[i].MODE); + ret = CFR_MOD_x(env->linIo, env->linData, env->linCommandActuator[0].BUS_ADR | 0x20, + env->linCommandActuator[0].MODE); if (ret == LIN_TX_COMPLETED) { #if (LOG_LIN_ACTUATOR == 1) LoggerFormatInfo(LOGGER, LOG_SIGN, - "Command completed successfully: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)", - env->linCommandActuator[i].BUS_ADR, - env->linCommandActuator[i].MODE) + "Command completed successfully (BROADCAST): LIN_ACT_CFR_MOD (ADR = %d MODE = %d)", + env->linCommandActuator[0].BUS_ADR, + env->linCommandActuator[0].MODE) #endif - if (setState20(env, false, i)) - break; - + setState20(env, false, 0); } else { #if (LOG_LIN_ACTUATOR == 1) - LoggerFormatInfo(LOGGER, LOG_SIGN, "Command failed [%d]: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)", - env->linCommandActuator[i].BUS_ADR, - env->linCommandActuator[i].MODE) + LoggerFormatInfo(LOGGER, LOG_SIGN, "Command failed (BROADCAST) [%d]: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)", + env->linCommandActuator[0].BUS_ADR, + env->linCommandActuator[0].MODE) #endif - if (setState20(env, true, i)) - break; + setState20(env, true, 0); } } - } - for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) { - - if (env->linCommandActuator[i].COM == LIN_ACT_CFR_INI) { + if (env->linCommandActuator[0].COM == LIN_ACT_CFR_INI) { #if (LOG_LIN_ACTUATOR == 1) - LoggerFormatInfo(LOGGER, LOG_SIGN, "Sending a command: LIN_ACT_CFR_INI (ADR = %d POS = %d)", - env->linCommandActuator[i].BUS_ADR, - env->linCommandActuator[i].POS) + LoggerFormatInfo(LOGGER, LOG_SIGN, "Sending a command (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)", + env->linCommandActuator[0].BUS_ADR, + env->linCommandActuator[0].POS) #endif ret = CFR_INI_x(env->linIo, env->linData, - env->linCommandActuator[i].BUS_ADR | 0x20, - env->linCommandActuator[i].POS); + env->linCommandActuator[0].BUS_ADR | 0x20, + env->linCommandActuator[0].POS); if (ret == LIN_TX_COMPLETED) { #if (LOG_LIN_ACTUATOR == 1) LoggerFormatInfo(LOGGER, LOG_SIGN, - "Command completed successfully: LIN_ACT_CFR_INI (ADR = %d POS = %d)", - env->linCommandActuator[i].BUS_ADR, env->linCommandActuator[i].POS) + "Command completed successfully (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)", + env->linCommandActuator[0].BUS_ADR, env->linCommandActuator[0].POS) #endif - if (setState20(env, false, i)) - break; + setState20(env, false, 0); + } else { #if (LOG_LIN_ACTUATOR == 1) - LoggerFormatInfo(LOGGER, LOG_SIGN, "Command failed: LIN_ACT_CFR_INI (ADR = %d POS = %d)", + LoggerFormatInfo(LOGGER, LOG_SIGN, "Command failed (BROADCAST): LIN_ACT_CFR_INI (ADR = %d POS = %d)", + env->linCommandActuator[0].BUS_ADR, + env->linCommandActuator[0].POS) +#endif + setState20(env, true, 0); + } + + + } + + + if (env->linCommandActuator[0].COM == LIN_ACT_CFR_SET) { +#if (LOG_LIN_ACTUATOR == 1) + LoggerFormatInfo(LOGGER, LOG_SIGN, + "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].POS, + env->linCommandActuator[0].Stall_SET, + env->linCommandActuator[0].Lnoise_SET, + env->linCommandActuator[0].Autos_SET, + env->linCommandActuator[0].Speed_SET, + env->linCommandActuator[0].Coils_Stop_SET + ) +#endif + ret = CFR_SET_x(env->linIo, env->linData, + env->linCommandActuator[0].BUS_ADR | 0x20, + env->linCommandActuator[0].POS, + env->linCommandActuator[0].Stall_SET, + env->linCommandActuator[0].Lnoise_SET, + env->linCommandActuator[0].Autos_SET, + env->linCommandActuator[0].Speed_SET, + env->linCommandActuator[0].Coils_Stop_SET); + + if (ret == LIN_TX_COMPLETED) { +#if (LOG_LIN_ACTUATOR == 1) + LoggerFormatInfo(LOGGER, LOG_SIGN, + "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].POS, + env->linCommandActuator[0].Stall_SET, + env->linCommandActuator[0].Lnoise_SET, + env->linCommandActuator[0].Autos_SET, + env->linCommandActuator[0].Speed_SET, + env->linCommandActuator[0].Coils_Stop_SET) +#endif + setState20(env, false, 0); + + } else { +#if (LOG_LIN_ACTUATOR == 1) + LoggerFormatInfo(LOGGER, LOG_SIGN, + "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].POS, + env->linCommandActuator[0].Stall_SET, + env->linCommandActuator[0].Lnoise_SET, + env->linCommandActuator[0].Autos_SET, + env->linCommandActuator[0].Speed_SET, + env->linCommandActuator[0].Coils_Stop_SET + ) +#endif + setState20(env, true, 0); + + } + + } + + } else { + +//--------------------------------------NO BROADCAST--------------------------------------------------------- +//--------------------------------------NO BROADCAST--------------------------------------------------------- +//--------------------------------------NO BROADCAST--------------------------------------------------------- + + 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, LOG_SIGN, "Let's skip the command: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)", + env->linCommandActuator[i].BUS_ADR, + env->linCommandActuator[i].MODE) +#endif + continue; + } + + if (env->linCommandActuator[i].COM == LIN_ACT_CFR_MOD) { + +#if (LOG_LIN_ACTUATOR == 1) + LoggerFormatInfo(LOGGER, LOG_SIGN, "Sending a command: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)", + env->linCommandActuator[i].BUS_ADR, + env->linCommandActuator[i].MODE) +#endif + ret = CFR_MOD_x(env->linIo, env->linData, env->linCommandActuator[i].BUS_ADR | 0x20, + env->linCommandActuator[i].MODE); + + if (ret == LIN_TX_COMPLETED) { +#if (LOG_LIN_ACTUATOR == 1) + LoggerFormatInfo(LOGGER, LOG_SIGN, + "Command completed successfully: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)", + env->linCommandActuator[i].BUS_ADR, + env->linCommandActuator[i].MODE) +#endif + if (setState20(env, false, i)) + break; + + } else { +#if (LOG_LIN_ACTUATOR == 1) + LoggerFormatInfo(LOGGER, LOG_SIGN, "Command failed [%d]: LIN_ACT_CFR_MOD (ADR = %d MODE = %d)", + env->linCommandActuator[i].BUS_ADR, + env->linCommandActuator[i].MODE) +#endif + if (setState20(env, true, i)) + break; + } + + } + + } + + 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, LOG_SIGN, "Let's skip the command: LIN_ACT_CFR_INI (ADR = %d POS = %d)", env->linCommandActuator[i].BUS_ADR, env->linCommandActuator[i].POS) #endif - if (setState20(env, true, i)) - break; + continue; } - - } - } - - for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) { - - if (env->linCommandActuator[i].COM == LIN_ACT_CFR_SET) { + if (env->linCommandActuator[i].COM == LIN_ACT_CFR_INI) { #if (LOG_LIN_ACTUATOR == 1) - LoggerFormatInfo(LOGGER, LOG_SIGN, - "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 - ) + LoggerFormatInfo(LOGGER, LOG_SIGN, "Sending a command: LIN_ACT_CFR_INI (ADR = %d POS = %d)", + env->linCommandActuator[i].BUS_ADR, + env->linCommandActuator[i].POS) #endif - ret = CFR_SET_x(env->linIo, env->linData, - env->linCommandActuator[i].BUS_ADR | 0x20, - 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); + ret = CFR_INI_x(env->linIo, env->linData, + env->linCommandActuator[i].BUS_ADR | 0x20, + env->linCommandActuator[i].POS); - if (ret == LIN_TX_COMPLETED) { + if (ret == LIN_TX_COMPLETED) { +#if (LOG_LIN_ACTUATOR == 1) + LoggerFormatInfo(LOGGER, LOG_SIGN, + "Command completed successfully: LIN_ACT_CFR_INI (ADR = %d POS = %d)", + env->linCommandActuator[i].BUS_ADR, env->linCommandActuator[i].POS) +#endif + if (setState20(env, false, i)) + break; + } else { +#if (LOG_LIN_ACTUATOR == 1) + LoggerFormatInfo(LOGGER, LOG_SIGN, "Command failed: LIN_ACT_CFR_INI (ADR = %d POS = %d)", + env->linCommandActuator[i].BUS_ADR, + env->linCommandActuator[i].POS) +#endif + if (setState20(env, true, i)) + break; + } + + + } + } + + 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, LOG_SIGN, - "Command completed successfully: 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].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 - ) + env->linCommandActuator[i].Coils_Stop_SET) #endif - if (setState20(env, false, i)) - break; - } else { + continue; + } + + if (env->linCommandActuator[i].COM == LIN_ACT_CFR_SET) { #if (LOG_LIN_ACTUATOR == 1) LoggerFormatInfo(LOGGER, LOG_SIGN, - "Command failed: 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].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 - ) + env->linCommandActuator[i].Coils_Stop_SET) #endif - if (setState20(env, true, i)) - break; + ret = CFR_SET_x(env->linIo, env->linData, + env->linCommandActuator[i].BUS_ADR | 0x20, + 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); + + if (ret == LIN_TX_COMPLETED) { +#if (LOG_LIN_ACTUATOR == 1) + LoggerFormatInfo(LOGGER, LOG_SIGN, + "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].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 + if (setState20(env, false, i)) + break; + } else { +#if (LOG_LIN_ACTUATOR == 1) + LoggerFormatInfo(LOGGER, LOG_SIGN, + "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].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 + if (setState20(env, true, i)) + break; + } + } - } - } + } // BroadCast for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) { /* @@ -712,16 +883,16 @@ static lin_event_id_t Lin_Scheduler(tLinTaskActuator *env) { env->linCommandActuator[i].isRFR_STA = 0; - uint8_t BUS_ADR; - uint16_t CPOS_ALL; - eEmrf_Slave_STA Emrf_Slave; - eMode_Mod Mode_Slave; - uint8_t Error1_Supply_Slave; - uint8_t Error2_Communication_Slave; - uint8_t Error3_Temperature_Slave; - uint8_t Error4_Permanent_Electrical_Slave; - eStall_STA Stall_Slave; - eReset_STA Reset_Slave; + uint8_t BUS_ADR = 0; + uint16_t CPOS_ALL = 0; + eEmrf_Slave_STA Emrf_Slave = 0; + eMode_Mod Mode_Slave = 0; + uint8_t Error1_Supply_Slave = 0; + uint8_t Error2_Communication_Slave = 0; + uint8_t Error3_Temperature_Slave = 0; + uint8_t Error4_Permanent_Electrical_Slave = 0; + eStall_STA Stall_Slave = 0; + eReset_STA Reset_Slave = 0; ret = RFR_STA_x(env->linIo, env->linData, i | 0x20, &BUS_ADR, @@ -836,28 +1007,28 @@ bool setBusy(tLinTaskActuator *env) { return false; } -void resetStall(tLinTaskActuator *env, uint8_t *dataLocalStall) { +void resetStall(tLinTaskActuator *env, uint8_t *dataLocalStall, char *LOG_SIGN) { for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) { // if (env->linCommandActuator[i].COM == LIN_ACT_CFR_SET) { #if (LOG_LIN_ACTUATOR == 1) - LoggerInfoStatic(LOGGER, LOG_SIGN, "Reset STALL") + LoggerInfoStatic(LOGGER, LOG_SIGN, "Reset STALL") #endif - env->linStateActuator[i].Stall_Slave = LIN_STALL_STA_OFF; - dataLocalStall[i] = LIN_STALL_STA_OFF; + env->linStateActuator[i].Stall_Slave = LIN_STALL_STA_OFF; + dataLocalStall[i] = LIN_STALL_STA_OFF; - if (env->linCommandActuator[i].BUS_ADR == 0) { + 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; + 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; + } + + // } } } @@ -879,7 +1050,7 @@ void Lin_1_Init(tLinTaskActuator *env, env->LIN_ISSR_ALL = LIN_ISSR_ALL; env->access = osMutexNew(NULL); - InitThreadAtrStatic(&env->threadLin.attr, "Lin1", env->threadLin.controlBlock, env->threadLin.stack, + InitThreadAtrStatic(&env->threadLin.attr, "Ln1", env->threadLin.controlBlock, env->threadLin.stack, osPriorityNormal); } @@ -888,7 +1059,7 @@ static _Noreturn void Lin1_Thread(tLinTaskActuator *env) { for (;;) { if (osMutexAcquire(env->access, 1000) == osOK) { - lin_event_id_t res = Lin_Scheduler(env); + lin_event_id_t res = Lin_Scheduler(env, "Ln1 "); uint8_t isError = 0; for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) { @@ -941,7 +1112,7 @@ void Lin_2_Init(tLinTaskActuator *env, env->LIN_ISSR_ALL = LIN_ISSR_ALL; env->access = osMutexNew(NULL); - InitThreadAtrStatic(&env->threadLin.attr, "Lin2", env->threadLin.controlBlock, env->threadLin.stack, + InitThreadAtrStatic(&env->threadLin.attr, "Ln2", env->threadLin.controlBlock, env->threadLin.stack, osPriorityNormal); } @@ -950,7 +1121,7 @@ static _Noreturn void Lin2_Thread(tLinTaskActuator *env) { for (;;) { if (osMutexAcquire(env->access, 1000) == osOK) { - lin_event_id_t res = Lin_Scheduler(env); + lin_event_id_t res = Lin_Scheduler(env, "Ln2 "); uint8_t isError = 0; for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) { @@ -1003,7 +1174,7 @@ void Lin_3_Init(tLinTaskActuator *env, env->LIN_ISSR_ALL = LIN_ISSR_ALL; env->access = osMutexNew(NULL); - InitThreadAtrStatic(&env->threadLin.attr, "Lin3", env->threadLin.controlBlock, env->threadLin.stack, + InitThreadAtrStatic(&env->threadLin.attr, "Ln3", env->threadLin.controlBlock, env->threadLin.stack, osPriorityNormal); } @@ -1012,7 +1183,7 @@ static _Noreturn void Lin3_Thread(tLinTaskActuator *env) { for (;;) { if (osMutexAcquire(env->access, 1000) == osOK) { - lin_event_id_t res = Lin_Scheduler(env); + lin_event_id_t res = Lin_Scheduler(env, "Ln3 "); uint8_t isError = 0; for (uint8_t i = 0; i < env->LIN_ISSR_ALL; ++i) { diff --git a/LinActuatorTasks.h b/LinActuatorTasks.h index ea6e798..bace8b0 100644 --- a/LinActuatorTasks.h +++ b/LinActuatorTasks.h @@ -10,7 +10,7 @@ #include "LinIO.h" #include "LoggerInterface.h" -#define LOG_LIN_ACTUATOR 0 +#define LOG_LIN_ACTUATOR 1 typedef struct __attribute__ ((packed)) { uint8_t BUS_ADR; @@ -490,7 +490,7 @@ void Lin3_StartThread(tLinTaskActuator *env); void GetLin123CallbackHandler(tLinData *env, uint8_t u8LinIndex, void *state); -void resetStall(tLinTaskActuator *env, uint8_t *dataLocalStall); +void resetStall(tLinTaskActuator *env, uint8_t *dataLocalStall, char *LOG_SIGN); bool setBusy(tLinTaskActuator *env); #endif //HVAC_LIN_TASKS_H