diff --git a/LinSensorTasks.c b/LinSensorTasks.c index 6a9d12f..3606888 100644 --- a/LinSensorTasks.c +++ b/LinSensorTasks.c @@ -10,6 +10,7 @@ #include "LoggerInterface.h" #include "memory.h" + #define LOG_SIGN4 "Ln4" #define LOG_SIGN5 "Ln5" #define LOGGER env->logger @@ -106,10 +107,148 @@ Get_Sensor4_Stat(tLinIO *linIo, tLinData *linData, void *p_Stat, uint8_t p_Stat_ //начало----------------------------------------- LIN 4 ---------------------------------------------------------------- //начало----------------------------------------- LIN 4 --------------------------------------------------------------- +// Это с выхода Lin4 +void Lin4_Output_Set_Model(tLin4TaskSensor *env) { + + tAirQS_Stat *pAirQS_Stat = (tAirQS_Stat *) &env->Stat[0]; + env->AirQS_Stat_For_Model.AirQS_LinRespErr_Stat = pAirQS_Stat->AirQS_LinRespErr_Stat; + env->AirQS_Stat_For_Model.AirQS_Sens_Stat = pAirQS_Stat->AirQS_Sens_Stat; + env->AirQS_Stat_For_Model.AirQS_Combined_Stat = pAirQS_Stat->AirQS_Combined_Stat; + env->AirQS_Stat_For_Model.AirQS_Err_Stat = pAirQS_Stat->AirQS_Err_Stat; + env->AirQS_Stat_For_Model.AirQS_COLvl_Stat = pAirQS_Stat->AirQS_COLvl_Stat; + env->AirQS_Stat_For_Model.AirQS_NOxLvl_Stat = pAirQS_Stat->AirQS_NOxLvl_Stat; + env->AirQS_Stat_For_Model.AirQS_NH3Lvl_Stat = pAirQS_Stat->AirQS_NH3Lvl_Stat; + + tAroma_Stat *pAroma_Stat = (tAroma_Stat *) &env->Stat[1]; + env->Aroma_Stat_For_Model.Aroma_LinRespErr_Stat = pAroma_Stat->Aroma_LinRespErr_Stat; + env->Aroma_Stat_For_Model.Aroma_CartridgeSw_Stat = pAroma_Stat->Aroma_CartridgeSw_Stat; + env->Aroma_Stat_For_Model.Aroma_Err_Stat = pAroma_Stat->Aroma_Err_Stat; + env->Aroma_Stat_For_Model.Aroma_Intens_Stat = pAroma_Stat->Aroma_Intens_Stat; + env->Aroma_Stat_For_Model.Aroma_CartridgeFlavor_Stat = pAroma_Stat->Aroma_CartridgeFlavor_Stat; + env->Aroma_Stat_For_Model.Aroma_CartridgeCapacity_Stat = pAroma_Stat->Aroma_CartridgeCapacity_Stat; + + + tIonizer_Stat *pIonizer_Stat = (tIonizer_Stat *) &env->Stat[2]; + env->Ionizer_Stat_For_Model.Ionizer_LinRespErr_Stat = pIonizer_Stat->Ionizer_LinRespErr_Stat; + env->Ionizer_Stat_For_Model.Ionizer_Err_Stat = pIonizer_Stat->Ionizer_Err_Stat; + env->Ionizer_Stat_For_Model.Ionizer_Ionization_Stat = pIonizer_Stat->Ionizer_Ionization_Stat; + + teTXV_fHVAC_Stat *p_teTXV_fHVAC_Stat = (teTXV_fHVAC_Stat *) &env->Stat[3]; + env->eTXV_fHVAC_Stat_For_Model.eTXV_fHVAC_Pos_Stat = p_teTXV_fHVAC_Stat->eTXV_fHVAC_Pos_Stat; + env->eTXV_fHVAC_Stat_For_Model.eTXV_fHVAC_LinRespErr_Stat = p_teTXV_fHVAC_Stat->eTXV_fHVAC_LinRespErr_Stat; + env->eTXV_fHVAC_Stat_For_Model.eTXV_fHVAC_Err_Stat = p_teTXV_fHVAC_Stat->eTXV_fHVAC_Err_Stat; + env->eTXV_fHVAC_Stat_For_Model.eTXV_fHVAC_Pressure_Val = p_teTXV_fHVAC_Stat->eTXV_fHVAC_Pressure_Val; + env->eTXV_fHVAC_Stat_For_Model.eTXV_fHVAC_Temp_Val = p_teTXV_fHVAC_Stat->eTXV_fHVAC_Temp_Val; + + + teTXV_rHVAC_Stat *p_teTXV_rHVAC_Stat = (teTXV_rHVAC_Stat *) &env->Stat[4]; + env->eTXV_rHVAC_Stat_For_Model.eTXV_rHVAC_Pos_Stat = p_teTXV_rHVAC_Stat->eTXV_rHVAC_Pos_Stat; + env->eTXV_rHVAC_Stat_For_Model.eTXV_rHVAC_LinRespErr_Stat = p_teTXV_rHVAC_Stat->eTXV_rHVAC_LinRespErr_Stat; + env->eTXV_rHVAC_Stat_For_Model.eTXV_rHVAC_Err_Stat = p_teTXV_rHVAC_Stat->eTXV_rHVAC_Err_Stat; + env->eTXV_rHVAC_Stat_For_Model.eTXV_rHVAC_Pressure_Val = p_teTXV_rHVAC_Stat->eTXV_rHVAC_Pressure_Val; + env->eTXV_rHVAC_Stat_For_Model.eTXV_rHVAC_Temp_Val = p_teTXV_rHVAC_Stat->eTXV_rHVAC_Temp_Val; + + teTXV_batChiller_Stat *p_teTXV_batChiller_Stat = (teTXV_batChiller_Stat *) &env->Stat[5]; + env->eTXV_batChiller_Stat_For_Model.eTXV_batChiller_Pos_Stat = p_teTXV_batChiller_Stat->eTXV_batChiller_Pos_Stat; + env->eTXV_batChiller_Stat_For_Model.eTXV_batChiller_LinRespErr_Stat = p_teTXV_batChiller_Stat->eTXV_batChiller_LinRespErr_Stat; + env->eTXV_batChiller_Stat_For_Model.eTXV_batChiller_Err_Stat = p_teTXV_batChiller_Stat->eTXV_batChiller_Err_Stat; + env->eTXV_batChiller_Stat_For_Model.eTXV_batChiller_Pressure_Val = p_teTXV_batChiller_Stat->eTXV_batChiller_Pressure_Val; + env->eTXV_batChiller_Stat_For_Model.eTXV_batChiller_Temp_Val = p_teTXV_batChiller_Stat->eTXV_batChiller_Temp_Val; + + teTXV_eeChiller_Stat *p_teTXV_eeChiller_Stat = (teTXV_eeChiller_Stat *) &env->Stat[6]; + env->eTXV_eeChiller_Stat_For_Model.eTXV_eeChiller_Pos_Stat = p_teTXV_eeChiller_Stat->eTXV_eeChiller_Pos_Stat; + env->eTXV_eeChiller_Stat_For_Model.eTXV_eeChiller_LinRespErr_Stat = p_teTXV_eeChiller_Stat->eTXV_eeChiller_LinRespErr_Stat; + env->eTXV_eeChiller_Stat_For_Model.eTXV_eeChiller_Err_Stat = p_teTXV_eeChiller_Stat->eTXV_eeChiller_Err_Stat; + env->eTXV_eeChiller_Stat_For_Model.eTXV_eeChiller_Pressure_Val = p_teTXV_eeChiller_Stat->eTXV_eeChiller_Pressure_Val; + env->eTXV_eeChiller_Stat_For_Model.eTXV_eeChiller_Temp_Val = p_teTXV_eeChiller_Stat->eTXV_eeChiller_Temp_Val; + + osStatus_t status = osOK; + + uint32_t countQueue_space = osMessageQueueGetSpace(env->queue_input_tAirQS); + if (countQueue_space) { + status = osMessageQueuePut(env->queue_input_tAirQS, &env->AirQS_Stat_For_Model, 0, 0); + } + + countQueue_space = osMessageQueueGetSpace(env->queue_input_tAroma); + if (countQueue_space) { + status = osMessageQueuePut(env->queue_input_tAroma, &env->Aroma_Stat_For_Model, 0, 0); + } + + countQueue_space = osMessageQueueGetSpace(env->queue_input_tIonizer); + if (countQueue_space) { + status = osMessageQueuePut(env->queue_input_tIonizer, &env->Ionizer_Stat_For_Model, 0, 0); + } + + countQueue_space = osMessageQueueGetSpace(env->queue_input_teTXV_fHVAC); + if (countQueue_space) { + status = osMessageQueuePut(env->queue_input_teTXV_fHVAC, &env->eTXV_fHVAC_Stat_For_Model, 0, 0); + } + + countQueue_space = osMessageQueueGetSpace(env->queue_input_teTXV_rHVAC); + if (countQueue_space) { + status = osMessageQueuePut(env->queue_input_teTXV_rHVAC, &env->eTXV_rHVAC_Stat_For_Model, 0, 0); + } + + countQueue_space = osMessageQueueGetSpace(env->queue_input_teTXV_batChiller); + if (countQueue_space) { + status = osMessageQueuePut(env->queue_input_teTXV_batChiller, &env->eTXV_batChiller_Stat_For_Model, 0, 0); + } + + countQueue_space = osMessageQueueGetSpace(env->queue_input_teTXV_eeChiller); + if (countQueue_space) { + status = osMessageQueuePut(env->queue_input_teTXV_eeChiller, &env->eTXV_eeChiller_Stat_For_Model, 0, 0); + } + + +} + +// Это формирование выхода с модели с задачи Lin4 +void Lin4_Output_Get_From_Model(tLin4TaskSensor *env) { + osStatus_t status = osOK; + + uint32_t countQueue_space = osMessageQueueGetSpace(env->queue_input_tAirQS); + if (countQueue_space == 0) { + status = osMessageQueueGet(env->queue_input_tAirQS, &rtDW.LIN4_AirQS_Stat_Model, 0, 0); + } +} + +// Это формирование входа с модели на задачу Lin4 +void Lin4_Input_Set_From_Model(tLin4TaskSensor *env) { + uint32_t countQueue_space = osMessageQueueGetSpace(env->queue_input_tCCU); + + osStatus_t status = osOK; + + if (countQueue_space) { + status = osMessageQueuePut(env->queue_input_tCCU, &rtY.LIN4_CCU_Req_Model, 0, 0); + } +} + +// Это с входа Lin4 +void Lin4_Input_Set_Model(tLin4TaskSensor *env) { + + uint32_t countQueue_space = osMessageQueueGetSpace(env->queue_input_tCCU); + + if (countQueue_space == 0) { + + osStatus_t status = osMessageQueueGet(env->queue_input_tCCU, &env->CCU_Req_For_Model_For_Model, 0, 0); + + if (status == osOK) { + env->d_CCU_Req.CCU_Ionization_Req = env->CCU_Req_For_Model_For_Model.CCU_Ionization_Req; + env->d_CCU_Req.CCU_AromaIntens_Req = env->CCU_Req_For_Model_For_Model.CCU_AromaIntens_Req; + env->d_CCU_Req.CCU_AirQS_Req = env->CCU_Req_For_Model_For_Model.CCU_AirQS_Req; + env->d_CCU_Req.CCU_fHVAC_Pos_Val = env->CCU_Req_For_Model_For_Model.CCU_fHVAC_Pos_Val; + env->d_CCU_Req.CCU_rHVAC_Pos_Val = env->CCU_Req_For_Model_For_Model.CCU_rHVAC_Pos_Val; + env->d_CCU_Req.CCU_batChiller_Pos_Val = env->CCU_Req_For_Model_For_Model.CCU_batChiller_Pos_Val; + env->d_CCU_Req.CCU_eeChiller_Pos_Val = env->CCU_Req_For_Model_For_Model.CCU_eeChiller_Pos_Val; + } + } +} + static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) { lin_event_id_t ret = LIN_NO_EVENT; - env->d_CCU_Req.CCU_AirQS_Req = 1; + SystemDelayMs(40); + ret = Set_CCU_Req(env->linIo, env->linData, &env->d_CCU_Req); #if (LOG_LIN4_SENSOR == 1) @@ -120,17 +259,18 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) { } #endif + SystemDelayMs(40); + for (uint8_t i = 0; i < LIN4_SENSOR_COUNT; ++i) { ret = Get_Sensor4_Stat(env->linIo, env->linData, &env->Stat[i], LIN4_SENSON_LEN_Stat[i], LIN4_SENSON_ADR_Stat[i]); - +#if (LOG_LIN4_SENSOR == 1) switch (i) { case eeAirQS_Stat: { tAirQS_Stat *pAirQS_Stat = (tAirQS_Stat *) &env->Stat[i]; -#if (LOG_LIN4_SENSOR == 1) if (ret == LIN_RX_COMPLETED) { LoggerFormatInfo(LOGGER, LOG_SIGN4, @@ -146,8 +286,6 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) { LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (pAirQS_Stat) = %d", ret) } -#endif - break; } case eeAroma_Stat: { @@ -244,7 +382,7 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) { if (ret == LIN_RX_COMPLETED) { LoggerFormatInfo(LOGGER, LOG_SIGN4, "eTXV_eeChiller_Stat_ = %d eTXV_eeChiller_LinRespErr_Stat = %d eTXV_eeChiller_Err_Stat = %d eTXV_eeChiller_Pressure_Val = %d eTXV_eeChiller_Temp_Val = %d", - p_teTXV_eeChiller_Stat->eTXV_eeChiller_Stat_, + p_teTXV_eeChiller_Stat->eTXV_eeChiller_Pos_Stat, p_teTXV_eeChiller_Stat->eTXV_eeChiller_LinRespErr_Stat, p_teTXV_eeChiller_Stat->eTXV_eeChiller_Err_Stat, p_teTXV_eeChiller_Stat->eTXV_eeChiller_Pressure_Val, @@ -256,10 +394,10 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) { break; } } +#endif } - return LIN_NO_EVENT; } @@ -273,6 +411,16 @@ void Lin_4_Init(tLin4TaskSensor *env, env->logger = logger; env->access = osMutexNew(NULL); + env->queue_input_tCCU = osMessageQueueNew(1, sizeof(LIN4_CCU_Req_Bus), NULL); + + env->queue_input_tAirQS = osMessageQueueNew(1, sizeof(LIN4_AirQS_Stat_Bus), NULL); + env->queue_input_tAroma = osMessageQueueNew(1, sizeof(LIN4_Aroma_Stat_Bus), NULL); + env->queue_input_tIonizer = osMessageQueueNew(1, sizeof(LIN4_Ionizer_Stat_Bus), NULL); + env->queue_input_teTXV_fHVAC = osMessageQueueNew(1, sizeof(LIN4_eTXV_fHVAC_Stat_Bus), NULL); + env->queue_input_teTXV_rHVAC = osMessageQueueNew(1, sizeof(LIN4_eTXV_rHVAC_Stat_Bus), NULL); + env->queue_input_teTXV_batChiller = osMessageQueueNew(1, sizeof(LIN4_eTXV_batChiller_Stat_Bus), NULL); + env->queue_input_teTXV_eeChiller = osMessageQueueNew(1, sizeof(LIN4_eTXV_eeChiller_Stat_Bus), NULL); + InitThreadAtrStatic(&env->threadLin.attr, "Ln4", env->threadLin.controlBlock, env->threadLin.stack, osPriorityNormal); } @@ -283,13 +431,12 @@ static _Noreturn void Lin4_Thread(tLin4TaskSensor *env) { if (osMutexAcquire(env->access, 1000) == osOK) { + Lin4_Input_Set_Model(env); lin_event_id_t res = Lin4_Scheduler(env); - + Lin4_Output_Set_Model(env); osMutexRelease(env->access); } - - SystemDelayMs(1000); } } @@ -465,8 +612,14 @@ static void set_led_group(tCCU_DRS_Req *req, uint8_t led_group, uint8_t count) { } } -void getSensorLin5(tLin5TaskSensor *env, void *dataLedSensor) { - osStatus_t status = osMessageQueueGet(env->queue_led_count, dataLedSensor, 0, 0); +void Lin5_Output_Get_From_Model(tLin5TaskSensor *env) { + + uint32_t countQueue_space = osMessageQueueGetSpace(env->queue_led_count); + + if (countQueue_space == 0) { + osStatus_t status = osMessageQueueGet(env->queue_led_count, &rtDW.LIN5_SENSON_ADR_Stat_model, 0, 0); + } + } @@ -562,8 +715,9 @@ static lin_event_id_t Lin5_Scheduler(tLin5TaskSensor *env) { uint32_t countQueue_led_count = osMessageQueueGetSpace(env->queue_led_count); + osStatus_t status = osOK; if (countQueue_led_count) { - osStatus_t status = osMessageQueuePut(env->queue_led_count, env->linStateSensor.LED_COUNT, 0, 0U); + status = osMessageQueuePut(env->queue_led_count, env->linStateSensor.LED_COUNT, 0, 0U); } return LIN_NO_EVENT; diff --git a/LinSensorTasks.h b/LinSensorTasks.h index 32ded0f..69285a8 100644 --- a/LinSensorTasks.h +++ b/LinSensorTasks.h @@ -9,21 +9,22 @@ #include "stdbool.h" #include "LinIO.h" #include "LoggerInterface.h" +#include "HVAC_model.h" -#define LOG_LIN4_SENSOR 1 +#define LOG_LIN4_SENSOR 0 #define LOG_LIN5_SENSOR 0 #define LIN4_SENSOR_COUNT 7 typedef enum { - eeAirQS_Stat = 0, - eeAroma_Stat = 1, - eeIonizer_Stat = 2, - eeTXV_fHVAC_Stat = 3, - eeTXV_rHVAC_Stat = 4, - eeTXV_batChiller_Stat = 5, - eeTXV_eeChiller_Stat = 6 + eeAirQS_Stat = 0, + eeAroma_Stat = 1, + eeIonizer_Stat = 2, + eeTXV_fHVAC_Stat = 3, + eeTXV_rHVAC_Stat = 4, + eeTXV_batChiller_Stat = 5, + eeTXV_eeChiller_Stat = 6 } eSensorStat4; #define AirQS_Stat 0x14 @@ -123,7 +124,7 @@ typedef struct __attribute__ ((packed)) { } teTXV_batChiller_Stat; typedef struct __attribute__ ((packed)) { - uint8_t eTXV_eeChiller_Stat_: 7; // 0 + uint8_t eTXV_eeChiller_Pos_Stat: 7; // 0 uint8_t eTXV_eeChiller_LinRespErr_Stat: 1; // 7 uint8_t eTXV_eeChiller_Err_Stat: 2; // 8 uint8_t eTXV_eeChiller_Pressure_Val: 6; // 10 @@ -131,6 +132,74 @@ typedef struct __attribute__ ((packed)) { } teTXV_eeChiller_Stat; +typedef struct { + uint8_t CCU_Ionization_Req; + uint8_t CCU_AromaIntens_Req; + uint8_t CCU_AirQS_Req; + uint8_t CCU_fHVAC_Pos_Val; + uint8_t CCU_rHVAC_Pos_Val; + uint8_t CCU_batChiller_Pos_Val; + uint8_t CCU_eeChiller_Pos_Val; +} tCCU_Req_For_Model; + +typedef struct { + uint8_t AirQS_LinRespErr_Stat; + uint8_t AirQS_Sens_Stat; + uint8_t AirQS_Combined_Stat; + uint8_t AirQS_Err_Stat; + uint8_t AirQS_COLvl_Stat; + uint8_t AirQS_NOxLvl_Stat; + uint8_t AirQS_NH3Lvl_Stat; +} tAirQS_Stat_For_Model; + +typedef struct { + uint8_t Aroma_LinRespErr_Stat; + uint8_t Aroma_CartridgeSw_Stat; + uint8_t Aroma_Err_Stat; + uint8_t Aroma_Intens_Stat; + uint8_t Aroma_CartridgeFlavor_Stat; + uint8_t Aroma_CartridgeCapacity_Stat; +} tAroma_Stat_For_Model; + +typedef struct { + uint8_t Ionizer_LinRespErr_Stat; + uint8_t Ionizer_Err_Stat; + uint8_t Ionizer_Ionization_Stat; +} tIonizer_Stat_For_Model; + +typedef struct { + uint8_t eTXV_fHVAC_Pos_Stat; + uint8_t eTXV_fHVAC_LinRespErr_Stat; + uint8_t eTXV_fHVAC_Err_Stat; + uint8_t eTXV_fHVAC_Pressure_Val; + uint8_t eTXV_fHVAC_Temp_Val; +} teTXV_fHVAC_Stat_For_Model; + +typedef struct { + uint8_t eTXV_rHVAC_Pos_Stat; + uint8_t eTXV_rHVAC_LinRespErr_Stat; + uint8_t eTXV_rHVAC_Err_Stat; + uint8_t eTXV_rHVAC_Pressure_Val; + uint8_t eTXV_rHVAC_Temp_Val; +} teTXV_rHVAC_Stat_For_Model; + +typedef struct { + uint8_t eTXV_batChiller_Pos_Stat; + uint8_t eTXV_batChiller_LinRespErr_Stat; + uint8_t eTXV_batChiller_Err_Stat; + uint8_t eTXV_batChiller_Pressure_Val; + uint8_t eTXV_batChiller_Temp_Val; +} teTXV_batChiller_Stat_For_Model; + +typedef struct { + uint8_t eTXV_eeChiller_Pos_Stat; + uint8_t eTXV_eeChiller_LinRespErr_Stat; + uint8_t eTXV_eeChiller_Err_Stat; + uint8_t eTXV_eeChiller_Pressure_Val; + uint8_t eTXV_eeChiller_Temp_Val; +} teTXV_eeChiller_Stat_For_Model; + + typedef struct __attribute__ ((packed)) { uint8_t CCU_DLLed1_Req: 1; // 0 uint8_t CCU_DLLed2_Req: 1; // 1 @@ -235,6 +304,34 @@ typedef struct { tCCU_Req d_CCU_Req; uint64_t Stat[LIN4_SENSOR_COUNT]; + //tCCU_Req_For_Model CCU_Req_For_Model_For_Model; + LIN4_CCU_Req_Bus CCU_Req_For_Model_For_Model; + //tAirQS_Stat_For_Model AirQS_Stat_For_Model; + LIN4_AirQS_Stat_Bus AirQS_Stat_For_Model; + //tAroma_Stat_For_Model Aroma_Stat_For_Model; + LIN4_Aroma_Stat_Bus Aroma_Stat_For_Model; + //tIonizer_Stat_For_Model Ionizer_Stat_For_Model; + LIN4_Ionizer_Stat_Bus Ionizer_Stat_For_Model; + //teTXV_fHVAC_Stat_For_Model eTXV_fHVAC_Stat_For_Model; + LIN4_eTXV_fHVAC_Stat_Bus eTXV_fHVAC_Stat_For_Model; + //teTXV_rHVAC_Stat_For_Model eTXV_rHVAC_Stat_For_Model; + LIN4_eTXV_rHVAC_Stat_Bus eTXV_rHVAC_Stat_For_Model; + //teTXV_batChiller_Stat_For_Model eTXV_batChiller_Stat_For_Model; + LIN4_eTXV_batChiller_Stat_Bus eTXV_batChiller_Stat_For_Model; + //teTXV_eeChiller_Stat_For_Model eTXV_eeChiller_Stat_For_Model; + LIN4_eTXV_eeChiller_Stat_Bus eTXV_eeChiller_Stat_For_Model; + + osMessageQueueId_t queue_input_tCCU; + + osMessageQueueId_t queue_input_tAirQS; + osMessageQueueId_t queue_input_tAroma; + osMessageQueueId_t queue_input_tIonizer; + osMessageQueueId_t queue_input_teTXV_fHVAC; + osMessageQueueId_t queue_input_teTXV_rHVAC; + osMessageQueueId_t queue_input_teTXV_batChiller; + osMessageQueueId_t queue_input_teTXV_eeChiller; + + struct { osThreadId_t id; uint32_t stack[384]; @@ -303,6 +400,8 @@ void Lin_4_Init(tLin4TaskSensor *env, void Lin4_StartThread(tLin4TaskSensor *env); +void Lin4_Input_Set_From_Model(tLin4TaskSensor *env); +void Lin4_Output_Get_From_Model(tLin4TaskSensor *env); void Lin_5_Init(tLin5TaskSensor *env, tLinData *linData, @@ -311,6 +410,7 @@ void Lin_5_Init(tLin5TaskSensor *env, void Lin5_StartThread(tLin5TaskSensor *env); -void getSensorLin5(tLin5TaskSensor *env, void *dataLedSensor); +void Lin5_Output_Get_From_Model(tLin5TaskSensor *env); + #endif //HVAC_M7_LINSENSORTASKS_H