|
nmealib 0.0.4
NMEA 0183/NMEA 2000 parsing library
|
Represents an NMEA 0183 sentence. More...
#include <nmea0183.h>


Public Member Functions | |
| Message0183 (const Message0183 &)=default | |
| Copy constructor. | |
| Message0183 & | operator= (const Message0183 &)=default |
| Copy assignment operator. | |
| Message0183 (Message0183 &&) noexcept=default | |
| Move constructor. | |
| Message0183 & | operator= (Message0183 &&) noexcept=default |
| Move assignment operator. | |
| ~Message0183 () override=default | |
| Destructor. | |
| std::unique_ptr< nmealib::Message > | clone () const override |
| Creates a polymorphic deep copy of this Message0183. | |
| char | getStartChar () const noexcept |
| Returns the start character of the NMEA 0183 sentence. | |
| std::string | getTalker () const noexcept |
| Returns the talker identifier extracted from the sentence. | |
| std::string | getSentenceType () const noexcept |
| Returns the sentence type identifier extracted from the sentence. | |
| std::string | getPayload () const noexcept |
| Returns the payload of the NMEA 0183 sentence. | |
| std::string | getChecksumStr () const |
| Get the checksum string extracted from the raw sentence. | |
| std::string | getCalculatedChecksumStr () const noexcept |
| Get the calculated checksum string for the sentence payload. | |
| virtual std::string | getStringContent (bool verbose) const noexcept |
| Returns a human-readable string representation of the message content. | |
| std::string | serialize () const override |
| Returns the wire-format representation of the NMEA 0183 sentence, that is, the raw information that was passed when the message was created. | |
| bool | operator== (const Message0183 &other) const noexcept |
| Compares two Message0183 objects for equality based on their content and timestamp. | |
| bool | validate () const noexcept override |
| Returns whether the message is valid or not. | |
Public Member Functions inherited from nmealib::Message | |
| Message () | |
| Message (std::string raw, Type type=Type::Unknown, TimePoint ts=std::chrono::system_clock::now()) noexcept | |
| virtual | ~Message () |
| Message (const Message &)=default | |
| Message & | operator= (const Message &)=default |
| Message (Message &&) noexcept=default | |
| Message & | operator= (Message &&) noexcept=default |
| Type | getType () const noexcept |
| Returns the message type. | |
| const std::string & | getRawData () const noexcept |
| Returns the raw, unmodified data string as received. | |
| TimePoint | getTimestamp () const noexcept |
| Returns the timestamp associated with this message. | |
| bool | operator== (const Message &other) const noexcept |
| Compares two Message objects for equality based on their content. | |
Static Public Member Functions | |
| static double | convertNmeaCoordinateToDecimalDegrees (const std::string &nmeaCoordinate) |
| Converts an NMEA coordinate in ddmm.mmmm / dddmm.mmmm format to decimal degrees. | |
Static Public Member Functions inherited from nmealib::Message | |
| static std::string | typeToString (Type t) |
| Converts a Message::Type enum value to its string representation. | |
Protected Member Functions | |
| std::string | toString (bool verbose) const noexcept |
| Provides the common string representation for every NMEA 0183 message, which can be used by derived classes to implement their own getStringContent method. | |
Protected Member Functions inherited from nmealib::Message | |
| void | setType (Type t) noexcept |
| Sets the message type. | |
| void | setRaw (std::string r) noexcept |
| Sets the raw data string. | |
| void | setTimestamp (TimePoint ts) noexcept |
| Sets the message timestamp. | |
Static Protected Member Functions | |
| static std::unique_ptr< Message0183 > | create (const std::string &raw, TimePoint ts=std::chrono::system_clock::now()) |
| Protected factory method to create a Message0183 from a raw sentence string. | |
Protected Attributes | |
| char | startChar_ |
| std::string | talker_ |
| std::string | sentenceType_ |
| std::string | payload_ |
| std::string | checksumStr_ |
| std::string | calculatedChecksumStr_ |
Protected Attributes inherited from nmealib::Message | |
| std::string | rawData_ |
| Type | type_ {Type::Unknown} |
| TimePoint | timestamp_ {} |
Friends | |
| class | Nmea0183Factory |
Additional Inherited Members | |
Public Types inherited from nmealib::Message | |
| enum class | Type { Unknown , NMEA0183 , NMEA2000 } |
| Defines the type of NMEA message, allowing for differentiation between various standards. More... | |
| using | TimePoint = std::chrono::system_clock::time_point |
Represents an NMEA 0183 sentence.
Definition at line 98 of file nmea0183.h.
|
default |
Copy constructor.
|
defaultnoexcept |
Move constructor.
|
overridedefault |
Destructor.
|
overridevirtual |
Creates a polymorphic deep copy of this Message0183.
Implements nmealib::Message.
Reimplemented in nmealib::nmea0183::MTW, nmealib::nmea0183::MWV, nmealib::nmea0183::RMA, nmealib::nmea0183::RMB, nmealib::nmea0183::RMC, nmealib::nmea0183::VHW, nmealib::nmea0183::VLW, nmealib::nmea0183::VTG, nmealib::nmea0183::VWR, nmealib::nmea0183::XDR, nmealib::nmea0183::XTE, and nmealib::nmea0183::ZDA.
Definition at line 105 of file nmea0183.cpp.
|
static |
Converts an NMEA coordinate in ddmm.mmmm / dddmm.mmmm format to decimal degrees.
| nmeaCoordinate | Coordinate field as received from the sentence payload. |
Definition at line 194 of file nmea0183.cpp.
|
staticprotected |
Protected factory method to create a Message0183 from a raw sentence string.
Validates format and parses the raw sentence. Intended to be called from Nmea0183Factory or derived-class factories.
| raw | The raw NMEA 0183 sentence string to parse and validate. |
| ts | Optional timestamp; defaults to the current system time. |
| TooLongSentenceException | If the input string exceeds the maximum allowed length of 82 characters. |
| InvalidStartCharacterException | If the input string does not start with either '$' or '!'. |
Definition at line 47 of file nmea0183.cpp.
|
noexcept |
Get the calculated checksum string for the sentence payload.
Definition at line 132 of file nmea0183.cpp.
| std::string nmealib::nmea0183::Message0183::getChecksumStr | ( | ) | const |
Get the checksum string extracted from the raw sentence.
| NoChecksumException | If the sentence does not contain a checksum (i.e., no '*' character followed by two hex digits). |
Definition at line 125 of file nmea0183.cpp.
|
noexcept |
Returns the payload of the NMEA 0183 sentence.
The payload is the portion of the sentence between the start character and the checksum delimiter '*' (or end of data if no checksum is present).
Definition at line 109 of file nmea0183.cpp.
|
noexcept |
Returns the sentence type identifier extracted from the sentence.
Definition at line 121 of file nmea0183.cpp.
|
noexcept |
Returns the start character of the NMEA 0183 sentence.
Definition at line 113 of file nmea0183.cpp.
|
virtualnoexcept |
Returns a human-readable string representation of the message content.
| verbose | Selects whether to print a one-liner or a more detailed multi-line string with field names and values. |
Reimplemented in nmealib::nmea0183::APB, nmealib::nmea0183::DBT, nmealib::nmea0183::DPT, nmealib::nmea0183::GGA, nmealib::nmea0183::GLL, nmealib::nmea0183::GSA, nmealib::nmea0183::GSV, nmealib::nmea0183::HDG, nmealib::nmea0183::HDM, nmealib::nmea0183::MTW, nmealib::nmea0183::MWV, nmealib::nmea0183::RMA, nmealib::nmea0183::RMB, nmealib::nmea0183::RMC, nmealib::nmea0183::VHW, nmealib::nmea0183::VLW, nmealib::nmea0183::VTG, nmealib::nmea0183::VWR, nmealib::nmea0183::XDR, nmealib::nmea0183::XTE, and nmealib::nmea0183::ZDA.
Definition at line 136 of file nmea0183.cpp.
|
noexcept |
Returns the talker identifier extracted from the sentence.
Definition at line 117 of file nmea0183.cpp.
|
default |
Copy assignment operator.
|
defaultnoexcept |
Move assignment operator.
|
noexcept |
Compares two Message0183 objects for equality based on their content and timestamp.
| other | The other Message0183 object to compare with. |
Definition at line 204 of file nmea0183.cpp.
|
overridevirtual |
Returns the wire-format representation of the NMEA 0183 sentence, that is, the raw information that was passed when the message was created.
Implements nmealib::Message.
Definition at line 168 of file nmea0183.cpp.
|
protectednoexcept |
Provides the common string representation for every NMEA 0183 message, which can be used by derived classes to implement their own getStringContent method.
| verbose | Selects wether to print a one-liner or a more detailed multi-line string with field names and values. |
Definition at line 147 of file nmea0183.cpp.
|
overridevirtualnoexcept |
Returns whether the message is valid or not.
Implements nmealib::Message.
Definition at line 172 of file nmea0183.cpp.
|
friend |
Definition at line 268 of file nmea0183.h.
|
protected |
Definition at line 225 of file nmea0183.h.
|
protected |
Definition at line 224 of file nmea0183.h.
|
protected |
Definition at line 223 of file nmea0183.h.
|
protected |
Definition at line 222 of file nmea0183.h.
|
protected |
Definition at line 220 of file nmea0183.h.
|
protected |
Definition at line 221 of file nmea0183.h.