|
nmealib 0.0.4
NMEA 0183/NMEA 2000 parsing library
|
Represents a parsed NMEA 0183 HDM (Heading – Magnetic) sentence. More...
#include <hdm.h>


Public Member Functions | |
| HDM (std::string talkerId, double heading, char indicator) | |
| Construct an HDM message from individual field values. | |
| HDM (const HDM &)=default | |
| HDM & | operator= (const HDM &)=default |
| HDM (HDM &&) noexcept=default | |
| HDM & | operator= (HDM &&) noexcept=default |
| ~HDM () override=default | |
| std::unique_ptr< nmealib::Message > | clone () const override |
| Create a polymorphic copy of this HDM message. | |
| double | getHeading () const noexcept |
| Get the vessel heading in degrees magnetic. | |
| char | getIndicator () const noexcept |
| Get the magnetic heading indicator character. | |
| std::string | getStringContent (bool verbose) const noexcept override |
| Return a human-readable string representation of this message. | |
| bool | operator== (const HDM &other) const noexcept |
| Compare two HDM messages for equality. | |
Public Member Functions inherited from nmealib::nmea0183::Message0183 | |
| 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. | |
| 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. | |
Friends | |
| class | Nmea0183Factory |
| class | MessageRegistry |
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 |
Static Public Member Functions inherited from nmealib::nmea0183::Message0183 | |
| 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 inherited from nmealib::nmea0183::Message0183 | |
| 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 inherited from nmealib::nmea0183::Message0183 | |
| 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 inherited from nmealib::nmea0183::Message0183 | |
| 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_ {} |
Represents a parsed NMEA 0183 HDM (Heading – Magnetic) sentence.
The HDM sentence reports the vessel heading in degrees with respect to magnetic north, as produced by any device or system providing magnetic heading. The sentence format is:
Fields:
x.x): Heading in degrees magnetic (floating-point, 0–359.9).M): Magnetic heading indicator. Always 'M' per the NMEA 0183 standard.Example sentence:
| nmealib::nmea0183::HDM::HDM | ( | std::string | talkerId, |
| double | heading, | ||
| char | indicator | ||
| ) |
Construct an HDM message from individual field values.
Composes the raw NMEA sentence from the supplied fields and initialises the object. A checksum is automatically appended to the raw sentence.
| talkerId | Two-character talker identifier (e.g., "II", "HE"). |
| heading | Vessel heading in degrees magnetic (0.0–359.9). |
| indicator | Magnetic heading indicator. Should be 'M' as required by the NMEA 0183 standard. |
|
default |
|
defaultnoexcept |
|
overridedefault |
|
overridevirtual |
Create a polymorphic copy of this HDM message.
Implements nmealib::Message.
|
noexcept |
|
noexcept |
|
overridevirtualnoexcept |
Return a human-readable string representation of this message.
| verbose | When true, every field is printed on its own labelled line. When false, a compact single-line summary is returned instead. |
Reimplemented from nmealib::nmea0183::Message0183.
|
noexcept |
Compare two HDM messages for equality.
Two HDM messages are equal when their underlying Message0183 representations are equal (raw sentence, talker, checksum, and timestamp all match).
| other | The HDM message to compare with. |
true if the messages are equal, false otherwise.
|
friend |
|
friend |