|
plptools
|
Thread-safe class responsible for managing the underlying serial device and data link framing. More...
#include <datalink.h>

Public Member Functions | |
| DataLink (const char *fname, int baud, Link *_link, unsigned short verbose, const int cancellationFd) | |
| ~DataLink () | |
| void | send (BufferStore &b, bool isEPOC) |
| Send a buffer out to serial line. More... | |
| int | getSpeed () |
| bool | linkFailed () |
| void | reset () |
Private Member Functions | |
| void | addToCrc (unsigned char a, unsigned short *crc) |
| bool | processInputData (std::vector< BufferStore > &receivedData) |
| Reads the incoming data and processes data frames. More... | |
| void | sendReceivedData (std::vector< BufferStore > &receivedData) |
| void | shutdown () |
| Store a flag that we're shutting down and signal any waiting send calls. More... | |
| void | internalReset (bool resetBaudRateIndex) |
Private Attributes | |
| pthread_t | dataPumpThreadId_ |
| unsigned int | crc_table [256] |
| std::mutex | serialMutex_ |
| int | fd |
| int | serialStatus = -1 |
| int | baudRateIndex_ = 0 |
| int | baudRate_ |
| bool | lastFatal = false |
| std::mutex | inputMutex_ |
| bool | esc = false |
| bool | justStarted = true |
| BufferStore | rcv |
| int | startPkt = -1 |
| int | lastSYN = -1 |
| unsigned short | crcIn = 0 |
| unsigned short | inCRCstate |
| unsigned short | receivedCRC |
| unsigned char * | inBuffer |
| int | inWrite = 0 |
| int | inRead = 0 |
| std::mutex | outputMutex_ |
| bool | isCancelled_ = false |
| unsigned char * | outBuffer |
| int | outWrite = 0 |
| int | outRead = 0 |
| std::condition_variable | outputCondition_ |
| Link *const | link_ |
| const std::string | devname |
| const int | requestedBaudRate_ |
| Requested baud rate; -1 indicates automatic. More... | |
| const int | cancellationFd_ |
| Used to signal cancellation. More... | |
| const short int | verbose_ |
Friends | |
| void * | data_pump_thread (void *) |
Thread-safe class responsible for managing the underlying serial device and data link framing.
Definition at line 43 of file datalink.h.
| DataLink::DataLink | ( | const char * | fname, |
| int | baud, | ||
| Link * | _link, | ||
| unsigned short | verbose, | ||
| const int | cancellationFd | ||
| ) |
Definition at line 218 of file datalink.cc.
| DataLink::~DataLink | ( | ) |
Definition at line 260 of file datalink.cc.
|
inlineprivate |
Definition at line 70 of file datalink.h.
| int DataLink::getSpeed | ( | ) |
Definition at line 333 of file datalink.cc.
|
private |
Definition at line 291 of file datalink.cc.
| bool DataLink::linkFailed | ( | ) |
Definition at line 534 of file datalink.cc.
|
private |
Reads the incoming data and processes data frames.
Definition at line 407 of file datalink.cc.
| void DataLink::reset | ( | ) |
Definition at line 280 of file datalink.cc.
| void DataLink::send | ( | BufferStore & | b, |
| bool | isEPOC | ||
| ) |
Send a buffer out to serial line.
This blocks until there's enough space in the output buffer to write the whole message atomically (to ensure messages can't get interleaved), suspending the current thread until signaled by the data pump thread if there's insufficient space.
Drops messages on the floor when shutting down.
| b | buffer to send |
| isEPOC | flag indicating if additional EPOC32 byte-stuffing should be used |
Definition at line 338 of file datalink.cc.
|
private |
Definition at line 528 of file datalink.cc.
|
private |
Store a flag that we're shutting down and signal any waiting send calls.
Definition at line 284 of file datalink.cc.
|
friend |
Definition at line 84 of file datalink.cc.
|
private |
Definition at line 110 of file datalink.h.
|
private |
Definition at line 109 of file datalink.h.
|
private |
|
private |
Definition at line 92 of file datalink.h.
|
private |
Definition at line 121 of file datalink.h.
|
private |
Definition at line 90 of file datalink.h.
|
private |
Definition at line 140 of file datalink.h.
|
private |
Definition at line 116 of file datalink.h.
|
private |
Definition at line 107 of file datalink.h.
|
private |
Definition at line 124 of file datalink.h.
|
private |
Definition at line 122 of file datalink.h.
|
private |
Definition at line 115 of file datalink.h.
|
private |
Definition at line 124 of file datalink.h.
|
private |
Definition at line 124 of file datalink.h.
|
private |
Definition at line 129 of file datalink.h.
|
private |
Definition at line 117 of file datalink.h.
|
private |
Definition at line 111 of file datalink.h.
|
private |
Definition at line 120 of file datalink.h.
|
private |
Definition at line 138 of file datalink.h.
|
private |
Definition at line 130 of file datalink.h.
|
private |
Definition at line 134 of file datalink.h.
|
private |
Definition at line 128 of file datalink.h.
|
private |
Definition at line 130 of file datalink.h.
|
private |
Definition at line 130 of file datalink.h.
|
private |
Definition at line 118 of file datalink.h.
|
private |
Definition at line 123 of file datalink.h.
|
private |
Requested baud rate; -1 indicates automatic.
Definition at line 145 of file datalink.h.
|
private |
Definition at line 106 of file datalink.h.
|
private |
Definition at line 108 of file datalink.h.
|
private |
Definition at line 119 of file datalink.h.
|
private |
Definition at line 153 of file datalink.h.