| 1 |  | 
|---|
| 2 | /*! | 
|---|
| 3 | \class QextSerialPort | 
|---|
| 4 | \version 1.0.0 | 
|---|
| 5 | \author Stefan Sander | 
|---|
| 6 |  | 
|---|
| 7 | A cross-platform serial port class. | 
|---|
| 8 | This class encapsulates a serial port on both POSIX and Windows systems.  The user will be | 
|---|
| 9 | notified of errors and possible portability conflicts at run-time by default - this behavior can | 
|---|
| 10 | be turned off by defining _TTY_NOWARN_ (to turn off all warnings) or _TTY_NOWARN_PORT_ (to turn | 
|---|
| 11 | off portability warnings) in the project. | 
|---|
| 12 |  | 
|---|
| 13 | \note | 
|---|
| 14 | On Windows NT/2000/XP this class uses Win32 serial port functions by default.  The user may | 
|---|
| 15 | select POSIX behavior under NT, 2000, or XP ONLY by defining _TTY_POSIX_ in the project. I can | 
|---|
| 16 | make no guarantees as to the quality of POSIX support under NT/2000 however. | 
|---|
| 17 |  | 
|---|
| 18 | */ | 
|---|
| 19 |  | 
|---|
| 20 | #include <stdio.h> | 
|---|
| 21 | #include "qextserialport.h" | 
|---|
| 22 |  | 
|---|
| 23 | /*! | 
|---|
| 24 | \fn QextSerialPort::QextSerialPort() | 
|---|
| 25 | Default constructor.  Note that the naming convention used by a QextSerialPort constructed with | 
|---|
| 26 | this constructor will be determined by #defined constants, or lack thereof - the default behavior | 
|---|
| 27 | is the same as _TTY_LINUX_.  Possible naming conventions and their associated constants are: | 
|---|
| 28 |  | 
|---|
| 29 | \verbatim | 
|---|
| 30 |  | 
|---|
| 31 | Constant         Used By         Naming Convention | 
|---|
| 32 | ----------       -------------   ------------------------ | 
|---|
| 33 | _TTY_WIN_        Windows         COM1, COM2 | 
|---|
| 34 | _TTY_IRIX_       SGI/IRIX        /dev/ttyf1, /dev/ttyf2 | 
|---|
| 35 | _TTY_HPUX_       HP-UX           /dev/tty1p0, /dev/tty2p0 | 
|---|
| 36 | _TTY_SUN_        SunOS/Solaris   /dev/ttya, /dev/ttyb | 
|---|
| 37 | _TTY_DIGITAL_    Digital UNIX    /dev/tty01, /dev/tty02 | 
|---|
| 38 | _TTY_FREEBSD_    FreeBSD         /dev/ttyd0, /dev/ttyd1 | 
|---|
| 39 | _TTY_LINUX_      Linux           /dev/ttyS0, /dev/ttyS1 | 
|---|
| 40 | <none>           Linux           /dev/ttyS0, /dev/ttyS1 | 
|---|
| 41 | \endverbatim | 
|---|
| 42 |  | 
|---|
| 43 | The object will be associated with the first port in the system, e.g. COM1 on Windows systems. | 
|---|
| 44 | See the other constructors if you need to use a port other than the first. | 
|---|
| 45 | */ | 
|---|
| 46 | QextSerialPort::QextSerialPort() | 
|---|
| 47 | : QextBaseType() | 
|---|
| 48 | {} | 
|---|
| 49 |  | 
|---|
| 50 | /*! | 
|---|
| 51 | \fn QextSerialPort::QextSerialPort(const QString & name) | 
|---|
| 52 | Constructs a serial port attached to the port specified by name. | 
|---|
| 53 | name is the name of the device, which is windowsystem-specific, | 
|---|
| 54 | e.g."COM1" or "/dev/ttyS0". | 
|---|
| 55 | */ | 
|---|
| 56 | QextSerialPort::QextSerialPort(const QString & name) | 
|---|
| 57 | : QextBaseType(name) | 
|---|
| 58 | {} | 
|---|
| 59 |  | 
|---|
| 60 | /*! | 
|---|
| 61 | \fn QextSerialPort::QextSerialPort(PortSettings const& settings) | 
|---|
| 62 | Constructs a port with default name and settings specified by the settings parameter. | 
|---|
| 63 | */ | 
|---|
| 64 | QextSerialPort::QextSerialPort(PortSettings const& settings) | 
|---|
| 65 | : QextBaseType(settings) | 
|---|
| 66 | {} | 
|---|
| 67 |  | 
|---|
| 68 | /*! | 
|---|
| 69 | \fn QextSerialPort::QextSerialPort(const QString & name, PortSettings const& settings) | 
|---|
| 70 | Constructs a port with the name and settings specified. | 
|---|
| 71 | */ | 
|---|
| 72 | QextSerialPort::QextSerialPort(const QString & name, PortSettings const& settings) | 
|---|
| 73 | : QextBaseType(name, settings) | 
|---|
| 74 | {} | 
|---|
| 75 |  | 
|---|
| 76 | /*! | 
|---|
| 77 | \fn QextSerialPort::QextSerialPort(const QextSerialPort& s) | 
|---|
| 78 | Copy constructor. | 
|---|
| 79 | */ | 
|---|
| 80 | QextSerialPort::QextSerialPort(const QextSerialPort& s) | 
|---|
| 81 | : QextBaseType(s) | 
|---|
| 82 | {} | 
|---|
| 83 |  | 
|---|
| 84 | /*! | 
|---|
| 85 | \fn QextSerialPort& QextSerialPort::operator=(const QextSerialPort& s) | 
|---|
| 86 | Overrides the = operator. | 
|---|
| 87 | */ | 
|---|
| 88 | QextSerialPort& QextSerialPort::operator=(const QextSerialPort& s) | 
|---|
| 89 | { | 
|---|
| 90 | return (QextSerialPort&)QextBaseType::operator=(s); | 
|---|
| 91 | } | 
|---|
| 92 |  | 
|---|
| 93 | /*! | 
|---|
| 94 | \fn QextSerialPort::~QextSerialPort() | 
|---|
| 95 | Standard destructor. | 
|---|
| 96 | */ | 
|---|
| 97 | QextSerialPort::~QextSerialPort() | 
|---|
| 98 | {} | 
|---|