Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
Nmea0183CommunicationProtocol.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_COMMS_NMEA_NMEA0183COMMUNICATIONPROTOCOL_HPP_
2#define IV_SRC_COMMS_NMEA_NMEA0183COMMUNICATIONPROTOCOL_HPP_
3
8
10{
11
13{
14public:
17 const std::shared_ptr<iv::comms::ICommunicationDriver> &driver,
19 const std::weak_ptr<iv::diamar::AppFailuresLoggerManager> &appFailuresLoggerManager,
20 iv::types::networkId &networkId);
23 ~Nmea0183CommunicationProtocol() override = default;
24
27
28 [[nodiscard]] bool isOnline() override
29 {
30 return m_driver->isOnline();
31 }
32
33 bool read();
34
35 std::vector<NmeaMessage> &getNmeaMessagesQueue()
36 {
38 }
39
40 std::optional<std::vector<std::string>> getNmeaDataFromHeader(const iv::types::comms::nmea0183::nmeaHeader &header);
43
44private:
46
47 std::map<iv::types::comms::nmea0183::nmeaHeader, std::optional<std::vector<std::string>>> m_storedNmeaData;
48 std::vector<NmeaMessage> m_nmeaMessagesQueue;
49
52
53 std::weak_ptr<iv::diamar::AppFailuresLoggerManager> m_appFailuresLoggerManager;
54};
55
56}// namespace iv::comms::nmea0183
57
58#endif//IV_SRC_COMMS_NMEA_NMEA0183COMMUNICATIONPROTOCOL_HPP_
Definition ICommunicationProtocol.hpp:12
std::shared_ptr< iv::comms::ICommunicationDriver > m_driver
Definition ICommunicationProtocol.hpp:29
Definition Nmea0183CommunicationProtocol.hpp:13
void storeNmeaMessage(iv::comms::nmea0183::NmeaMessage message)
Stores a nmea message.
Definition Nmea0183CommunicationProtocol.cpp:130
bool isOnline() override
Definition Nmea0183CommunicationProtocol.hpp:28
Nmea0183CommunicationProtocol & operator=(const Nmea0183CommunicationProtocol &other)=delete
std::map< iv::types::comms::nmea0183::nmeaHeader, std::optional< std::vector< std::string > > > m_storedNmeaData
Definition Nmea0183CommunicationProtocol.hpp:47
bool read()
Reads the nmea messages from the serial port and stores them.
Definition Nmea0183CommunicationProtocol.cpp:23
Nmea0183CommunicationProtocol & operator=(Nmea0183CommunicationProtocol &&other)=delete
std::weak_ptr< iv::diamar::AppFailuresLoggerManager > m_appFailuresLoggerManager
Definition Nmea0183CommunicationProtocol.hpp:53
std::vector< NmeaMessage > & getNmeaMessagesQueue()
Definition Nmea0183CommunicationProtocol.hpp:35
iv::model::comms::nmea0183::Settings m_nmeaSettings
Definition Nmea0183CommunicationProtocol.hpp:50
Nmea0183CommunicationProtocol(Nmea0183CommunicationProtocol &&other)=delete
iv::types::networkId m_networkId
Definition Nmea0183CommunicationProtocol.hpp:51
std::optional< std::vector< std::string > > getNmeaDataFromHeader(const iv::types::comms::nmea0183::nmeaHeader &header)
Get the stored nmea messages that begin with a given header.
Definition Nmea0183CommunicationProtocol.cpp:90
void emptyStoredNmeaData()
Empties all the stored nmea messages independently of the header.
Definition Nmea0183CommunicationProtocol.cpp:120
Nmea0183CommunicationProtocol(const Nmea0183CommunicationProtocol &other)=delete
bool hasNmeaDataFromHeader(const iv::types::comms::nmea0183::nmeaHeader &header)
Definition Nmea0183CommunicationProtocol.cpp:106
std::vector< NmeaMessage > m_nmeaMessagesQueue
Definition Nmea0183CommunicationProtocol.hpp:48
Definition enums.hpp:5
std::string nmeaHeader
Definition defines.hpp:47
std::string networkId
Definition types.hpp:43
NMEA message class.
Definition NmeaMessage.hpp:16
Definition Nmea0183Settings.hpp:11