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
|
|
|
|
|
{
|
|
|
|
|
|
2021-09-20 23:46:15 +08:00
|
|
|
|
|
2021-09-20 22:37:32 +08:00
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|