Go to the documentation of this file.
62 #include <boost/asio.hpp>
63 #include <boost/asio/serial_port.hpp>
87 1200, 2400, 4800, 9600, 19200, 38400, 57600,
88 115200, 230400, 460800, 500000, 576000, 921600, 1000000,
89 1152000, 1500000, 2000000, 2500000, 3000000, 3500000, 4000000};
151 void send(
const std::string&);
void resetSettings()
Resets Rx settings.
const static uint32_t BAUDRATES[]
Possible baudrates for the Rx.
Implements asynchronous operations for an I/O manager.
std::unique_ptr< AsyncManager< TcpIo > > tcpClient_
void configureRx()
Configures Rx: Which SBF/NMEA messages it should output and later correction settings.
void sendVelocity(const std::string &velNmea)
Hands over NMEA velocity message over to the send() method of manager_.
This class is the base class for abstraction.
std::thread processingThread_
Processing thread.
const Settings * settings_
Settings.
std::string mainConnectionPort_
Main communication port.
CommunicationCore(ROSaicNodeBase *node)
Constructor of the class CommunicationCore.
ROSaicNodeBase * node_
Pointer to Node.
std::unique_ptr< UdpClient > udpClient_
void send(const std::string &)
Hands over to the send() method of manager_.
Handles messages when reading NMEA/SBF/response/error/connection descriptor messages.
bool initializeIo()
Initializes the I/O handling.
void connect()
Connects the data stream.
Handles communication with and configuration of the mosaic (and beyond) receiver(s)
TelegramQueue telegramQueue_
TelegramQueue.
Represents ensemble of (to be constructed) ROS messages, to be handled at once by this class.
std::atomic< bool > running_
Indicator for threads to run.
std::string resetMainConnection()
Reset main connection so it can receive commands.
~CommunicationCore()
Default destructor of the class CommunicationCore.
std::unique_ptr< AsyncManagerBase > manager_
TelegramHandler telegramHandler_
TelegramHandler.
bool initializedIo_
Whether connecting was successful.