Добавлен CCU3

This commit is contained in:
cfif 2026-09-25 16:24:46 +03:00
parent 34c1b51865
commit f6f69e4731
9 changed files with 37014 additions and 28802 deletions

View File

@ -4,7 +4,7 @@ ENABLE_LANGUAGE(ASM)
CMAKE_MINIMUM_REQUIRED(VERSION 3.8.0)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 ")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O1 ")

View File

@ -96,6 +96,7 @@ void CanSpamReceiver_Init(tCanSpamReceiver *env,
env->ccu_candb_rx_TM_CP = osMessageQueueNew(1, sizeof(rtDW.TM_CP_model), NULL);
env->ccu_candb_rx_FIU_CCU1 = osMessageQueueNew(1, sizeof(rtDW.FIU_CCU1_MODEL), NULL);
env->ccu_candb_rx_FIU_CCU2 = osMessageQueueNew(1, sizeof(rtDW.FIU_CCU2_MODEL), NULL);
env->ccu_candb_rx_FIU_CCU3 = osMessageQueueNew(1, sizeof(rtDW.FIU_CCU3_MODEL), NULL);
env->ccu_candb_rx_BCM_Powertrain = osMessageQueueNew(1, sizeof(rtDW.CCUCAN_BCM_Powertrain_model), NULL);
env->ccu_candb_rx_BCM_CLIMATIC_DATA = osMessageQueueNew(1, sizeof(rtDW.CCUCAN_BCM_Climatic_model), NULL);
env->ccu_candb_rx_EMS_Veh = osMessageQueueNew(1, sizeof(rtDW.CCUCAN_EMS_Veh_model), NULL);
@ -184,6 +185,12 @@ static void set_CanSpamReceiver(tCanSpamReceiver *env, uint32_t recid) {
return;
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_FIU_CCU3);
if ((countQueue_ccu_candb_rx) && (recid == FIU_CCU3_CANID)) {
status = osMessageQueuePut(env->ccu_candb_rx_FIU_CCU3, &ccu_candb_rx.FIU_CCU3, 0, 0U);
return;
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_BCM_Powertrain);
if ((countQueue_ccu_candb_rx) && (recid == BCM_Powertrain_CANID)) {
status = osMessageQueuePut(env->ccu_candb_rx_BCM_Powertrain, &ccu_candb_rx.BCM_Powertrain, 0, 0U);
@ -373,6 +380,7 @@ void get_CanSpamReceiver(tCanSpamReceiver *env, char *VIN, ccu_candb_error_missi
memset(&rtDW.FIU_CCU1_MODEL, 0, sizeof(rtDW.FIU_CCU1_MODEL));
memset(&rtDW.FIU_CCU2_MODEL, 0, sizeof(rtDW.FIU_CCU2_MODEL));
memset(&rtDW.FIU_CCU3_MODEL, 0, sizeof(rtDW.FIU_CCU3_MODEL));
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_BCM_EEM);
@ -395,6 +403,11 @@ void get_CanSpamReceiver(tCanSpamReceiver *env, char *VIN, ccu_candb_error_missi
status = osMessageQueueGet(env->ccu_candb_rx_FIU_CCU2, &rtDW.FIU_CCU2_MODEL, 0, 0U);
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_FIU_CCU3);
if (countQueue_ccu_candb_rx == 0) {
status = osMessageQueueGet(env->ccu_candb_rx_FIU_CCU3, &rtDW.FIU_CCU3_MODEL, 0, 0U);
}
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_BCM_Powertrain);
if (countQueue_ccu_candb_rx == 0) {
status = osMessageQueueGet(env->ccu_candb_rx_BCM_Powertrain, &rtDW.CCUCAN_BCM_Powertrain_model, 0, 0U);

View File

@ -68,6 +68,7 @@ typedef struct {
osMessageQueueId_t ccu_candb_rx_TM_CP;
osMessageQueueId_t ccu_candb_rx_FIU_CCU1;
osMessageQueueId_t ccu_candb_rx_FIU_CCU2;
osMessageQueueId_t ccu_candb_rx_FIU_CCU3;
osMessageQueueId_t ccu_candb_rx_BCM_Powertrain;
osMessageQueueId_t ccu_candb_rx_BCM_CLIMATIC_DATA;
osMessageQueueId_t ccu_candb_rx_EMS_Veh;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3,9 +3,9 @@
*
* Code generated for Simulink model 'HVAC_model'.
*
* Model version : 1.1548
* Model version : 1.1627
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
* C/C++ source code generated on : Mon Sep 14 13:49:13 2026
* C/C++ source code generated on : Fri Sep 25 16:15:38 2026
*
* Target selection: ert.tlc
* Embedded hardware selection: ARM Compatible->ARM Cortex-M
@ -80,7 +80,7 @@ extern int16_t look1_iu8lu64n48ts16Ds32_binlcs(uint8_t u0, const uint8_t bp0[],
const int16_t table[], uint32_t maxIndex);
extern int16_t look1_is16lu64n32tu16Ds32Is16_binlcs(int16_t u0, const int16_t
bp0[], const uint16_t table[], uint32_t maxIndex);
extern uint32_t binsearch_u32s16(int16_t u_5, const int16_t bp[], uint32_t
extern uint32_t binsearch_u32s16(int16_t u_6, const int16_t bp[], uint32_t
startIndex, uint32_t maxIndex);
extern int16_t look1_is16lu64n32Ds32_binlcs(int16_t u0, const int16_t bp0[],
const int16_t table[], uint32_t maxIndex);
@ -97,17 +97,23 @@ extern uint8_t look1_iu16lu64n48tu8_binlcse(uint16_t u0, const uint16_t bp0[],
const uint8_t table[], uint32_t maxIndex);
extern int16_t look1_iu16tdIs16_binlcs(uint16_t u0, const uint16_t bp0[], const
double table[], uint32_t maxIndex);
extern double look2_binlx(double u0, double u1, const double bp0[], const double
bp1[], const double table[], const uint32_t maxIndex[], uint32_t stride);
extern int16_t look1_iu16lu64n48ts16Ds32_binlcs(uint16_t u0, const uint16_t bp0[],
const int16_t table[], uint32_t maxIndex);
extern int16_t look1_iu16bs16lu64n32ts16Ds32_binlcs(uint16_t u0, const int16_t
bp0[], const int16_t table[], uint32_t maxIndex);
extern int16_t look1_iu16lu64n48Ds32Is16_binlcs(uint16_t u0, const uint16_t bp0[],
const uint16_t table[], uint32_t maxIndex);
extern uint16_t look1_is16lu64n32tu16_binlcse(int16_t u0, const int16_t bp0[],
const uint16_t table[], uint32_t maxIndex);
extern double look1_bs16ts16DdId_binlc(double u0, const int16_t bp0[], const
int16_t table[], uint32_t maxIndex);
extern uint8_t look1_iu8lu64n56_binlcse(uint8_t u0, const uint8_t bp0[], const
uint8_t table[], uint32_t maxIndex);
extern double look1_iu16td_binlc(uint16_t u0, const uint16_t bp0[], const double
table[], uint32_t maxIndex);
extern uint32_t plook_u32s16_bincka(int16_t u_6, const int16_t bp[], uint32_t
extern uint32_t plook_u32s16_bincka(int16_t u_7, const int16_t bp[], uint32_t
maxIndex);
extern int32_t div_nzp_s32_round(int32_t numerator, int32_t denominator);
extern void get_tg_FLL_for_LVL(uint8_t rtu_ambient_Lvl, uint8_t rtu_set_tmp,
@ -278,6 +284,12 @@ extern void funcg_assAUTO_STEP_DUCT_TG_R(uint8_t rtu_LVL, double rtu_AF_STEP,
int16_t *rty_y);
extern void correctionrate(int16_t rtu_SET, uint8_t rtu_LVL, int16_t *rty_y);
extern void is_ending_with_5(uint16_t rtu_SET, bool *rty_is_ending_with_5);
extern void filterduct_Init(DW_filterduct *localDW);
extern void filterduct(int16_t rtu_duct, bool rtu_is_filter_active, uint32_t
rtu_t_now, int16_t *rty_duct_filtered, DW_filterduct *localDW);
extern void is3secafterT15passed_Init(DW_is3secafterT15passed *localDW);
extern void is3secafterT15passed(uint32_t rtu_t_now, uint8_t rtu_BCM_T15_stat,
bool *rty_is_filter_active, DW_is3secafterT15passed *localDW);
extern void u(uint8_t rtu_lvl, uint16_t *rty_f_g_ausINCARRATE_FALLING_F);
extern void u_j(uint8_t rtu_lvl, uint16_t *rty_f_g_ausINCARRATE_FALLING_DIFF_F);
extern void u_c(int16_t rtu_temp_raw, uint8_t rtu_lvl, uint16_t *rty_out, double
@ -369,11 +381,11 @@ extern void IfActionSubsystem1(int8_t *rty_Output, uint8_t
rtd_ErrorActuator[9], uint8_t rtd_ErrorCalibration_private[9], const double
*rtd_LOGGER_LIN, uint8_t rtd_MODE_private[9], uint8_t
rtd_dtc_state_error_model[127]);
extern void MATLABFunction_g_Init(DW_MATLABFunction_j *localDW);
extern void MATLABFunction_f(double rtu_setpoint, double rtu_input, double
extern void MATLABFunction_k_Init(DW_MATLABFunction_n *localDW);
extern void MATLABFunction_m(double rtu_setpoint, double rtu_input, double
rtu_dt, double rtu_Kp, double rtu_Ki, double rtu_Kd, double rtu_max_speed,
double rtu_deadband, double *rty_output, double *rty_P, double *rty_I, double *
rty_D, DW_MATLABFunction_j *localDW);
rty_D, DW_MATLABFunction_n *localDW);
extern void valves_rear_left(uint8_t rtu_MODE, uint16_t rty_get_valves[6]);
extern void MODE_for_set_and_lvl(uint8_t rtu_LVL, int16_t rtu_SET, uint8_t
*rty_get_mode);
@ -388,6 +400,8 @@ extern void ValvesforHi_Level(uint16_t rty_out[9]);
extern void ValvesforTriLevel(uint16_t rty_out[9]);
extern void AFforBiLevel_i(uint16_t rty_out[6]);
extern void valvesforVentmode(uint16_t rty_out[6]);
extern void MATLABFunction_o(bool rtu_is_active, bool rtu_Txv_on, uint8_t
*rty_winter_condition_state);
#endif /* HVAC_model_private_h_ */

View File

@ -3,9 +3,9 @@
*
* Code generated for Simulink model 'HVAC_model'.
*
* Model version : 1.1548
* Model version : 1.1627
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
* C/C++ source code generated on : Mon Sep 14 13:49:13 2026
* C/C++ source code generated on : Fri Sep 25 16:15:38 2026
*
* Target selection: ert.tlc
* Embedded hardware selection: ARM Compatible->ARM Cortex-M
@ -1120,6 +1120,163 @@ typedef struct {
#endif
#ifndef DEFINED_TYPEDEF_FOR_dbg_Sen_Demist_Bus_
#define DEFINED_TYPEDEF_FOR_dbg_Sen_Demist_Bus_
typedef struct {
int16_t dbg_Sen_DewPoint_Diff_ro;
uint16_t dbg_Sen_WindShield_Humidity_ro;
int16_t dbg_Sen_WindShield_Temp_ro;
} dbg_Sen_Demist_Bus;
#endif
#ifndef DEFINED_TYPEDEF_FOR_BCM_EEM_Bus_
#define DEFINED_TYPEDEF_FOR_BCM_EEM_Bus_
typedef struct {
uint16_t BCM_EEM_VolReqLV_DCDC1_ro;
uint8_t BCM_EEM_StPowMgn;
uint8_t BCM_EEM_PowMngtReqDisp;
uint16_t BCM_EEM_VolReqLV_DCDC2_ro;
uint8_t BCM_EEM_RC;
uint8_t BCM_EEM_CS;
uint16_t BCM_EEM_CurrLimLV_DCDC1_ro;
uint16_t BCM_EEM_CurrLimLV_DCDC2_ro;
} BCM_EEM_Bus;
#endif
#ifndef DEFINED_TYPEDEF_FOR_EMS_Veh_02_Bus_
#define DEFINED_TYPEDEF_FOR_EMS_Veh_02_Bus_
typedef struct {
uint8_t EMS_CoEng_Stat;
uint8_t BMS_ActualTemp_Val_ro;
uint8_t EMS_NAMI_Stat;
uint8_t EMS_Veh_02_RC;
uint8_t EMS_Veh_02_CS;
} EMS_Veh_02_Bus;
#endif
#ifndef DEFINED_TYPEDEF_FOR_ccu_candb_error_missing_rx_Bus_
#define DEFINED_TYPEDEF_FOR_ccu_candb_error_missing_rx_Bus_
typedef struct {
uint8_t ESC_04;
uint8_t EMS_Veh;
uint8_t BCM_Powertrain;
uint8_t EMS_Veh_02;
uint8_t BCM_EEM;
uint8_t DMFR_Msg1;
uint8_t DMFL_Msg1;
uint8_t TM_Stat;
uint8_t TM_CP;
uint8_t HVC_CCU_Status_Msg;
uint8_t BCM_VEH_STATE;
uint8_t EMS_HVC_Req_Msg;
uint8_t HVC_Err_Status_Msg;
uint8_t BCM_CLIMATIC_DATA;
uint8_t VCU_CCU_Req;
uint8_t ESC_08;
uint8_t SMFL_status;
uint8_t SMFR_status;
uint8_t SMRL_status;
uint8_t SMRR_status;
uint8_t SDM_Cmd;
uint8_t VEH_VIN;
uint8_t OCUFL_MSG;
uint8_t OCUFR_MSG;
uint8_t OCURL_MSG;
uint8_t OCURR_MSG;
uint8_t DW_STATE;
uint8_t FIU_CCU1;
uint8_t FIU_CCU2;
uint8_t FIU_CCU3;
} ccu_candb_error_missing_rx_Bus;
#endif
#ifndef DEFINED_TYPEDEF_FOR_LIN1_ERROR_MISSING_Bus_
#define DEFINED_TYPEDEF_FOR_LIN1_ERROR_MISSING_Bus_
typedef struct {
uint8_t LIN1_ERROR_MISSING_DEF;
uint8_t LIN1_ERROR_MISSING_REC;
uint8_t LIN1_ERROR_MISSING_OSA;
uint8_t LIN1_ERROR_MISSING_FL_TempU;
uint8_t LIN1_ERROR_MISSING_FL_Vent_Center;
uint8_t LIN1_ERROR_MISSING_FL_Vent_Side;
uint8_t LIN1_ERROR_MISSING_FL_TempL;
uint8_t LIN1_ERROR_MISSING_FL_Foot1;
uint8_t LIN1_ERROR_MISSING_FL_Foot2;
} LIN1_ERROR_MISSING_Bus;
#endif
#ifndef DEFINED_TYPEDEF_FOR_LIN2_ERROR_MISSING_Bus_
#define DEFINED_TYPEDEF_FOR_LIN2_ERROR_MISSING_Bus_
typedef struct {
uint8_t LIN2_ERROR_MISSING_FR_TempU;
uint8_t LIN2_ERROR_MISSING_FR_Vent_Center;
uint8_t LIN2_ERROR_MISSING_FR_Vent_Side;
uint8_t LIN2_ERROR_MISSING_FR_TempL;
uint8_t LIN2_ERROR_MISSING_FR_Foot1;
uint8_t LIN2_ERROR_MISSING_FR_Foot2;
} LIN2_ERROR_MISSING_Bus;
#endif
#ifndef DEFINED_TYPEDEF_FOR_LIN3_ERROR_MISSING_Bus_
#define DEFINED_TYPEDEF_FOR_LIN3_ERROR_MISSING_Bus_
typedef struct {
uint8_t LIN3_ERROR_MISSING_RR_Temp;
uint8_t LIN3_ERROR_MISSING_RL_Temp;
uint8_t LIN3_ERROR_MISSING_RL_Vent_Side;
uint8_t LIN3_ERROR_MISSING_RL_Foot;
uint8_t LIN3_ERROR_MISSING_RL_Vent_Center;
uint8_t LIN3_ERROR_MISSING_RR_Vent_Center;
uint8_t LIN3_ERROR_MISSING_RR_Foot;
uint8_t LIN3_ERROR_MISSING_RR_Vent_Side;
uint8_t LIN3_ERROR_MISSING_SealingValve;
} LIN3_ERROR_MISSING_Bus;
#endif
#ifndef DEFINED_TYPEDEF_FOR_LIN4_ERROR_MISSING_Bus_
#define DEFINED_TYPEDEF_FOR_LIN4_ERROR_MISSING_Bus_
typedef struct {
uint8_t LIN4_ERROR_MISSING_AirQS;
uint8_t LIN4_ERROR_MISSING_Aroma;
uint8_t LIN4_ERROR_MISSING_Ionizer;
uint8_t LIN4_ERROR_MISSING_eTXV_fHVAC;
uint8_t LIN4_ERROR_MISSING_eTXV_rHVAC;
uint8_t LIN4_ERROR_MISSING_eTXV_batChiller;
uint8_t LIN4_ERROR_MISSING_eTXV_eeChiller;
} LIN4_ERROR_MISSING_Bus;
#endif
#ifndef DEFINED_TYPEDEF_FOR_LIN5_ERROR_MISSING_Bus_
#define DEFINED_TYPEDEF_FOR_LIN5_ERROR_MISSING_Bus_
typedef struct {
uint8_t LIN5_ERROR_MISSING_DRS_DL_Stat;
uint8_t LIN5_ERROR_MISSING_DRS_DR_Stat;
uint8_t LIN5_ERROR_MISSING_DRS_FPL_Stat;
uint8_t LIN5_ERROR_MISSING_DRS_FPR_Stat;
uint8_t LIN5_ERROR_MISSING_DRS_RLB_Stat;
uint8_t LIN5_ERROR_MISSING_DRS_RRB_Stat;
uint8_t LIN5_ERROR_MISSING_DRS_FCL_Stat;
uint8_t LIN5_ERROR_MISSING_DRS_FCR_Stat;
} LIN5_ERROR_MISSING_Bus;
#endif
#ifndef DEFINED_TYPEDEF_FOR_CmdBusADCData_
#define DEFINED_TYPEDEF_FOR_CmdBusADCData_

View File

@ -914,8 +914,7 @@ static _Noreturn void ModelTask_Thread(tModelTask *env) {
memcpy(&env->ccu_candb_tx.CCU_Stat1, &rtY.CCU_Stat1_model, sizeof(env->ccu_candb_tx.CCU_Stat1));
memcpy(&env->ccu_candb_tx.CCU_Stat2, &rtY.CCU_Stat2_model, sizeof(env->ccu_candb_tx.CCU_Stat2));
memcpy(&env->ccu_candb_tx.CCU_HVC_Req_Msg, &rtY.CCUCAN_HVC_REQ_MSG_MODEL,
sizeof(env->ccu_candb_tx.CCU_HVC_Req_Msg));
memcpy(&env->ccu_candb_tx.CCU_HVC_Req_Msg, &rtY.CCUCAN_HVC_REQ_MSG_MODEL, sizeof(env->ccu_candb_tx.CCU_HVC_Req_Msg));
memcpy(&env->ccu_candb_tx.CCU_Msg3, &rtY.CCU_Msg3_model, sizeof(env->ccu_candb_tx.CCU_Msg3));
memcpy(&env->ccu_candb_tx.CCU_Msg1, &rtY.CCU_Msg1_model, sizeof(env->ccu_candb_tx.CCU_Msg1));
@ -969,14 +968,9 @@ static _Noreturn void ModelTask_Thread(tModelTask *env) {
memcpy(&env->ccu_candb_dbg_tx.dbg_Act0, &rtY.dbgCAN_dbg_Act0_model, sizeof(env->ccu_candb_dbg_tx.dbg_Act0));
memcpy(&env->ccu_candb_dbg_tx.dbg_Act1, &rtY.dbgCAN_dbg_Act1_model, sizeof(env->ccu_candb_dbg_tx.dbg_Act1));
memcpy(&env->ccu_candb_dbg_tx.dbg_Act2, &rtY.dbgCAN_dbg_Act2_model, sizeof(env->ccu_candb_dbg_tx.dbg_Act2));
memcpy(&env->ccu_candb_dbg_tx.dbg_Sen_Duct, &rtY.dbgCAN_dbg_Sen_Duct_model,
sizeof(env->ccu_candb_dbg_tx.dbg_Sen_Duct));
memcpy(&env->ccu_candb_dbg_tx.dbg_Sen_Eva, &rtY.dbgCAN_dbg_Sen_Eva_model,
sizeof(env->ccu_candb_dbg_tx.dbg_Sen_Eva));
memcpy(&env->ccu_candb_dbg_tx.dbg_Logic_Blower, &rtY.dbgCAN_dbg_Logic_Blower_model,
sizeof(env->ccu_candb_dbg_tx.dbg_Logic_Blower));
memcpy(&env->ccu_candb_dbg_tx.dbg_Sen_Duct, &rtY.dbgCAN_dbg_Sen_Duct_model,sizeof(env->ccu_candb_dbg_tx.dbg_Sen_Duct));
memcpy(&env->ccu_candb_dbg_tx.dbg_Sen_Eva, &rtY.dbgCAN_dbg_Sen_Eva_model,sizeof(env->ccu_candb_dbg_tx.dbg_Sen_Eva));
memcpy(&env->ccu_candb_dbg_tx.dbg_Logic_Blower, &rtY.dbgCAN_dbg_Logic_Blower_model, sizeof(env->ccu_candb_dbg_tx.dbg_Logic_Blower));
if (model_Status_Set_For_Model_output.Pwm == 1) {