00001 #ifndef _POSIX_QEXTSERIALPORT_H_
00002 #define _POSIX_QEXTSERIALPORT_H_
00003
00004 #include <stdio.h>
00005 #include <termios.h>
00006 #include <errno.h>
00007 #include <unistd.h>
00008 #include <sys/time.h>
00009 #include <sys/ioctl.h>
00010 #include <sys/select.h>
00011 #include "qextserialbase.h"
00012
00013
00014 #ifdef CNEW_RTSCTS
00015 #ifndef CRTSCTS
00016 #define CRTSCTS CNEW_RTSCTS
00017 #endif //CRTSCTS
00018 #else
00019 #ifndef CRTSCTS
00020 #define CRTSCTS 0
00021 #endif //CRTSCTS
00022 #endif //CNEW_RTSCTS
00023
00024
00025 #ifdef QT_LARGE_FILE_SUPPORT
00026 typedef off_t Offset;
00027 #else
00028 typedef Q_ULONG Offset;
00029 #endif
00030
00031 class Posix_QextSerialPort:public QextSerialBase {
00032 public:
00033 Posix_QextSerialPort();
00034 Posix_QextSerialPort(const Posix_QextSerialPort& s);
00035 Posix_QextSerialPort(const char* name);
00036 Posix_QextSerialPort(const PortSettings& settings);
00037 Posix_QextSerialPort(const char* name, const PortSettings& settings);
00038 Posix_QextSerialPort& operator=(const Posix_QextSerialPort& s);
00039 virtual ~Posix_QextSerialPort();
00040 virtual bool open(int mode=0);
00041 virtual void close();
00042 virtual void flush();
00043 virtual Offset size() const;
00044 virtual int getch();
00045 virtual int putch(int);
00046 virtual int ungetch(int);
00047 virtual void setFlowControl(FlowType);
00048 virtual void setParity(ParityType);
00049 virtual void setDataBits(DataBitsType);
00050 virtual void setStopBits(StopBitsType);
00051 virtual void setBaudRate(BaudRateType);
00052 virtual void setDtr(bool set=true);
00053 virtual void setRts(bool set=true);
00054 virtual unsigned long lineStatus(void);
00055 virtual int bytesWaiting();
00056 virtual void translateError(unsigned long);
00057 virtual void setTimeout(unsigned long=0, unsigned long=0);
00058
00059 #ifdef QTVER_PRE_30
00060 virtual Q_LONG readBlock(char *data, uint maxlen);
00061 virtual Q_LONG writeBlock(const char *data, uint len);
00062 #else
00063 virtual Q_LONG readBlock(char *data, unsigned long maxlen);
00064 virtual Q_LONG writeBlock(const char *data, unsigned long len);
00065 #endif
00066
00067 protected:
00068 struct timeval Posix_Timeout;
00069 struct timeval Posix_Copy_Timeout;
00070 QFile* Posix_File;
00071 struct termios Posix_CommConfig;
00072 void construct(void);
00073 };
00074
00075 #endif