Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
Nmea0183CommunicationController.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_COMMS_NMEA_NMEA0183COMMUNICATIONCONTROLLER_HPP_
2#define IV_SRC_COMMS_NMEA_NMEA0183COMMUNICATIONCONTROLLER_HPP_
3
6#include "structs.hpp"
7
8#include <memory>
9
10namespace iv::comms::nmea0183
11{
12
14 public std::enable_shared_from_this<Nmea0183CommunicationController>
15{
17
18public:
19 explicit Nmea0183CommunicationController(const std::shared_ptr<ICommunicationDriver> &driver,
20 const std::shared_ptr<iv::model::comms::NetworkData> &networkData);
21
25
28
29private:
30 void addChannel(const std::shared_ptr<iv::channels::AbstractChannel> &channel) override;
31 void initialize() override;
32 bool frame() override;
33
34 void processSimpleHeader(const std::shared_ptr<Nmea0183CommunicationProtocol> &protocol,
35 const iv::types::comms::nmea0183::nmeaHeader &channelHeader,
36 const std::vector<NmeaChannelBinding> &channels);
37
38 void processCompoundHeader(const std::shared_ptr<Nmea0183CommunicationProtocol> &protocol,
39 const iv::types::comms::nmea0183::nmeaHeader &channelHeader,
40 const std::vector<NmeaChannelBinding> &channels);
41
42 std::map<iv::types::comms::nmea0183::nmeaHeader, std::vector<NmeaChannelBinding>> m_channelBindings;
45};
46
47}// namespace iv::comms::nmea0183
48
49#endif//IV_SRC_COMMS_NMEA_NMEA0183COMMUNICATIONCONTROLLER_HPP_
Definition ICommunicationController.hpp:23
Definition Nmea0183CommunicationController.cpp:12
Definition Nmea0183CommunicationController.hpp:15
bool frame() override
This function is called periodically to handle the nmea0183 communication. It reads nmea0183 messages...
Definition Nmea0183CommunicationController.cpp:95
void processSimpleHeader(const std::shared_ptr< Nmea0183CommunicationProtocol > &protocol, const iv::types::comms::nmea0183::nmeaHeader &channelHeader, const std::vector< NmeaChannelBinding > &channels)
Definition Nmea0183CommunicationController.cpp:170
Nmea0183CommunicationController(const Nmea0183CommunicationController &other)=delete
void initialize() override
This function creates the nmea0183 protocol and start the comms thread.
Definition Nmea0183CommunicationController.cpp:73
iv::model::comms::nmea0183::Settings m_nmeaSettings
Definition Nmea0183CommunicationController.hpp:43
Nmea0183CommunicationController & operator=(const Nmea0183CommunicationController &other)=delete
void addChannel(const std::shared_ptr< iv::channels::AbstractChannel > &channel) override
add channel to the communication and reads to wich header and field it's assigned
Definition Nmea0183CommunicationController.cpp:53
Nmea0183CommunicationController(const std::shared_ptr< ICommunicationDriver > &driver, const std::shared_ptr< iv::model::comms::NetworkData > &networkData)
Definition Nmea0183CommunicationController.cpp:33
void processCompoundHeader(const std::shared_ptr< Nmea0183CommunicationProtocol > &protocol, const iv::types::comms::nmea0183::nmeaHeader &channelHeader, const std::vector< NmeaChannelBinding > &channels)
Definition Nmea0183CommunicationController.cpp:211
std::map< iv::types::comms::nmea0183::nmeaHeader, std::vector< NmeaChannelBinding > > m_channelBindings
Definition Nmea0183CommunicationController.hpp:42
iv::types::timestamp m_lastFrameTime
Definition Nmea0183CommunicationController.hpp:44
Nmea0183CommunicationController(Nmea0183CommunicationController &&other)=delete
Nmea0183CommunicationController & operator=(const Nmea0183CommunicationController &&other)=delete
Definition enums.hpp:5
std::string nmeaHeader
Definition defines.hpp:47
uint64_t timestamp
Definition types.hpp:21
Definition Nmea0183Settings.hpp:11