50 lines
1.1 KiB
C
50 lines
1.1 KiB
C
//
|
|
// Created by cfif on 18.10.2024.
|
|
//
|
|
#include "CanMain.h"
|
|
#include "SystemDelayInterface.h"
|
|
#include "ext_telematica.h"
|
|
#include "string.h"
|
|
|
|
#define LOG_SIGN "UDS_TEST"
|
|
#define LOGGER &env->slog->logger
|
|
|
|
void CanMainTest_Init(
|
|
tCanMainTest *env,
|
|
tSerialPortFrameIO *CanIO,
|
|
|
|
tLoggerToSerialPort *slog
|
|
) {
|
|
env->CanIO = CanIO;
|
|
env->slog = slog;
|
|
|
|
InitThreadBlock(env->T_can_MainTest, "CanMainTest", osPriorityNormal);
|
|
}
|
|
|
|
|
|
void CanMainTaskTest(tCanMainTest *env) {
|
|
can_rx_message_type canFrame;
|
|
uint16_t sent;
|
|
|
|
for (;;) {
|
|
uint16_t recv = env->CanIO->receive0(env->CanIO->env, (uint8_t *) &canFrame, 1, 1000);
|
|
|
|
if (recv > 0) {
|
|
if (canFrame.standard_id == 0x88) {
|
|
if ((canFrame.dlc == 8) && memcmp(canFrame.data, canTestData, 8) == 0) {
|
|
CanSerialPortFrameSetId(env->CanIO->env, 0x88);
|
|
sent = env->CanIO->transmit(env->CanIO->env, (uint8_t *) canTestData, 8, WAIT_FRAME_WRITE);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
void CanMainTest_Start(tCanMainTest *env) {
|
|
ThreadBlock_Start(env->T_can_MainTest, env, CanMainTaskTest);
|
|
}
|
|
|