// // DIGI.H // // Source code from: // // Serial Communications: A C++ Developer's Guide, 2nd Edition // by Mark Nelson, IDG Books, 1999 // // Please see the book for information on usage. // // This header file has the definitions and prototypes needed // to use the Digiboard classes. #ifndef _DIGI_DOT_H #define _DIGI_DOT_H #include #include "rs232.h" // A few type definitions used with this class. enum DigiBoardError { DIGIBOARD_DRIVER_NOT_FOUND = RS232_NEXT_FREE_ERROR, DIGIBOARD_NEXT_FREE_ERROR, DIGIBOARD_NEXT_FREE_WARNING = RS232_NEXT_FREE_WARNING }; class DigiBoard : public RS232 { private : int line_status; int first_debug_output_line; void read_settings( void ); RS232Error write_settings( void ); int valid_port( void ); 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 : DigiBoard( 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 ~DigiBoard( 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 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 PeekBuffer( void *buffer, unsigned int count ); 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 _DIGI_DOT_H // ************************ END OF DIGI.H ***********************