nim_duilib/examples/proto_debuger/serial_port.h

74 lines
1.5 KiB
C
Raw Normal View History

2021-09-20 22:37:32 +08:00
#pragma once
#include <iostream>
2021-09-20 23:46:15 +08:00
#include <map>
2021-09-20 22:37:32 +08:00
using namespace std;
2021-09-22 00:01:02 +08:00
typedef struct{
wstring name;
2022-01-27 00:42:33 +08:00
UINT port_num;
2021-09-22 00:01:02 +08:00
uint32_t baurate;
uint8_t data_bits;
uint8_t stop_bits;
uint8_t verify;
uint8_t flow_control;
}UartInfo;
2021-10-11 00:00:10 +08:00
typedef struct {
wstring ip;
uint32_t port;
uint32_t socket_fd;
}TcpClientInfo;
2021-12-30 11:29:04 +08:00
typedef struct {
wstring ip;
uint32_t port;
uint32_t socket_fd;
}TcpServerInfo;
2021-09-20 22:37:32 +08:00
class SerialPort
{
public:
SerialPort();
~SerialPort();
2021-09-20 23:46:15 +08:00
private:
2021-09-20 22:37:32 +08:00
2021-09-20 23:46:15 +08:00
//ʹ<><CAB9>CreateFile<6C>򿪴<EFBFBD><F2BFAAB4>ڣ<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
static HANDLE OpenPort(UINT PortNo = 1);
2021-09-20 22:37:32 +08:00
2021-09-20 23:46:15 +08:00
public:
//ͨ<><CDA8><EFBFBD><EFBFBD>ѯע<D1AF><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>ȡϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ָ<EFBFBD>򴮿<EFBFBD><F2B4AEBF>б<EFBFBD>
static UINT GetPortNum(UINT** PortList);
2021-09-20 22:37:32 +08:00
2021-09-20 23:46:15 +08:00
//<2F><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
static UINT GetByte(UINT PortNo);
2021-09-20 22:37:32 +08:00
2021-09-20 23:46:15 +08:00
//<2F>ر<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>mapɾ<70><C9BE>
static void ClosePort(UINT PortNo);
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>
static void ClearAllPort();
//<2F><>ʼ<EFBFBD><CABC>ָ<EFBFBD><D6B8><EFBFBD>˿ڣ<CBBF><DAA3>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>map
static int InitPort(UINT PortNo, UINT Baud = 9600, byte Parity = 0, byte Data = 8, byte Stop = 0); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>ָ<EFBFBD><D6B8><EFBFBD>˿ڶ<CBBF>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ʾ<EFBFBD><CABE>ȡ<EFBFBD><C8A1>bytes<65><73>
static int ReadPort(UINT PortNo, char* P_recved, int length);
//<2F><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>д<EFBFBD><D0B4>
static int WritePort(UINT PortNo, const char* pData, int length = 0);
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
static int PortState(UINT PortNo);
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD>
static void ClearCom(UINT PortNo);
//ָ<><D6B8><EFBFBD>˿<EFBFBD>RTS<54>źż<C5BA><C5BC><EFBFBD><E2A3AC><EFBFBD>ڽ<EFBFBD>̤<EFBFBD><CCA4><EFBFBD><EFBFBD><EFBFBD>źŴ<C5BA><C5B4><EFBFBD><EFBFBD><EFBFBD>
static int CheckRTS(UINT PortNo);
public:
//static UINT PortNum; //<2F><><EFBFBD>ڶ˿ں<CBBF>
static map<int, HANDLE> ComMap;
2021-09-20 22:37:32 +08:00
};