This is the central interface between ROSaic and the Rx(s), managing I/O operations such as reading messages and sending commands.. More...
#include <async_manager.hpp>
Public Member Functions | |
AsyncManager (ROSaicNodeBase *node, TelegramQueue *telegramQueue) | |
Class constructor. More... | |
void | close () |
bool | connect () |
Connects the stream. More... | |
bool | connected () |
void | send (const std::string &cmd) |
Sends commands to the receiver. More... | |
void | setPort (const std::string &port) |
~AsyncManager () | |
![]() | |
bool | connected () |
virtual | ~AsyncManagerBase () |
Private Member Functions | |
void | readSbf (std::size_t length) |
void | readSbfHeader () |
void | readString () |
void | readStringElements () |
template<uint8_t index> | |
void | readSync () |
void | readUnknown () |
void | receive () |
void | resync () |
void | runIoContext () |
void | runWatchdog () |
void | write (const std::string &cmd) |
Private Attributes | |
std::array< uint8_t, 1 > | buf_ |
bool | connected_ = false |
std::shared_ptr< boost::asio::io_context > | ioContext_ |
IoType | ioInterface_ |
std::thread | ioThread_ |
ROSaicNodeBase * | node_ |
Pointer to the node. More... | |
Timestamp | recvStamp_ |
Timestamp of receiving buffer. More... | |
std::atomic< bool > | running_ |
std::shared_ptr< Telegram > | telegram_ |
Telegram. More... | |
TelegramQueue * | telegramQueue_ |
TelegramQueue. More... | |
std::thread | watchdogThread_ |
This is the central interface between ROSaic and the Rx(s), managing I/O operations such as reading messages and sending commands..
IoType is either boost::asio::serial_port or boost::asio::tcp::ip
Definition at line 111 of file async_manager.hpp.
io::AsyncManager< IoType >::AsyncManager | ( | ROSaicNodeBase * | node, |
TelegramQueue * | telegramQueue | ||
) |
Class constructor.
[in] | node | Pointer to node |
[in] | telegramQueue | Telegram queue |
Definition at line 167 of file async_manager.hpp.
io::AsyncManager< IoType >::~AsyncManager |
Definition at line 176 of file async_manager.hpp.
|
virtual |
Implements io::AsyncManagerBase.
Definition at line 198 of file async_manager.hpp.
|
virtual |
Connects the stream.
Implements io::AsyncManagerBase.
Definition at line 183 of file async_manager.hpp.
bool io::AsyncManager< IoType >::connected |
Definition at line 235 of file async_manager.hpp.
|
private |
Definition at line 543 of file async_manager.hpp.
|
private |
Definition at line 501 of file async_manager.hpp.
|
private |
Definition at line 591 of file async_manager.hpp.
|
private |
Definition at line 599 of file async_manager.hpp.
|
private |
Definition at line 328 of file async_manager.hpp.
|
private |
Definition at line 583 of file async_manager.hpp.
|
private |
Definition at line 241 of file async_manager.hpp.
|
private |
Definition at line 320 of file async_manager.hpp.
|
private |
Definition at line 252 of file async_manager.hpp.
|
private |
Definition at line 260 of file async_manager.hpp.
|
virtual |
Sends commands to the receiver.
Implements io::AsyncManagerBase.
Definition at line 221 of file async_manager.hpp.
void io::AsyncManager< IoType >::setPort | ( | const std::string & | port | ) |
Definition at line 215 of file async_manager.hpp.
|
private |
Definition at line 298 of file async_manager.hpp.
|
private |
Definition at line 157 of file async_manager.hpp.
|
private |
Definition at line 155 of file async_manager.hpp.
|
private |
Definition at line 149 of file async_manager.hpp.
|
private |
Definition at line 150 of file async_manager.hpp.
|
private |
Definition at line 152 of file async_manager.hpp.
|
private |
Pointer to the node.
Definition at line 148 of file async_manager.hpp.
|
private |
Timestamp of receiving buffer.
Definition at line 159 of file async_manager.hpp.
|
private |
Definition at line 151 of file async_manager.hpp.
|
private |
Definition at line 161 of file async_manager.hpp.
|
private |
TelegramQueue.
Definition at line 163 of file async_manager.hpp.
|
private |
Definition at line 153 of file async_manager.hpp.