Обновление 23.06.2026
This commit is contained in:
parent
96549f5810
commit
36241582ae
135
LinSensorTasks.c
135
LinSensorTasks.c
|
|
@ -14,7 +14,7 @@
|
||||||
#define LOG_SIGN5 "Ln5"
|
#define LOG_SIGN5 "Ln5"
|
||||||
#define LOGGER env->logger
|
#define LOGGER env->logger
|
||||||
|
|
||||||
const uint8_t DRS_SENSON_ADR_Stat[LIN5_SENSOR_COUNT] = {DRS_DL_Stat,
|
const uint8_t LIN5_SENSON_ADR_Stat[LIN5_SENSOR_COUNT] = {DRS_DL_Stat,
|
||||||
DRS_DR_Stat,
|
DRS_DR_Stat,
|
||||||
DRS_FPL_Stat,
|
DRS_FPL_Stat,
|
||||||
DRS_FPR_Stat,
|
DRS_FPR_Stat,
|
||||||
|
|
@ -23,6 +23,22 @@ const uint8_t DRS_SENSON_ADR_Stat[LIN5_SENSOR_COUNT] = {DRS_DL_Stat,
|
||||||
DRS_FCL_Stat,
|
DRS_FCL_Stat,
|
||||||
DRS_FCR_Stat};
|
DRS_FCR_Stat};
|
||||||
|
|
||||||
|
const uint8_t LIN4_SENSON_ADR_Stat[LIN4_SENSOR_COUNT] = {AirQS_Stat,
|
||||||
|
Aroma_Stat,
|
||||||
|
Ionizer_Stat,
|
||||||
|
eTXV_fHVAC_Stat,
|
||||||
|
eTXV_rHVAC_Stat,
|
||||||
|
eTXV_batChiller_Stat,
|
||||||
|
eTXV_eeChiller_Stat};
|
||||||
|
|
||||||
|
const uint8_t LIN4_SENSON_LEN_Stat[LIN4_SENSOR_COUNT] = {sizeof(tAirQS_Stat),
|
||||||
|
sizeof(tAroma_Stat),
|
||||||
|
sizeof(tIonizer_Stat),
|
||||||
|
sizeof(teTXV_fHVAC_Stat),
|
||||||
|
sizeof(teTXV_rHVAC_Stat),
|
||||||
|
sizeof(teTXV_batChiller_Stat),
|
||||||
|
sizeof(teTXV_eeChiller_Stat)};
|
||||||
|
|
||||||
static lin_event_id_t SEND_SENSOR_COM_x(tLinIO *linIo, uint8_t COM_ADR) {
|
static lin_event_id_t SEND_SENSOR_COM_x(tLinIO *linIo, uint8_t COM_ADR) {
|
||||||
lin_event_id_t res = linIo->runCommand(linIo->env, COM_ADR, 30);
|
lin_event_id_t res = linIo->runCommand(linIo->env, COM_ADR, 30);
|
||||||
// SystemDelayMs(40);
|
// SystemDelayMs(40);
|
||||||
|
|
@ -55,10 +71,12 @@ static lin_event_id_t Set_CCU_Req(tLinIO *linIo, tLinData *linData, tCCU_Req *p_
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static lin_event_id_t Get_AirQS_Stat(tLinIO *linIo, tLinData *linData, tAirQS_Stat *p_AirQS_Stat) {
|
|
||||||
|
static lin_event_id_t
|
||||||
|
Get_Sensor4_Stat(tLinIO *linIo, tLinData *linData, void *p_Stat, uint8_t p_Stat_Len, uint8_t ADR_stat) {
|
||||||
lin_event_id_t res;
|
lin_event_id_t res;
|
||||||
|
|
||||||
tAirQS_Stat *tAirQS_Stat_ = (tAirQS_Stat *) linData->g_aRxBuffer;
|
void *pStat_ = (void *) linData->g_aRxBuffer;
|
||||||
|
|
||||||
uint8_t retry = 1;
|
uint8_t retry = 1;
|
||||||
|
|
||||||
|
|
@ -67,12 +85,12 @@ static lin_event_id_t Get_AirQS_Stat(tLinIO *linIo, tLinData *linData, tAirQS_St
|
||||||
linData->direction = LIN_DIRECTION_GET;
|
linData->direction = LIN_DIRECTION_GET;
|
||||||
|
|
||||||
linData->g_aTxBufferLen = 0;
|
linData->g_aTxBufferLen = 0;
|
||||||
linData->g_aRxBufferLen = sizeof(tAirQS_Stat);
|
linData->g_aRxBufferLen = p_Stat_Len;
|
||||||
|
|
||||||
res = SEND_SENSOR_COM_x(linIo, AirQS_Stat);
|
res = SEND_SENSOR_COM_x(linIo, ADR_stat);
|
||||||
|
|
||||||
if (res == LIN_RX_COMPLETED) {
|
if (res == LIN_RX_COMPLETED) {
|
||||||
memcpy(p_AirQS_Stat, tAirQS_Stat_, sizeof(tAirQS_Stat));
|
memcpy(p_Stat, pStat_, p_Stat_Len);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -83,7 +101,6 @@ static lin_event_id_t Get_AirQS_Stat(tLinIO *linIo, tLinData *linData, tAirQS_St
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//начало----------------------------------------- LIN 4 ----------------------------------------------------------------
|
//начало----------------------------------------- LIN 4 ----------------------------------------------------------------
|
||||||
//начало----------------------------------------- LIN 4 ----------------------------------------------------------------
|
//начало----------------------------------------- LIN 4 ----------------------------------------------------------------
|
||||||
//начало----------------------------------------- LIN 4 ----------------------------------------------------------------
|
//начало----------------------------------------- LIN 4 ----------------------------------------------------------------
|
||||||
|
|
@ -95,7 +112,7 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
|
||||||
env->d_CCU_Req.CCU_AirQS_Req = 1;
|
env->d_CCU_Req.CCU_AirQS_Req = 1;
|
||||||
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_ACTUATOR == 1)
|
#if (LOG_LIN4_SENSOR == 1)
|
||||||
if (ret == LIN_TX_COMPLETED) {
|
if (ret == LIN_TX_COMPLETED) {
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4, "OK Set_CCU_Req = %d", ret)
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "OK Set_CCU_Req = %d", ret)
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -103,27 +120,107 @@ static lin_event_id_t Lin4_Scheduler(tLin4TaskSensor *env) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < LIN4_SENSOR_COUNT; ++i) {
|
||||||
|
|
||||||
ret = Get_AirQS_Stat(env->linIo, env->linData, &env->d_AirQS_Stat);
|
ret = Get_Sensor4_Stat(env->linIo, env->linData, &env->Stat[i], LIN4_SENSON_LEN_Stat[i],
|
||||||
|
LIN4_SENSON_ADR_Stat[i]);
|
||||||
|
|
||||||
#if (LOG_LIN4_ACTUATOR == 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) {
|
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",
|
||||||
env->d_AirQS_Stat.AirQS_LinRespErr_Stat,
|
pAirQS_Stat->AirQS_LinRespErr_Stat,
|
||||||
env->d_AirQS_Stat.AirQS_Sens_Stat,
|
pAirQS_Stat->AirQS_Sens_Stat,
|
||||||
env->d_AirQS_Stat.AirQS_Combined_Stat,
|
pAirQS_Stat->AirQS_Combined_Stat,
|
||||||
env->d_AirQS_Stat.AirQS_Err_Stat,
|
pAirQS_Stat->AirQS_Err_Stat,
|
||||||
env->d_AirQS_Stat.AirQS_COLvl_Stat,
|
pAirQS_Stat->AirQS_COLvl_Stat,
|
||||||
env->d_AirQS_Stat.AirQS_NOxLvl_Stat,
|
pAirQS_Stat->AirQS_NOxLvl_Stat,
|
||||||
env->d_AirQS_Stat.AirQS_NH3Lvl_Stat)
|
pAirQS_Stat->AirQS_NH3Lvl_Stat)
|
||||||
} else {
|
} else {
|
||||||
LoggerFormatInfo(LOGGER, LOG_SIGN4, "ERROR Get_AirQS_Stat = %d", ret)
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR = %d", ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case eeAroma_Stat: {
|
||||||
|
tAroma_Stat *pAroma_Stat = (tAroma_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
|
if (ret == LIN_RX_COMPLETED) {
|
||||||
|
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",
|
||||||
|
pAroma_Stat->Aroma_LinRespErr_Stat,
|
||||||
|
pAroma_Stat->Aroma_CartridgeSw_Stat,
|
||||||
|
pAroma_Stat->Aroma_Err_Stat,
|
||||||
|
pAroma_Stat->Aroma_Intens_Stat,
|
||||||
|
pAroma_Stat->Aroma_CartridgeFlavor_Stat,
|
||||||
|
pAroma_Stat->Aroma_CartridgeCapacity_Stat)
|
||||||
|
} else {
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR = %d", ret)
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case eeIonizer_Stat: {
|
||||||
|
tIonizer_Stat *pIonizer_Stat = (tIonizer_Stat *) &env->Stat[i];
|
||||||
|
|
||||||
|
if (ret == LIN_RX_COMPLETED) {
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN4,
|
||||||
|
"Ionizer_LinRespErr_Stat = %d Ionizer_Err_Stat = %d Ionizer_Ionization_Stat = %d",
|
||||||
|
pIonizer_Stat->Ionizer_LinRespErr_Stat,
|
||||||
|
pIonizer_Stat->Ionizer_Err_Stat,
|
||||||
|
pIonizer_Stat->Ionizer_Ionization_Stat)
|
||||||
|
} else {
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR = %d", ret)
|
||||||
|
}
|
||||||
|
|
||||||
|
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,
|
||||||
|
"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_LinRespErr_Stat,
|
||||||
|
p_teTXV_fHVAC_Stat->eTXV_fHVAC_Err_Stat,
|
||||||
|
p_teTXV_fHVAC_Stat->eTXV_fHVAC_Pressure_Val,
|
||||||
|
p_teTXV_fHVAC_Stat->eTXV_fHVAC_Temp_Val)
|
||||||
|
} else {
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN4, "LIN4 ERROR = %d", ret)
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case eeTXV_rHVAC_Stat: {
|
||||||
|
teTXV_rHVAC_Stat *p_teTXV_rHVAC_Stat = (teTXV_rHVAC_Stat *) &env->Stat[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case eeTXV_batChiller_Stat: {
|
||||||
|
teTXV_batChiller_Stat *p_teTXV_batChiller_Stat = (teTXV_batChiller_Stat *) &env->Stat[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case eeTXV_eeChiller_Stat: {
|
||||||
|
teTXV_eeChiller_Stat *p_teTXV_eeChiller_Stat = (teTXV_eeChiller_Stat *) &env->Stat[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return LIN_NO_EVENT;
|
return LIN_NO_EVENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -367,7 +464,7 @@ static lin_event_id_t Lin5_Scheduler(tLin5TaskSensor *env) {
|
||||||
|
|
||||||
// if (env->linStateSensor.error_connect[i] == 0) {
|
// if (env->linStateSensor.error_connect[i] == 0) {
|
||||||
|
|
||||||
ret = Get_DRS_Stat(env->linIo, env->linData, &env->linStateSensor.d_DRS_Stat[i], DRS_SENSON_ADR_Stat[i]);
|
ret = Get_DRS_Stat(env->linIo, env->linData, &env->linStateSensor.d_DRS_Stat[i], LIN5_SENSON_ADR_Stat[i]);
|
||||||
|
|
||||||
uint8_t current_btn_state = env->linStateSensor.d_DRS_Stat[i].DRS_Btn_Stat;
|
uint8_t current_btn_state = env->linStateSensor.d_DRS_Stat[i].DRS_Btn_Stat;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,18 @@
|
||||||
#define LOG_LIN4_SENSOR 1
|
#define LOG_LIN4_SENSOR 1
|
||||||
#define LOG_LIN5_SENSOR 0
|
#define LOG_LIN5_SENSOR 0
|
||||||
|
|
||||||
#define LIN5_SENSOR_COUNT 8
|
|
||||||
|
#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
|
||||||
|
} eSensorStat4;
|
||||||
|
|
||||||
#define AirQS_Stat 0x14
|
#define AirQS_Stat 0x14
|
||||||
#define Aroma_Stat 0x5
|
#define Aroma_Stat 0x5
|
||||||
|
|
@ -24,6 +35,8 @@
|
||||||
#define eTXV_batChiller_Stat 0x22
|
#define eTXV_batChiller_Stat 0x22
|
||||||
#define eTXV_eeChiller_Stat 0x24
|
#define eTXV_eeChiller_Stat 0x24
|
||||||
|
|
||||||
|
#define LIN5_SENSOR_COUNT 8
|
||||||
|
|
||||||
#define CCU_DRS_Req 0x1
|
#define CCU_DRS_Req 0x1
|
||||||
#define DRS_DL_Stat 0xD
|
#define DRS_DL_Stat 0xD
|
||||||
#define DRS_DR_Stat 0x12
|
#define DRS_DR_Stat 0x12
|
||||||
|
|
@ -220,7 +233,7 @@ typedef struct {
|
||||||
tLoggerInterface *logger;
|
tLoggerInterface *logger;
|
||||||
|
|
||||||
tCCU_Req d_CCU_Req;
|
tCCU_Req d_CCU_Req;
|
||||||
tAirQS_Stat d_AirQS_Stat;
|
uint8_t Stat[LIN4_SENSOR_COUNT];
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
osThreadId_t id;
|
osThreadId_t id;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue