- Timestamp:
- Nov 10, 2026, 12:11:31 PM (4 hours ago)
- Location:
- trunk/BNC/src
- Files:
-
- 7 edited
-
GPSDecoder.h (modified) (2 diffs)
-
RTCM/RTCM2Decoder.cpp (modified) (3 diffs)
-
RTCM3/RTCM3Decoder.cpp (modified) (12 diffs)
-
RTCM3/crs.h (modified) (6 diffs)
-
bncgetthread.cpp (modified) (12 diffs)
-
bncgetthread.h (modified) (2 diffs)
-
satObs.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/GPSDecoder.h
r11057 r11191 90 90 bool _height_f; 91 91 int _message; 92 t_typeInfo _source; // RTCM message of the information (RTCM scan) 92 93 }; 93 94 94 95 struct t_antInfo { 95 96 t_antInfo() { 97 _descriptor[0] = _serialnumber[0] = 0; 96 98 }; 97 99 char _descriptor[256]; 98 100 char _serialnumber[256]; 101 t_typeInfo _source; // RTCM message of the information (RTCM scan) 99 102 }; 100 103 101 104 struct t_recInfo { 102 105 t_recInfo() { 106 _descriptor[0] = _serialnumber[0] = _firmware[0] = 0; 103 107 }; 104 108 char _descriptor[256]; 105 109 char _serialnumber[256]; 106 110 char _firmware[256]; 111 t_typeInfo _source; // RTCM message of the information (RTCM scan) 107 112 }; 108 113 … … 184 189 QList<t_rtcmCrs> _rtcmCrs; // RTCM CRS 185 190 QString _gloFrq; // GLONASS slot 191 t_typeInfo _gloFrqSource; // RTCM message of _gloFrq 186 192 t_GloBiasInfo _gloBiasInfo; // RTCM GLO bias information message 193 t_typeInfo _gloBiasSource; // RTCM message of _gloBiasInfo 194 t_typeInfo _currMsg; // RTCM message being decoded 187 195 bncRinex* _rnx; // RINEX writer 188 196 }; -
trunk/BNC/src/RTCM/RTCM2Decoder.cpp
r11023 r11191 214 214 _antList.back()._type = t_antRefPoint::APC; 215 215 _antList.back()._message = _PP.ID(); 216 _antList.back()._source = _typeList.back(); 216 217 } 217 218 } else if (_PP.ID() == 23) { … … 224 225 memcpy(_antType.back()._descriptor, _msg23.antType.c_str(), antlen); 225 226 _antType.back()._descriptor[antlen] = 0; 227 _antType.back()._source = _typeList.back(); 226 228 if (serlen) { 227 229 memcpy(_antType.back()._serialnumber, _msg23.antSN.c_str(), serlen); … … 243 245 _antList.back()._type = t_antRefPoint::ARP; 244 246 _antList.back()._message = _PP.ID(); 247 _antList.back()._source = _typeList.back(); 245 248 } 246 249 } -
trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
r11185 r11191 139 139 CurrentObs._time = CurrentObsTime; 140 140 CurrentObs._type = type; 141 CurrentObs._size = int(_currMsg._size); 141 142 142 143 GETBITS(sv, 6) … … 734 735 CurrentObs._time = CurrentObsTime; 735 736 CurrentObs._type = type; 737 CurrentObs._size = int(_currMsg._size); 736 738 if (sys == 'S') 737 739 CurrentObs._prn.set(sys, 20 - 1 + RTCM3_MSM_NUMSAT - i); … … 965 967 CurrentObs._time = CurrentObsTime; 966 968 CurrentObs._type = type; 969 CurrentObs._size = int(_currMsg._size); 967 970 968 971 GETBITS(sv, 6) … … 1348 1351 GLOFreq[sv - 1] = 100 + eph._frq_num ; /* store frequency for other users (MSM) */ 1349 1352 _gloFrq = QString("%1 %2").arg(eph._prn.toString().c_str()).arg(eph._frq_num, 2, 'f', 0); 1353 _gloFrqSource = _currMsg; 1350 1354 1351 1355 if (eph.validMdata()) { … … 2021 2025 memcpy(_antType.back()._descriptor, antenna, antnum); 2022 2026 _antType.back()._descriptor[antnum] = 0; 2027 _antType.back()._source = _currMsg; 2023 2028 } 2024 2029 SKIPBITS(8) /* antenna setup ID */ … … 2041 2046 memcpy(_recType.back()._descriptor, receiver, recnum); 2042 2047 _recType.back()._descriptor[recnum] = 0; 2048 _recType.back()._source = _currMsg; 2043 2049 if (recfirnum > -1 && recfirnum < 265) { 2044 2050 memcpy(_recType.back()._firmware, rec_firmware, recfirnum); … … 2067 2073 _antList.push_back(t_antRefPoint()); 2068 2074 _antList.back()._type = t_antRefPoint::ARP; 2075 _antList.back()._source = _currMsg; 2069 2076 SKIPBITS(22) 2070 2077 GETBITSSIGN(x, 38) … … 2127 2134 if (_gloBiasInfo != gloBiasInfo) { 2128 2135 _gloBiasInfo.set(gloBiasInfo); 2136 _gloBiasSource = _currMsg; 2129 2137 } 2130 2138 return true; … … 2153 2161 if (_serviceCrs.empty() || 2154 2162 (strncmp(_serviceCrs.back()._name, serviceCrs._name, servicecrsnum) != 0)) { 2163 serviceCrs._msgType = _currMsg._type; 2164 serviceCrs._msgSize = int(_currMsg._size); 2155 2165 _serviceCrs.push_back(serviceCrs); 2156 2166 GETFLOAT(_serviceCrs.back()._CE, 16, 1/100.0) … … 2184 2194 if (_rtcmCrs.empty() || 2185 2195 (strncmp(_rtcmCrs.back()._name, rtcmCrs._name, rtcmcrsnum) != 0)) { 2196 rtcmCrs._msgType = _currMsg._type; 2197 rtcmCrs._msgSize = int(_currMsg._size); 2186 2198 _rtcmCrs.push_back(rtcmCrs); 2187 2199 … … 2248 2260 } 2249 2261 } 2262 helmertPar._msgType = _currMsg._type; 2263 helmertPar._msgSize = int(_currMsg._size); 2250 2264 _helmertPar.push_back(helmertPar); 2251 2265 … … 2300 2314 _typeList.back()._type = id; 2301 2315 _typeList.back()._size = _BlockSize -6; /* header + crc */ 2316 _currMsg = _typeList.back(); 2302 2317 2303 2318 /* SSR I+II data handled in another function, already pass the -
trunk/BNC/src/RTCM3/crs.h
r11124 r11191 19 19 _coordinateEpoch = 0; 20 20 _CE = 0; 21 _msgType = 0; 22 _msgSize = 0; 21 23 } 22 24 ~t_serviceCrs() { … … 41 43 double _coordinateEpoch; 42 44 double _CE; 45 int _msgType; // RTCM message of the information (RTCM scan) 46 int _msgSize; 43 47 }; 44 48 … … 49 53 _anchor = 0; 50 54 _plateNumber = 0; 55 _msgType = 0; 56 _msgSize = 0; 51 57 } 52 58 … … 75 81 int _plateNumber; // 0.. unknown, 7.. Eurasia 76 82 QStringList _databaseLinks; 83 int _msgType; // RTCM message of the information (RTCM scan) 84 int _msgSize; 77 85 }; 78 86 … … 97 105 _sc = 0.0; 98 106 _scr = 0.0; 107 _msgType = 0; 108 _msgSize = 0; 99 109 } 100 110 … … 190 200 double _sc; // scale 191 201 double _scr; // scale rate 202 int _msgType; // RTCM message of the information (RTCM scan) 203 int _msgSize; 192 204 }; 193 205 -
trunk/BNC/src/bncgetthread.cpp
r11190 r11191 909 909 } 910 910 if (!allFound) { 911 GPSDecoder::t_typeInfo source; // message with the new type(s) 912 source._type = obs._type; 913 source._size = obs._size; 911 914 QString msg; 912 915 QTextStream str(&msg); … … 915 918 str << " " << rnxTypes[iType]; 916 919 } 917 emitContent(_staID + ": Observation Types: " + msg.toLatin1(), true); 920 emitContent(_staID + ": Observation Types: " + msg.toLatin1(), true, source); 918 921 } 919 922 } … … 923 926 for (int ii = 0; ii < decoder()->_antType.size(); ii++) { 924 927 QString ant1 = QString(": Antenna Descriptor: %1 ").arg(decoder()->_antType[ii]._descriptor); 925 emitContent(_staID + ant1.toLatin1(), true); 928 emitContent(_staID + ant1.toLatin1(), true, decoder()->_antType[ii]._source); 926 929 if (strlen(decoder()->_antType[ii]._serialnumber)) { 927 930 QString ant2 = QString(": Antenna Serial Number: %1 ").arg(decoder()->_antType[ii]._serialnumber); 928 emitContent(_staID + ant2.toLatin1(), true); 931 emitContent(_staID + ant2.toLatin1(), true, decoder()->_antType[ii]._source); 929 932 } 930 933 } … … 943 946 ant2 = QString("%1 ").arg(decoder()->_antList[ii]._yy, 0, 'f', 4).toLatin1(); 944 947 ant3 = QString("%1 ").arg(decoder()->_antList[ii]._zz, 0, 'f', 4).toLatin1(); 945 emitContent(_staID + ": " + antT + " (ITRF) X " + ant1 + "m", true); 946 emitContent(_staID + ": " + antT + " (ITRF) Y " + ant2 + "m", true); 947 emitContent(_staID + ": " + antT + " (ITRF) Z " + ant3 + "m", true); 948 emitContent(_staID + ": " + antT + " (ITRF) X " + ant1 + "m", true, decoder()->_antList[ii]._source); 949 emitContent(_staID + ": " + antT + " (ITRF) Y " + ant2 + "m", true, decoder()->_antList[ii]._source); 950 emitContent(_staID + ": " + antT + " (ITRF) Z " + ant3 + "m", true, decoder()->_antList[ii]._source); 948 951 double hh = 0.0; 949 952 if (decoder()->_antList[ii]._height_f) { … … 951 954 QByteArray ant4 = QString("%1 ").arg(hh, 0, 'f', 4).toLatin1(); 952 955 emitContent( 953 _staID + ": Antenna height above marker " + ant4 + "m", true); 956 _staID + ": Antenna height above marker " + ant4 + "m", true, 957 decoder()->_antList[ii]._source); 954 958 } 955 959 emit(newAntCrd(_staID, decoder()->_antList[ii]._xx, … … 963 967 QString rec2 = QString(": Receiver Firmware Version: %1 ").arg(decoder()->_recType[ii]._firmware); 964 968 QString rec3 = QString(": Receiver Serial Number: %1 ").arg(decoder()->_recType[ii]._serialnumber); 965 emitContent(_staID + rec1.toLatin1(), true); 966 emitContent(_staID + rec2.toLatin1(), true); 967 emitContent(_staID + rec3.toLatin1(), true); 969 emitContent(_staID + rec1.toLatin1(), true, decoder()->_recType[ii]._source); 970 emitContent(_staID + rec2.toLatin1(), true, decoder()->_recType[ii]._source); 971 emitContent(_staID + rec3.toLatin1(), true, decoder()->_recType[ii]._source); 968 972 } 969 973 … … 982 986 emitContent( 983 987 _staID + ": GLONASS Slot:Freq " + _gloSlots.join(" ").toLatin1(), 984 true); 988 true, decoder()->_gloFrqSource); 985 989 } 986 990 } … … 990 994 if (decoder()->_gloBiasInfo.changed()) { 991 995 QString gloCodePhaseBiases = decoder()->_gloBiasInfo.toString(); 992 emitContent(_staID + gloCodePhaseBiases.toLatin1(), true); 996 emitContent(_staID + gloCodePhaseBiases.toLatin1(), true, decoder()->_gloBiasSource); 993 997 decoder()->_gloBiasInfo.setChanged(false); 994 998 } … … 999 1003 // Service CRS 1000 1004 for (int ii = 0; ii < decoder()->_serviceCrs.size(); ii++) { 1005 GPSDecoder::t_typeInfo source; 1006 source._type = decoder()->_serviceCrs[ii]._msgType; 1007 source._size = decoder()->_serviceCrs[ii]._msgSize; 1001 1008 QString servicecrsname = QString(": Service CRS Name: %1 ").arg(decoder()->_serviceCrs[ii]._name); 1002 1009 QString coordinateEpoch = QString(": Service CRS Coordinate Epoch: %1 ").arg(decoder()->_serviceCrs[ii]._coordinateEpoch); 1003 1010 //QString ce = QString(": CE: %1 ").arg(decoder()->_serviceCrs[ii]._CE); 1004 emitContent(_staID + servicecrsname.toLatin1(), true); 1005 emitContent(_staID + coordinateEpoch.toLatin1(), true); 1011 emitContent(_staID + servicecrsname.toLatin1(), true, source); 1012 emitContent(_staID + coordinateEpoch.toLatin1(), true, source); 1006 1013 //emitContent(_staID + ce.toLatin1(), true); 1007 1014 } 1008 1015 // RTCM CRS 1009 1016 for (int ii = 0; ii < decoder()->_rtcmCrs.size(); ii++) { 1017 GPSDecoder::t_typeInfo source; 1018 source._type = decoder()->_rtcmCrs[ii]._msgType; 1019 source._size = decoder()->_rtcmCrs[ii]._msgSize; 1010 1020 QString rtcmcrsname = QString(": RTCM CRS Name: %1 ").arg(decoder()->_rtcmCrs[ii]._name); 1011 1021 QString anchor = QString(": RTCM CRS Anchor: %1 ").arg(decoder()->_rtcmCrs[ii]._anchor); 1012 1022 QString platenumber = QString(": RTCM CRS Plate Number: %1 ").arg(decoder()->_rtcmCrs[ii]._plateNumber); 1013 emitContent(_staID + rtcmcrsname.toLatin1(), true); 1014 emitContent(_staID + anchor.toLatin1(), true); 1015 emitContent(_staID + platenumber.toLatin1(), true); 1023 emitContent(_staID + rtcmcrsname.toLatin1(), true, source); 1024 emitContent(_staID + anchor.toLatin1(), true, source); 1025 emitContent(_staID + platenumber.toLatin1(), true, source); 1016 1026 for (int i = 0; i<decoder()->_rtcmCrs[ii]._databaseLinks.size(); i++) { 1017 1027 QString dblink = QString(": Database Link: %1 ").arg(decoder()->_rtcmCrs[ii]._databaseLinks[i]); 1018 emitContent(_staID + dblink.toLatin1(), true); 1028 emitContent(_staID + dblink.toLatin1(), true, source); 1019 1029 } 1020 1030 } … … 1024 1034 for (int ii = 0; ii < decoder()->_helmertPar.size(); ii++) { 1025 1035 t_helmertPar& helmertPar = decoder()->_helmertPar[ii]; 1036 GPSDecoder::t_typeInfo source; 1037 source._type = helmertPar._msgType; 1038 source._size = helmertPar._msgSize; 1026 1039 bncTime t; t.setmjd(0, helmertPar._mjd); QString dateStr = QString::fromStdString(t.datestr()); 1027 1040 QString sourcename = QString(": MT1301 Source Name: %1 ").arg(helmertPar._sourceName); … … 1037 1050 .arg(helmertPar._oxr).arg(helmertPar._oyr).arg(helmertPar._ozr); 1038 1051 QString parscale = QString(": MT1301 Helmert Par Scale: sc = %1, scr = %2").arg(helmertPar._sc).arg(helmertPar._scr); 1039 emitContent(_staID + sourcename.toLatin1(), true); 1040 emitContent(_staID + targetname.toLatin1(), true); 1041 emitContent(_staID + sysidentnum.toLatin1(), true); 1042 emitContent(_staID + trafomessageind.toLatin1(), true); 1043 emitContent(_staID + epoch.toLatin1(), true); 1044 emitContent(_staID + partrans.toLatin1(), true); 1045 emitContent(_staID + parrot.toLatin1(), true); 1046 emitContent(_staID + parscale.toLatin1(), true); 1052 emitContent(_staID + sourcename.toLatin1(), true, source); 1053 emitContent(_staID + targetname.toLatin1(), true, source); 1054 emitContent(_staID + sysidentnum.toLatin1(), true, source); 1055 emitContent(_staID + trafomessageind.toLatin1(), true, source); 1056 emitContent(_staID + epoch.toLatin1(), true, source); 1057 emitContent(_staID + partrans.toLatin1(), true, source); 1058 emitContent(_staID + parrot.toLatin1(), true, source); 1059 emitContent(_staID + parscale.toLatin1(), true, source); 1047 1060 } 1048 1061 } … … 1163 1176 } 1164 1177 1165 // Content of the stream found by the RTCM scan (miscScanRTCM) 1178 // Content of the stream found by the RTCM scan (miscScanRTCM), with type 1179 // and size of the RTCM message carrying the information 1166 1180 //////////////////////////////////////////////////////////////////////////// 1167 void bncGetThread::emitContent(const QByteArray& msg, bool showOnScreen) { 1168 emit newLogRecord(t_logRecord(t_logRecord::info, "stream", "stream_content", _staID, msg), 1169 showOnScreen); 1170 } 1181 void bncGetThread::emitContent(const QByteArray& msg, bool showOnScreen, 1182 const GPSDecoder::t_typeInfo& source) { 1183 t_logRecord rec(t_logRecord::info, "stream", "stream_content", _staID, msg); 1184 if (source._type) { 1185 rec.add("message_type", source._type); 1186 } 1187 if (source._size) { 1188 rec.add("size", int(source._size)); 1189 } 1190 emit newLogRecord(rec, showOnScreen); 1191 } -
trunk/BNC/src/bncgetthread.h
r11185 r11191 40 40 #include "rinex/rnxobsfile.h" 41 41 42 classGPSDecoder;42 #include "GPSDecoder.h" 43 43 class QextSerialPort; 44 44 class latencyChecker; … … 103 103 t_irc initDecoder(); 104 104 void emitFormat(const char* text, const char* decoder); 105 void emitContent(const QByteArray& msg, bool showOnScreen); 105 void emitContent(const QByteArray& msg, bool showOnScreen, 106 const GPSDecoder::t_typeInfo& source); 106 107 GPSDecoder* decoder(); 107 108 -
trunk/BNC/src/satObs.h
r11047 r11191 54 54 t_satObs() { 55 55 _type = 0; 56 _size = 0; 56 57 } 57 58 t_satObs(const t_satObs& other) { // copy constructor (deep copy) … … 84 85 _staID.clear(); 85 86 _type = 0; 87 _size = 0; 86 88 } 87 89 … … 90 92 bncTime _time; 91 93 int _type; // MT 94 int _size; // size of the message [bytes], 0 if unknown 92 95 std::vector<t_frqObs*> _obs; 93 96 … … 98 101 _time = other._time; 99 102 _type = other._type; 103 _size = other._size; 100 104 for (unsigned ii = 0; ii < other._obs.size(); ii++) { 101 105 _obs.push_back(new t_frqObs(*other._obs[ii]));
Note:
See TracChangeset
for help on using the changeset viewer.
