From 11b82c858fb3a1a80dda7c3acfb3411b6f076335 Mon Sep 17 00:00:00 2001 From: bert hubert Date: Fri, 9 Aug 2019 21:42:28 +0200 Subject: [PATCH] tool inadvertently did not send 0 words --- ubxtool.cc | 170 +++++++++++++++++++++++++++-------------------------- 1 file changed, 86 insertions(+), 84 deletions(-) diff --git a/ubxtool.cc b/ubxtool.cc index 3ecd995..2a902cd 100644 --- a/ubxtool.cc +++ b/ubxtool.cc @@ -24,6 +24,8 @@ struct timespec g_gstutc; uint16_t g_wn; using namespace std; +uint16_t g_srcid{2}; + #define BAUDRATE B921600 #define MODEMDEVICE "/dev/ttyACM0" @@ -427,7 +429,7 @@ int main(int argc, char** argv) nmm.set_type(NavMonMessage::RFDataType); nmm.set_localutcseconds(g_gstutc.tv_sec); nmm.set_localutcnanoseconds(g_gstutc.tv_nsec); - nmm.set_sourceid(1); // XXX source id + nmm.set_sourceid(g_srcid); // XXX source id nmm.mutable_rfd()->set_gnssid(gnssid); nmm.mutable_rfd()->set_gnsssv(sv); @@ -462,7 +464,7 @@ int main(int argc, char** argv) nmm.set_type(NavMonMessage::ObserverPositionType); nmm.set_localutcseconds(g_gstutc.tv_sec); nmm.set_localutcnanoseconds(g_gstutc.tv_nsec); - nmm.set_sourceid(1); // XXX source id + nmm.set_sourceid(g_srcid); // XXX source id nmm.mutable_op()->set_x(p.ecefX /100.0); nmm.mutable_op()->set_y(p.ecefY /100.0); nmm.mutable_op()->set_z(p.ecefZ /100.0); @@ -470,102 +472,102 @@ int main(int argc, char** argv) emitNMM(1, nmm); } else if(msg.getClass() == 2 && msg.getType() == 0x13) { // SFRBX - try { - pair id = make_pair(payload[0], payload[1]); - if(id.first != 2) - continue; // not Galileo - auto inav = getInavFromSFRBXMsg(payload); - unsigned int wtype = getbitu(&inav[0], 0, 6); - tv[id] = timestamp; + try { + pair id = make_pair(payload[0], payload[1]); + if(id.first != 2) + continue; // not Galileo + auto inav = getInavFromSFRBXMsg(payload); + unsigned int wtype = getbitu(&inav[0], 0, 6); + tv[id] = timestamp; - cerr<<"gnssid "<set_gnsswn(g_wn); nmm.mutable_gi()->set_gnsstow(msgTOW); nmm.mutable_gi()->set_gnssid(id.first); nmm.mutable_gi()->set_gnsssv(id.second); nmm.mutable_gi()->set_contents((const char*)&inav[0], inav.size()); - - emitNMM(1, nmm); - } - - if(0 && lasttv.count(id)) { - fmt::fprintf(stderr, "gnssid %d sv %d wtype %d, %d:%d -> %d:%d, delta=%d\n", - payload[0], payload[1], wtype, lasttv[id].tv_sec, lasttv[id].tv_usec, tv[id].tv_sec, tv[id].tv_usec, tv[id].tv_usec - lasttv[id].tv_usec); - } - lasttv[id]=tv[id]; + emitNMM(1, nmm); + + + if(0 && lasttv.count(id)) { + fmt::fprintf(stderr, "gnssid %d sv %d wtype %d, %d:%d -> %d:%d, delta=%d\n", + payload[0], payload[1], wtype, lasttv[id].tv_sec, lasttv[id].tv_usec, tv[id].tv_sec, tv[id].tv_usec, tv[id].tv_usec - lasttv[id].tv_usec); + } + lasttv[id]=tv[id]; } catch(CRCMismatch& cm) { cerr<<"Had CRC mismatch!"<