1 #ifndef __MARNAV__NMEA__MSS__HPP__
2 #define __MARNAV__NMEA__MSS__HPP__
4 #include <marnav/nmea/sentence.hpp>
5 #include <marnav/utils/optional.hpp>
11 MARNAV_NMEA_DECLARE_SENTENCE_PARSE_FUNC(mss
)
13 /// @brief MSS - Beacon Receiver Status
18 /// $--MSS,nn,nn,fff,bbb,xxx*hh<CR><LF>
22 /// 1. Signal strength (dB 1uV)
23 /// 2. Signal to noise ratio (dB)
24 /// 3. Beacon frequency (kHz)
25 /// 4. Beacon data rate (BPS)
26 /// 5. Unknown integer value
28 class mss
: public sentence
30 MARNAV_NMEA_SENTENCE_FRIENDS(mss
)
33 constexpr static const sentence_id ID
= sentence_id::MSS
;
34 constexpr static const char * TAG
= "MSS";
37 mss(const mss
&) = default;
38 mss
& operator=(const mss
&) = default;
39 mss(mss
&&) = default;
40 mss
& operator=(mss
&&) = default;
43 mss(talker talk
, fields::const_iterator first
, fields::const_iterator last
);
44 virtual std::vector
<std::string
> get_data() const override
;
47 uint32_t signal_strength
= 0;
48 uint32_t signal_to_noise_ratio
= 0;
49 uint32_t beacon_frequency
= 0;
50 uint32_t beacon_datarate
= 0;
54 decltype(signal_strength
) get_signal_strength() const { return signal_strength
; }
55 decltype(signal_to_noise_ratio
) get_signal_to_noise_ratio() const
57 return signal_to_noise_ratio
;
59 decltype(beacon_frequency
) get_beacon_frequency() const { return beacon_frequency
; }
60 decltype(beacon_datarate
) get_beacon_datarate() const { return beacon_datarate
; }
61 decltype(unknown
) get_unknown() const { return unknown
; }
63 void set_signal_strength(uint32_t t
) noexcept
{ signal_strength
= t
; }
64 void set_signal_to_noise_ratio(uint32_t t
) noexcept
{ signal_to_noise_ratio
= t
; }
65 void set_beacon_frequency(uint32_t t
) noexcept
{ beacon_frequency
= t
; }
66 void set_beacon_datarate(uint32_t t
) noexcept
{ beacon_datarate
= t
; }
67 void set_unknown(int32_t t
) noexcept
{ unknown
= t
; }