// // Created by cfif on 21.02.2025. // #include "CanMain.h" #include "n32g45x_can.h" #include "SystemDelayInterface.h" #include "CanSerialPortFrame.h" #include "LoggerInterface.h" #include "string.h" #define LOG_SIGN "CAN" #define LOGGER &env->slog->logger void CanMain_Init( tCanMain *env, tSerialPortFrameIO *CanIO, tLoggerToSerialPort *slog ) { env->CanIO = CanIO; env->slog = slog; InitThreadBlock(env->T_can_Main, "CanMain", osPriorityNormal); } void CanMainTask(tCanMain *env) { CanRxMessage canFrame; uint8_t canTestData[8] = {'1', '1', '1', '1', '1', '1', '1', '1'}; for (;;) { volatile uint16_t recv = env->CanIO->receive0(env->CanIO->env, (uint8_t *) &canFrame, 1, 1000); /* if (recv > 0) { volatile uint16_t r1cc = recv; LoggerStrFormatInfo(LOGGER, LOG_SIGN, "%x:%x:%x:%x:%x:%x:%x:%x", canFrame.Data[0], canFrame.Data[1], canFrame.Data[2], canFrame.Data[3], canFrame.Data[4], canFrame.Data[5], canFrame.Data[6], canFrame.Data[7]); } */ CanSerialPortFrameSetId(env->CanIO->env, 0x88); volatile uint16_t sent = env->CanIO->transmit(env->CanIO->env, (uint8_t *) canFrame.Data, 8, 300); // SystemDelayMs(1000); } } void CanMain_Start(tCanMain *env) { ThreadBlock_Start(env->T_can_Main, env, CanMainTask); }