syntax = "proto2"; message NavMonMessage { enum Type { ReceptionDataType = 1; ObserverPositionType = 2; GalileoInavType = 3; RFDataType = 4; GPSInavType = 5; BeidouInavTypeD1 = 6; GlonassInavType = 7; BeidouInavTypeD2 = 8; } required uint64 sourceID = 1; required Type type = 2; required uint64 localUtcSeconds = 3; required uint64 localUtcNanoseconds = 4; message GalileoInav { required uint32 gnssWN =1; required uint32 gnssTOW =2; // INTEGERS! required uint32 gnssID =3; required uint32 gnssSV =4; required bytes contents =5; optional uint32 sigid = 6; } message GPSInav { required uint32 gnssWN =1; required uint32 gnssTOW =2; // INTEGERS! required uint32 gnssID =3; required uint32 gnssSV =4; required bytes contents =5; optional uint32 sigid = 6; } message BeidouInavD1 { required uint32 gnssWN =1; required uint32 gnssTOW =2; // INTEGERS! required uint32 gnssID =3; required uint32 gnssSV =4; required bytes contents =5; optional uint32 sigid = 6; } message BeidouInavD2 { required uint32 gnssWN =1; required uint32 gnssTOW =2; // INTEGERS! required uint32 gnssID =3; required uint32 gnssSV =4; required bytes contents =5; optional uint32 sigid = 6; } message GlonassInav { required uint32 gnssID = 1; required uint32 gnssSV = 2; required uint32 freq = 3; required bytes contents = 4; optional uint32 sigid = 5; } message ReceptionData { required uint32 gnssID =1; required uint32 gnssSV =2; optional uint32 sigid = 7; required uint32 db =3; required uint32 el =4; required uint32 azi =5; required double prRes =6; } message RFData { required double rcvTow = 1; required uint32 rcvWn = 2; required uint32 gnssID =3; required uint32 gnssSV =4; required double doppler =5; required double carrierphase = 6; required double pseudorange = 7; required double locktimeMS = 8; required double doStd = 9; required double cpStd = 10; required double prStd = 11; optional uint32 sigid = 12; } message ObserverPosition { required double x = 1; required double y = 2; required double z = 3; required double acc = 4; } optional GalileoInav gi=5; optional ReceptionData rd=6; optional RFData rfd=7; optional ObserverPosition op=8; optional GPSInav gpsi=9; optional BeidouInavD1 bid1=10; optional BeidouInavD2 bid2=11; optional GlonassInav gloi=12; }