⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialport.h

📁 解开压缩包
💻 H
字号:
//默认设置
#define CPSP_HWSET_DFTDATABITS           8   //串口默认数据位
#define CPSP_HWSET_DFTSTOPBITS  ONESTOPBIT   //串口默认停止位
#define CPSP_HWSET_DFTPARITY      NOPARITY   //串口默认校验位
#define CPSP_HWSET_DFTINTERVTMOUT        0   //串口默认字节接收间隔
#define CPSP_HWSET_DFTBUFSIZE         1024   //串口默认缓冲区
//接收缓冲区
#define CPSP_MAXBUFSIZE_RECV    64   //串口最大接收缓冲区大小
//串口超时
#define CPSP_TIMEOUT_RECV      600   //串口接收超时时间




/*** 串口接收缓冲区 ***/
struct CpSpCycBufRecv
{
    UCHAR ucarrBuf[CPSP_MAXBUFSIZE_RECV];
    int   iBufSize;
    int   iWrtPt;
    int   iRdPt;
};






//串口接收线程
UINT ThdCpSpReceiving(LPVOID pParam);


class SerialPort  
{
public:
    CpSpCycBufRecv  mstcCycBufSpRecv;   //接收循环缓冲区,用于数据帧和应答帧的接收,不用信号量同步
    //
    BOOL   mbRcvEnable;        //接收允许,用于控制线程结束
    HANDLE mhEvtThdCpSpRecv;   //串口占用事件,用于控制线程结束


    SerialPort();
	virtual ~SerialPort();

    BOOL Open(LPCTSTR lpstrName,
              DWORD dwBaudRate=CPSP_HWSET_DFTBAUDRATE,
              UCHAR ucDataBits=CPSP_HWSET_DFTDATABITS,
              UCHAR ucStopBits=CPSP_HWSET_DFTSTOPBITS,
              UCHAR ucParity=CPSP_HWSET_DFTPARITY,
              DWORD dwRdIntervTmout=CPSP_HWSET_DFTINTERVTMOUT,
              DWORD dwBufSize=CPSP_HWSET_DFTBUFSIZE);
    void Close(void);
    BOOL StartReceive(void);
    BOOL Send(UCHAR ucarrBuf[], DWORD dwSndLn, LPDWORD pdwSndLnAct=NULL);
    BOOL Receive(UCHAR ucarrBuf[], DWORD dwRcvLn, LPDWORD pdwRcvLnAct=NULL);
    BOOL IsOpen(void);

private:
	HANDLE mhCom;
    //以下变量用户串口接收
    OVERLAPPED  mstcOvLpRecv;
    UCHAR*      mpucBufRecv;      //串口接收缓冲区
    DWORD       mdwWaitRecvRslt;  //等待接收事件的结果
    DWORD       mdwRecvLen;       //接收数据长度
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -