代码拉取完成,页面将自动刷新
同步操作将从 wanghanlin/串口通讯 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#ifndef CSERIALPORT_H
#define CSERIALPORT_H
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <mutex>
#include <process.h>
#include <Windows.h>
using namespace std;
class CSerialPort
{
public:
CSerialPort();
~CSerialPort();
public:
BOOL OpenComm(int id);
BOOL SetCommState(int id, DWORD dwBaudrate, BYTE byParity, BYTE byByteSize, BYTE byStopBits);
BOOL SetupComm(int id, DWORD dwInQueue, DWORD dwOutQueue);
BOOL PurgeComm(int id, DWORD dwFlags);
BOOL SetCommMask(int id, DWORD dwEvtNask);
// BOOL WriteFile(
// IN LPCVOID lpBuffer, // 写入的数据存储的地址:即以该指针的值为首地址的nNumberOfBytesToWrite个字节的数据将要写入
// //串口的发送数据缓冲区。
// IN DWORD nNumberOfBytesToWrite, //要写入的数据的字节数
// OUT LPDWORD lpNumberOfBytesWritten,// 指向指向一个DWORD数值,该数值返回实际写入的字节数
// IN LPOVERLAPPED lpOverlapped// 重叠操作时,该参数指向一个OVERLAPPED结构;同步操作时,该参数为NULL。
// );
BOOL WriteFile(int id, string strsend);
BOOL ReadFile(int id,
OUT LPVOID lpBuffer,// 读入的数据存储的地址:即读入的数据将存储在以该指针的值为首地址的一片内存区
IN DWORD nNumberOfBytesToRead, // 要读入的数据的字节数
OUT LPDWORD lpNumberOfBytesRead,// 指向一个DWORD数值,该数值返回读操作实际读入的字节数
IN LPOVERLAPPED lpOverlapped// 重叠操作时,该参数指向一个OVERLAPPED结构,同步操作时,该参数为NULL
);
BOOL ClearCommError(int id, OUT LPDWORD lpError, OUT LPCOMSTAT lpStat);
BOOL GetOverlappedResult( int id,
IN LPOVERLAPPED lpOverlapped,//指向重叠操作开始时指定的OVERLAPPED结构
OUT LPDWORD lpNumberOfBytesTransferred,//指向一个32位变量,该变量的值返回实际读写操作传输的字节数。
IN BOOL bWait// 该参数用于指定函数是否一直等到重叠操作结束:如果该参数为TRUE,函数直到操作结束才返回;
//如果该参数为FALSE,函数直接返回,这时如果操作没有完成,通过调用GetLastError()函数会
//返回ERROR_IO_INCOMPLETE。
);
void CloseComm(int id);
string Hex2Ascii(string& hexStr);
string str2Hexstr(string &str) ;
public:
void StartComm(int id);
void StopComm(int id);
void ReceivedClear(int id);
void ReceivedPush(int id, string str);
string ReceivedPop(int id);
int ReceivedSize(int id);
public:
HANDLE m_hComm[5];
bool m_startComm;
private:
vector<string> m_Received[5];
mutex m_mutex[5];
};
#endif // MAINWINDOW_H
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。