This commit is contained in:
cfif 2026-06-02 12:30:21 +03:00
parent 34ca022922
commit 5b631fe3f3
2 changed files with 19 additions and 6 deletions

View File

@ -7,6 +7,7 @@
#include "CanPorts.h" #include "CanPorts.h"
#include "LoggerInterface.h" #include "LoggerInterface.h"
#include "memory.h" #include "memory.h"
#include "SerialPortLinArtery.h"
#define LOG_SIGN4 "Ln4" #define LOG_SIGN4 "Ln4"
#define LOG_SIGN5 "Ln5" #define LOG_SIGN5 "Ln5"
@ -201,7 +202,8 @@ static lin_event_id_t Set_CCU_DRS_Req(tSerialPortLinIO *linIo, tLinData *linData
} }
static lin_event_id_t Get_DRS_Stat(tSerialPortLinIO *linIo, tLinData *linData, tDRS_Stat *p_tDRS_Stat, uint8_t DRS_stat) { static lin_event_id_t
Get_DRS_Stat(tSerialPortLinIO *linIo, tLinData *linData, tDRS_Stat *p_tDRS_Stat, uint8_t DRS_stat) {
lin_event_id_t res; lin_event_id_t res;
tDRS_Stat *tDRS_Stat_ = (tDRS_Stat *) linData->g_aRxBuffer; tDRS_Stat *tDRS_Stat_ = (tDRS_Stat *) linData->g_aRxBuffer;
@ -307,6 +309,13 @@ static lin_event_id_t Lin5_Scheduler(tLin5TaskSensor *env) {
lin_event_id_t ret = env->linIo->receivedCommand(env->linIo->env, &env->linData, 1000); lin_event_id_t ret = env->linIo->receivedCommand(env->linIo->env, &env->linData, 1000);
if (ret == LIN_RX_COMPLETED) {
asm("nop");
if (env->linData.g_aRxBufferLen == 2) {
asm("nop");
}
}
asm("nop"); asm("nop");
/* /*
@ -452,7 +461,7 @@ static _Noreturn void Lin5_Thread(tLin5TaskSensor *env) {
void Lin5_StartThread(tLin5TaskSensor *env) { void Lin5_StartThread(tLin5TaskSensor *env) {
if (!env->threadLin.id) { if (!env->threadLin.id) {
env->threadLin.id = osThreadNew((osThreadFunc_t) (Lin5_Thread), (void *) (env), &env->threadLin.attr); env->threadLin.id = osThreadNew((osThreadFunc_t) (Lin5_Thread), (void *) (env), &env->threadLin.attr);
SystemDelayMs(10); // SystemDelayMs(10);
} }
} }
@ -465,9 +474,10 @@ void Lin5_StartThread(tLin5TaskSensor *env) {
void Lin_Timeouts_Init(tLinTimeoutsTask *env, tLoggerInterface *logger) { void Lin_Timeouts_Init(tLinTimeoutsTask *env, tSerialPortLinIO *lin1Io, tLoggerInterface *logger) {
env->logger = logger; env->logger = logger;
env->lin1Io = lin1Io;
InitThreadAtrStatic(&env->threadLin.attr, "LinTimeouts", env->threadLin.controlBlock, env->threadLin.stack, InitThreadAtrStatic(&env->threadLin.attr, "LinTimeouts", env->threadLin.controlBlock, env->threadLin.stack,
osPriorityNormal); osPriorityNormal);
@ -476,11 +486,12 @@ void Lin_Timeouts_Init(tLinTimeoutsTask *env, tLoggerInterface *logger) {
static _Noreturn void LinTimeouts_Thread(tLinTimeoutsTask *env) { static _Noreturn void LinTimeouts_Thread(tLinTimeoutsTask *env) {
for (;;) { for (;;) {
LIN_CheckTimeout(env->lin1Io->env);
SystemDelayMs(1);
} }
} }
void LinTimeout_StartThread(tLinTimeoutsTask *env) { void LinTimeouts_StartThread(tLinTimeoutsTask *env) {
if (!env->threadLin.id) { if (!env->threadLin.id) {
env->threadLin.id = osThreadNew((osThreadFunc_t) (LinTimeouts_Thread), (void *) (env), &env->threadLin.attr); env->threadLin.id = osThreadNew((osThreadFunc_t) (LinTimeouts_Thread), (void *) (env), &env->threadLin.attr);
SystemDelayMs(10); SystemDelayMs(10);

View File

@ -300,6 +300,8 @@ void Lin5_StartThread(tLin5TaskSensor *env);
typedef struct { typedef struct {
tLoggerInterface *logger; tLoggerInterface *logger;
tSerialPortLinIO *lin1Io;
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[384]; uint32_t stack[384];
@ -309,7 +311,7 @@ typedef struct {
} tLinTimeoutsTask; } tLinTimeoutsTask;
void Lin_Timeouts_Init(tLinTimeoutsTask *env, tLoggerInterface *logger); void Lin_Timeouts_Init(tLinTimeoutsTask *env, tSerialPortLinIO *lin1Io, tLoggerInterface *logger);
void LinTimeouts_StartThread(tLinTimeoutsTask *env); void LinTimeouts_StartThread(tLinTimeoutsTask *env);