Добавлена обработка

osMessageQueueId_t ccu_candb_rx_DMFR_Msg1;
    osMessageQueueId_t ccu_candb_rx_DMFL_Msg1;
    osMessageQueueId_t ccu_candb_rx_DW_STATE;
This commit is contained in:
cfif 2026-10-02 11:09:30 +03:00
parent 37540f7972
commit 1891545f50
2 changed files with 77 additions and 11 deletions

View File

@ -135,9 +135,13 @@ void CanSpamReceiver_Init(tCanSpamReceiver *env,
env->ccu_candb_rx_BCM_VEH_STATE = osMessageQueueNew(1, sizeof(rtDW.CCUCAN_BCM_VEH_STATE_model), NULL);
env->ccu_candb_rx_EMS_HVC_Req_Msg = osMessageQueueNew(1, sizeof(rtDW.CCUCAN_EMS_HVC_REQ_MSG_MODEL), NULL);
env->ccu_candb_rx_HVC_Err_Status_Msg = osMessageQueueNew(1, sizeof(rtDW.HVC_ERR_STATUS_MSG_MODEL), NULL);
env->ccu_candb_rx_BCM_EEM = osMessageQueueNew(1, sizeof(rtDW.CCUCAN_BCM_EEM_model), NULL);
env->ccu_candb_rx_EMS_Veh_02 = osMessageQueueNew(1, sizeof(rtDW.CCUCAN_EMS_Veh_02_model), NULL);
env->ccu_candb_rx_DMFR_Msg1 = osMessageQueueNew(1, sizeof(rtDW.CCUCAN_DMFR_Msg1_model), NULL);
env->ccu_candb_rx_DMFL_Msg1 = osMessageQueueNew(1, sizeof(rtDW.CCUCAN_DMFL_Msg1_model), NULL);
env->ccu_candb_rx_DW_STATE = osMessageQueueNew(1, sizeof(rtDW.CCUCAN_DW_STATE_model), NULL);
//cfif env->ccu_candb_rx_BCM_EEM = osMessageQueueNew(1, sizeof(rtDW.), NULL);
//cfif env->ccu_candb_rx_EMS_Veh_02 = osMessageQueueNew(1, sizeof(rtDW.), NULL);
env->thread.stack = tCanSpamReceiver_stack;
InitThreadAtr(&env->thread.attr, "CanSpamRec", &env->thread.controlBlock, sizeof(env->thread.controlBlock),
@ -185,15 +189,15 @@ static void set_CanSpamReceiver(tCanSpamReceiver *env, uint32_t recid) {
}
//cfif countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_BCM_EEM);
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_BCM_EEM);
if ((countQueue_ccu_candb_rx) && (recid == BCM_EEM_CANID)) {
//cfif status = osMessageQueuePut(env->ccu_candb_rx_BCM_EEM, &ccu_candb_rx.BCM_EEM, 0, 0U);
status = osMessageQueuePut(env->ccu_candb_rx_BCM_EEM, &ccu_candb_rx.BCM_EEM, 0, 0U);
return;
}
//cfif countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_EMS_Veh_02);
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_EMS_Veh_02);
if ((countQueue_ccu_candb_rx) && (recid == EMS_Veh_02_CANID)) {
//cfif status = osMessageQueuePut(env->ccu_candb_rx_EMS_Veh_02, &ccu_candb_rx.EMS_Veh_02, 0, 0U);
status = osMessageQueuePut(env->ccu_candb_rx_EMS_Veh_02, &ccu_candb_rx.EMS_Veh_02, 0, 0U);
return;
}
@ -264,6 +268,35 @@ static void set_CanSpamReceiver(tCanSpamReceiver *env, uint32_t recid) {
return;
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_DMFR_Msg1);
if ((countQueue_ccu_candb_rx) && (recid == DMFR_Msg1_CANID)) {
status = osMessageQueuePut(env->ccu_candb_rx_DMFR_Msg1, &ccu_candb_rx.DMFR_Msg1, 0, 0U);
return;
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_DMFL_Msg1);
if ((countQueue_ccu_candb_rx) && (recid == DMFL_Msg1_CANID)) {
status = osMessageQueuePut(env->ccu_candb_rx_DMFL_Msg1, &ccu_candb_rx.DMFL_Msg1, 0, 0U);
return;
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_DW_STATE);
if ((countQueue_ccu_candb_rx) && (recid == DW_STATE_CANID)) {
status = osMessageQueuePut(env->ccu_candb_rx_DW_STATE, &ccu_candb_rx.DW_STATE, 0, 0U);
return;
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_LOCAL_HVAC_VIN);
if ((countQueue_ccu_candb_rx) && (recid == VEH_VIN_CANID)) {
@ -395,6 +428,7 @@ void get_CanSpamReceiver(tCanSpamReceiver *env, char *VIN, ccu_candb_error_missi
uint32_t countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_error_missing_rx);
if (countQueue_ccu_candb_rx == 0) {
status = osMessageQueueGet(env->ccu_candb_error_missing_rx, CAN_ERROR_MISSING, 0, 0U);
memcpy(&rtDW.CCUCAN_ccu_candb_error_missing_rx_model, CAN_ERROR_MISSING, sizeof(rtDW.CCUCAN_ccu_candb_error_missing_rx_model));
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_time_missing_rx);
@ -429,11 +463,11 @@ void get_CanSpamReceiver(tCanSpamReceiver *env, char *VIN, ccu_candb_error_missi
}
if (CAN_ERROR_MISSING->BCM_EEM) {
//cfif memset(&rtDW.TM_CP_model, 0, sizeof(rtDW.TM_CP_model));
memset(&rtDW.CCUCAN_BCM_EEM_model, 0, sizeof(rtDW.CCUCAN_BCM_EEM_model));
}
if (CAN_ERROR_MISSING->EMS_Veh_02) {
//cfif memset(&rtDW.TM_CP_model, 0, sizeof(rtDW.TM_CP_model));
memset(&rtDW.CCUCAN_EMS_Veh_02_model, 0, sizeof(rtDW.CCUCAN_EMS_Veh_02_model));
}
if (CAN_ERROR_MISSING->BCM_Powertrain) {
@ -464,7 +498,17 @@ void get_CanSpamReceiver(tCanSpamReceiver *env, char *VIN, ccu_candb_error_missi
memset(&rtDW.HVC_ERR_STATUS_MSG_MODEL, 0, sizeof(rtDW.HVC_ERR_STATUS_MSG_MODEL));
}
if (CAN_ERROR_MISSING->DMFR_Msg1) {
memset(&rtDW.CCUCAN_DMFR_Msg1_model, 0, sizeof(rtDW.CCUCAN_DMFR_Msg1_model));
}
if (CAN_ERROR_MISSING->DMFL_Msg1) {
memset(&rtDW.CCUCAN_DMFL_Msg1_model, 0, sizeof(rtDW.CCUCAN_DMFL_Msg1_model));
}
if (CAN_ERROR_MISSING->DW_STATE) {
memset(&rtDW.CCUCAN_DW_STATE_model, 0, sizeof(rtDW.CCUCAN_DW_STATE_model));
}
@ -476,12 +520,12 @@ void get_CanSpamReceiver(tCanSpamReceiver *env, char *VIN, ccu_candb_error_missi
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_BCM_EEM);
if (countQueue_ccu_candb_rx == 0) {
//cfif status = osMessageQueueGet(env->ccu_candb_rx_BCM_EEM, &rtDW., 0, 0U);
status = osMessageQueueGet(env->ccu_candb_rx_BCM_EEM, &rtDW.CCUCAN_BCM_EEM_model, 0, 0U);
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_EMS_Veh_02);
if (countQueue_ccu_candb_rx == 0) {
//cfif status = osMessageQueueGet(env->ccu_candb_rx_EMS_Veh_02, &rtDW., 0, 0U);
status = osMessageQueueGet(env->ccu_candb_rx_EMS_Veh_02, &rtDW.CCUCAN_EMS_Veh_02_model, 0, 0U);
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_BCM_Powertrain);
@ -519,6 +563,24 @@ void get_CanSpamReceiver(tCanSpamReceiver *env, char *VIN, ccu_candb_error_missi
status = osMessageQueueGet(env->ccu_candb_rx_HVC_Err_Status_Msg, &rtDW.HVC_ERR_STATUS_MSG_MODEL, 0, 0U);
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_DMFR_Msg1);
if (countQueue_ccu_candb_rx == 0) {
status = osMessageQueueGet(env->ccu_candb_rx_DMFR_Msg1, &rtDW.CCUCAN_DMFR_Msg1_model, 0, 0U);
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_DMFL_Msg1);
if (countQueue_ccu_candb_rx == 0) {
status = osMessageQueueGet(env->ccu_candb_rx_DMFL_Msg1, &rtDW.CCUCAN_DMFL_Msg1_model, 0, 0U);
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_DW_STATE);
if (countQueue_ccu_candb_rx == 0) {
status = osMessageQueueGet(env->ccu_candb_rx_DW_STATE, &rtDW.CCUCAN_DW_STATE_model, 0, 0U);
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_LOCAL_HVAC_VIN);
if (countQueue_ccu_candb_rx == 0) {
status = osMessageQueueGet(env->ccu_candb_rx_LOCAL_HVAC_VIN, VIN, 0, 0U);

View File

@ -76,10 +76,14 @@ typedef struct {
osMessageQueueId_t ccu_candb_rx_BCM_VEH_STATE;
osMessageQueueId_t ccu_candb_rx_EMS_HVC_Req_Msg;
osMessageQueueId_t ccu_candb_rx_HVC_Err_Status_Msg;
osMessageQueueId_t ccu_candb_rx_BCM_EEM;
osMessageQueueId_t ccu_candb_rx_EMS_Veh_02;
osMessageQueueId_t ccu_candb_rx_DMFR_Msg1;
osMessageQueueId_t ccu_candb_rx_DMFL_Msg1;
osMessageQueueId_t ccu_candb_rx_DW_STATE;
tLoggerInterface *logger;
struct {