// Copyright (c) 2004 David Muse // See the COPYING file for more information. #ifndef RUDIMENTS_SERIALPORT_H #define RUDIMENTS_SERIALPORT_H #include <rudiments/private/serialportincludes.h> // like filedescriptor class, but read() returns EOF when a timeout has occurred // also, wraps termios.h functions #ifdef RUDIMENTS_NAMESPACE namespace rudiments { #endif class serialportprivate; class serialport : public filedescriptor { public: serialport(); serialport(const serialport &s); serialport &operator=(const serialport &s); virtual ~serialport(); bool setProfileNow(serialportprofile *profile); // tcsetattr(TCSANOW) bool setProfileOnDrain(serialportprofile *profile); // tcsetattr(TCSADRAIN) bool setProfileOnFlush(serialportprofile *profile); // tcsetattr(TCSAFLUSH) bool getProfile(serialportprofile *profile); // tcgetattr bool drain(); // tcdrain bool flush(); // tcflush(TCIOFLUSH) bool flushInput(); // tcflush(TCIFLUSH) bool flushOutput(); // tcflush(TCOFLUSH) bool suspendOutput(); // tcflow(TCOOFF) bool restartOutput(); // tcflow(TCOON) bool transmitStop(); // tcflow(TCIOFF) bool transmitStart(); // tcflow(TCION) bool sendBreak(int duration); // tcsendbreak() #include <rudiments/private/serialport.h> }; #ifdef RUDIMENTS_NAMESPACE } #endif #endif