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

📄 vcthread.h

📁 提供串口通讯参数设置接口
💻 H
字号:
///////////////////////////////////////////////////////////////
// 文件: vcthread.h
// 功能: 读写线程头文件
// 作者: 王念峰
// 日期: 1999.05.15 - 修改,整理
// E_mai:wnf@wisepeak.com
// Http://www.wisepeak.com
///////////////////////////////////////////////////////////////
// 版本: 1.0
///////////////////////////////////////////////////////////////
// 注:由于涉及串口通讯,要求系统必须同时响应串口事件和用户输入,
//    所以该处使用多线程来实现
///////////////////////////////////////////////////////////////

#include "ApexCommCtl.h"

//定义读写线程类
class TReadThread : public CWinThread //读线程
{
   DECLARE_DYNAMIC(TReadThread)
public:
   TReadThread();
   virtual BOOL InitInstance();
public:
	HWND m_handlemsg;
   HANDLE m_hCommFile;//读设备句柄
   HANDLE m_hCloseEvent;//关闭消息句柄
   //读线程类提供的方法
   bool SetupCommEvent( OVERLAPPED* lpOverlappedCommEvent,DWORD & lpfdwEvtMask);
   bool SetupReadEvent( OVERLAPPED* lpOverlappedRead,LPSTR lpszInputBuffer,DWORD dwSizeofBuffer,DWORD & lpnNumberOfBytesRead);
   bool HandleCommEvent(OVERLAPPED* POverlapped,DWORD & lpfdwEvtMask, bool fRetrieveEvent);
   bool HandleReadEvent( OVERLAPPED* lpOverlappedRead,LPSTR lpszInputBuffer, DWORD dwSizeofBuffer,DWORD & lpnNumberOfBytesRead);
   bool HandleReadData(LPCSTR lpszInputBuffer,DWORD dwSizeofBuffer);
   bool ReceiveData(LPSTR lpNewString,DWORD dwSizeofNewString);
   bool ReceiveError(DWORD EvtMask);
   void PostHangupCall();
};

//写线程
class TWriteThread: public CWinThread
{
   DECLARE_DYNAMIC(TWriteThread)
public:
   TWriteThread();   
   virtual BOOL InitInstance();
protected:
   bool HandleWriteData(OVERLAPPED* lpOverlappedWrite,LPSTR pDataToWrite, DWORD dwNumberOfBytesToWrite);
public:
	HWND m_handlemsg;
   HANDLE m_hCommFile;//读设备句柄
   HANDLE m_hCloseEvent;//关闭消息句柄
   bool m_pbSendDataEmpty;
   void PostHangupCall();
};

⌨️ 快捷键说明

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