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