665 lines
24 KiB
C
665 lines
24 KiB
C
//
|
|
// Created by cfif on 05.12.2025.
|
|
//
|
|
#include <SystemDelayInterface.h>
|
|
#include "CanSpamDebugTransmitter.h"
|
|
#include "CmsisRtosThreadUtils.h"
|
|
#include "CanPorts.h"
|
|
#include "memory.h"
|
|
#include "HVAC_model.h"
|
|
|
|
#define LOG_SIGN "CAN_DEBUG_TRANSMITTER"
|
|
#define LOGGER env->logger
|
|
|
|
void CanSpamDebugTransmitter_Init(tCanSpamDebugTransmitter *env,
|
|
tSerialPortFrameIO *ioCanFrame,
|
|
tCanSpamDebugReceiver *canSpamDebugReceiver,
|
|
tLoggerInterface *logger) {
|
|
|
|
env->ioCanFrame = ioCanFrame;
|
|
env->logger = logger;
|
|
env->canSpamDebugReceiver = canSpamDebugReceiver;
|
|
env->access = osMutexNew(NULL);
|
|
|
|
InitThreadAtrStatic(&env->thread.attr, "CanSpamDebugTrans", env->thread.controlBlock, env->thread.stack,
|
|
osPriorityNormal);
|
|
}
|
|
|
|
|
|
static void sendEventToCan(tCanSpamDebugTransmitter *env) {
|
|
if (env->ide) {
|
|
env->canFrame.id_type = FLEXCAN_ID_EXT;
|
|
env->canFrame.extended_id = env->can_id;
|
|
} else {
|
|
env->canFrame.id_type = FLEXCAN_ID_STD;
|
|
env->canFrame.standard_id = env->can_id;
|
|
}
|
|
|
|
env->ioCanFrame->transmit(env->ioCanFrame->env, (uint8_t *) &env->canFrame.data, env->canFrame.dlc,
|
|
env->can_id, env->canFrame.id_type, 100);
|
|
}
|
|
|
|
static eTimeEventDbgTransmit isEventTransmitter(tCanSpamDebugTransmitter *env) {
|
|
|
|
#if (dbg_Act0_SEND == 1)
|
|
if (env->time_dbg_Act0_CYC < env->timeMs) {
|
|
env->time_dbg_Act0_CYC = env->timeMs + dbg_Act0_CYC;
|
|
|
|
env->can_id = Pack_dbg_Act0_candb_dbg(&ccu_candb_dbg_tx.dbg_Act0, env->canFrame.data, &env->canFrame.dlc,
|
|
&env->ide);
|
|
|
|
return event_dbg_Act0_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Act1_SEND == 1)
|
|
if (env->time_dbg_Act1_CYC < env->timeMs) {
|
|
env->time_dbg_Act1_CYC = env->timeMs + dbg_Act1_CYC;
|
|
|
|
env->can_id = Pack_dbg_Act1_candb_dbg(&ccu_candb_dbg_tx.dbg_Act1, env->canFrame.data, &env->canFrame.dlc,
|
|
&env->ide);
|
|
|
|
return event_dbg_Act1_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Act2_SEND == 1)
|
|
if (env->time_dbg_Act2_CYC < env->timeMs) {
|
|
env->time_dbg_Act2_CYC = env->timeMs + dbg_Act2_CYC;
|
|
|
|
env->can_id = Pack_dbg_Act2_candb_dbg(&ccu_candb_dbg_tx.dbg_Act2, env->canFrame.data, &env->canFrame.dlc,
|
|
&env->ide);
|
|
|
|
return event_dbg_Act2_CYC;
|
|
}
|
|
#endif
|
|
|
|
|
|
#if (dbg_Auto_AF_SEND == 1)
|
|
if (env->time_dbg_Auto_AF_CYC < env->timeMs) {
|
|
env->time_dbg_Auto_AF_CYC = env->timeMs + dbg_Auto_AF_CYC;
|
|
|
|
env->can_id = Pack_dbg_Auto_AF_candb_dbg(&ccu_candb_dbg_tx.dbg_Auto_AF, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Auto_AF_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Auto_Duct_SEND == 1)
|
|
if (env->time_dbg_Auto_Duct_CYC < env->timeMs) {
|
|
env->time_dbg_Auto_Duct_CYC = env->timeMs + dbg_Auto_Duct_CYC;
|
|
|
|
env->can_id = Pack_dbg_Auto_Duct_candb_dbg(&ccu_candb_dbg_tx.dbg_Auto_Duct, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Auto_Duct_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Auto_Valve_Plus_SEND == 1)
|
|
if (env->time_dbg_Auto_Valve_Plus_CYC < env->timeMs) {
|
|
env->time_dbg_Auto_Valve_Plus_CYC = env->timeMs + dbg_Auto_Valve_Plus_CYC;
|
|
|
|
env->can_id = Pack_dbg_Auto_Valve_Plus_candb_dbg(&ccu_candb_dbg_tx.dbg_Auto_Valve_Plus, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Auto_Valve_Plus_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_CCU_Info_SEND == 1)
|
|
if (env->time_dbg_CCU_Info_CYC < env->timeMs) {
|
|
env->time_dbg_CCU_Info_CYC = env->timeMs + dbg_CCU_Info_CYC;
|
|
|
|
env->can_id = Pack_dbg_CCU_Info_candb_dbg(&ccu_candb_dbg_tx.dbg_CCU_Info, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_CCU_Info_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_CCU_IO_SEND == 1)
|
|
if (env->time_dbg_CCU_IO_CYC < env->timeMs) {
|
|
env->time_dbg_CCU_IO_CYC = env->timeMs + dbg_CCU_IO_CYC;
|
|
|
|
env->can_id = Pack_dbg_CCU_IO_candb_dbg(&ccu_candb_dbg_tx.dbg_CCU_IO, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_CCU_IO_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_DiffBlr_ValveOpen_SEND == 1)
|
|
if (env->time_dbg_DiffBlr_ValveOpen_CYC < env->timeMs) {
|
|
env->time_dbg_DiffBlr_ValveOpen_CYC = env->timeMs + dbg_DiffBlr_ValveOpen_CYC;
|
|
|
|
env->can_id = Pack_dbg_DiffBlr_ValveOpen_candb_dbg(&ccu_candb_dbg_tx.dbg_DiffBlr_ValveOpen, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_DiffBlr_ValveOpen_CYC;
|
|
}
|
|
#endif
|
|
|
|
|
|
#if (dbg_Drs_SEND == 1)
|
|
if (env->time_dbg_Drs_CYC < env->timeMs) {
|
|
env->time_dbg_Drs_CYC = env->timeMs + dbg_Drs_CYC;
|
|
|
|
env->can_id = Pack_dbg_Drs_candb_dbg(&ccu_candb_dbg_tx.dbg_Drs, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Drs_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Info_Act1_SEND == 1)
|
|
if (env->time_dbg_Info_Act1_CYC < env->timeMs) {
|
|
env->time_dbg_Info_Act1_CYC = env->timeMs + dbg_Info_Act1_CYC;
|
|
|
|
env->can_id = Pack_dbg_Info_Act1_candb_dbg(&ccu_candb_dbg_tx.dbg_Info_Act1, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Info_Act1_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Info_Act2_SEND == 1)
|
|
if (env->time_dbg_Info_Act2_CYC < env->timeMs) {
|
|
env->time_dbg_Info_Act2_CYC = env->timeMs + dbg_Info_Act2_CYC;
|
|
|
|
env->can_id = Pack_dbg_Info_Act2_candb_dbg(&ccu_candb_dbg_tx.dbg_Info_Act2, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Info_Act2_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_LIN_AirQS_Stat_SEND == 1)
|
|
if (env->time_dbg_LIN_AirQS_Stat_CYC < env->timeMs) {
|
|
env->time_dbg_LIN_AirQS_Stat_CYC = env->timeMs + dbg_LIN_AirQS_Stat_CYC;
|
|
|
|
env->can_id = Pack_dbg_LIN_AirQS_Stat_candb_dbg(&ccu_candb_dbg_tx.dbg_LIN_AirQS_Stat, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_LIN_AirQS_Stat_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_LIN_Aroma_Stat_SEND == 1)
|
|
if (env->time_dbg_LIN_Aroma_Stat_CYC < env->timeMs) {
|
|
env->time_dbg_LIN_Aroma_Stat_CYC = env->timeMs + dbg_LIN_Aroma_Stat_CYC;
|
|
|
|
env->can_id = Pack_dbg_LIN_Aroma_Stat_candb_dbg(&ccu_candb_dbg_tx.dbg_LIN_Aroma_Stat, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_LIN_Aroma_Stat_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_LIN_DRS_Stat_SEND == 1)
|
|
if (env->time_dbg_LIN_DRS_Stat_CYC < env->timeMs) {
|
|
env->time_dbg_LIN_DRS_Stat_CYC = env->timeMs + dbg_LIN_DRS_Stat_CYC;
|
|
|
|
env->can_id = Pack_dbg_LIN_DRS_Stat_candb_dbg(&ccu_candb_dbg_tx.dbg_LIN_DRS_Stat, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_LIN_DRS_Stat_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_LIN_eTXV_Stat_SEND == 1)
|
|
if (env->time_dbg_LIN_eTXV_Stat_CYC < env->timeMs) {
|
|
env->time_dbg_LIN_eTXV_Stat_CYC = env->timeMs + dbg_LIN_eTXV_Stat_CYC;
|
|
|
|
env->can_id = Pack_dbg_LIN_eTXV_Stat_candb_dbg(&ccu_candb_dbg_tx.dbg_LIN_eTXV_Stat, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_LIN_eTXV_Stat_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_LIN_Ionizer_Stat_SEND == 1)
|
|
if (env->time_dbg_LIN_Ionizer_Stat_CYC < env->timeMs) {
|
|
env->time_dbg_LIN_Ionizer_Stat_CYC = env->timeMs + dbg_LIN_Ionizer_Stat_CYC;
|
|
|
|
env->can_id = Pack_dbg_LIN_Ionizer_Stat_candb_dbg(&ccu_candb_dbg_tx.dbg_LIN_Ionizer_Stat, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_LIN_Ionizer_Stat_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Logic_Ac_SEND == 1)
|
|
if (env->time_dbg_Logic_Ac_CYC < env->timeMs) {
|
|
env->time_dbg_Logic_Ac_CYC = env->timeMs + dbg_Logic_Ac_CYC;
|
|
|
|
env->can_id = Pack_dbg_Logic_Ac_candb_dbg(&ccu_candb_dbg_tx.dbg_Logic_Ac, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Logic_Ac_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Logic_Blower_SEND == 1)
|
|
if (env->time_dbg_Logic_Blower_CYC < env->timeMs) {
|
|
env->time_dbg_Logic_Blower_CYC = env->timeMs + dbg_Logic_Blower_CYC;
|
|
|
|
env->can_id = Pack_dbg_Logic_Blower_candb_dbg(&ccu_candb_dbg_tx.dbg_Logic_Blower, env->canFrame.data,
|
|
&env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Logic_Blower_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Logic_KM_Status_SEND == 1)
|
|
if (env->time_dbg_Logic_KM_Status_CYC < env->timeMs) {
|
|
env->time_dbg_Logic_KM_Status_CYC = env->timeMs + dbg_Logic_KM_Status_CYC;
|
|
|
|
env->can_id = Pack_dbg_Logic_KM_Status_candb_dbg(&ccu_candb_dbg_tx.dbg_Logic_KM_Status, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Logic_KM_Status_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Logic_Rec_SEND == 1)
|
|
if (env->time_dbg_Logic_Rec_CYC < env->timeMs) {
|
|
env->time_dbg_Logic_Rec_CYC = env->timeMs + dbg_Logic_Rec_CYC;
|
|
|
|
env->can_id = Pack_dbg_Logic_Rec_candb_dbg(&ccu_candb_dbg_tx.dbg_Logic_Rec, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Logic_Rec_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Logic_State_SEND == 1)
|
|
if (env->time_dbg_Logic_State_CYC < env->timeMs) {
|
|
env->time_dbg_Logic_State_CYC = env->timeMs + dbg_Logic_State_CYC;
|
|
|
|
env->can_id = Pack_dbg_Logic_State_candb_dbg(&ccu_candb_dbg_tx.dbg_Logic_State, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Logic_State_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Logic_Valve_SEND == 1)
|
|
if (env->time_dbg_Logic_Valve_CYC < env->timeMs) {
|
|
env->time_dbg_Logic_Valve_CYC = env->timeMs + dbg_Logic_Valve_CYC;
|
|
|
|
env->can_id = Pack_dbg_Logic_Valve_candb_dbg(&ccu_candb_dbg_tx.dbg_Logic_Valve, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Logic_Valve_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Sen_0_SEND == 1)
|
|
if (env->time_dbg_Sen_0_CYC < env->timeMs) {
|
|
env->time_dbg_Sen_0_CYC = env->timeMs + dbg_Sen_0_CYC;
|
|
|
|
env->can_id = Pack_dbg_Sen_0_candb_dbg(&ccu_candb_dbg_tx.dbg_Sen_0, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Sen_0_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Sen_Amb_SEND == 1)
|
|
if (env->time_dbg_Sen_Amb_CYC < env->timeMs) {
|
|
env->time_dbg_Sen_Amb_CYC = env->timeMs + dbg_Sen_Amb_CYC;
|
|
|
|
env->can_id = Pack_dbg_Sen_Amb_candb_dbg(&ccu_candb_dbg_tx.dbg_Sen_Amb, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Sen_Amb_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Sen_Demist_SEND == 1)
|
|
if (env->time_dbg_Sen_Demist_CYC < env->timeMs) {
|
|
env->time_dbg_Sen_Demist_CYC = env->timeMs + dbg_Sen_Demist_CYC;
|
|
|
|
env->can_id = Pack_dbg_Sen_Demist_candb_dbg(&ccu_candb_dbg_tx.dbg_Sen_Demist, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Sen_Demist_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Sen_Duct_SEND == 1)
|
|
if (env->time_dbg_Sen_Duct_CYC < env->timeMs) {
|
|
env->time_dbg_Sen_Duct_CYC = env->timeMs + dbg_Sen_Duct_CYC;
|
|
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_MultMsg_Idx = env->dbg_Sen_Duct_MultMsg_Idx;
|
|
|
|
switch (ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_MultMsg_Idx) {
|
|
|
|
case 0: {
|
|
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Fb_Select = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Upper_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Upper_Tgt_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Upper_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Upper_Fb_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Side_Fb_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Lower_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Lower_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Lower_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Lower_Fb_ro = 0;
|
|
|
|
break;
|
|
}
|
|
|
|
case 1: {
|
|
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Fb_Select = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Tgt_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Upper_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Upper_Tgt_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Fb_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Upper_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Upper_Fb_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Side_Fb_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Lower_Tgt_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Lower_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Lower_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Lower_Fb_ro = 0;
|
|
|
|
break;
|
|
}
|
|
|
|
case 2: {
|
|
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Fb_Select = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Upper_Tgt_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Upper_Tgt_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Fb_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Upper_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Upper_Fb_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Side_Fb_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Lower_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Lower_Tgt_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Lower_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Lower_Fb_ro = 0;
|
|
|
|
break;
|
|
}
|
|
|
|
case 3: {
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Fb_Select = 0;
|
|
// 1 : "Side"
|
|
// 0 : "Central"
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Fb_Select = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Upper_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Tgt_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Upper_Tgt_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Upper_Fb_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Upper_Fb_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Side_Fb_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RR_Side_Fb_ro = 0;
|
|
|
|
|
|
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Lower_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Lower_Tgt_ro = 0;
|
|
// multiplex variable
|
|
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Lower_Fb_ro = 0;
|
|
// multiplex variable
|
|
//ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Lower_Fb_ro = 0;
|
|
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
env->can_id = Pack_dbg_Sen_Duct_candb_dbg(&ccu_candb_dbg_tx.dbg_Sen_Duct, env->canFrame.data,
|
|
&env->canFrame.dlc, &env->ide);
|
|
|
|
++env->dbg_Sen_Duct_MultMsg_Idx;
|
|
if (env->dbg_Sen_Duct_MultMsg_Idx > 3) {
|
|
env->dbg_Sen_Duct_MultMsg_Idx = 0;
|
|
}
|
|
|
|
|
|
return event_dbg_Sen_Duct_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Sen_Eva_SEND == 1)
|
|
if (env->time_dbg_Sen_Eva_CYC < env->timeMs) {
|
|
env->time_dbg_Sen_Eva_CYC = env->timeMs + dbg_Sen_Eva_CYC;
|
|
|
|
env->can_id = Pack_dbg_Sen_Eva_candb_dbg(&ccu_candb_dbg_tx.dbg_Sen_Eva, env->canFrame.data, &env->canFrame.dlc,
|
|
&env->ide);
|
|
|
|
return event_dbg_Sen_Eva_CYC;
|
|
}
|
|
#endif
|
|
|
|
#if (dbg_Sen_Incar_SEND == 1)
|
|
if (env->time_dbg_Sen_Incar_CYC < env->timeMs) {
|
|
env->time_dbg_Sen_Incar_CYC = env->timeMs + dbg_Sen_Incar_CYC;
|
|
|
|
env->can_id = Pack_dbg_Sen_Incar_candb_dbg(&ccu_candb_dbg_tx.dbg_Sen_Incar, env->canFrame.data, &env->canFrame.dlc, &env->ide);
|
|
|
|
return event_dbg_Sen_Incar_CYC;
|
|
}
|
|
#endif
|
|
|
|
return event_dbg_none;
|
|
}
|
|
|
|
void set_CanDebugSpamTransmitter(tCanSpamDebugTransmitter *env) {
|
|
if (osMutexAcquire(env->access, 5000) == osOK) {
|
|
memcpy(&ccu_candb_dbg_tx.dbg_Act0, &rtY.dbgCAN_dbg_Act0_model, sizeof(ccu_candb_dbg_tx.dbg_Act0));
|
|
memcpy(&ccu_candb_dbg_tx.dbg_Act1, &rtY.dbgCAN_dbg_Act1_model, sizeof(ccu_candb_dbg_tx.dbg_Act1));
|
|
memcpy(&ccu_candb_dbg_tx.dbg_Act2, &rtY.dbgCAN_dbg_Act2_model, sizeof(ccu_candb_dbg_tx.dbg_Act2));
|
|
|
|
memcpy(&ccu_candb_dbg_tx.dbg_Sen_Duct, &rtY.dbgCAN_dbg_Sen_Duct_model, sizeof(ccu_candb_dbg_tx.dbg_Sen_Duct));
|
|
memcpy(&ccu_candb_dbg_tx.dbg_Sen_Eva, &rtY.dbgCAN_dbg_Sen_Eva_model, sizeof(ccu_candb_dbg_tx.dbg_Sen_Eva));
|
|
|
|
memcpy(&ccu_candb_dbg_tx.dbg_Logic_Blower, &rtY.dbgCAN_dbg_Logic_Blower_model,
|
|
sizeof(ccu_candb_dbg_tx.dbg_Logic_Blower));
|
|
|
|
osMutexRelease(env->access);
|
|
} else {
|
|
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error set_CanDebugSpamTransmitter");
|
|
}
|
|
}
|
|
|
|
|
|
static _Noreturn void CanSpamDebugTransmitter_Thread(tCanSpamDebugTransmitter *env) {
|
|
for (;;) {
|
|
if (osMutexAcquire(env->access, 5000) == osOK) {
|
|
|
|
env->timeMs = GetSystemTick();
|
|
|
|
while (isEventTransmitter(env) != event_dbg_none) {
|
|
sendEventToCan(env);
|
|
}
|
|
|
|
osMutexRelease(env->access);
|
|
} else {
|
|
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error CanSpamDebugTransmitter_Thread");
|
|
}
|
|
SystemDelayMs(1);
|
|
}
|
|
}
|
|
|
|
void CanSpamDebugTransmitter_StartThread(tCanSpamDebugTransmitter *env) {
|
|
if (!env->thread.id) {
|
|
env->thread.id = osThreadNew((osThreadFunc_t) (CanSpamDebugTransmitter_Thread), (void *) (env),
|
|
&env->thread.attr);
|
|
}
|
|
} |