rs232.h
上传用户:gelin96
上传日期:2017-01-08
资源大小:20993k
文件大小:2k
源码类别:

MTK

开发平台:

C++ Builder

  1. #ifndef _RS232_H_
  2. #define _RS232_H_
  3. //=============================================================================
  4. #include "windows.h"
  5. //-----------------------------------------------
  6. #define THREAD_BUFSIZE  4096        // thread buffer size
  7. #define UART_BUFSIZE    (4096+1024)
  8. #define UART_WRAPPOS    (4096)
  9. //-----------------------------------------------
  10. class CRS232
  11. {
  12. public:
  13. // for Thread management
  14. /*
  15.    HANDLE      m_hThreadOrg;
  16.    HANDLE      m_hThread;
  17.    UINT8       ThreadBuffer[ THREAD_BUFSIZE ];
  18. */
  19. public:
  20.    bool        m_bConnected;
  21.    int         m_PortNo;
  22.    HANDLE      m_hPort;
  23.    OVERLAPPED  m_osRead,m_osWrite;
  24. // for UART RX buffer management
  25.    UINT8   RXBuf[UART_BUFSIZE];
  26.    UINT16  pos_read;
  27.    UINT16  pos_write;
  28.    UINT16  pos_wrap;
  29. // For debug logging
  30.    bool    LogEnable;
  31.    char    LogString[8196];
  32.    char   *LogStrPtr;
  33. public:
  34.    CRS232( void );
  35.    ~CRS232(  );
  36.    int  PutData2Buf( void *data, int len);  // for debug simulation
  37.    int  ReadUartData(void);
  38. //public:
  39. /*
  40.   port_no      = 1~99 (COM1~CM99);
  41.   baudrate     = 9600L, 57600L, 115200L, 230400L, 460800L, 921600L
  42.   data_bit     = 4~8
  43.   stop_bit     = 0(1bit), 1(1.5bit), 2(2bit)
  44.   parity       = 0(no),1(odd),2(even),3(mark),4(space)
  45.   ena_dts_rts  = 0(disable), 1(enable)
  46.   ena_rts_cts  = 0(disable), 1(enable)
  47.   ena_xon_xoff = 0(disable), 1(enable)
  48. */
  49.    bool  Open( int port_no=1, long baudrate=115200, int data_bit=8,
  50.               int stop_bit=0, int parity=0, int ena_dts_rts=0, int ena_rts_cts=0, int ena_xon_xoff=0);
  51.    bool Close( void );
  52.    int  SendData( void *buf, int len );
  53.    int  ReadData( void *buf, int maxlen );
  54.    bool IsConnected( void );
  55.    bool IsRxDataReady( void );
  56.    void LogRXQposition(void);
  57. };
  58. //=============================================================================
  59. #endif