10#ifndef GBXSERIALACFR_SERIAL_H
11#define GBXSERIALACFR_SERIAL_H
14#include <gbxserialacfr/uncopyable.h>
15#include <gbxserialacfr/lockfile/lockfile.h>
27 : message_(message) {}
29 : message_(message) {}
31 virtual const char* what()
const throw() {
return message_.c_str(); }
48 Timeout(
int s,
int us )
61 Serial(
const std::string &dev,
65 bool useLockFile =
true );
82 const Timeout &
timeout()
const {
return timeout_; }
87 int read(
void *buf,
int count);
128 int write(
const void *buf,
int count);
159 WaitStatus waitForDataOrTimeout(
void);
162 void open(
int flags=0);
165 void close() throw();
167 bool timeoutsEnabled()
const
168 {
return !( timeout_.sec == 0 && timeout_.usec == 0 ); }
170 const std::string dev_;
177 lockfile::LockFile *lockFile_;
Exception thrown by Serial.
Definition serial.h:23
Encapsulates a serial port.
Definition serial.h:44
int readStringUntil(std::string &str, char termchar)
Definition serial.cpp:650
int fileDescriptor()
This gives direct access to the file descriptor: be careful with this...
Definition serial.h:145
const Timeout & timeout() const
Definition serial.h:82
int read(void *buf, int count)
Definition serial.cpp:585
int readLine(std::string &str)
Definition serial.h:115
std::string getStatusString()
Print some diagnostic information about the current status of the port to cout.
Definition serial.cpp:794
void flush()
Definition serial.cpp:825
void setTimeout(const Timeout &timeout)
Definition serial.cpp:410
void setBaudRate(int baud)
Sets the baud rate. Flushes any data.
Definition serial.cpp:455
int readFull(void *buf, int count)
Definition serial.cpp:612
int write(const void *buf, int count)
Writes some data. Returns the number of bytes written.
Definition serial.cpp:849
~Serial()
Destructor closes serial port.
Definition serial.cpp:403
void drain()
Finishes transmission from output buffers and drains input buffers.
Definition serial.cpp:837
int writeString(const char *buf)
Definition serial.cpp:757
int bytesAvailable()
Returns the number of bytes available for reading (non-blocking).
Definition serial.cpp:704
int bytesAvailableWait()
Definition serial.cpp:719
void setDebugLevel(int debugLevel)
Debug messages are printed to stdout. debugLevel should be in the range [0,3].
Definition serial.h:71
Simple serial port interface.
Definition gbxnovatelacfr/driver.h:21