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/common/serial_port.h | 30 ++++++++++++++++++++---------- 1 files changed, 20 insertions(+), 10 deletions(-) diff --git a/lib/src/main/cpp/common/serial_port.h b/lib/src/main/cpp/common/serial_port.h index e20f27c..762f0a7 100644 --- a/lib/src/main/cpp/common/serial_port.h +++ b/lib/src/main/cpp/common/serial_port.h @@ -6,12 +6,10 @@ #define JNICALLBACK_SERIAL_PORT_H #include <stdint.h> - -#define UART_0 0 -#define UART_1 1 +#include <mutex> struct serial_config { - char name[32]; + char name[64]; int baud; int data_bit; char verify_bit; @@ -19,12 +17,24 @@ int flow_ctrl; }; -int InitSerialPort(int id, int baud, int dataBits, char parity, int stopBits, int flowctrl); -void UninitSerialPort(int id); +class SerialPort { +private: + int fd = -1; + std::mutex mtx; + struct serial_config cfg; + int setRTS(int level); + int SetSerialPort(int fd, int speed, int databits, char parity, int stopbits, int flowctrl); + int OpenSerialPort(const char *name); + void CloseSerialPort(int fd); + void UninitSerialPort(void); +public: + SerialPort(struct serial_config cfg); + virtual ~SerialPort(); + int InitSerialPort(void); + int WriteSerialPort(const void *buf, int len); + int ReadSerialPort(uint8_t *out, uint16_t length); +}; -int GetSerialPort(int id); -int ReadSerialPort(int id, uint8_t *out, uint16_t length); -int WriteSerialPort(int id, const void *buf, int len); -int setRTS(int fd, int level); +typedef int (SerialPort::*pSerialPortClassFun)(const void *buf, int len); #endif //JNICALLBACK_SERIAL_PORT_H -- Gitblit v1.8.0