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