www.pudn.com > qserial.zip > posix_qextserialport.h
#ifndef _POSIX_QEXTSERIALPORT_H_ #define _POSIX_QEXTSERIALPORT_H_ #include#include #include #include #include #include #include #include "qextserialbase.h" /*ensure handling of CRTSCTS constant*/ #ifdef CNEW_RTSCTS #ifndef CRTSCTS #define CRTSCTS CNEW_RTSCTS #endif //CRTSCTS #else #ifndef CRTSCTS #define CRTSCTS 0 #endif //CRTSCTS #endif //CNEW_RTSCTS //weird scoping issue with gcc 2.95 - this should fix it #ifdef QT_LARGE_FILE_SUPPORT typedef off_t Offset; #else typedef Q_ULONG Offset; #endif class Posix_QextSerialPort:public QextSerialBase { public: Posix_QextSerialPort(); Posix_QextSerialPort(const Posix_QextSerialPort& s); Posix_QextSerialPort(const char* name); Posix_QextSerialPort(const PortSettings& settings); Posix_QextSerialPort(const char* name, const PortSettings& settings); Posix_QextSerialPort& operator=(const Posix_QextSerialPort& s); virtual ~Posix_QextSerialPort(); virtual bool open(int mode=0); virtual void close(); virtual void flush(); virtual Offset size() const; virtual int getch(); virtual int putch(int); virtual int ungetch(int); virtual void setFlowControl(FlowType); virtual void setParity(ParityType); virtual void setDataBits(DataBitsType); virtual void setStopBits(StopBitsType); virtual void setBaudRate(BaudRateType); virtual void setDtr(bool set=true); virtual void setRts(bool set=true); virtual unsigned long lineStatus(void); virtual int bytesWaiting(); virtual void translateError(unsigned long); virtual void setTimeout(unsigned long=0, unsigned long=0); #ifdef QTVER_PRE_30 virtual Q_LONG readBlock(char *data, uint maxlen); virtual Q_LONG writeBlock(const char *data, uint len); #else virtual Q_LONG readBlock(char *data, unsigned long maxlen); virtual Q_LONG writeBlock(const char *data, unsigned long len); #endif protected: struct timeval Posix_Timeout; struct timeval Posix_Copy_Timeout; QFile* Posix_File; struct termios Posix_CommConfig; void construct(void); }; #endif