UveosOnNation_VEGA_Can/CanMain.c

55 lines
1.4 KiB
C

//
// 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);
}