10 explicit NotRMAException(
const std::string& context,
const std::string& details =
"") :
11 NmeaException(context,
"The sentence is not an RMA sentence", details) {}
24 RMA(std::string talkerId,
27 char latitudeDirection,
29 char longitudeDirection,
30 double timeDifferenceA,
31 double timeDifferenceB,
32 double speedOverGround,
34 double magneticVariation,
35 char variationDirection);
40 RMA& operator=(
RMA&&) noexcept = default;
42 ~
RMA() override = default;
59 bool operator==(const
RMA& other) const noexcept;
64 char latitudeDirection_{};
66 char longitudeDirection_{};
67 double timeDifferenceA_{};
68 double timeDifferenceB_{};
69 double speedOverGround_{};
70 double trackMadeGood_{};
71 double magneticVariation_{};
72 char variationDirection_{};
76 RMA(Message0183 baseMessage,
79 char latitudeDirection,
81 char longitudeDirection,
82 double timeDifferenceA,
83 double timeDifferenceB,
84 double speedOverGround,
86 double magneticVariation,
87 char variationDirection)
noexcept;
89 static std::unique_ptr<RMA> create(std::unique_ptr<Message0183> baseMessage);
90 static std::string composeRaw(
const std::string& talkerId,
93 char latitudeDirection,
95 char longitudeDirection,
96 double timeDifferenceA,
97 double timeDifferenceB,
98 double speedOverGround,
100 double magneticVariation,
101 char variationDirection);
Defines a base class for NMEA messages, encapsulating common properties and behaviors.
Base exception class for all NMEA library errors.
Represents an NMEA 0183 sentence.
Registry for message type creators.
Factory for creating typed NMEA 0183 message objects from raw sentence strings.
NotRMAException(const std::string &context, const std::string &details="")
Represents a parsed NMEA 0183 RMA (Recommended Minimum Navigation Information) sentence.
char getStatus() const noexcept
std::string getStringContent(bool verbose) const noexcept override
Returns a human-readable string representation of the message content.
double getTimeDifferenceA() const noexcept
char getLatitudeDirection() const noexcept
double getMagneticVariation() const noexcept
double getLongitude() const noexcept
char getLongitudeDirection() const noexcept
double getLatitude() const noexcept
RMA(RMA &&) noexcept=default
char getVariationDirection() const noexcept
double getTrackMadeGood() const noexcept
double getSpeedOverGround() const noexcept
RMA & operator=(const RMA &)=default
std::unique_ptr< nmealib::Message > clone() const override
Creates a polymorphic deep copy of this Message0183.
double getTimeDifferenceB() const noexcept
RMA(std::string talkerId, char status, double latitude, char latitudeDirection, double longitude, char longitudeDirection, double timeDifferenceA, double timeDifferenceB, double speedOverGround, double trackMadeGood, double magneticVariation, char variationDirection)