|
@@ -0,0 +1,34 @@
|
|
|
|
+
|
|
|
|
+#ifndef _SERIALPORT_H
|
|
|
|
+#define _SERIALPORT_H
|
|
|
|
+
|
|
|
|
+class SerialPort
|
|
|
|
+{
|
|
|
|
+public:
|
|
|
|
+ SerialPort();
|
|
|
|
+ ~SerialPort();
|
|
|
|
+
|
|
|
|
+ // 打开串口,成功返回true,失败返回false
|
|
|
|
+ // portname(串口名): 在Windows下是"COM1""COM2"等,在Linux下是"/dev/ttyS1"等
|
|
|
|
+ // baudrate(波特率): 9600、19200、38400、43000、56000、57600、115200
|
|
|
|
+ // parity(校验位): 0为无校验,1为奇校验,2为偶校验,3为标记校验(仅适用于windows)
|
|
|
|
+ // databit(数据位): 4-8(windows),5-8(linux),通常为8位
|
|
|
|
+ // stopbit(停止位): 1为1位停止位,2为2位停止位,3为1.5位停止位
|
|
|
|
+ // synchronizeflag(同步、异步,仅适用与windows): 0为异步,1为同步
|
|
|
|
+ bool open(const char* portname, int baudrate, char parity, char databit, char stopbit, char synchronizeflag=1);
|
|
|
|
+
|
|
|
|
+ //关闭串口,参数待定
|
|
|
|
+ void close();
|
|
|
|
+
|
|
|
|
+ //发送数据或写数据,成功返回发送数据长度,失败返回0
|
|
|
|
+ int send(const void *buf,int len);
|
|
|
|
+
|
|
|
|
+ //接受数据或读数据,成功返回读取实际数据的长度,失败返回0
|
|
|
|
+ int receive(void *buf,int maxlen);
|
|
|
|
+
|
|
|
|
+private:
|
|
|
|
+ int pHandle[16];
|
|
|
|
+ char synchronizeflag;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+#endif
|