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

📄 win16.h

📁 DOS下采用中断接收数据的串口通讯的例子,很难找到的好东西!
💻 H
字号:
// ******************** START OF WIN16.H ********************
//
//
// This file contains the definitions and declarations
// necessary to use the Win16Port class.

#ifndef _WIN16_DOT_H
#define _WIN16_DOT_H

#include "rs232.h"
#include "_8250.h"

// New error codes defined for the Win16Port class.

enum Win16PortError {
        WINDOWS_PORT_DEFAULT_PARAMETERS = RS232_NEXT_FREE_ERROR,
        WINDOWS_PORT_NOT_OPEN,
        WINDOWS_PORT_ALREADY_OPEN,
        WINDOWS_PORT_HANDSHAKE_LINE_IN_USE,
        WINDOWS_PORT_NEXT_FREE_ERROR,
        WINDOWS_PORT_NEXT_FREE_WARNING = RS232_NEXT_FREE_WARNING };

// The Win16Port class declaration looks similar to most of the
// other classes.  It has nearly complete support for all of the
// virtual functions in the RS232 class.

class Win16Port : public RS232
{
    private :
        int first_debug_output_line;
        int handle;
        int line_status;
        char FAR * modem_status_register;
        DCB saved_dcb;
        DCB dcb;
        void read_settings( void );
        RS232Error write_settings( void );
        RS232Error translate_windows_error( int error );
        virtual int read_buffer( char *buffer,
                                 unsigned int count );
        virtual int write_buffer( char *buffer,
                                  unsigned int count = -1 );
        virtual int read_byte( void );
        virtual int write_byte( int c );

    public :
        Win16Port( enum RS232PortName port_name,
                   long baud_rate = UNCHANGED,
                   char parity = UNCHANGED,
                   int word_length = UNCHANGED,
                   int stop_bits = UNCHANGED,
                   int dtr = SET,
                   int rts = SET,
                   int xon_xoff = DISABLE,
                   int rts_cts = DISABLE,
                   int dtr_dsr = DISABLE );
        virtual ~Win16Port( void );
        virtual RS232Error Set( long baud_rate = UNCHANGED,
                                int parity = UNCHANGED,
                                int word_length = UNCHANGED,
                                int stop_bits = UNCHANGED );
        virtual int TXSpaceFree( void );
        virtual int RXSpaceUsed( void );
        virtual int Break( long milliseconds = 300 );
        virtual int SoftwareOverrunError( int clear = UNCHANGED );
        virtual int Cd( void );
        virtual int Ri( void );
        virtual int Cts( void );
        virtual int Dsr( void );
        virtual int ParityError( int clear = UNCHANGED );
        virtual int BreakDetect( int clear = UNCHANGED );
        virtual int FramingError( int clear = UNCHANGED );
        virtual int HardwareOverrunError( int clear = UNCHANGED );
        virtual int XonXoffHandshaking( int setting = UNCHANGED );
        virtual int RtsCtsHandshaking( int setting = UNCHANGED );
        virtual int DtrDsrHandshaking( int setting = UNCHANGED );
        virtual int Dtr( int setting = UNCHANGED );
        virtual int Rts( int setting = UNCHANGED );
        virtual int RXSpaceFree( void );
        virtual int TXSpaceUsed( void );
        virtual int FlushRXBuffer( void );
        virtual int FlushTXBuffer( void );
        virtual char * ErrorName( int error );
        virtual int FormatDebugOutput( char *buffer = 0,
                                       int line_number = -1 );
};

#endif // #ifndef _WIN16_DOT_H

// ******************** END OF WIN16.H ********************

⌨️ 快捷键说明

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