improve influx storage for time-offset - store mutual offsets, cuz influx can't do such magic

timework
bert hubert 2020-07-09 21:48:30 +02:00
parent 2b7eb259f1
commit 7b77cc52fd
1 changed files with 18 additions and 16 deletions

View File

@ -2806,8 +2806,8 @@ try
else if(nmm.type() == NavMonMessage::TimeOffsetType) { else if(nmm.type() == NavMonMessage::TimeOffsetType) {
struct gnsstimeoffset struct gnsstimeoffset
{ {
double offset; double offset{0};
double accuracy; double accuracy{-1}; // this is how we detect 'unset'
} gps, gal, glo, bds; } gps, gal, glo, bds;
for(const auto& o : nmm.to().offsets()) { for(const auto& o : nmm.to().offsets()) {
if(o.gnssid() == 0) { if(o.gnssid() == 0) {
@ -2826,20 +2826,22 @@ try
} }
idb.addValueObserver(nmm.sourceid(), "timeoffset", idb.addValueObserver(nmm.sourceid(), "timeoffset",
{{"itow", nmm.to().itow()}, {{"itow", nmm.to().itow()},
{"gps-offset", gps.offset}, {gps.accuracy >= 0 ? "gps-offset" : nullptr, gps.offset},
{"gal-offset", gal.offset}, {gal.accuracy >= 0 ? "gal-offset" : nullptr, gal.offset},
{"glo-offset", glo.offset}, {glo.accuracy >= 0 ? "glo-offset": nullptr, glo.offset},
{"bds-offset", bds.offset}, {bds.accuracy >= 0 ? "bds-offset": nullptr, bds.offset},
{"gps-tacc", gps.accuracy},
{"gal-tacc", gal.accuracy}, {"gps-tacc", gps.accuracy},
{"glo-tacc", glo.accuracy}, {"gal-tacc", gal.accuracy},
{"bds-tacc", bds.accuracy}, {"glo-tacc", glo.accuracy},
{"gal-gps-offset", gal.offset - gps.offset}, {"bds-tacc", bds.accuracy},
{"gal-bds-offset", gal.offset - bds.offset},
{"gal-glo-offset", gal.offset - glo.offset}, {(gal.accuracy >= 0 && gps.accuracy >=0) ? "gal-gps-offset" : nullptr, gal.offset - gps.offset},
{"gps-bds-offset", gps.offset - bds.offset}, {(gal.accuracy >= 0 && bds.accuracy >=0) ? "gal-bds-offset" : nullptr, gal.offset - bds.offset},
{"gps-glo-offset", gps.offset - glo.offset}, {(gal.accuracy >= 0 && glo.accuracy >=0) ? "gal-glo-offset" : nullptr, gal.offset - glo.offset},
{"bds-glo-offset", bds.offset - glo.offset}}, {(gps.accuracy >= 0 && bds.accuracy >=0) ? "gps-bds-offset" : nullptr, gps.offset - bds.offset},
{(gps.accuracy >= 0 && glo.accuracy >=0) ? "gps-glo-offset" : nullptr, gps.offset - glo.offset},
{(bds.accuracy >= 0 && glo.accuracy >=0) ? "bds-glo-offset" : nullptr, bds.offset - glo.offset}},
nmm.localutcseconds()); nmm.localutcseconds());
} }
else { else {