#include #include #include #include #include "fmt/format.h" #include "fmt/printf.h" #include #include #include #include #include #include #include #include "ubx.hh" #include "bits.hh" #include "minivec.hh" #include "navmon.pb.h" #include "ephemeris.hh" #include "gps.hh" #include "glonass.hh" #include "beidou.hh" #include using namespace std; static std::string humanTime(time_t t) { struct tm tm={0}; gmtime_r(&t, &tm); char buffer[80]; strftime(buffer, sizeof(buffer), "%a, %d %b %Y %T %z", &tm); return buffer; } int main(int argc, char** argv) { for(;;) { char bert[4]; if(read(0, bert, 4) != 4 || bert[0]!='b' || bert[1]!='e' || bert[2] !='r' || bert[3]!='t') { cerr<<"EOF or bad magic"< inav((uint8_t*)nmm.gi().contents().c_str(), nmm.gi().contents().size()); unsigned int wtype = getbitu(&inav[0], 0, 6); cout << "galileo inav for "<((uint8_t*)nmm.gpsi().contents().c_str(), nmm.gpsi().contents().size())); struct GPSState gs; uint8_t page; int frame=parseGPSMessage(cond, gs, &page); cout<<"GPS "<second.t0e); } cout<<"\n"; } else if(nmm.type() == NavMonMessage::BeidouInavType) { int sv = nmm.bi().gnsssv(); auto cond = getCondensedBeidouMessage(std::basic_string((uint8_t*)nmm.bi().contents().c_str(), nmm.bi().contents().size())); BeidouMessage bm; uint8_t pageno; int fraid = bm.parse(cond, &pageno); cout<<"BeiDou "<