176 lines
4.0 KiB
C
176 lines
4.0 KiB
C
//
|
|
// Created by cfif on 13.03.2026.
|
|
//
|
|
|
|
#ifndef HVAC_DEV_ARBITERCOMMAND_H
|
|
#define HVAC_DEV_ARBITERCOMMAND_H
|
|
|
|
#include <cmsis_os.h>
|
|
#include "SerialPortIO.h"
|
|
#include "AtCmdCommon.h"
|
|
#include "CanSerialPortFrame.h"
|
|
|
|
|
|
typedef enum {
|
|
FROM_USB1,
|
|
FROM_USB2
|
|
} tFrom_usb;
|
|
|
|
typedef struct {
|
|
|
|
tSerialPortFrameIO *ioCAN;
|
|
// osMutexId_t access;
|
|
osMessageQueueId_t txDataQueue;
|
|
|
|
struct {
|
|
osThreadId_t id;
|
|
uint32_t stack[1024];
|
|
StaticTask_t controlBlock;
|
|
osThreadAttr_t attr;
|
|
} thread;
|
|
|
|
|
|
} tTaskSerialToCanCyclic;
|
|
|
|
typedef struct {
|
|
can_rx_message_type can_rx_message;
|
|
tFrom_usb from_usb;
|
|
} can_rx_message_Spontany;
|
|
|
|
typedef struct {
|
|
|
|
tSerialPortFrameIO *ioCAN;
|
|
// osMutexId_t access;
|
|
osMessageQueueId_t txDataQueue;
|
|
|
|
tSerialPortIO *ioUSB1;
|
|
tSerialPortIO *ioUSB2;
|
|
|
|
struct {
|
|
osThreadId_t id;
|
|
uint32_t stack[1024];
|
|
StaticTask_t controlBlock;
|
|
osThreadAttr_t attr;
|
|
} thread;
|
|
|
|
|
|
} tTaskSerialToCanSpontany;
|
|
|
|
typedef struct {
|
|
|
|
tAtCmd At;
|
|
uint8_t AtRx[255];
|
|
uint8_t AtTx[255];
|
|
|
|
tSerialPortIO *ioUSB;
|
|
tFrom_usb from_usb;
|
|
// osMutexId_t access;
|
|
|
|
tTaskSerialToCanCyclic *TaskSerialToCanCyclic0;
|
|
tTaskSerialToCanCyclic *TaskSerialToCanCyclic1;
|
|
tTaskSerialToCanSpontany *TaskSerialToCanSpontany;
|
|
|
|
struct {
|
|
osThreadId_t id;
|
|
uint32_t stack[1024];
|
|
StaticTask_t controlBlock;
|
|
osThreadAttr_t attr;
|
|
} thread;
|
|
|
|
|
|
} tTaskSerial;
|
|
|
|
|
|
|
|
typedef struct {
|
|
tSerialPortFrameIO *ioCAN;
|
|
tSerialPortIO *ioUSB;
|
|
tFrom_usb from_usb;
|
|
// osMutexId_t access;
|
|
|
|
can_rx_message_type canFrame;
|
|
|
|
char text[32];
|
|
|
|
char buf[32];
|
|
char bufWithPrefix[32];
|
|
|
|
struct {
|
|
osThreadId_t id;
|
|
uint32_t stack[1024];
|
|
StaticTask_t controlBlock;
|
|
osThreadAttr_t attr;
|
|
} thread;
|
|
|
|
} tTaskReceivedSerial;
|
|
|
|
void TaskSerialUSB1_Init(tTaskSerial *env,
|
|
tFrom_usb from_usb,
|
|
tSerialPortIO *ioUSB1,
|
|
tTaskSerialToCanCyclic *TaskSerialToCanCyclic0,
|
|
tTaskSerialToCanCyclic *TaskSerialToCanCyclic1,
|
|
tTaskSerialToCanSpontany *TaskSerialToCanSpontany
|
|
);
|
|
|
|
void TaskSerialUSB1_StartThread(tTaskSerial *env);
|
|
|
|
void TaskSerialUSB2_Init(tTaskSerial *env,
|
|
tFrom_usb from_usb,
|
|
tSerialPortIO *ioUSB2,
|
|
tTaskSerialToCanCyclic *TaskSerialToCanCyclic0,
|
|
tTaskSerialToCanCyclic *TaskSerialToCanCyclic1,
|
|
tTaskSerialToCanSpontany *TaskSerialToCanSpontany
|
|
|
|
);
|
|
|
|
void TaskSerialUSB2_StartThread(tTaskSerial *env);
|
|
|
|
|
|
void TaskSerialToCanCyclic0_Init(tTaskSerialToCanCyclic *env,
|
|
tSerialPortFrameIO *ioCAN
|
|
);
|
|
|
|
void TaskSerialToCanCyclic0_StartThread(tTaskSerialToCanCyclic *env);
|
|
|
|
|
|
void TaskSerialToCanCyclic1_Init(tTaskSerialToCanCyclic *env,
|
|
tSerialPortFrameIO *ioCAN);
|
|
|
|
void TaskSerialToCanCyclic1_StartThread(tTaskSerialToCanCyclic *env);
|
|
|
|
void TaskSerialToCanSpontany_Init(tTaskSerialToCanSpontany *env,
|
|
tSerialPortFrameIO *ioCAN,
|
|
tSerialPortIO *ioUSB1,
|
|
tSerialPortIO *ioUSB2
|
|
|
|
);
|
|
|
|
void TaskSerialToCanSpontany_StartThread(tTaskSerialToCanSpontany *env);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Task_RECEIVED_SerialUSB1_Init(tTaskReceivedSerial *env,
|
|
tSerialPortFrameIO *ioCAN,
|
|
tFrom_usb from_usb1,
|
|
tSerialPortIO *ioUSB1);
|
|
|
|
void Task_RECEIVED_SerialUSB1_StartThread(tTaskReceivedSerial *env);
|
|
|
|
|
|
|
|
void Task_RECEIVED_SerialUSB2_Init(tTaskReceivedSerial *env,
|
|
tSerialPortFrameIO *ioCAN,
|
|
tFrom_usb from_usb2,
|
|
tSerialPortIO *ioUSB2);
|
|
|
|
void Task_RECEIVED_SerialUSB2_StartThread(tTaskReceivedSerial *env);
|
|
|
|
|
|
|
|
|
|
|
|
#endif //HVAC_DEV_ARBITERCOMMAND_H
|