CESeries.h
上传用户:zhqmouse
上传日期:2022-05-26
资源大小:47k
文件大小:1k
源码类别:

GPS编程

开发平台:

Visual C++

  1. /*-----------------------------------------
  2. *
  3. * 文件名称: CESeries.h
  4. * 文件标识: 
  5. * 摘要:用于封装WINCE 串口通讯
  6. *
  7. ----------------------------------------*/
  8. #pragma once
  9. //定义串口接收数据函数类型
  10. typedef void (CALLBACK* ONSERIESREAD)(void * pOwner /*父对象指针*/
  11.   ,BYTE* buf  /*接收到的缓冲区*/
  12.   ,DWORD dwBufLen /*接收到的缓冲区长度*/);
  13. class CCESeries
  14. {
  15. public:
  16. CCESeries(void);
  17. ~CCESeries(void);
  18. public:
  19. //打开串口
  20. BOOL OpenPort(void* pOwner,/*指向父指针*/
  21.   UINT portNo = 1, /*串口号*/
  22.   UINT baud = 4800, /*波特率*/
  23.   UINT parity = NOPARITY, /*奇偶校验*/
  24.   UINT databits = 8, /*数据位*/
  25.   UINT stopbits = 0        /*停止位*/
  26.   );
  27. //关闭串口
  28. void ClosePort();
  29. //同步写入数据
  30. BOOL WriteSyncPort(const BYTE*buf , DWORD bufLen);
  31. //设置串口读取、写入超时
  32. BOOL SetSeriesTimeouts(COMMTIMEOUTS CommTimeOuts);
  33. //得到串口是否打开
  34. BOOL GetComOpened();
  35. private:
  36.     //串口读线程函数
  37.     static  DWORD WINAPI ReadThreadFunc(LPVOID lparam);
  38. private:
  39. //关闭读线程
  40. void CloseReadThread();
  41. private:
  42.     //已打开的串口句柄
  43. HANDLE m_hComm;
  44. //读线程句柄
  45. HANDLE m_hReadThread;
  46. //读线程ID标识
  47. DWORD m_dwReadThreadID;
  48. //读线程退出事件
  49. HANDLE m_hReadCloseEvent;
  50. BOOL m_bOpened; //串口是否打开
  51. void * m_pOwner; //指定父对象指针
  52. public:
  53. ONSERIESREAD m_OnSeriesRead; //串口读取回调函数
  54. };