www.pudn.com > faxsource.rar > COMM.HPP


#if !defined(__COMM_HPP__) 
#define __COMM_HPP__ 
#include "commtype.hpp" 
class Comm_config{ 
		 public: 
		 short com_num; 
		 short speed_num; 
		 short parity; 
		 short data; 
		 short stop; 
		 short flowctl; 
		 long  in_bufferSize; 
		 long  out_bufferSize; 
}; 
 
class Comm 
    { 
		OVERLAPPED WaitOS; 
		WORD   m_ibuf,m_obuf; 
		BOOL WriteCommBlock(LPSTR lpByte , DWORD dwBytesToWrite); 
		public: 
		HANDLE portHandle; 
		//HANDLE ThreadHandle,WaitSignal,CommSignal; 
		BOOL   m_bExitFlags; 
		//static DWORD WINAPI WaitCommThread(void *); 
		BOOL   init_comm; 
		char   message_buffer[80]; 
		char   message_count; 
		int    m_nBusyCount; 
		char  *m_ReadBuf,*m_PutBuf; 
	    private: 
		int   i_count,m_nEndbuf,m_nPtr; 
		DWORD  CommRead(char *c,DWORD ReadBytes); 
		BOOL   PreRead(); 
		public: 
 
	    Comm(short port,short irq,long rate, 
		    short lineControl,		//   line control setting 
		    short flowControl = 1,                   //   flow control flag 
		    WORD si = 1024,                //   input queue size 
		    WORD so = 1024);               //   and output queue size 
		~Comm(); 
		WORD   Read(char *c); 
		DWORD  Read(char *c,DWORD ReadBytes); 
		BOOL   Write(short c); 
		BOOL   Write(char *s); 
		BOOL   Write(void *s,DWORD dwBytes); 
		WORD OCount(); 
		WORD ICount(); 
		WORD OFree(); 
		WORD IFree(); 
		short  IEmpty(void);                  // rtn TRUE if input queue 
		short  OEmpty(void);                  // ..or output queue empty 
		long   GetSpeed(void);                // rtn current speed in bps 
		void   SetSpeed(long d);               // set up port's divisor 
		void   SetBPS(long d);               // set up port's divisor 
		void   IClear(void);                  // clear input queue 
		void   OClear(void);                  // ..and output queue 
		void   DTR(long t = 1500L); 
		BOOL   WaitForComm(DWORD Timer); 
		void   SignalComm(); 
		int    terminal_display(char *pRetStr=0); 
		BOOL   WaitComm(DWORD Timer=0); 
		void   Purge(long to); 
}; 
 
extern const short   comport_data[4][2]; 
extern const long    speed_data[]; 
extern const char    *string_command[8]; 
int check_string_command(char *message); 
#endif