- Timestamp:
- Jan 18, 2007, 11:14:34 AM (18 years ago)
- Location:
- trunk/BNC
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/BNC/RTCM/GPSDecoder.h ¶
r366 r367 45 45 L1 = 0.0; 46 46 L2 = 0.0; 47 S1 = 0.0; 48 S2 = 0.0; 47 49 SNR1 = 0; 48 50 SNR2 = 0; … … 61 63 double L1; // L1 carrier phase (cycles) 62 64 double L2; // L2 carrier phase (cycles) 63 int SNR1; // L1 signal-to noise ratio (RINEX convention) 64 int SNR2; // L2 signal-to noise ratio (RINEX convention) 65 double S1; // L1 signal-to noise ratio 66 double S2; // L2 signal-to noise ratio 67 int SNR1; // L1 signal-to noise ratio (mapped to integer) 68 int SNR2; // L2 signal-to noise ratio (mapped to integer) 65 69 }; 66 70 -
TabularUnified trunk/BNC/RTCM3/RTCM3Decoder.cpp ¶
r366 r367 90 90 if (rr == 2) { 91 91 std::cerr << "No valid RINEX! All values are modulo 299792.458!\n"; 92 //exit(1);92 exit(1); 93 93 } 94 94 … … 148 148 obs->SNR2 = _Parser.Data.snrL2[ii]; 149 149 } 150 else if (df & (GNSSDF_S1CDATA|GNSSDF_S1PDATA)) { 151 obs->S1 = _Parser.Data.measdata[ii][pos]; 152 } 153 else if (df & (GNSSDF_S2CDATA|GNSSDF_S2PDATA)) { 154 obs->S2 = _Parser.Data.measdata[ii][pos]; 155 } 150 156 } 151 157 } -
TabularUnified trunk/BNC/RTCM3/rtcm3torinex.cpp ¶
r366 r367 1 1 /* 2 2 Converter for RTCM3 data to RINEX. 3 $Id: rtcm3torinex.c ,v 1.162007/01/11 15:32:26 stoeckerExp $3 $Id: rtcm3torinex.cpp,v 1.13 2007/01/17 15:17:20 mervart Exp $ 4 4 Copyright (C) 2005-2006 by Dirk Stoecker <stoecker@euronik.eu> 5 5 … … 51 51 52 52 /* CVS revision and version */ 53 static char revisionstr[] = "$Revision: 1.1 6$";53 static char revisionstr[] = "$Revision: 1.13 $"; 54 54 55 55 static uint32_t CRC24(long size, const unsigned char *buf) … … 249 249 switch(type) 250 250 { 251 case 1001: case 1002: case 1003: case 1004: 251 // Modification of RTCM3TORINEX for BNC: ignore 1001 and 1003 252 //case 1001: case 1002: case 1003: case 1004: 253 case 1002: case 1004: 252 254 if(handle->GPSWeek) 253 255 { … … 408 410 } 409 411 break; 410 case 1009: case 1010: case 1011: case 1012: 412 // Modification of RTCM3TORINEX for BNC: ignore 1009 and 1010 413 //case 1009: case 1010: case 1011: case 1012: 414 case 1010: case 1012: 411 415 { 412 416 int lastlockl1[64]; … … 656 660 #define NUMSTARTSKIP 1 657 661 658 //////////////////////////////////////////////////////////////////// 659 // Aenderung Perlt - kein check auf vorhandene Daten 660 // Abgefragt werden : C1 C2 L1 L2 P1 P2 S1 S2 662 // Modification of RTCM3TORINEX for BNC 661 663 662 664 void HandleHeader(struct RTCM3ParserData *Parser) … … 722 724 Parser->datapos2[data[RINEXENTRY_D2DATA]-1] = GNSSENTRY_D2PDATA; 723 725 } 724 // End e Aenderung Perlt - kein check auf vorhandene Daten726 // End of RTCM3TORINEX modification for BNC 725 727 726 728 … … 852 854 853 855 #ifndef NO_RTCM3_MAIN 854 static char datestr[] = "$Date: 2007/01/1 1 15:32:26$";856 static char datestr[] = "$Date: 2007/01/17 15:17:20 $"; 855 857 856 858 /* The string, which is send as agent in HTTP request */ -
TabularUnified trunk/BNC/RTIGS/RTIGSDecoder.cpp ¶
r341 r367 115 115 obs->L1 = _GPSTrans.DecObs.Obs[ii].p1_phase; 116 116 obs->L2 = _GPSTrans.DecObs.Obs[ii].p2_phase; 117 obs->S1 = _GPSTrans.DecObs.Obs[ii].l1_sn; 118 obs->S2 = _GPSTrans.DecObs.Obs[ii].l2_sn; 117 119 obs->SNR1 = int(ceil(_GPSTrans.DecObs.Obs[ii].l1_sn / 60.0 * 9.0)); 118 120 obs->SNR2 = int(ceil(_GPSTrans.DecObs.Obs[ii].l2_sn / 60.0 * 9.0)); -
TabularUnified trunk/BNC/bnccaster.cpp ¶
r366 r367 251 251 _out->setFieldWidth(1); *_out << " "; 252 252 _out->setFieldWidth(14); _out->setRealNumberPrecision(3); *_out << obs->L2; 253 _out->setFieldWidth(1); *_out << " "; 254 _out->setFieldWidth(14); _out->setRealNumberPrecision(3); *_out << obs->S1; 255 _out->setFieldWidth(1); *_out << " "; 256 _out->setFieldWidth(14); _out->setRealNumberPrecision(3); *_out << obs->S2; 253 257 _out->setFieldWidth(1); 254 258 *_out << " " << obs->SNR1 << " " << obs->SNR2 << endl; -
TabularUnified trunk/BNC/bnchelp.html ¶
r366 r367 37 37 <ul> 38 38 <li>RTCM Version 2.x format containing message types 18 and 19 (GPS and GLONASS), </li> 39 <li>RTCM Version 3 format containing message types 100 1, 1002, 1003,1004 (GPS), and 1009, 1010, 1011,1012 (GLONASS),</li>39 <li>RTCM Version 3 format containing message types 1002 or 1004 (GPS), and 1010 or 1012 (GLONASS),</li> 40 40 <li>RTIGS format (only GPS).</li> 41 41 </ul> … … 117 117 <p><a name="output"><h4>B - 4. Synchronized Output</h4></p> 118 118 <p> 119 BNC lets you output synchronized observations epoch by epoch. This output is made available in a plain ASCII format and in a binary format. The output comprises the following observations if available:</p> 120 StatID, SVPRN, GPSWeek, GPSWeeks, C1, C2, P1, P2, L1, L2, SNR1, SNR2. 119 BNC lets you output synchronized observations epoch by epoch. This output is made available in a plain ASCII format and in a binary format. The output comprises the following observations if available where SNR is the signal-to-noise ratio S mapped to integer numbers 1 to 9:</p> 120 StatID, SVPRN, GPSWeek, GPSWeeks, C1, C2, P1, P2, L1, L2, S1, S2, SNR1, SNR2. 121 121 </p> 122 122 <p> … … 169 169 double L1; // L1 carrier phase (cycles) 170 170 double L2; // L2 carrier phase (cycles) 171 int SNR1; // L1 signal-to noise ratio (0.1 dB) 172 int SNR2; // L2 signal-to noise ratio (0.1 dB) 171 double S1; // L1 signal-to noise ratio (dB-Hz) 172 double S2; // L2 signal-to noise ratio (db-Hz) 173 int SNR1; // S1 mapped to integer numbers 1 to 9 174 int SNR2; // S2 mapped to integer numbers 1 to 9 173 175 } ; 174 176 </pre> … … 205 207 </p> 206 208 <p> 207 BNC's RINEX observation files generally contain C1, C2, P1, P2, L1, L2, S NR1, and SNR3observations. In case an observation is unavailable, its value is set to zero '0.000'. Note that even if a RINEX file does not contain GLONASS data, the 'RINEX TYPE' field in the RINEX file header may be set to 'M (MIXED)'.209 BNC's RINEX observation files generally contain C1, C2, P1, P2, L1, L2, S1, and S2 observations. In case an observation is unavailable, its value is set to zero '0.000'. Note that even if a RINEX file does not contain GLONASS data, the 'RINEX TYPE' field in the RINEX file header may be set to 'M (MIXED)'. 208 210 </p> 209 211 … … 317 319 <p><a name="GetTable"><h4>B - 6.4 Get Table</h4></p> 318 320 <p> 319 Hit button 'Get Table' to download the source-table from the NTRIP broadcaster. Please pay attention to data fields 'format' and 'format-details'. Keep in mind that BNC can only decode and convert streams that come in RTCM 2.x, RTCM 3, or RTIGS formats. RTCM 2.x streams must contain message types 18 and 19 while RTCM 3 streams must contain message types 1001 or 1003, better 1003 or 1004 (GPS), 1009 or 1010, even better 1011 or 1012 (GLONASS), see data field 'format-details' for available message types and their repetition rates in brackets. Select your streams line by line, use +Shift and +Ctrl when necessary.321 Hit button 'Get Table' to download the source-table from the NTRIP broadcaster. Please pay attention to data fields 'format' and 'format-details'. Keep in mind that BNC can only decode and convert streams that come in RTCM 2.x, RTCM 3, or RTIGS formats. RTCM 2.x streams must contain message types 18 and 19 while RTCM 3 streams must contain GPS message types 1002 or 1004 and may contain GLONASS message types 1010 or 1012, see data field 'format-details' for available message types and their repetition rates in brackets. Select your streams line by line, use +Shift and +Ctrl when necessary. 320 322 </p> 321 323 <p> … … 369 371 </li> 370 372 <li> 371 BNC's function is limited today to processing C1, C2, P1, P2, L1, L2, SNR1, and SNR2 observations. Which observables become available through a specific stream depends on the setup of the affected receiver and the applied data format. Note that RTCM Version 2.x streams can not transport signal-to-noise ratios (SNR) and RTCM Version 3 streams can only transport one code observable per frequency. Note further that signal-to-noise ratios SNR1 and SNR2 are mapped to integer numbers 1 to 9. 372 </li> 373 <li> 374 Concerning RTCM Version 2.x, BNC handles only message types 18 and 19. Concerning RTCM Version 3, BNC handles only message types 1001, 1002, 1003, 1004, 1009, 1010, 1011, and 1012. 375 </li> 376 <li> 377 If the ambiguity field is not set in RTCM Version 3 streams (i.e. when sending message type 1003 but no 1004), the BNC output will be no valid RINEX. All values will be stored modulo 299792.458. (It would be necessary to approximately calculate the range to fix the ambiguity, needing ephemeris/almanac and an easy positioning algorithm). 373 BNC's function is limited today to processing C1, C2, P1, P2, L1, L2, S1, and S2 observations. Which observables become available through a specific stream depends on the setup of the affected receiver and the applied data format. Note that RTCM Version 2.x streams can not transport signal-to-noise ratios (S) and RTCM Version 3 streams can only transport one code observable per frequency. Note further that signal-to-noise ratios (S) are also made available mapped to integer numbers 1 to 9. 374 </li> 375 <li> 376 Concerning RTCM Version 2.x, BNC handles only message types 18 and 19. Concerning RTCM Version 3, BNC handles only message types 1002, 1004, 1010, and 1012. 378 377 </li> 379 378 <li> -
TabularUnified trunk/BNC/bncrinex.cpp ¶
r366 r367 334 334 } 335 335 else if (line.indexOf("# / TYPES OF OBSERV") != -1) { 336 _out << " 6C1 C2 P1 P2 L1 L2"337 " 336 _out << " 8 C1 C2 P1 P2 L1 L2 S1 S2" 337 " # / TYPES OF OBSERV" << endl; 338 338 } 339 339 else if (line.indexOf("TIME OF FIRST OBS") != -1) { … … 380 380 << " " << "ANTENNA: DELTA H/E/N" << endl; 381 381 _out << " 1 1 WAVELENGTH FACT L1/2" << endl; 382 _out << " 6C1 C2 P1 P2 L1 L2382 _out << " 8 C1 C2 P1 P2 L1 L2 S1 S2 # / TYPES OF OBSERV" << endl; 383 383 _out << datTim.toString(" yyyy MM dd" 384 384 " hh mm ss.zzz0000").toAscii().data(); … … 479 479 _out << setw(14) << setprecision(3) << ob->L2 << lli 480 480 << setw(1) << ob->SNR2; 481 _out << setw(14) << setprecision(3) << ob->S1 ; 482 _out << setw(16) << setprecision(3) << ob->S2 ; 481 483 _out << endl; 482 484 -
TabularUnified trunk/BNC/bncwindow.cpp ¶
r366 r367 184 184 while (it.hasNext()) { 185 185 QStringList hlp = it.next().split(" "); 186 if (hlp.size() <= 1) continue; 187 if (hlp.size() == 2) continue; // For downward compatibility 186 if (hlp.size() < 5) continue; // Check number of parameters saved per mountpoint 188 187 _mountPointsTable->insertRow(iRow); 189 188 -
TabularUnified trunk/BNC/test_bnc.cpp ¶
r348 r367 98 98 << setw(10) << setprecision(2) << obs.GPSWeeks << " " 99 99 << setw(14) << setprecision(4) << obs.C1 << " " 100 << setw(14) << setprecision(4) << obs.C2 << " " 100 101 << setw(14) << setprecision(4) << obs.P1 << " " 101 102 << setw(14) << setprecision(4) << obs.P2 << " " 102 103 << setw(14) << setprecision(4) << obs.L1 << " " 103 104 << setw(14) << setprecision(4) << obs.L2 << " " 105 << setw(14) << setprecision(4) << obs.S1 << " " 106 << setw(14) << setprecision(4) << obs.S2 << " " 104 107 << setw(4) << obs.SNR1 << " " 105 108 << setw(4) << obs.SNR2 << endl;
Note:
See TracChangeset
for help on using the changeset viewer.