13#ifndef __FPSDK_COMMON_TO_JSON_PARSER_FPA_HPP__
14#define __FPSDK_COMMON_TO_JSON_PARSER_FPA_HPP__
19#include <nlohmann/json.hpp>
43inline void to_json(nlohmann::json& j,
const FpaImuStatus e)
53inline void to_json(nlohmann::json& j,
const FpaImuNoise e)
58inline void to_json(nlohmann::json& j,
const FpaImuConv e)
78inline void to_json(nlohmann::json& j,
const FpaCamStatus e)
83inline void to_json(nlohmann::json& j,
const FpaWsStatus e)
93inline void to_json(nlohmann::json& j,
const FpaWsConv e)
108inline void to_json(nlohmann::json& j,
const FpaGnssFix e)
113inline void to_json(nlohmann::json& j,
const FpaEpoch e)
118inline void to_json(nlohmann::json& j,
const FpaAntState e)
123inline void to_json(nlohmann::json& j,
const FpaAntPower e)
128inline void to_json(nlohmann::json& j,
const FpaTextLevel e)
133inline void to_json(nlohmann::json& j,
const FpaTimebase e)
138inline void to_json(nlohmann::json& j,
const FpaTimeref e)
145inline void to_json(nlohmann::json& j,
const FpaInt& m)
154inline void to_json(nlohmann::json& j,
const FpaFloat& m)
163inline void to_json(nlohmann::json& j,
const FpaFloat3& m)
172inline void to_json(nlohmann::json& j,
const FpaFloat4& m)
181inline void to_json(nlohmann::json& j,
const FpaFloat6& m)
190inline void to_json(nlohmann::json& j,
const FpaGpsTime& m)
192 j = nlohmann::json::object({
193 {
"gps_week", m.week },
194 {
"gps_tow", m.tow },
200inline void to_json(nlohmann::json& j,
const FpaEoePayload& m)
202 j = nlohmann::json::object({
203 {
"epoch", m.epoch },
205 j.update(m.gps_time);
212 j = nlohmann::json::object({
213 {
"gnss1_state", m.gnss1_state },
214 {
"gnss1_power", m.gnss1_power },
215 {
"gnss1_age", m.gnss1_age },
216 {
"gnss2_state", m.gnss2_state },
217 {
"gnss2_power", m.gnss2_power },
218 {
"gnss2_age", m.gnss2_age },
220 j.update(m.gps_time);
227 j = nlohmann::json::object({
228 {
"gnss1_fix", m.gnss1_fix },
229 {
"gnss1_nsig_l1", m.gnss1_nsig_l1 },
230 {
"gnss1_nsig_l2", m.gnss1_nsig_l2 },
231 {
"gnss2_fix", m.gnss2_fix },
232 {
"gnss2_nsig_l2", m.gnss2_nsig_l1 },
233 {
"gnss2_nsig_l2", m.gnss2_nsig_l2 },
234 {
"corr_latency", m.corr_latency },
235 {
"corr_update_rate", m.corr_update_rate },
236 {
"corr_data_rate", m.corr_data_rate },
237 {
"corr_msg_rate", m.corr_msg_rate },
238 {
"sta_id", m.sta_id },
239 {
"sta_llh", m.sta_llh },
240 {
"sta_dist", m.sta_dist },
242 j.update(m.gps_time);
247inline void to_json(nlohmann::json& j,
const FpaImuPayload& m)
249 j = nlohmann::json::object({
252 {
"bias_comp", m.bias_comp },
253 {
"imu_status", m.imu_status },
255 j.update(m.gps_time);
272 j = nlohmann::json::object({
273 {
"fusion_imu", m.fusion_imu },
274 {
"imu_status", m.imu_status },
275 {
"imu_noise", m.imu_noise },
276 {
"imu_conv", m.imu_conv },
277 {
"bias_acc", m.bias_acc },
278 {
"bias_gyr", m.bias_gyr },
279 {
"bias_cov_acc", m.bias_cov_acc },
280 {
"bias_cov_gyr", m.bias_cov_gyr },
282 j.update(m.gps_time);
287inline void to_json(nlohmann::json& j,
const FpaLlhPayload& m)
289 j = nlohmann::json::object({
291 {
"longitude",
nullptr },
292 {
"height",
nullptr },
293 {
"cov_enu", m.cov_enu },
295 j.update(m.gps_time);
302 j = nlohmann::json::object({
304 {
"orientation", m.orientation },
308 {
"fusion_status", m.fusion_status },
309 {
"imu_bias_status", m.imu_bias_status },
310 {
"gnss1_fix", m.gnss1_fix },
311 {
"gnss2_fix", m.gnss2_fix },
312 {
"wheelspeed_status", m.wheelspeed_status },
313 {
"pos_cov", m.pos_cov },
314 {
"orientation_cov", m.orientation_cov },
315 {
"vel_cov", m.vel_cov },
317 j.update(m.gps_time);
324 j[
"version"] = m.version;
342 j = nlohmann::json::object({
343 {
"init_status", m.init_status },
344 {
"fusion_imu", m.fusion_imu },
345 {
"fusion_gnss1", m.fusion_gnss1 },
346 {
"fusion_gnss2", m.fusion_gnss2 },
347 {
"fusion_corr", m.fusion_corr },
348 {
"fusion_cam1", m.fusion_cam1 },
349 {
"fusion_ws", m.fusion_ws },
350 {
"fusion_markers", m.fusion_markers },
351 {
"imu_status", m.imu_status },
352 {
"imu_noise", m.imu_noise },
353 {
"imu_conv", m.imu_conv },
354 {
"gnss1_status", m.gnss1_status },
355 {
"gnss2_status", m.gnss2_status },
356 {
"baseline_status", m.baseline_status },
357 {
"corr_status", m.corr_status },
358 {
"cam1_status", m.cam1_status },
359 {
"ws_status", m.ws_status },
360 {
"ws_conv", m.ws_conv },
361 {
"markers_status", m.markers_status },
362 {
"markers_conv", m.markers_conv },
364 j.update(m.gps_time);
371 j = nlohmann::json::object({
372 {
"level", m.level },
379inline void to_json(nlohmann::json& j,
const FpaTfPayload& m)
381 j = nlohmann::json::object({
382 {
"frame_a", m.frame_a },
383 {
"frame_b", m.frame_b },
384 {
"translation", m.translation },
385 {
"orientation", m.orientation },
387 j.update(m.gps_time);
392inline void to_json(nlohmann::json& j,
const FpaTpPayload& m)
394 j = nlohmann::json::object({
395 {
"tp_name", m.tp_name },
396 {
"timebase", m.timebase },
397 {
"timeref", m.timeref },
398 {
"tp_week", m.tp_week },
399 {
"tp_tow_sec", m.tp_tow_sec },
400 {
"tp_tow_psec", m.tp_tow_psec },
401 {
"gps_leaps", m.gps_leaps },
409 j = nlohmann::json::object({
410 {
"sw_version", m.sw_version },
411 {
"hw_name", m.hw_name },
412 {
"hw_ver", m.hw_ver },
413 {
"hw_uid", m.hw_uid },
414 {
"product_model", m.product_model },
420inline void to_json(nlohmann::json& j,
const FpaPayloadPtr& fpa)
422 j = nlohmann::json::object();
426 j[
"_valid"] = fpa->valid_;
428 switch (fpa->msg_type_) {
Fixposition SDK: Parser FP_A routines and types.
Parser FP_A routines and types.
const char * FpaAntPowerStr(const FpaAntPower power)
Stringify antenna power.
FpaGnssStatus
FP_A GNSS fix status.
FpaCorrStatus
FP_A GNSS correction status.
FpaTimeref
FP_A time reference.
const char * FpaCamStatusStr(const FpaCamStatus status)
Stringify camera status.
const char * FpaEpochStr(const FpaEpoch epoch)
Stringify epoch type.
FpaTextLevel
FP_A text levels.
FpaAntPower
FP_A GNSS antenna power.
const char * FpaCorrStatusStr(const FpaCorrStatus status)
Stringify GNSS correction status.
FpaMeasStatus
FP_A fusion measurement status.
FpaBaselineStatus
FP_A baseline status.
const char * FpaTextLevelStr(const FpaTextLevel level)
Stringify text level.
const char * FpaImuStatusStr(const FpaImuStatus status)
Stringify IMU bias status.
FpaWsStatus
FP_A wheelspeed status.
const char * FpaAntStateStr(const FpaAntState state)
Stringify antenna state.
const char * FpaImuConvStr(const FpaImuConv conv)
Stringify IMU accelerometer and gyroscope convergence.
FpaGnssFix
FP_A GNSS fix type.
const char * FpaWsStatusStr(const FpaWsStatus status)
Stringify wheelspeed status.
const char * FpaBaselineStatusStr(const FpaBaselineStatus status)
Stringify baseline status.
const char * FpaFusionStatusLegacyStr(const FpaFusionStatusLegacy status)
Stringify legacy fusion status.
const char * FpaMarkersConvStr(const FpaMarkersConv conv)
Stringify markers convergence status.
FpaFusionStatusLegacy
FP_A legacy fusion status.
const char * FpaWsStatusLegacyStr(const FpaWsStatusLegacy status)
Stringify legacy wheelspeed status.
FpaMarkersConv
FP_A markers convergence status.
FpaImuNoise
FP_A IMU variance.
const char * FpaMeasStatusStr(const FpaMeasStatus status)
Stringify fusion measurement status.
FpaCamStatus
FP_A camera status.
FpaWsConv
FP_A wheelspeed convergence status.
FpaMarkersStatus
FP_A markers status.
const char * FpaMarkersStatusStr(const FpaMarkersStatus status)
Stringify markers status.
FpaImuStatus
FP_A IMU bias status.
FpaInitStatus
FP_A fusion initialisation status.
FpaImuStatusLegacy
FP_A legacy IMU bias status.
const char * FpaTimerefStr(const FpaTimeref ref)
Stringify time reference.
FpaAntState
FP_A GNSS antenna state.
FpaTimebase
FP_A time base.
const char * FpaImuNoiseStr(const FpaImuNoise noise)
Stringify IMU variance.
const char * FpaGnssFixStr(const FpaGnssFix fix)
Stringify fix type.
const char * FpaWsConvStr(const FpaWsConv status)
Stringify wheelspeed convergence status.
@ VERSION
FpaVersionPayload.
@ ODOMETRY
FpaOdometryPayload.
@ UNSPECIFIED
Unspecified.
@ ODOMSH
FpaOdomshPayload.
@ IMUBIAS
FpaImubiasPayload.
@ GNSSCORR
FpaGnsscorrPayload.
@ ODOMENU
FpaOdomenuPayload.
@ RAWIMU
FpaRawimuPayload.
@ ODOMSTATUS
FpaOdomstatusPayload.
@ GNSSANT
FpaGnssantPayload.
@ CORRIMU
FpaCorrimuPayload.
std::unique_ptr< FpaPayload > FpaPayloadPtr
Pointer to FP_A payload.
FpaImuConv
FP_A IMU accelerometer and gyroscope convergence.
const char * FpaImuStatusLegacyStr(const FpaImuStatusLegacy status)
Stringify legacy IMU bias status.
const char * FpaGnssStatusStr(const FpaGnssStatus status)
Stringify GNSS fix status.
FpaWsStatusLegacy
FP_A legacy wheelspeed status.
const char * FpaTimebaseStr(const FpaTimebase base)
Stringify time base.
const char * FpaInitStatusStr(const FpaInitStatus status)
Stringify initialisation status.
FP_A-CORRIMU (version 1) message payload.
FP_A-EOE (version 1) message payload.
FP_A-GNSSANT (version 1) message payload.
FP_A-GNSSCORR (version 1) message payload.
FP_A-...IMU (versions 1 and 2) messages payload.
FP_A-IMUBIAS (version 1) message payload.
FP_A-LLH (version 1) message payload.
FP_A-ODOM... (version 1) messages payload.
FP_A-ODOMETRY (version 2) messages payload (ECEF)
FP_A-ODOMSH (version 1) messages payload (ECEF)
FP_A-ODOMSTATUS (version 1) messages payload.
FP_A-RAWIMU (version 1) message payload.
FP_A-TEXT (version 1) message payload.
FP_A-TF (version 2) message payload.
FP_A-TP (versions 1 and 2) message payload.
FP_A-VERSION (version 1) message payload.