81 typedef enum {
OK = 0,
94 Logger& logger,
size_t bufferSize = 1,
bool blocking =
false );
131 return readUntil( buf, num, (
const char* )&match, 1, flushUntil );
137 UartStream&
readUntil(
char* buf,
size_t num,
const char* match,
unsigned int matchLen,
bool flushUntil =
false );
142 UartStream&
readUntil(
char* buf,
size_t num,
const unsigned char* match,
unsigned int matchLen,
bool flushUntil =
false );
148 size_t canReadUntil(
const char* match,
int matchLen = 0,
int maxCheck = 0 );
151 size_t canReadUntil(
const unsigned char* match,
int matchLen = 0,
int maxCheck = 0 );
Client-side interface for injecting log data into the log queue.
Definition: Logger.h:30
Definition: UartStream.h:43
Definition: UartStream.h:88
char pushedChar_
Definition: UartStream.h:238
virtual bool eof()
Indicates if the end of file has been reached.
Definition: UartStream.h:189
void enableUART(void)
Definition: UartStream.cpp:936
Definition: UartStream.h:59
Definition: UartStream.h:58
static const speed_t BaudToSpeed(Baudrate baud)
Definition: UartStream.cpp:1267
Definition: UartStream.h:63
This is a rather abstract class that can be implemented by classes that want to send and receive stre...
Definition: IOStream.h:30
void initializePort(UartStream::UartId)
Definition: UartStream.cpp:438
virtual bool isReadable()
indicates whether the stream can actually be read from.
Definition: UartStream.h:194
size_t canReadUntil(const unsigned char match)
Definition: UartStream.cpp:256
UartStream & readLine(char *buf, size_t bufsize)
Fills buffer until: buffer size is exceeded, CR, LF, or ETX character is received, or the serial timeout has expired.
Definition: UartStream.h:116
virtual bool isWritable()
indicates whether the stream can actually be written to.
Definition: UartStream.h:199
Definition: UartStream.h:40
Definition: UartStream.h:82
Definition: UartStream.h:57
static Str LookupFilename(const ConfigURI &uartCfg, Logger &logger)
Definition: UartStream.cpp:1315
Logger logger_
Definition: UartStream.h:237
Definition: UartStream.h:77
UartStream::Baudrate defaultBaudrate_
Definition: UartStream.h:232
UartStream::UartError lastError_
Definition: UartStream.h:236
size_t bufferSize_
Definition: UartStream.h:240
Baudrate
Baudrates as per termios.
Definition: UartStream.h:31
UartStream & close()
Definition: UartStream.cpp:225
void disableUART(void)
Definition: UartStream.cpp:981
Definition: UartStream.h:44
UartStream & open()
Definition: UartStream.h:105
static Baudrate LookupBaudrate(const ConfigURI &baudCfg, Logger &logger)
Definition: UartStream.cpp:1322
int bufferPos_
Definition: UartStream.h:241
Definition: UartStream.h:89
Definition: UartStream.h:69
const char * getName()
Returns uart name.
Definition: UartStream.h:100
void waitForBufferEmpty()
Definition: UartStream.cpp:339
Definition: UartStream.h:86
void setDebug(bool debugOn)
Definition: UartStream.h:212
Definition: UartStream.h:33
UartStream::UartError getError()
Definition: UartStream.h:177
UartId
UARTS.
Definition: UartStream.h:54
Timespan class, represents a delta of time.
Definition: Timestamp.h:248
const char * uartIdToString(UartId uart)
Definition: UartStream.cpp:1185
OutStream & write(const char *data, size_t length=0xFFFFFFFF)
If length is unspecified, strlen is used to determine the length.
Definition: UartStream.cpp:199
bool blocking_
Definition: UartStream.h:242
UartStream & readUntil(char *buf, size_t num, const unsigned char match, bool flushUntil=false)
Definition: UartStream.h:129
Definition: UartStream.h:62
Definition: UartStream.h:36
Implements both InStream and OutStream for the LPC3XXX Standard UART.
Definition: UartStream.h:26
Definition: UartStream.h:54
UartStream & setStartTimeout(const double timeout)
Definition: UartStream.h:163
Contains the IOStream and NullIOStream class declarations.
void serGetChar(unsigned char *c, int *success, const Timespan &timeout=Timespan::INVALID_TIMESPAN)
Definition: UartStream.cpp:857
Definition: UartStream.h:55
Definition: ElementURI.h:166
This is a very abstract class that can be implemented by classes that want to receive stream input...
Definition: InStream.h:29
Definition: UartStream.h:39
bool hasError()
Definition: UartStream.h:182
static UartId DeviceToUART(const Str &name)
Definition: UartStream.cpp:1083
Definition: UartStream.h:87
Definition: UartStream.h:61
Str filename_
Definition: UartStream.h:230
Definition: UartStream.h:42
Definition: UartStream.h:37
Definition: UartStream.h:71
UartStream & resetStartTimeout()
Definition: UartStream.h:169
Definition: UartStream.h:74
Definition: UartStream.h:48
Timespan betweenTimeout_
Definition: UartStream.h:235
Definition: UartStream.h:72
Timespan startTimeout_
Definition: UartStream.h:233
Replacement for standard template class string.
Definition: Str.h:12
UartStream & flush(int num=-1)
Flushes any characters out of the buffer until there are no more characters, or if num is positive...
Definition: UartStream.cpp:791
Definition: UartStream.h:66
Definition: UartStream.h:65
UartStream & openAtBaudrate(UartStream::Baudrate baud)
Definition: UartStream.cpp:114
UartError
UART Errors.
Definition: UartStream.h:81
Contains the ElementURI class definition.
Definition: UartStream.h:76
Definition: UartStream.h:56
Definition: UartStream.h:84
void fillInBuffer()
Definition: UartStream.cpp:909
Contains the Logger class definition.
Definition: UartStream.h:47
Definition: UartStream.h:60
Definition: UartStream.h:85
Definition: UartStream.h:83
Definition: UartStream.h:34
size_t dataAvailable()
Definition: UartStream.cpp:236
Definition: UartStream.h:64
InStream & read(char *buf, size_t num)
reads num bytes from stream to the buffer
Definition: UartStream.cpp:573
Definition: UartStream.h:70
Definition: UartStream.h:38
Definition: UartStream.h:31
Definition: UartStream.h:73
Definition: UartStream.h:41
This is a very abstract class that can be implemented by classes that want to send stream output...
Definition: OutStream.h:41
UartStream & flushCRLF()
Flushes CR and LF characters out of the buffer until there are no more characters.
Definition: UartStream.cpp:829
Contains the Timestamp and Timespan class declarations.
Timespan defaultStartTimeout_
Definition: UartStream.h:234
~UartStream()
Destructor.
Definition: UartStream.cpp:102
Definition: UartStream.h:68
char * pushedChars_
Definition: UartStream.h:239
UartId uartId_
Definition: UartStream.h:231
Definition: UartStream.h:67
Definition: UartStream.h:35
const char * uartToDevice(UartId uart)
Definition: UartStream.cpp:1026
Definition: UartStream.h:45
UartStream & readLines(char *buf, size_t bufsize, size_t lines)
Fills buffer with given number of lines (CR/LF) until buffer size is exceeded or timeout has expired ...
Definition: UartStream.cpp:507
Definition: UartStream.h:32
const char * errorString()
Definition: UartStream.cpp:1241
static const Timespan INVALID_TIMESPAN
Constant value to represent an invalid timespan.
Definition: Timestamp.h:252
UartStream(const ConfigURI &uartCfg, const ConfigURI &baudCfg, const double timeoutSec, Logger &logger, size_t bufferSize=1, bool blocking=false)
Constructor.
Definition: UartStream.cpp:72
Definition: UartStream.h:75
Definition: UartStream.h:81
static const Timespan SLEEP_TIME
A 10 millisecond sleep.
Definition: UartStream.h:254
bool debug_
Definition: UartStream.h:243
Definition: UartStream.h:46
size_t dataBuffered()
Definition: UartStream.cpp:246
int serPortFd_
Definition: UartStream.h:229