Обновление
This commit is contained in:
parent
a8ca120cc3
commit
f0e42d2be5
40
LinTasks.c
40
LinTasks.c
|
|
@ -7,6 +7,10 @@
|
|||
#include "CanPorts.h"
|
||||
#include "fc7xxx_driver_lin.h"
|
||||
#include "Lins.h"
|
||||
#include "LoggerInterface.h"
|
||||
|
||||
#define LOG_SIGN "Lin0"
|
||||
#define LOGGER env->logger
|
||||
|
||||
//начало----------------------------------------- LIN 0 ----------------------------------------------------------------
|
||||
//начало----------------------------------------- LIN 0 ----------------------------------------------------------------
|
||||
|
|
@ -522,10 +526,12 @@ lin_event_id_t CFR_PRG_x(tLinIO *linIo, tLinData *linData, uint8_t BUS_ADDRESS,
|
|||
*/
|
||||
void Lin_0_Init(tLinTaskActuator *env,
|
||||
tLinData *linData,
|
||||
tLinIO *linIO) {
|
||||
tLinIO *linIO,
|
||||
tLoggerInterface *logger) {
|
||||
|
||||
env->linIo = linIO;
|
||||
env->linData = linData;
|
||||
env->logger = logger;
|
||||
env->access = osMutexNew(NULL);
|
||||
|
||||
InitThreadAtrStatic(&env->thread.attr, "Lin0", env->thread.controlBlock, env->thread.stack,
|
||||
|
|
@ -693,8 +699,17 @@ lin_event_id_t Lin0_Scheduler(tLinTaskActuator *env) {
|
|||
env->linStateActuator[BUS_ADR].Error2_Communication_Slave = Error2_Communication_Slave;
|
||||
env->linStateActuator[BUS_ADR].Error3_Temperature_Slave = Error3_Temperature_Slave;
|
||||
env->linStateActuator[BUS_ADR].Error4_Permanent_Electrical_Slave = Error4_Permanent_Electrical_Slave;
|
||||
|
||||
if (env->linStateActuator[BUS_ADR].Stall_Slave == LIN_STALL_STA_OFF) {
|
||||
env->linStateActuator[BUS_ADR].Stall_Slave = Stall_Slave;
|
||||
}
|
||||
|
||||
env->linStateActuator[BUS_ADR].Reset_Slave = Reset_Slave;
|
||||
|
||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "BUS_ADR = %d, CPOS_ALL = %d, Stall_Slave = %d", BUS_ADR,
|
||||
env->linStateActuator[BUS_ADR].CPOS_ALL,
|
||||
env->linStateActuator[BUS_ADR].Stall_Slave)
|
||||
|
||||
} else {
|
||||
asm("nop");
|
||||
}
|
||||
|
|
@ -734,6 +749,29 @@ static void isEnterCommand(tLinTaskActuator *env) {
|
|||
|
||||
}
|
||||
|
||||
|
||||
void resetStall(tLinTaskActuator *env) {
|
||||
|
||||
for (uint8_t i = 0; i < LIN0_ISSR_ALL; ++i) {
|
||||
|
||||
if (env->linCommandActuator[i].COM == LIN_ACT_CFR_SET) {
|
||||
|
||||
env->linStateActuator[i].Stall_Slave = LIN_STALL_STA_OFF;
|
||||
|
||||
if (env->linCommandActuator[i].BUS_ADR == 0x20) {
|
||||
|
||||
for (uint8_t j = 0; j < LIN0_ISSR_ALL; ++j) {
|
||||
env->linStateActuator[j].Stall_Slave = LIN_STALL_STA_OFF;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static _Noreturn void Lin0_Thread(tLinTaskActuator *env) {
|
||||
for (;;) {
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include <cmsis_os.h>
|
||||
#include "stdbool.h"
|
||||
#include "LinIO.h"
|
||||
#include "LoggerInterface.h"
|
||||
|
||||
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
|
|
@ -461,6 +462,8 @@ typedef struct {
|
|||
|
||||
tLinData *linData;
|
||||
|
||||
tLoggerInterface *logger;
|
||||
|
||||
struct {
|
||||
osThreadId_t id;
|
||||
uint32_t stack[1024];
|
||||
|
|
@ -472,10 +475,13 @@ typedef struct {
|
|||
|
||||
void Lin_0_Init(tLinTaskActuator *env,
|
||||
tLinData *linData,
|
||||
tLinIO *linIO);
|
||||
tLinIO *linIO,
|
||||
tLoggerInterface *logger);
|
||||
|
||||
void Lin0_StartThread(tLinTaskActuator *env);
|
||||
|
||||
void GetLin0CallbackHandler(tLinData *env, uint8_t u8LinIndex, void *state);
|
||||
|
||||
void resetStall(tLinTaskActuator *env);
|
||||
|
||||
#endif //HVAC_LIN_TASKS_H
|
||||
|
|
|
|||
Loading…
Reference in New Issue