Добавлены датчики и IO UDS

This commit is contained in:
cfif 2026-07-14 09:53:22 +03:00
parent 1a22d1e959
commit 02ca2275d5
2 changed files with 277 additions and 23 deletions

View File

@ -10,6 +10,7 @@
#include "LoggerInterface.h" #include "LoggerInterface.h"
#include "memory.h" #include "memory.h"
#define LOG_SIGN4 "Ln4" #define LOG_SIGN4 "Ln4"
#define LOG_SIGN5 "Ln5" #define LOG_SIGN5 "Ln5"
#define LOGGER env->logger #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 ----------------------------------------------------------------
//начало----------------------------------------- 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) { static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
lin_event_id_t ret = LIN_NO_EVENT; 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); ret = Set_CCU_Req(env->linIo, env->linData, &env->d_CCU_Req);
#if (LOG_LIN4_SENSOR == 1) #if (LOG_LIN4_SENSOR == 1)
@ -120,17 +259,18 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
} }
#endif #endif
SystemDelayMs(40);
for (uint8_t i = 0; i < LIN4_SENSOR_COUNT; ++i) { 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], ret = Get_Sensor4_Stat(env->linIo, env->linData, &env->Stat[i], LIN4_SENSON_LEN_Stat[i],
LIN4_SENSON_ADR_Stat[i]); LIN4_SENSON_ADR_Stat[i]);
#if (LOG_LIN4_SENSOR == 1)
switch (i) { switch (i) {
case eeAirQS_Stat: { case eeAirQS_Stat: {
tAirQS_Stat *pAirQS_Stat = (tAirQS_Stat *) &env->Stat[i]; tAirQS_Stat *pAirQS_Stat = (tAirQS_Stat *) &env->Stat[i];
#if (LOG_LIN4_SENSOR == 1)
if (ret == LIN_RX_COMPLETED) { if (ret == LIN_RX_COMPLETED) {
LoggerFormatInfo(LOGGER, LOG_SIGN4, 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) LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (pAirQS_Stat) = %d", ret)
} }
#endif
break; break;
} }
case eeAroma_Stat: { case eeAroma_Stat: {
@ -244,7 +382,7 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
if (ret == LIN_RX_COMPLETED) { if (ret == LIN_RX_COMPLETED) {
LoggerFormatInfo(LOGGER, LOG_SIGN4, 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", "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_LinRespErr_Stat,
p_teTXV_eeChiller_Stat->eTXV_eeChiller_Err_Stat, p_teTXV_eeChiller_Stat->eTXV_eeChiller_Err_Stat,
p_teTXV_eeChiller_Stat->eTXV_eeChiller_Pressure_Val, p_teTXV_eeChiller_Stat->eTXV_eeChiller_Pressure_Val,
@ -256,10 +394,10 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
break; break;
} }
} }
#endif
} }
return LIN_NO_EVENT; return LIN_NO_EVENT;
} }
@ -273,6 +411,16 @@ void Lin_4_Init(tLin4TaskSensor *env,
env->logger = logger; env->logger = logger;
env->access = osMutexNew(NULL); 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, InitThreadAtrStatic(&env->threadLin.attr, "Ln4", env->threadLin.controlBlock, env->threadLin.stack,
osPriorityNormal); osPriorityNormal);
} }
@ -283,13 +431,12 @@ static _Noreturn void Lin4_Thread(tLin4TaskSensor *env) {
if (osMutexAcquire(env->access, 1000) == osOK) { if (osMutexAcquire(env->access, 1000) == osOK) {
Lin4_Input_Set_Model(env);
lin_event_id_t res = Lin4_Scheduler(env); lin_event_id_t res = Lin4_Scheduler(env);
Lin4_Output_Set_Model(env);
osMutexRelease(env->access); 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) { void Lin5_Output_Get_From_Model(tLin5TaskSensor *env) {
osStatus_t status = osMessageQueueGet(env->queue_led_count, dataLedSensor, 0, 0);
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); uint32_t countQueue_led_count = osMessageQueueGetSpace(env->queue_led_count);
osStatus_t status = osOK;
if (countQueue_led_count) { 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; return LIN_NO_EVENT;

View File

@ -9,21 +9,22 @@
#include "stdbool.h" #include "stdbool.h"
#include "LinIO.h" #include "LinIO.h"
#include "LoggerInterface.h" #include "LoggerInterface.h"
#include "HVAC_model.h"
#define LOG_LIN4_SENSOR 1 #define LOG_LIN4_SENSOR 0
#define LOG_LIN5_SENSOR 0 #define LOG_LIN5_SENSOR 0
#define LIN4_SENSOR_COUNT 7 #define LIN4_SENSOR_COUNT 7
typedef enum { typedef enum {
eeAirQS_Stat = 0, eeAirQS_Stat = 0,
eeAroma_Stat = 1, eeAroma_Stat = 1,
eeIonizer_Stat = 2, eeIonizer_Stat = 2,
eeTXV_fHVAC_Stat = 3, eeTXV_fHVAC_Stat = 3,
eeTXV_rHVAC_Stat = 4, eeTXV_rHVAC_Stat = 4,
eeTXV_batChiller_Stat = 5, eeTXV_batChiller_Stat = 5,
eeTXV_eeChiller_Stat = 6 eeTXV_eeChiller_Stat = 6
} eSensorStat4; } eSensorStat4;
#define AirQS_Stat 0x14 #define AirQS_Stat 0x14
@ -123,7 +124,7 @@ typedef struct __attribute__ ((packed)) {
} teTXV_batChiller_Stat; } teTXV_batChiller_Stat;
typedef struct __attribute__ ((packed)) { 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_LinRespErr_Stat: 1; // 7
uint8_t eTXV_eeChiller_Err_Stat: 2; // 8 uint8_t eTXV_eeChiller_Err_Stat: 2; // 8
uint8_t eTXV_eeChiller_Pressure_Val: 6; // 10 uint8_t eTXV_eeChiller_Pressure_Val: 6; // 10
@ -131,6 +132,74 @@ typedef struct __attribute__ ((packed)) {
} teTXV_eeChiller_Stat; } 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)) { typedef struct __attribute__ ((packed)) {
uint8_t CCU_DLLed1_Req: 1; // 0 uint8_t CCU_DLLed1_Req: 1; // 0
uint8_t CCU_DLLed2_Req: 1; // 1 uint8_t CCU_DLLed2_Req: 1; // 1
@ -235,6 +304,34 @@ typedef struct {
tCCU_Req d_CCU_Req; tCCU_Req d_CCU_Req;
uint64_t Stat[LIN4_SENSOR_COUNT]; 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 { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; uint32_t stack[384];
@ -303,6 +400,8 @@ void Lin_4_Init(tLin4TaskSensor *env,
void Lin4_StartThread(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, void Lin_5_Init(tLin5TaskSensor *env,
tLinData *linData, tLinData *linData,
@ -311,6 +410,7 @@ void Lin_5_Init(tLin5TaskSensor *env,
void Lin5_StartThread(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 #endif //HVAC_M7_LINSENSORTASKS_H