Добавлены некоторые IO и изменены стеки задач
This commit is contained in:
parent
f510f6eeea
commit
7b5c4fd4e4
214
CanUds.c
214
CanUds.c
|
|
@ -20,6 +20,31 @@
|
|||
#define LOG_SIGN "CAN_UDS"
|
||||
#define LOGGER env->logger
|
||||
|
||||
extern tStatus_Sensor_For_Model model_Status_Sensor_For_Model_input;
|
||||
extern tStatus_Actuator_For_Model model_Status_Actuator_DoorsActuator_For_Model_input;
|
||||
extern tStatus_Duct_Tgt_For_Model model_Status_Duct_Tgt_For_Model_input;
|
||||
extern tStatus_Eva_Tgt_For_Model model_Status_Eva_Tgt_For_Model_input;
|
||||
extern tStatus_IO_For_Model model_Status_IO_For_Model_input;
|
||||
extern tStatus_Pwm_For_Model model_Status_Pwm_For_Model_input;
|
||||
extern tStatus_eComp_For_Model model_Status_eComp_For_Model_input;
|
||||
extern tStatus_External_For_Model model_Status_External_For_Model_input;
|
||||
extern tStatus_EMS_For_Model model_Status_EMS_For_Model_input;
|
||||
extern tStatus_Ionizer_Aroma_For_Model model_Status_Ionizer_Aroma_For_Model_input;
|
||||
extern tStatus_Duct_Select_For_Model model_Status_Duct_Select_For_Model_input;
|
||||
|
||||
|
||||
extern tStatus_Set_For_Model model_Status_Set_For_Model_output;
|
||||
extern tStatus_Actuator_For_Model model_Status_Actuator_DoorsActuator_For_Model_output;
|
||||
extern tStatus_Duct_Tgt_For_Model model_Status_Duct_Tgt_For_Model_output;
|
||||
extern tStatus_Eva_Tgt_For_Model model_Status_Eva_Tgt_For_Model_output;
|
||||
extern tStatus_IO_For_Model model_Status_IO_For_Model_output;
|
||||
extern tStatus_Pwm_For_Model model_Status_Pwm_For_Model_output;
|
||||
extern tStatus_eComp_For_Model model_Status_eComp_For_Model_output;
|
||||
extern tStatus_External_For_Model model_Status_External_For_Model_output;
|
||||
extern tStatus_EMS_For_Model model_Status_EMS_For_Model_output;
|
||||
extern tStatus_Ionizer_Aroma_For_Model model_Status_Ionizer_Aroma_For_Model_output;
|
||||
extern tStatus_Duct_Select_For_Model model_Status_Duct_Select_For_Model_output;
|
||||
|
||||
|
||||
extern uint32_t generate_key(uint32_t seed);
|
||||
|
||||
|
|
@ -1809,59 +1834,59 @@ void CanUdsInput_Set_Model(tCanUds *env) {
|
|||
|
||||
uint32_t countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Sensor);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Sensor, &env->Status_Sensor_For_Model_input, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Sensor, &model_Status_Sensor_For_Model_input, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Actuator_DoorsActuator);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Actuator_DoorsActuator,
|
||||
&env->Status_Sensor_For_Model_input, 0, 0);
|
||||
&model_Status_Actuator_DoorsActuator_For_Model_input, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Duct_Tgt);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Duct_Tgt, &env->Status_Duct_Tgt_For_Model_input, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Duct_Tgt, &model_Status_Duct_Tgt_For_Model_input, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Eva_Tgt);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Eva_Tgt, &env->Status_Eva_Tgt_For_Model_input, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Eva_Tgt, &model_Status_Eva_Tgt_For_Model_input, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_IO);
|
||||
if (!countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_IO, &env->Status_IO_For_Model_input, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_IO, &model_Status_IO_For_Model_input, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Pwm);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Pwm, &env->Status_Pwm_For_Model_input, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Pwm, &model_Status_Pwm_For_Model_input, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_eComp);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_eComp, &env->Status_eComp_For_Model_input, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_eComp, &model_Status_eComp_For_Model_input, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_External);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_External, &env->Status_External_For_Model_input, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_External, &model_Status_External_For_Model_input, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_EMS);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_EMS, &env->Status_EMS_For_Model_input, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_EMS, &model_Status_EMS_For_Model_input, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Ionizer_Aroma);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Ionizer_Aroma,
|
||||
&env->Status_Ionizer_Aroma_For_Model_input, 0, 0);
|
||||
&model_Status_Ionizer_Aroma_For_Model_input, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Duct_Select);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Duct_Select, &env->Status_Duct_Select_For_Model_input, 0,
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Duct_Select, &model_Status_Duct_Select_For_Model_input, 0,
|
||||
0);
|
||||
}
|
||||
}
|
||||
|
|
@ -2065,42 +2090,8 @@ static void CanUdsInput_Get_Model(tCanUds *env) {
|
|||
}
|
||||
|
||||
// Это с выхода UDS
|
||||
void CanUdsOutput_Set_Model(tCanUds *env) {
|
||||
static void CanUdsOutput_Set_Model(tCanUds *env) {
|
||||
|
||||
//---------------------- Status_Set; --------------------------------------------------------------------------------
|
||||
/*
|
||||
env->Status_Set_For_Model_output.Motor_Def;
|
||||
env->Status_Set_For_Model_output.Motor_Vent_SFL;
|
||||
env->Status_Set_For_Model_output.Motor_Vent_CFL;
|
||||
env->Status_Set_For_Model_output.Motor_Foot_1FL;
|
||||
env->Status_Set_For_Model_output.Motor_Foot_2FL;
|
||||
env->Status_Set_For_Model_output.Motor_Vent_CFR;
|
||||
env->Status_Set_For_Model_output.Motor_Vent_SFR;
|
||||
env->Status_Set_For_Model_output.Motor_Foot_1FR;
|
||||
env->Status_Set_For_Model_output.Motor_Foot_2FR;
|
||||
env->Status_Set_For_Model_output.Motor_Vent_SRL;
|
||||
env->Status_Set_For_Model_output.Motor_Vent_CRL;
|
||||
env->Status_Set_For_Model_output.Motor_Foot_RL;
|
||||
env->Status_Set_For_Model_output.Motor_Vent_CRR;
|
||||
env->Status_Set_For_Model_output.Motor_Vent_SRR;
|
||||
env->Status_Set_For_Model_output.Motor_Foot_RR;
|
||||
env->Status_Set_For_Model_output.Motor_Temp1_FL;
|
||||
env->Status_Set_For_Model_output.Motor_Temp2_FL;
|
||||
env->Status_Set_For_Model_output.Motor_Temp1_FR;
|
||||
env->Status_Set_For_Model_output.Motor_Temp2_FR;
|
||||
env->Status_Set_For_Model_output.Motor_Temp_RL;
|
||||
env->Status_Set_For_Model_output.Motor_Temp_RR;
|
||||
env->Status_Set_For_Model_output.Motor_REC;
|
||||
env->Status_Set_For_Model_output.Motor_OSA;
|
||||
env->Status_Set_For_Model_output.Motor_SealingValve;
|
||||
env->Status_Set_For_Model_output.IO;
|
||||
env->Status_Set_For_Model_output.Pwm;
|
||||
env->Status_Set_For_Model_output.eComp;
|
||||
env->Status_Set_For_Model_output.External;
|
||||
env->Status_Set_For_Model_output.EMS;
|
||||
env->Status_Set_For_Model_output.Ionizer_Aroma;
|
||||
env->Status_Set_For_Model_output.Duct_Select;
|
||||
*/
|
||||
//---------------------- Status_Actuator_DoorsActuator ---------------------------------------------------------------
|
||||
|
||||
env->Status_Actuator_DoorsActuator_For_Model_output.Motor_Def = statusData.Status_Actuator_DoorsActuator.Motor_Def;
|
||||
|
|
@ -2182,64 +2173,135 @@ void CanUdsOutput_Set_Model(tCanUds *env) {
|
|||
|
||||
osStatus_t status = osOK;
|
||||
|
||||
uint32_t countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Sensor);
|
||||
uint32_t countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Set);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Sensor, &env->Status_Set_For_Model_output, 0,
|
||||
status = osMessageQueuePut(env->queue_output_set_Status_Set, &env->Status_Set_For_Model_output, 0,
|
||||
0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Actuator_DoorsActuator);
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Actuator_DoorsActuator);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Actuator_DoorsActuator,
|
||||
status = osMessageQueuePut(env->queue_output_set_Status_Actuator_DoorsActuator,
|
||||
&env->Status_Actuator_DoorsActuator_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Duct_Tgt);
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Duct_Tgt);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Duct_Tgt, &env->Status_Duct_Tgt_For_Model_output, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_output_set_Status_Duct_Tgt, &env->Status_Duct_Tgt_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Eva_Tgt);
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Eva_Tgt);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Eva_Tgt, &env->Status_Eva_Tgt_For_Model_output, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_output_set_Status_Eva_Tgt, &env->Status_Eva_Tgt_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_IO);
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_IO);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_IO, &env->Status_IO_For_Model_output, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_output_set_Status_IO, &env->Status_IO_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Pwm);
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Pwm);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Pwm, &env->Status_Pwm_For_Model_output, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_output_set_Status_Pwm, &env->Status_Pwm_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_eComp);
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_eComp);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_eComp, &env->Status_eComp_For_Model_output, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_output_set_Status_eComp, &env->Status_eComp_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_External);
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_External);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_External, &env->Status_External_For_Model_output, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_output_set_Status_External, &env->Status_External_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_EMS);
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_EMS);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_EMS, &env->Status_EMS_For_Model_output, 0, 0);
|
||||
status = osMessageQueuePut(env->queue_output_set_Status_EMS, &env->Status_EMS_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Ionizer_Aroma);
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Ionizer_Aroma);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Ionizer_Aroma,
|
||||
status = osMessageQueuePut(env->queue_output_set_Status_Ionizer_Aroma,
|
||||
&env->Status_Ionizer_Aroma_For_Model_output,
|
||||
0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_input_get_Status_Duct_Select);
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Duct_Select);
|
||||
if (countQueue_space) {
|
||||
status = osMessageQueuePut(env->queue_input_get_Status_Duct_Select, &env->Status_Duct_Select_For_Model_output,
|
||||
status = osMessageQueuePut(env->queue_output_set_Status_Duct_Select, &env->Status_Duct_Select_For_Model_output,
|
||||
0,
|
||||
0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Это на вход модели
|
||||
void CanUdsOutput_Get_Model(tCanUds *env) {
|
||||
|
||||
osStatus_t status = osOK;
|
||||
|
||||
|
||||
uint32_t countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Set);
|
||||
if (countQueue_space == 0) {
|
||||
status = osMessageQueueGet(env->queue_output_set_Status_Set, &model_Status_Set_For_Model_output, 0,
|
||||
0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Actuator_DoorsActuator);
|
||||
if (countQueue_space == 0) {
|
||||
status = osMessageQueueGet(env->queue_output_set_Status_Actuator_DoorsActuator,
|
||||
&model_Status_Actuator_DoorsActuator_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Duct_Tgt);
|
||||
if (countQueue_space == 0) {
|
||||
status = osMessageQueueGet(env->queue_output_set_Status_Duct_Tgt, &model_Status_Duct_Tgt_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Eva_Tgt);
|
||||
if (countQueue_space == 0) {
|
||||
status = osMessageQueueGet(env->queue_output_set_Status_Eva_Tgt, &model_Status_Eva_Tgt_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_IO);
|
||||
if (countQueue_space == 0) {
|
||||
status = osMessageQueueGet(env->queue_output_set_Status_IO, &model_Status_IO_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Pwm);
|
||||
if (countQueue_space == 0) {
|
||||
status = osMessageQueueGet(env->queue_output_set_Status_Pwm, &model_Status_Pwm_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_eComp);
|
||||
if (countQueue_space == 0) {
|
||||
status = osMessageQueueGet(env->queue_output_set_Status_eComp, &model_Status_eComp_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_External);
|
||||
if (countQueue_space == 0) {
|
||||
status = osMessageQueueGet(env->queue_output_set_Status_External, &model_Status_External_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_EMS);
|
||||
if (countQueue_space == 0) {
|
||||
status = osMessageQueueGet(env->queue_output_set_Status_EMS, &model_Status_EMS_For_Model_output, 0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Ionizer_Aroma);
|
||||
if (countQueue_space == 0) {
|
||||
status = osMessageQueueGet(env->queue_output_set_Status_Ionizer_Aroma,
|
||||
&model_Status_Ionizer_Aroma_For_Model_output,
|
||||
0, 0);
|
||||
}
|
||||
|
||||
countQueue_space = osMessageQueueGetSpace(env->queue_output_set_Status_Duct_Select);
|
||||
if (countQueue_space == 0) {
|
||||
status = osMessageQueueGet(env->queue_output_set_Status_Duct_Select, &model_Status_Duct_Select_For_Model_output,
|
||||
0,
|
||||
0);
|
||||
}
|
||||
|
|
@ -2593,6 +2655,8 @@ void CanUds(tCanUds *env) {
|
|||
|
||||
}
|
||||
|
||||
CanUdsOutput_Set_Model(env);
|
||||
|
||||
osMutexRelease(env->access);
|
||||
} else {
|
||||
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error CanUds");
|
||||
|
|
@ -2604,7 +2668,11 @@ void CanUds(tCanUds *env) {
|
|||
|
||||
|
||||
void CanSerialPortCanUds_Start(tCanUds *env) {
|
||||
ThreadBlock_Start(env->T_can_Uds, env, CanUds);
|
||||
// ThreadBlock_Start(env->T_can_Uds, env, CanUds);
|
||||
if (!env->thread_Uds.id) {
|
||||
env->thread_Uds.id = osThreadNew((osThreadFunc_t) (CanUds), (void *) (env), &env->thread_Uds.attr);
|
||||
}
|
||||
|
||||
CanSerialPortFrameTp_Start(&env->canSerialPortFrameTp);
|
||||
}
|
||||
|
||||
|
|
@ -2648,8 +2716,7 @@ void CanUds_Init(
|
|||
|
||||
|
||||
env->queue_output_set_Status_Set = osMessageQueueNew(1, sizeof(tStatus_Set_For_Model), NULL);
|
||||
env->queue_output_set_Status_Actuator_DoorsActuator = osMessageQueueNew(1, sizeof(tStatus_Actuator_For_Model),
|
||||
NULL);
|
||||
env->queue_output_set_Status_Actuator_DoorsActuator = osMessageQueueNew(1, sizeof(tStatus_Actuator_For_Model),NULL);
|
||||
env->queue_output_set_Status_Duct_Tgt = osMessageQueueNew(1, sizeof(tStatus_Duct_Tgt_For_Model), NULL);
|
||||
env->queue_output_set_Status_Eva_Tgt = osMessageQueueNew(1, sizeof(tStatus_Eva_Tgt_For_Model), NULL);
|
||||
env->queue_output_set_Status_IO = osMessageQueueNew(1, sizeof(tStatus_IO_For_Model), NULL);
|
||||
|
|
@ -2712,5 +2779,8 @@ void CanUds_Init(
|
|||
env->currentSession = UDS_session_defaultSession;
|
||||
statusData.Status_Active_Diagnostic_Session.Active_Diagnostic_Session = UDS_session_defaultSession;
|
||||
|
||||
InitThreadBlock(env->T_can_Uds, "UdsTester", osPriorityNormal);
|
||||
// InitThreadBlock(env->T_can_Uds, "UdsTester", osPriorityNormal);
|
||||
InitThreadAtrStatic(&env->thread_Uds.attr, "UdsTester", env->thread_Uds.controlBlock, env->thread_Uds.stack,
|
||||
osPriorityNormal);
|
||||
|
||||
};
|
||||
14
CanUds.h
14
CanUds.h
|
|
@ -287,8 +287,14 @@ typedef struct {
|
|||
osMessageQueueId_t queue_output_set_Status_Ionizer_Aroma;
|
||||
osMessageQueueId_t queue_output_set_Status_Duct_Select;
|
||||
|
||||
struct {
|
||||
osThreadId_t id;
|
||||
uint32_t stack[384];
|
||||
StaticTask_t controlBlock;
|
||||
osThreadAttr_t attr;
|
||||
} thread_Uds;
|
||||
|
||||
tStaticThreadBlock(384) T_can_Uds;
|
||||
// tStaticThreadBlock(384) T_can_Uds;
|
||||
} tCanUds;
|
||||
|
||||
typedef uint16_t (*uds_func_ptr)(tCanUds *env);
|
||||
|
|
@ -314,6 +320,10 @@ void CanUds_Init(
|
|||
|
||||
void CanSerialPortCanUds_Start(tCanUds *env);
|
||||
|
||||
void CanUdsOutput_Set_Model(tCanUds *env);
|
||||
// Тут данные должны быть с модели &env->Status_Sensor_For_Model_input и т.д.
|
||||
void CanUdsInput_Set_Model(tCanUds *env);
|
||||
|
||||
// Это на вход модели
|
||||
void CanUdsOutput_Get_Model(tCanUds *env);
|
||||
|
||||
#endif //HVAC_M7_CANUDS_H
|
||||
|
|
|
|||
Loading…
Reference in New Issue