00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PORT_HH
00021 #define PORT_HH
00022
00023 #include <string>
00024 #include <sstream>
00025
00034 class Port
00035 {
00036 public:
00037 enum Error
00038 {
00039 Ok = 0,
00040 SyntaxError,
00041 PermissionDenied,
00042 NoSuchPort,
00043 ConfigError,
00044 OpenError,
00045 WriteError,
00046 ReadError,
00047 UnknownBaudRate,
00048 UnknownNumberOfBits,
00049 UnknownParity,
00050 UnknownStopBits,
00051 NoData,
00052 BadFileDescriptor,
00053 BadAddress,
00054 Interrupted,
00055 Invalid,
00056 IOError,
00057 IsDirectory,
00058 UnknownError
00059 };
00060
00062 Port();
00064 virtual ~Port();
00065
00074 virtual Error open( const std::string & config )=0;
00077 virtual Error close()=0;
00082 virtual Error writeByte( int byte ) const;
00087 virtual Error readByte( int *byte ) const;
00093 virtual Error writeString( const char *string, ssize_t len ) const;
00099 virtual Error readString( char *string, ssize_t len ) const;
00105 static const char *errorString( Error err );
00106
00107 protected:
00108 int m_handle;
00109
00113 Error errnoValue() const;
00114
00115 };
00116
00117 #endif // PORT_HH