Исправления в LIN4 и LIN5 (изменения в интерфейсе)
This commit is contained in:
parent
02ca2275d5
commit
d8378179f1
185
LinSensorTasks.c
185
LinSensorTasks.c
|
|
@ -162,6 +162,9 @@ void Lin4_Output_Set_Model(tLin4TaskSensor *env) {
|
||||||
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_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;
|
env->eTXV_eeChiller_Stat_For_Model.eTXV_eeChiller_Temp_Val = p_teTXV_eeChiller_Stat->eTXV_eeChiller_Temp_Val;
|
||||||
|
|
||||||
|
memcpy(env->sensorLin4CmdBusInput.in_error_connect, env->error_connect, LIN4_SENSOR_COUNT);
|
||||||
|
env->sensorLin4CmdBusInput.Error_Connect = env->error_all_connect;
|
||||||
|
|
||||||
osStatus_t status = osOK;
|
osStatus_t status = osOK;
|
||||||
|
|
||||||
uint32_t countQueue_space = osMessageQueueGetSpace(env->queue_input_tAirQS);
|
uint32_t countQueue_space = osMessageQueueGetSpace(env->queue_input_tAirQS);
|
||||||
|
|
@ -199,6 +202,10 @@ void Lin4_Output_Set_Model(tLin4TaskSensor *env) {
|
||||||
status = osMessageQueuePut(env->queue_input_teTXV_eeChiller, &env->eTXV_eeChiller_Stat_For_Model, 0, 0);
|
status = osMessageQueuePut(env->queue_input_teTXV_eeChiller, &env->eTXV_eeChiller_Stat_For_Model, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
countQueue_space = osMessageQueueGetSpace(env->queue_input_Lin4_Stat);
|
||||||
|
if (countQueue_space) {
|
||||||
|
status = osMessageQueuePut(env->queue_input_Lin4_Stat, &env->sensorLin4CmdBusInput, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -210,6 +217,12 @@ void Lin4_Output_Get_From_Model(tLin4TaskSensor *env) {
|
||||||
if (countQueue_space == 0) {
|
if (countQueue_space == 0) {
|
||||||
status = osMessageQueueGet(env->queue_input_tAirQS, &rtDW.LIN4_AirQS_Stat_Model, 0, 0);
|
status = osMessageQueueGet(env->queue_input_tAirQS, &rtDW.LIN4_AirQS_Stat_Model, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
countQueue_space = osMessageQueueGetSpace(env->queue_input_Lin4_Stat);
|
||||||
|
if (countQueue_space == 0) {
|
||||||
|
// status = osMessageQueueGet(env->queue_input_Lin4_Stat, &env->sensorLin4CmdBusInput, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Это формирование входа с модели на задачу Lin4
|
// Это формирование входа с модели на задачу Lin4
|
||||||
|
|
@ -265,14 +278,16 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
|
||||||
|
|
||||||
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 (ret == LIN_RX_COMPLETED) {
|
||||||
|
env->error_connect[i] = 0;
|
||||||
#if (LOG_LIN4_SENSOR == 1)
|
#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 (ret == LIN_RX_COMPLETED) {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
||||||
"AirQS_LinRespErr_Stat = %d AirQS_Sens_Stat = %d AirQS_Combined_Stat = %d AirQS_Err_Stat = %d AirQS_COLvl_Stat = %d AirQS_NOxLvl_Stat = %d AirQS_NH3Lvl_Stat = %d",
|
"AirQS_LinRespErr_Stat = %d AirQS_Sens_Stat = %d AirQS_Combined_Stat = %d AirQS_Err_Stat = %d AirQS_COLvl_Stat = %d AirQS_NOxLvl_Stat = %d AirQS_NH3Lvl_Stat = %d",
|
||||||
pAirQS_Stat->AirQS_LinRespErr_Stat,
|
pAirQS_Stat->AirQS_LinRespErr_Stat,
|
||||||
|
|
@ -282,16 +297,14 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
|
||||||
pAirQS_Stat->AirQS_COLvl_Stat,
|
pAirQS_Stat->AirQS_COLvl_Stat,
|
||||||
pAirQS_Stat->AirQS_NOxLvl_Stat,
|
pAirQS_Stat->AirQS_NOxLvl_Stat,
|
||||||
pAirQS_Stat->AirQS_NH3Lvl_Stat)
|
pAirQS_Stat->AirQS_NH3Lvl_Stat)
|
||||||
} else {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (pAirQS_Stat) = %d", ret)
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
case eeAroma_Stat: {
|
||||||
|
tAroma_Stat *pAroma_Stat = (tAroma_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case eeAroma_Stat: {
|
|
||||||
tAroma_Stat *pAroma_Stat = (tAroma_Stat *) &env->Stat[i];
|
|
||||||
|
|
||||||
if (ret == LIN_RX_COMPLETED) {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
||||||
"Aroma_LinRespErr_Stat = %d Aroma_CartridgeSw_Stat = %d Aroma_Err_Stat = %d Aroma_Intens_Stat = %d Aroma_CartridgeFlavor_Stat = %d Aroma_CartridgeCapacity_Stat = %d",
|
"Aroma_LinRespErr_Stat = %d Aroma_CartridgeSw_Stat = %d Aroma_Err_Stat = %d Aroma_Intens_Stat = %d Aroma_CartridgeFlavor_Stat = %d Aroma_CartridgeCapacity_Stat = %d",
|
||||||
pAroma_Stat->Aroma_LinRespErr_Stat,
|
pAroma_Stat->Aroma_LinRespErr_Stat,
|
||||||
|
|
@ -300,32 +313,27 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
|
||||||
pAroma_Stat->Aroma_Intens_Stat,
|
pAroma_Stat->Aroma_Intens_Stat,
|
||||||
pAroma_Stat->Aroma_CartridgeFlavor_Stat,
|
pAroma_Stat->Aroma_CartridgeFlavor_Stat,
|
||||||
pAroma_Stat->Aroma_CartridgeCapacity_Stat)
|
pAroma_Stat->Aroma_CartridgeCapacity_Stat)
|
||||||
} else {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (pAroma_Stat) = %d", ret)
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
case eeIonizer_Stat: {
|
||||||
}
|
tIonizer_Stat *pIonizer_Stat = (tIonizer_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
case eeIonizer_Stat: {
|
|
||||||
tIonizer_Stat *pIonizer_Stat = (tIonizer_Stat *) &env->Stat[i];
|
|
||||||
|
|
||||||
if (ret == LIN_RX_COMPLETED) {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
||||||
"Ionizer_LinRespErr_Stat = %d Ionizer_Err_Stat = %d Ionizer_Ionization_Stat = %d",
|
"Ionizer_LinRespErr_Stat = %d Ionizer_Err_Stat = %d Ionizer_Ionization_Stat = %d",
|
||||||
pIonizer_Stat->Ionizer_LinRespErr_Stat,
|
pIonizer_Stat->Ionizer_LinRespErr_Stat,
|
||||||
pIonizer_Stat->Ionizer_Err_Stat,
|
pIonizer_Stat->Ionizer_Err_Stat,
|
||||||
pIonizer_Stat->Ionizer_Ionization_Stat)
|
pIonizer_Stat->Ionizer_Ionization_Stat)
|
||||||
} else {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (pIonizer_Stat) = %d", ret)
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
case eeTXV_fHVAC_Stat: {
|
||||||
|
teTXV_fHVAC_Stat *p_teTXV_fHVAC_Stat = (teTXV_fHVAC_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case eeTXV_fHVAC_Stat: {
|
|
||||||
teTXV_fHVAC_Stat *p_teTXV_fHVAC_Stat = (teTXV_fHVAC_Stat *) &env->Stat[i];
|
|
||||||
|
|
||||||
if (ret == LIN_RX_COMPLETED) {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
||||||
"eTXV_fHVAC_Pos_Stat = %d eTXV_fHVAC_LinRespErr_Stat = %d eTXV_fHVAC_Err_Stat = %d eTXV_fHVAC_Pressure_Val = %d eTXV_fHVAC_Temp_Val = %d",
|
"eTXV_fHVAC_Pos_Stat = %d eTXV_fHVAC_LinRespErr_Stat = %d eTXV_fHVAC_Err_Stat = %d eTXV_fHVAC_Pressure_Val = %d eTXV_fHVAC_Temp_Val = %d",
|
||||||
p_teTXV_fHVAC_Stat->eTXV_fHVAC_Pos_Stat,
|
p_teTXV_fHVAC_Stat->eTXV_fHVAC_Pos_Stat,
|
||||||
|
|
@ -333,17 +341,15 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
|
||||||
p_teTXV_fHVAC_Stat->eTXV_fHVAC_Err_Stat,
|
p_teTXV_fHVAC_Stat->eTXV_fHVAC_Err_Stat,
|
||||||
p_teTXV_fHVAC_Stat->eTXV_fHVAC_Pressure_Val,
|
p_teTXV_fHVAC_Stat->eTXV_fHVAC_Pressure_Val,
|
||||||
p_teTXV_fHVAC_Stat->eTXV_fHVAC_Temp_Val)
|
p_teTXV_fHVAC_Stat->eTXV_fHVAC_Temp_Val)
|
||||||
} else {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (p_teTXV_fHVAC_Stat) = %d", ret)
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
case eeTXV_rHVAC_Stat: {
|
||||||
}
|
teTXV_rHVAC_Stat *p_teTXV_rHVAC_Stat = (teTXV_rHVAC_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
case eeTXV_rHVAC_Stat: {
|
|
||||||
teTXV_rHVAC_Stat *p_teTXV_rHVAC_Stat = (teTXV_rHVAC_Stat *) &env->Stat[i];
|
|
||||||
|
|
||||||
if (ret == LIN_RX_COMPLETED) {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
||||||
"eTXV_rHVAC_Pos_Stat = %d eTXV_rHVAC_LinRespErr_Stat = %d eTXV_rHVAC_Err_Stat = %d eTXV_fHVAC_Pressure_Val = %d eTXV_rHVAC_Temp_Val = %d",
|
"eTXV_rHVAC_Pos_Stat = %d eTXV_rHVAC_LinRespErr_Stat = %d eTXV_rHVAC_Err_Stat = %d eTXV_fHVAC_Pressure_Val = %d eTXV_rHVAC_Temp_Val = %d",
|
||||||
p_teTXV_rHVAC_Stat->eTXV_rHVAC_Pos_Stat,
|
p_teTXV_rHVAC_Stat->eTXV_rHVAC_Pos_Stat,
|
||||||
|
|
@ -351,17 +357,15 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
|
||||||
p_teTXV_rHVAC_Stat->eTXV_rHVAC_Err_Stat,
|
p_teTXV_rHVAC_Stat->eTXV_rHVAC_Err_Stat,
|
||||||
p_teTXV_rHVAC_Stat->eTXV_rHVAC_Pressure_Val,
|
p_teTXV_rHVAC_Stat->eTXV_rHVAC_Pressure_Val,
|
||||||
p_teTXV_rHVAC_Stat->eTXV_rHVAC_Temp_Val)
|
p_teTXV_rHVAC_Stat->eTXV_rHVAC_Temp_Val)
|
||||||
} else {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (p_teTXV_rHVAC_Stat) = %d", ret)
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
case eeTXV_batChiller_Stat: {
|
||||||
}
|
teTXV_batChiller_Stat *p_teTXV_batChiller_Stat = (teTXV_batChiller_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
case eeTXV_batChiller_Stat: {
|
|
||||||
teTXV_batChiller_Stat *p_teTXV_batChiller_Stat = (teTXV_batChiller_Stat *) &env->Stat[i];
|
|
||||||
|
|
||||||
if (ret == LIN_RX_COMPLETED) {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
||||||
"eTXV_batChiller_Pos_Stat = %d eTXV_batChiller_LinRespErr_Stat = %d eTXV_batChiller_Err_Stat = %d eTXV_batChiller_Pressure_Val = %d eTXV_batChiller_Temp_Val = %d",
|
"eTXV_batChiller_Pos_Stat = %d eTXV_batChiller_LinRespErr_Stat = %d eTXV_batChiller_Err_Stat = %d eTXV_batChiller_Pressure_Val = %d eTXV_batChiller_Temp_Val = %d",
|
||||||
p_teTXV_batChiller_Stat->eTXV_batChiller_Pos_Stat,
|
p_teTXV_batChiller_Stat->eTXV_batChiller_Pos_Stat,
|
||||||
|
|
@ -369,17 +373,14 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
|
||||||
p_teTXV_batChiller_Stat->eTXV_batChiller_Err_Stat,
|
p_teTXV_batChiller_Stat->eTXV_batChiller_Err_Stat,
|
||||||
p_teTXV_batChiller_Stat->eTXV_batChiller_Pressure_Val,
|
p_teTXV_batChiller_Stat->eTXV_batChiller_Pressure_Val,
|
||||||
p_teTXV_batChiller_Stat->eTXV_batChiller_Temp_Val)
|
p_teTXV_batChiller_Stat->eTXV_batChiller_Temp_Val)
|
||||||
} else {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (p_teTXV_batChiller_Stat) = %d", ret)
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
case eeTXV_eeChiller_Stat: {
|
||||||
}
|
teTXV_eeChiller_Stat *p_teTXV_eeChiller_Stat = (teTXV_eeChiller_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
case eeTXV_eeChiller_Stat: {
|
|
||||||
teTXV_eeChiller_Stat *p_teTXV_eeChiller_Stat = (teTXV_eeChiller_Stat *) &env->Stat[i];
|
|
||||||
|
|
||||||
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_Pos_Stat,
|
p_teTXV_eeChiller_Stat->eTXV_eeChiller_Pos_Stat,
|
||||||
|
|
@ -387,14 +388,73 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
|
||||||
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,
|
||||||
p_teTXV_eeChiller_Stat->eTXV_eeChiller_Temp_Val)
|
p_teTXV_eeChiller_Stat->eTXV_eeChiller_Temp_Val)
|
||||||
} else {
|
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (p_teTXV_eeChiller_Stat) = %d", ret)
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
env->error_connect[i] = 1;
|
||||||
|
|
||||||
|
#if (LOG_LIN4_SENSOR == 1)
|
||||||
|
switch (i) {
|
||||||
|
|
||||||
|
case eeAirQS_Stat: {
|
||||||
|
tAirQS_Stat *pAirQS_Stat = (tAirQS_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (pAirQS_Stat) = %d", ret)
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case eeAroma_Stat: {
|
||||||
|
tAroma_Stat *pAroma_Stat = (tAroma_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (pAroma_Stat) = %d", ret)
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
case eeIonizer_Stat: {
|
||||||
|
tIonizer_Stat *pIonizer_Stat = (tIonizer_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (pIonizer_Stat) = %d", ret)
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case eeTXV_fHVAC_Stat: {
|
||||||
|
teTXV_fHVAC_Stat *p_teTXV_fHVAC_Stat = (teTXV_fHVAC_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (p_teTXV_fHVAC_Stat) = %d", ret)
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case eeTXV_rHVAC_Stat: {
|
||||||
|
teTXV_rHVAC_Stat *p_teTXV_rHVAC_Stat = (teTXV_rHVAC_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (p_teTXV_rHVAC_Stat) = %d", ret)
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case eeTXV_batChiller_Stat: {
|
||||||
|
teTXV_batChiller_Stat *p_teTXV_batChiller_Stat = (teTXV_batChiller_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (p_teTXV_batChiller_Stat) = %d", ret)
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case eeTXV_eeChiller_Stat: {
|
||||||
|
teTXV_eeChiller_Stat *p_teTXV_eeChiller_Stat = (teTXV_eeChiller_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR (p_teTXV_eeChiller_Stat) = %d", ret)
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -420,6 +480,8 @@ void Lin_4_Init(tLin4TaskSensor *env,
|
||||||
env->queue_input_teTXV_rHVAC = osMessageQueueNew(1, sizeof(LIN4_eTXV_rHVAC_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_batChiller = osMessageQueueNew(1, sizeof(LIN4_eTXV_batChiller_Stat_Bus), NULL);
|
||||||
env->queue_input_teTXV_eeChiller = osMessageQueueNew(1, sizeof(LIN4_eTXV_eeChiller_Stat_Bus), NULL);
|
env->queue_input_teTXV_eeChiller = osMessageQueueNew(1, sizeof(LIN4_eTXV_eeChiller_Stat_Bus), NULL);
|
||||||
|
env->queue_input_Lin4_Stat = osMessageQueueNew(1, sizeof(SensorLin4CmdBusInput), 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);
|
||||||
|
|
@ -432,7 +494,22 @@ static _Noreturn void Lin4_Thread(tLin4TaskSensor *env) {
|
||||||
if (osMutexAcquire(env->access, 1000) == osOK) {
|
if (osMutexAcquire(env->access, 1000) == osOK) {
|
||||||
|
|
||||||
Lin4_Input_Set_Model(env);
|
Lin4_Input_Set_Model(env);
|
||||||
|
|
||||||
lin_event_id_t res = Lin4_Scheduler(env);
|
lin_event_id_t res = Lin4_Scheduler(env);
|
||||||
|
|
||||||
|
uint8_t isError = 0;
|
||||||
|
for (uint8_t i = 0; i < LIN4_SENSOR_COUNT; ++i) {
|
||||||
|
if (env->error_connect[i] == 1)
|
||||||
|
++isError;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isError == LIN4_SENSOR_COUNT) {
|
||||||
|
env->error_all_connect = 1;
|
||||||
|
} else {
|
||||||
|
env->error_all_connect = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Lin4_Output_Set_Model(env);
|
Lin4_Output_Set_Model(env);
|
||||||
|
|
||||||
osMutexRelease(env->access);
|
osMutexRelease(env->access);
|
||||||
|
|
@ -717,6 +794,12 @@ static lin_event_id_t Lin5_Scheduler(tLin5TaskSensor *env) {
|
||||||
|
|
||||||
osStatus_t status = osOK;
|
osStatus_t status = osOK;
|
||||||
if (countQueue_led_count) {
|
if (countQueue_led_count) {
|
||||||
|
memcpy(env->sensorButtonCmdBusInput.in_COUNT, env->linStateSensor.LED_COUNT, LIN5_SENSOR_COUNT);
|
||||||
|
memcpy(env->sensorButtonCmdBusInput.in_error_connect, env->linStateSensor.error_connect, LIN5_SENSOR_COUNT);
|
||||||
|
memcpy(env->sensorButtonCmdBusInput.LinRespErr_Stat, env->linStateSensor.LinRespErr_Stat, LIN5_SENSOR_COUNT);
|
||||||
|
memcpy(env->sensorButtonCmdBusInput.Err_Stat, env->linStateSensor.Err_Stat, LIN5_SENSOR_COUNT);
|
||||||
|
env->sensorButtonCmdBusInput.Error_Connect = env->error_connect;
|
||||||
|
|
||||||
status = osMessageQueuePut(env->queue_led_count, env->linStateSensor.LED_COUNT, 0, 0U);
|
status = osMessageQueuePut(env->queue_led_count, env->linStateSensor.LED_COUNT, 0, 0U);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
#include "HVAC_model.h"
|
#include "HVAC_model.h"
|
||||||
|
|
||||||
#define LOG_LIN4_SENSOR 0
|
#define LOG_LIN4_SENSOR 0
|
||||||
#define LOG_LIN5_SENSOR 0
|
#define LOG_LIN5_SENSOR 1
|
||||||
|
|
||||||
|
|
||||||
#define LIN4_SENSOR_COUNT 7
|
#define LIN4_SENSOR_COUNT 7
|
||||||
|
|
@ -291,6 +291,10 @@ typedef struct __attribute__ ((packed)) {
|
||||||
uint8_t DRS_RRB_Err_Stat: 1; // 2
|
uint8_t DRS_RRB_Err_Stat: 1; // 2
|
||||||
} tDRS_RRB_Stat;
|
} tDRS_RRB_Stat;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint8_t in_error_connect[LIN4_SENSOR_COUNT]; // Конкретное устройство не ответило
|
||||||
|
uint8_t Error_Connect; // Ошибка LIN шины (ни одно устройство не отвечает)
|
||||||
|
} SensorLin4CmdBusInput;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
||||||
|
|
@ -321,6 +325,9 @@ typedef struct {
|
||||||
//teTXV_eeChiller_Stat_For_Model eTXV_eeChiller_Stat_For_Model;
|
//teTXV_eeChiller_Stat_For_Model eTXV_eeChiller_Stat_For_Model;
|
||||||
LIN4_eTXV_eeChiller_Stat_Bus eTXV_eeChiller_Stat_For_Model;
|
LIN4_eTXV_eeChiller_Stat_Bus eTXV_eeChiller_Stat_For_Model;
|
||||||
|
|
||||||
|
SensorLin4CmdBusInput sensorLin4CmdBusInput;
|
||||||
|
|
||||||
|
|
||||||
osMessageQueueId_t queue_input_tCCU;
|
osMessageQueueId_t queue_input_tCCU;
|
||||||
|
|
||||||
osMessageQueueId_t queue_input_tAirQS;
|
osMessageQueueId_t queue_input_tAirQS;
|
||||||
|
|
@ -330,7 +337,10 @@ typedef struct {
|
||||||
osMessageQueueId_t queue_input_teTXV_rHVAC;
|
osMessageQueueId_t queue_input_teTXV_rHVAC;
|
||||||
osMessageQueueId_t queue_input_teTXV_batChiller;
|
osMessageQueueId_t queue_input_teTXV_batChiller;
|
||||||
osMessageQueueId_t queue_input_teTXV_eeChiller;
|
osMessageQueueId_t queue_input_teTXV_eeChiller;
|
||||||
|
osMessageQueueId_t queue_input_Lin4_Stat;
|
||||||
|
|
||||||
|
uint8_t error_connect[LIN4_SENSOR_COUNT];
|
||||||
|
uint8_t error_all_connect;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
osThreadId_t id;
|
osThreadId_t id;
|
||||||
|
|
@ -342,15 +352,15 @@ typedef struct {
|
||||||
|
|
||||||
} tLin4TaskSensor;
|
} tLin4TaskSensor;
|
||||||
|
|
||||||
/*
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t in_COUNT[8]; // Уровень (0,1,2,3)
|
uint8_t in_COUNT[LIN5_SENSOR_COUNT]; // Уровень (0,1,2,3)
|
||||||
uint8_t in_error_connect[8]; // Конкретное устройство не ответило
|
uint8_t in_error_connect[LIN5_SENSOR_COUNT]; // Конкретное устройство не ответило
|
||||||
uint8_t LinRespErr_Stat[8]; // Внутренняя ошибка устройства (ошибка коммутации)
|
uint8_t LinRespErr_Stat[LIN5_SENSOR_COUNT]; // Внутренняя ошибка устройства (ошибка коммутации)
|
||||||
uint8_t Err_Stat[8]; // Внутренняя ошибка устройства
|
uint8_t Err_Stat[LIN5_SENSOR_COUNT]; // Внутренняя ошибка устройства
|
||||||
uint8_t Error_Connect; // Ошибка LIN шины (не одно устройство не отвечает)
|
uint8_t Error_Connect; // Ошибка LIN шины (ни одно устройство не отвечает)
|
||||||
} SensorButtonCmdBusInput;
|
} SensorLin5ButtonCmdBusInput;
|
||||||
*/
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
||||||
tLinIO *linIo;
|
tLinIO *linIo;
|
||||||
|
|
@ -360,12 +370,15 @@ typedef struct {
|
||||||
|
|
||||||
tLoggerInterface *logger;
|
tLoggerInterface *logger;
|
||||||
|
|
||||||
|
SensorLin5ButtonCmdBusInput sensorButtonCmdBusInput;
|
||||||
|
|
||||||
osMessageQueueId_t queue_led_count;
|
osMessageQueueId_t queue_led_count;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
tDRS_Stat d_DRS_Stat[LIN5_SENSOR_COUNT];
|
tDRS_Stat d_DRS_Stat[LIN5_SENSOR_COUNT];
|
||||||
tDRS_Stat d_old_DRS_Stat[LIN5_SENSOR_COUNT];
|
tDRS_Stat d_old_DRS_Stat[LIN5_SENSOR_COUNT];
|
||||||
uint8_t LED_COUNT[LIN5_SENSOR_COUNT];
|
uint8_t LED_COUNT[LIN5_SENSOR_COUNT];
|
||||||
|
|
||||||
uint8_t LED_OLD_COUNT[LIN5_SENSOR_COUNT];
|
uint8_t LED_OLD_COUNT[LIN5_SENSOR_COUNT];
|
||||||
uint8_t error_connect[LIN5_SENSOR_COUNT];
|
uint8_t error_connect[LIN5_SENSOR_COUNT];
|
||||||
uint8_t error_old_connect[LIN5_SENSOR_COUNT];
|
uint8_t error_old_connect[LIN5_SENSOR_COUNT];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue