HVAC_M7_CAN_SPAM/CanSpamTransmitter.h

64 lines
1.5 KiB
C

//
// Created by cfif on 05.12.2025.
//
#ifndef HVAC_M7_CANSPAMTRANSMITTER_H
#define HVAC_M7_CANSPAMTRANSMITTER_H
#include <cmsis_os.h>
#include "CanSerialPortFrame.h"
#include "ccu_candb-binutil.h"
typedef enum {
event_CCU_none = 0x00,
event_CCU_Stat1_CYC = 0x01,
event_CCU_Stat2_CYC = 0x02,
event_CCU_Stat3_CYC = 0x03,
event_CCU_Errors_CYC = 0x04,
event_CCU_Requests = 0x05,
event_CCU_HVC_Req_Msg = 0x06,
event_CCU_VCU_Msg1 = 0x07,
event_CCU_VCU_Msg2 = 0x08,
event_CCU_Msg1 = 0x09,
event_CCU_Msg3 = 0x0A,
event_CCU_AC_Ctrl = 0x0B
} eTimeEventTransmit;
typedef struct {
tSerialPortFrameIO *ioCanFrame;
osMutexId_t access;
can_rx_message_type canFrame;
uint32_t can_id;
uint32_t timeMs;
uint8_t ide;
uint32_t time_CCU_Stat1_CYC;
uint32_t time_CCU_Stat2_CYC;
uint32_t time_CCU_Stat3_CYC;
uint32_t time_CCU_Errors_CYC;
uint32_t time_CCU_Requests;
uint32_t time_CCU_HVC_Req_Msg;
uint32_t time_CCU_VCU_Msg1;
uint32_t time_CCU_VCU_Msg2;
uint32_t time_CCU_Msg1;
uint32_t time_CCU_Msg3;
uint32_t time_CCU_AC_Ctrl;
struct {
osThreadId_t id;
uint32_t stack[512];
StaticTask_t controlBlock;
osThreadAttr_t attr;
} thread;
} tCanSpamTransmitter;
void CanSpamTransmitter_Init(tCanSpamTransmitter *env, tSerialPortFrameIO *ioCanFrame);
void CanSpamTransmitter_StartThread(tCanSpamTransmitter *env);
#endif //HVAC_M7_CANSPAMTRANSMITTER_H