Добавлены датчики и IO UDS
This commit is contained in:
parent
1a22d1e959
commit
02ca2275d5
180
LinSensorTasks.c
180
LinSensorTasks.c
|
|
@ -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;
|
||||||
|
|
|
||||||
106
LinSensorTasks.h
106
LinSensorTasks.h
|
|
@ -9,8 +9,9 @@
|
||||||
#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
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue