QlightRead package | ESS final project 1.22-beta
|
00001 00002 #ifndef _POSIX_QEXTSERIALPORT_H_ 00003 #define _POSIX_QEXTSERIALPORT_H_ 00004 00005 #include <stdio.h> 00006 #include <termios.h> 00007 #include <errno.h> 00008 #include <unistd.h> 00009 #include <sys/time.h> 00010 #include <sys/ioctl.h> 00011 #include <sys/select.h> 00012 #include "qextserialbase.h" 00013 00014 class Posix_QextSerialPort:public QextSerialBase { 00015 public: 00016 Posix_QextSerialPort(); 00017 Posix_QextSerialPort(const Posix_QextSerialPort& s); 00018 Posix_QextSerialPort(const QString & name); 00019 Posix_QextSerialPort(const PortSettings& settings); 00020 Posix_QextSerialPort(const QString & name, const PortSettings& settings); 00021 Posix_QextSerialPort& operator=(const Posix_QextSerialPort& s); 00022 virtual ~Posix_QextSerialPort(); 00023 00024 virtual void setBaudRate(BaudRateType); 00025 virtual void setDataBits(DataBitsType); 00026 virtual void setParity(ParityType); 00027 virtual void setStopBits(StopBitsType); 00028 virtual void setFlowControl(FlowType); 00029 virtual void setTimeout(ulong, ulong); 00030 00031 virtual bool open(OpenMode mode=0); 00032 virtual void close(); 00033 virtual void flush(); 00034 00035 virtual qint64 size() const; 00036 virtual qint64 bytesAvailable(); 00037 00038 virtual void ungetChar(char c); 00039 00040 virtual void translateError(ulong error); 00041 00042 virtual void setDtr(bool set=true); 00043 virtual void setRts(bool set=true); 00044 virtual ulong lineStatus(); 00045 00046 protected: 00047 QFile* Posix_File; 00048 struct termios Posix_CommConfig; 00049 struct timeval Posix_Timeout; 00050 struct timeval Posix_Copy_Timeout; 00051 00052 virtual qint64 readData(char * data, qint64 maxSize); 00053 virtual qint64 writeData(const char * data, qint64 maxSize); 00054 }; 00055 00056 #endif