|
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, bool noDSRCheck, 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) |
| void | signalPumpThread () |
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 |
| bool | noDSRCheck_ = false |
| 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_ |
| int | outputDataReadyPipe_ [2] = { -1, -1 } |
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, | ||
| bool | noDSRCheck, | ||
| unsigned short | verbose, | ||
| const int | cancellationFd | ||
| ) |
Definition at line 219 of file datalink.cc.
| DataLink::~DataLink | ( | ) |
Definition at line 265 of file datalink.cc.
|
inlineprivate |
Definition at line 70 of file datalink.h.
| int DataLink::getSpeed | ( | ) |
Definition at line 348 of file datalink.cc.
|
private |
Definition at line 301 of file datalink.cc.
| bool DataLink::linkFailed | ( | ) |
Definition at line 549 of file datalink.cc.
|
private |
Reads the incoming data and processes data frames.
Definition at line 422 of file datalink.cc.
| void DataLink::reset | ( | ) |
Definition at line 290 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 353 of file datalink.cc.
|
private |
Definition at line 543 of file datalink.cc.
|
private |
Store a flag that we're shutting down and signal any waiting send calls.
Definition at line 294 of file datalink.cc.
|
private |
Definition at line 343 of file datalink.cc.
|
friend |
Definition at line 77 of file datalink.cc.
|
private |
Definition at line 112 of file datalink.h.
|
private |
Definition at line 111 of file datalink.h.
|
private |
|
private |
Definition at line 94 of file datalink.h.
|
private |
Definition at line 123 of file datalink.h.
|
private |
Definition at line 92 of file datalink.h.
|
private |
Definition at line 143 of file datalink.h.
|
private |
Definition at line 118 of file datalink.h.
|
private |
Definition at line 109 of file datalink.h.
|
private |
Definition at line 126 of file datalink.h.
|
private |
Definition at line 124 of file datalink.h.
|
private |
Definition at line 117 of file datalink.h.
|
private |
Definition at line 126 of file datalink.h.
|
private |
Definition at line 126 of file datalink.h.
|
private |
Definition at line 131 of file datalink.h.
|
private |
Definition at line 119 of file datalink.h.
|
private |
Definition at line 113 of file datalink.h.
|
private |
Definition at line 122 of file datalink.h.
|
private |
Definition at line 141 of file datalink.h.
|
private |
Definition at line 133 of file datalink.h.
|
private |
Definition at line 132 of file datalink.h.
|
private |
Definition at line 137 of file datalink.h.
|
private |
Definition at line 158 of file datalink.h.
|
private |
Definition at line 130 of file datalink.h.
|
private |
Definition at line 132 of file datalink.h.
|
private |
Definition at line 132 of file datalink.h.
|
private |
Definition at line 120 of file datalink.h.
|
private |
Definition at line 125 of file datalink.h.
|
private |
Requested baud rate; -1 indicates automatic.
Definition at line 148 of file datalink.h.
|
private |
Definition at line 108 of file datalink.h.
|
private |
Definition at line 110 of file datalink.h.
|
private |
Definition at line 121 of file datalink.h.
|
private |
Definition at line 156 of file datalink.h.