13#ifndef __FPSDK_COMMON_TO_JSON_PARSER_HPP__
14#define __FPSDK_COMMON_TO_JSON_PARSER_HPP__
19#include <nlohmann/json.hpp>
33inline void to_json(nlohmann::json& j,
const ParserMsg& m)
35 j = nlohmann::json::object({
39 {
"_size", m.data_.size() },
42 if (!m.info_.empty()) {
48 if (std::all_of(m.data_.data(), m.data_.data() + m.data_.size(),
49 [](
const uint8_t c) { return std::isprint(c) || std::isspace(c); })) {
56inline nlohmann::json ParserMsgToJson(
const ParserMsg& m)
77inline void to_json(nlohmann::json& j,
const ParserStats s)
79 j = nlohmann::json::object({
80 {
"n_msgs", s.n_msgs_ },
81 {
"s_msgs", s.s_msgs_ },
82 {
"n_fpa", s.n_fpa_ },
83 {
"s_fpa", s.s_fpa_ },
84 {
"n_fpb", s.n_fpb_ },
85 {
"s_fpb", s.s_fpb_ },
86 {
"n_nmea", s.n_nmea_ },
87 {
"s_nmea", s.s_nmea_ },
88 {
"n_ubx", s.n_ubx_ },
89 {
"s_ubx", s.s_ubx_ },
90 {
"n_rtcm3", s.n_rtcm3_ },
91 {
"s_rtcm3", s.s_rtcm3_ },
92 {
"n_unib", s.n_unib_ },
93 {
"s_unib", s.s_unib_ },
94 {
"n_novb", s.n_novb_ },
95 {
"s_novb", s.s_novb_ },
96 {
"n_sbf", s.n_sbf_ },
97 {
"s_sbf", s.s_sbf_ },
98 {
"n_qgc", s.n_qgc_ },
99 {
"s_qgc", s.s_qgc_ },
100 {
"n_spartn", s.n_spartn_ },
101 {
"s_spartn", s.s_spartn_ },
102 {
"n_other", s.n_other_ },
103 {
"s_other", s.s_other_ },
FpaPayloadPtr FpaDecodeMessage(const uint8_t *msg, const std::size_t msg_size)
Decode FP_A message.
NmeaPayloadPtr NmeaDecodeMessage(const uint8_t *msg, const std::size_t msg_size)
Decode NMEA message.
@ OTHER
Other "message" (unknown or corrupt message, spurious data, line noise, ...) (PROTOCOL_NAME_OTHER).
@ SPARTN
SPARTN (PROTOCOL_NAME_SPARTN).
@ FP_B
FP_B (Fixposition proprietary binary) (PROTOCOL_NAME_FP_B).
@ NMEA
NMEA (PROTOCOL_NAME_NMEA).
@ QGC
QGC (Quectel proprietary binary) (PROTOCOL_NAME_QGC).
@ SBF
SBF (Septentrio binary format) (PROTOCOL_NAME_SBF).
@ UNI_B
UNI_B (Unicore proprietary binary) (PROTOCOL_NAME_UNI_B).
@ NOV_B
NOV_B (NovAtel proprietary binary, long or short header) (PROTOCOL_NAME_NOV_B).
@ UBX
UBX (u-blox proprietary binary) (PROTOCOL_NAME_UBX).
@ FP_A
FP_A (Fixposition proprietary ASCII) (PROTOCOL_NAME_FP_A).
@ RTCM3
RTCM3 (PROTOCOL_NAME_RTCM3).
const char * ProtocolStr(const Protocol proto)
Stringify Protocol.
std::string BufToStr(const std::vector< uint8_t > &buf)
Convert buffer to string.
std::string Base64Enc(const std::vector< uint8_t > &buf)
Encode to base64.
Fixposition SDK: to_json() helpers for some fpsdk::common::parser::fpa messages.
Fixposition SDK: to_json() helpers for some fpsdk::common::parser::fpb messages.
Fixposition SDK: to_json() helpers for some fpsdk::common::parser::nmea messages.
Fixposition SDK: to_json() helpers for some fpsdk::common::parser::ubx messages.
Fixposition SDK: String utilities.
Message frame output by the Parser.