32 #include <mrpt/config.h>
44 using namespace mrpt::utils;
68 friend class PosixSignalDispatcherImpl;
75 CSerialPort(
const std::string &portName,
bool openNow =
true );
88 void setSerialPortName(
const std::string &COM_name )
91 m_serialName = COM_name;
102 void open(
const std::string &COM_name)
104 if (isOpen() && m_serialName!=COM_name)
THROW_EXCEPTION(
"Cannot change serial port while open");
107 setSerialPortName(COM_name);
139 bool enableFlowControl=
false);
145 int ReadIntervalTimeout,
146 int ReadTotalTimeoutMultiplier,
147 int ReadTotalTimeoutConstant,
148 int WriteTotalTimeoutMultiplier,
149 int WriteTotalTimeoutConstant );
155 size_t Read(
void *Buffer,
size_t Count);
165 std::string ReadString(
const int total_timeout_ms=-1,
bool *out_timeout =NULL,
const char *eol_chars =
"\r\n");
171 size_t Write(
const void *Buffer,
size_t Count);
186 THROW_EXCEPTION(
"Method not applicable to serial communications port CStream!");
192 uint64_t getTotalBytesCount()
195 THROW_EXCEPTION(
"Method not applicable to serial communications port CStream!");
201 uint64_t getPosition()
204 THROW_EXCEPTION(
"Method not applicable to serial communications port CStream!");
218 #ifdef MRPT_OS_WINDOWS