From f7a18ec4494b9c5c9ef3fd440bbf68ffc6425e18 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期四, 08 十二月 2022 15:40:56 +0800 Subject: [PATCH] 智慧驾培首次提交 --- lib/src/main/cpp/mcu/mcu_if.h | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 38 insertions(+), 8 deletions(-) diff --git a/lib/src/main/cpp/mcu/mcu_if.h b/lib/src/main/cpp/mcu/mcu_if.h index 0ab43ab..d12aa0d 100644 --- a/lib/src/main/cpp/mcu/mcu_if.h +++ b/lib/src/main/cpp/mcu/mcu_if.h @@ -6,17 +6,47 @@ #define RTKDRIVERTEST_MCU_IF_H #include <cstdint> +#include "../common/apptimer.h" +#include "../common/serial_port.h" -void McuCommModeSel(int mode); -void ConfigMCU(bool ayDevice); +enum parse_status_t { + SYNC_HEAD_ONE, + SYNC_HEAD_TWO, + GET_ID_HI, + GET_ID_LO, + GET_LENGTH_HI, + GET_LENGTH_LO, + GET_PAYLOAD, + GET_CRC16_HI, + GET_CRC16_LO +}; + +class ParseUart { +public: + typedef void (*funptr)(uint16_t id, const uint8_t *data, int length); + ParseUart(funptr fun); + ~ParseUart(); + + struct { + uint16_t id; + uint16_t length; + uint16_t rx_len; + uint8_t *buffer; + uint16_t crc16; + } McuPkt; + + parse_status_t parse_status; + uint32_t sync_time = 0; + funptr fun = nullptr; + void ParseMcu(const uint8_t *data, int length); +}; + + + void SendRtkToMcu(const uint8_t *data, int length); -void ParseMcuInit(void); -void ParseMcu(const uint8_t *data, int length); -void SendMcuCommand(uint16_t id, const uint8_t *data, int length); +void SendMcuCommand(SerialPort *pClass, pSerialPortClassFun fun, uint16_t id, const uint8_t *data, int length); -void UploadDfuFileEnd(void); -void UploadDfuFile(const uint8_t *file, int length); void ReadCard(void); -void ShutdownInd(int timeout); + #endif //RTKDRIVERTEST_MCU_IF_H -- Gitblit v1.8.0