1 #ifndef MARNAV__NMEA__PGRMM__HPP
2 #define MARNAV__NMEA__PGRMM__HPP
4 #include <marnav/nmea/sentence.hpp>
5 #include <marnav/utils/optional.hpp>
11 /// @brief PGRMM - Garmin Map Datum
16 /// $PGRMM,c--c*hh<CR><LF>
21 /// 1. Map datum, variable length
23 /// Example: <tt>$PGRMM,WGS 84*06</tt>
25 class pgrmm
: public sentence
27 friend class detail::factory
;
30 constexpr static sentence_id ID
= sentence_id::PGRMM
;
31 constexpr static const char * TAG
= "PGRMM";
34 pgrmm(const pgrmm
&) = default;
35 pgrmm
& operator=(const pgrmm
&) = default;
36 pgrmm(pgrmm
&&) = default;
37 pgrmm
& operator=(pgrmm
&&) = default;
40 pgrmm(talker talk
, fields::const_iterator first
, fields::const_iterator last
);
41 virtual void append_data_to(std::string
&) const override
;
44 std::string map_datum_
;
47 decltype(map_datum_
) get_map_datum() const { return map_datum_
; }
49 void set_map_datum(const std::string
& t
) noexcept
;