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

📄 cserialport.h

📁 cserialport.h很好用的串口通信编成头文件
💻 H
字号:
CSerialPort.h   
    
  **   
  ** CREATION   DATE 15-09-1997   
  ** LAST   MODIFICATION 12-11-1997   
  **   
  ** AUTHOR Remon   Spekreijse   
  **   
  **   
  */   
    
  #ifndef   __SERIALPORT_H__   
  #define   __SERIALPORT_H__   
    
  #define   WM_COMM_BREAK_DETECTED WM_USER+1 //   A   break   was   detected   on   input.   
  #define   WM_COMM_CTS_DETECTED WM_USER+2 //   The   CTS   (clear-to-send)   signal   changed   state.     
  #define   WM_COMM_DSR_DETECTED WM_USER+3 //   The   DSR   (data-set-ready)   signal   changed   state.     
  #define   WM_COMM_ERR_DETECTED WM_USER+4 //   A   line-status   error   occurred.   Line-status   errors   are   CE_FRAME,   CE_OVERRUN,   and   CE_RXPARITY.     
  #define   WM_COMM_RING_DETECTED WM_USER+5 //   A   ring   indicator   was   detected.     
  #define   WM_COMM_RLSD_DETECTED WM_USER+6 //   The   RLSD   (receive-line-signal-detect)   signal   changed   state.     
  #define   WM_COMM_RXCHAR WM_USER+7 //   A   character   was   received   and   placed   in   the   input   buffer.     
  #define   WM_COMM_RXFLAG_DETECTED WM_USER+8 //   The   event   character   was   received   and   placed   in   the   input   buffer.       
  #define   WM_COMM_TXEMPTY_DETECTED WM_USER+9 //   The   last   character   in   the   output   buffer   was   sent.       
    
  class   CSerialPort   
  {     
  public:   
  //   contruction   and   destruction   
  CSerialPort();   
  virtual ~CSerialPort();   
    
  //   port   initialisation   
  BOOL InitPort(CWnd*   pPortOwner,   UINT   portnr   =   1,   UINT   baud   =   19200,   char   parity   =   'N',   UINT   databits   =   8,   UINT   stopsbits   =   1,   DWORD   dwCommEvents   =   EV_RXCHAR   |   EV_CTS,   UINT   nBufferSize   =   512);   
    
  //   start/stop   comm   watching   
  BOOL StartMonitoring();   
  BOOL RestartMonitoring();   
  BOOL StopMonitoring();   
    
  DWORD GetWriteBufferSize();   
  DWORD GetCommEvents();   
  DCB GetDCB();   
    
  void WriteToPort(char*   string);   
    
  protected:   
  //   protected   memberfunctions   
  void ProcessErrorMessage(char*   ErrorText);   
  static   UINT CommThread(LPVOID   pParam);   
  static   void ReceiveChar(CSerialPort*   port,   COMSTAT   comstat);   
  static   void WriteChar(CSerialPort*   port);   
    
  //   thread   
  CWinThread* m_Thread;   
    
  //   synchronisation   objects   
  CRITICAL_SECTION m_csCommunicationSync;   
  BOOL m_bThreadAlive;   
    
  //   handles   
  HANDLE m_hShutdownEvent;   
  HANDLE m_hComm;   
  HANDLE m_hWriteEvent;   
    
  //   Event   array.     
  //   One   element   is   used   for   each   event.   There   are   two   event   handles   for   each   port.   
  //   A   Write   event   and   a   receive   character   event   which   is   located   in   the   overlapped   structure   (m_ov.hEvent).   
  //   There   is   a   general   shutdown   when   the   port   is   closed.     
  HANDLE m_hEventArray[3];   
    
  //   structures   
  OVERLAPPED m_ov;   
  COMMTIMEOUTS m_CommTimeouts;   
  DCB m_dcb;   
    
  //   owner   window   
  CWnd* m_pOwner;   
    
  //   misc   
  UINT m_nPortNr;   
  char* m_szWriteBuffer;   
  DWORD m_dwCommEvents;   
  DWORD m_nWriteBufferSize;   
  };   
    
  #endif   __SERIALPORT_H__  

⌨️ 快捷键说明

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