CESeries.h
上传用户:jhjyl123
上传日期:2016-03-29
资源大小:51k
文件大小:2k
源码类别:

Windows Mobile

开发平台:

Visual C++

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