13#ifndef __FPSDK_COMMON_TO_JSON_NMEA_HPP__
14#define __FPSDK_COMMON_TO_JSON_NMEA_HPP__
19#include <nlohmann/json.hpp>
28inline void to_json(nlohmann::json& j,
const NmeaTalkerId e)
73inline void to_json(nlohmann::json& j,
const NmeaSystemId e)
78inline void to_json(nlohmann::json& j,
const NmeaSignalId e)
85inline void to_json(nlohmann::json& j,
const NmeaTime& m)
88 j = nlohmann::json::object({
98inline void to_json(nlohmann::json& j,
const NmeaDate& m)
101 j = nlohmann::json::object({
102 {
"years", m.years },
103 {
"months", m.months },
111inline void to_json(nlohmann::json& j,
const NmeaLlh& m)
113 if (m.latlon_valid) {
114 j = nlohmann::json::object({
118 if (m.height_valid) {
119 j[
"height"] = m.height;
126inline void to_json(nlohmann::json& j,
const NmeaSat& m)
129 j = nlohmann::json::object({
130 {
"system", m.system },
138inline void to_json(nlohmann::json& j,
const NmeaAzEl& m)
141 j = nlohmann::json::object({
142 {
"system", m.system },
152inline void to_json(nlohmann::json& j,
const NmeaCno& m)
155 j = nlohmann::json::object({
156 {
"system", m.system },
158 {
"signal", m.signal },
166inline void to_json(nlohmann::json& j,
const NmeaInt& m)
175inline void to_json(nlohmann::json& j,
const NmeaFloat& m)
188 j = nlohmann::json::object({
191 {
"height_msl", m.height_msl },
192 {
"quality", m.quality },
193 {
"num_sv", m.num_sv },
195 {
"diff_age", m.diff_age },
196 {
"diff_sta", m.diff_sta },
204 j = nlohmann::json::object({
207 {
"status", m.status },
216 j = nlohmann::json::object({
219 {
"speed", m.speed },
220 {
"course", m.course },
223 {
"navstatus", m.navstatus },
231 j = nlohmann::json::object({
244 j = nlohmann::json::object({
246 {
"rms_range", m.rms_range },
247 {
"std_major", m.std_major },
248 {
"std_minor", m.std_minor },
249 {
"angle_major", m.angle_major },
250 {
"std_lat", m.std_lat },
251 {
"std_lon", m.std_lon },
252 {
"std_alt", m.std_alt },
260 j = nlohmann::json::object({
261 {
"heading", m.heading },
269 j = nlohmann::json::object({
272 {
"local_hr", m.local_hr },
273 {
"local_min", m.local_min },
281 j = nlohmann::json::object({
282 {
"opmode", m.opmode },
283 {
"navmode", m.navmode },
285 {
"num_sats", m.num_sats },
289 {
"system", m.system },
297 j = nlohmann::json::object({
298 {
"num_msgs", m.num_msgs },
299 {
"msg_num", m.msg_num },
300 {
"tot_num_sat", m.tot_num_sat },
301 {
"azels", m.azels },
302 {
"num_azels", m.num_azels },
303 {
"num_cnos", m.num_cnos },
304 {
"system", m.system },
305 {
"signal", m.signal },
313 j = nlohmann::json::object();
317 j[
"_valid"] = nmea->valid_;
318 j[
"_talker"] = nmea->talker_;
319 j[
"_formatter"] = nmea->formatter_;
321 switch (nmea->formatter_) {
Parser NMEA routines and types.
NmeaSystemId
NMEA system IDs.
NmeaModeRmcGns
NMEA-Gx-RMC and NMEA-Gx-GNS pos mode.
const char * NmeaNavStatusRmcStr(const NmeaNavStatusRmc navstatus)
Stringify NMEA-Gx-RMC navigational status.
const char * NmeaNavModeGsaStr(const NmeaNavModeGsa navmode)
Stringify NMEA-Gx-GNS nav mode.
NmeaOpModeGsa
NMEA-Gx-GNS operation mode.
NmeaNavStatusRmc
NMEA-Gx-RMC navigational status.
const char * NmeaSystemIdStr(const NmeaSystemId system)
Stringify NMEA system ID.
const char * NmeaTalkerIdStr(const NmeaTalkerId talker)
Stringify NMEA talker ID.
const char * NmeaModeRmcGnsStr(const NmeaModeRmcGns mode)
Stringify NMEA-Gx-RMC and NMEA-Gx-GNS pos mode.
const char * NmeaStatusGllRmcStr(const NmeaStatusGllRmc status)
Stringify NMEA-Gx-GLL and NMEA-Gx-RMC status.
NmeaModeGllVtg
NMEA-Gx-GLL and NMEA-Gx-VTG pos mode.
NmeaFormatter
NMEA formatter.
@ ZDA
Formatter ZDA (NmeaZdaPayload)
@ UNSPECIFIED
Unspecified.
@ HDT
Formatter HDT (NmeaHdtPayload)
@ RMC
Formatter RMC (NmeaRmcPayload)
@ GGA
Formatter GGA (NmeaGgaPayload)
@ GST
Formatter GST (NmeaGstPayload)
@ GSV
Formatter GSV (NmeaGsvPayload)
@ GSA
Formatter GSA (NmeaGsaPayload)
@ GLL
Formatter GLL (NmeaGllPayload)
@ VTG
Formatter VTG (NmeaVtgPayload)
NmeaNavModeGsa
NMEA-Gx-GNS nav mode.
const char * NmeaModeGllVtgStr(const NmeaModeGllVtg mode)
Stringify NMEA-Gx-GLL and NMEA-Gx-VTG pos mode.
NmeaTalkerId
NMEA talker IDs.
const char * NmeaQualityGgaStr(const NmeaQualityGga qual)
Stringify NMEA-Gx-GGA quality indicator.
const char * NmeaOpModeGsaStr(const NmeaOpModeGsa opmode)
Stringify NMEA-Gx-GNS operation mode.
const char * NmeaSignalIdStr(const NmeaSignalId signal)
Stringify NMEA signal IDs.
std::unique_ptr< NmeaPayload > NmeaPayloadPtr
Pointer to NMEA payload.
NmeaStatusGllRmc
NMEA-Gx-GLL and NMEA-Gx-RMC status.
NmeaSignalId
NMEA signal IDs.
const char * NmeaFormatterStr(const NmeaFormatter formatter)
Stringify NMEA formatter.
NmeaQualityGga
NMEA-Gx-GGA quality indicator.
Fixposition SDK: Parser NMEA routines and types.
NMEA date (year, month, day)
NMEA-Gx-GGA message payload.
NMEA-Gx-GLL message payload.
NMEA-Gx-GSA message payload (NMEA 4.11 only!)
NMEA-Gx-GST message payload.
NMEA-Gx-GSV message payload (NMEA 4.11 only!)
NMEA-Gx-HDT message payload.
NMEA-Gx-RMC message payload.
NMEA satellite (used, e.g. in GSA)
NMEA time (hour, minutes, seconds)
NMEA-Gx-VTG message payload.
NMEA-Gx-ZDA message payload.