Changeset 1184 in ntrip
- Timestamp:
- Nov 10, 2008, 7:01:41 PM (16 years ago)
- Location:
- trunk/BNC
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/BNC/RTCM/GPSDecoder.h ¶
r1130 r1184 134 134 135 135 QList<p_obs> _obsList; 136 QList<int> _typeList; // RTCM message types 136 QList<int> _typeList; // RTCMv3 message types 137 137 QList<int> _epochList; // Broadcast corrections 138 QList<double> _antList; // Antenna XYZ-H 138 QList<char*> _antType; // RTCMv3 antenna descriptor 139 QList<double> _antList5; // RTCMv3 antenna XYZ 140 QList<double> _antList6; // RTCMv3 antenna XYZ & H 139 141 }; 140 142 -
TabularUnified trunk/BNC/RTCM3/rtcm3torinex.c ¶
r1130 r1184 1 1 /* 2 2 Converter for RTCM3 data to RINEX. 3 $Id: rtcm3torinex.c,v 1.1 62008/09/02 14:14:33weber Exp $3 $Id: rtcm3torinex.c,v 1.17 2008/09/22 09:39:49 weber Exp $ 4 4 Copyright (C) 2005-2008 by Dirk Stöcker <stoecker@alberding.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.17 $"; 54 54 55 55 #ifndef COMPILEDATE … … 290 290 { 291 291 #ifdef NO_RTCM3_MAIN 292 double antX, antY, antZ, antH; /* Antenna XYZ-H */ 292 case 1005: 293 { 294 double antX, antY, antZ; /* Antenna XYZ */ 295 SKIPBITS(22) 296 GETBITSSIGN(antX, 38) 297 SKIPBITS(2) 298 GETBITSSIGN(antY, 38) 299 SKIPBITS(2) 300 GETBITSSIGN(antZ, 38) 301 handle->antList5[handle->antSize5 + 0] = antX; 302 handle->antList5[handle->antSize5 + 1] = antY; 303 handle->antList5[handle->antSize5 + 2] = antZ; 304 if(handle->antSize5 < 100 - 5 ) {handle->antSize5 += 3;} 305 ret = 1005; 306 } 307 break; 293 308 case 1006: 294 309 { 295 SKIPBITS(22); 296 GETBITSSIGN(antX, 38); SKIPBITS(2); 297 GETBITSSIGN(antY, 38); SKIPBITS(2); 298 GETBITSSIGN(antZ, 38); 299 GETBITS( antH, 16); 300 handle->antList[handle->antSize + 0] = antX; 301 handle->antList[handle->antSize + 1] = antY; 302 handle->antList[handle->antSize + 2] = antZ; 303 handle->antList[handle->antSize + 3] = antH; 304 if(handle->antSize < 100 - 6 ) {handle->antSize += 4;} 310 double antX, antY, antZ, antH; /* Antenna XYZ-H */ 311 SKIPBITS(22) 312 GETBITSSIGN(antX, 38) 313 SKIPBITS(2) 314 GETBITSSIGN(antY, 38) 315 SKIPBITS(2) 316 GETBITSSIGN(antZ, 38) 317 GETBITS( antH, 16) 318 handle->antList6[handle->antSize6 + 0] = antX; 319 handle->antList6[handle->antSize6 + 1] = antY; 320 handle->antList6[handle->antSize6 + 2] = antZ; 321 handle->antList6[handle->antSize6 + 3] = antH; 322 if(handle->antSize6 < 100 - 6 ) {handle->antSize6 += 4;} 323 ret = 1006; 324 } 325 break; 326 case 1007: 327 { 328 char *antC = '\0'; /* Antenna Descriptor */ 329 char *antS = '\0'; 330 antC = (char*) malloc(32); 331 antS = (char*) malloc(32); 332 uint32_t antN; 333 uint32_t antD; 334 uint32_t jj; 335 336 SKIPBITS(12) 337 GETBITS(antN, 8) 338 if ((antN>0) && (antN<32)) { 339 for (jj = 0; jj < antN; jj++) { 340 GETBITS(antD, 8) 341 sprintf(antS,"%c",antD); 342 if (jj<1) { 343 strcpy(antC,antS); 344 } else { 345 strcat(antC,antS); 346 } 347 } 348 handle->antType[handle->antSize] = antC; 349 if(handle->antSize < 100) {handle->antSize += 1;} 350 } 351 ret = 1007; 352 } 353 break; 354 case 1008: 355 { 356 char *antC = '\0'; /* Antenna Descriptor */ 357 char *antS = '\0'; 358 antC = (char*) malloc(32); 359 antS = (char*) malloc(32); 360 uint32_t antN; 361 uint32_t antD; 362 uint32_t jj; 363 364 SKIPBITS(12) 365 GETBITS(antN, 8) 366 if ((antN>0) && (antN<32)) { 367 for (jj = 0; jj < antN; jj++) { 368 GETBITS(antD, 8) 369 sprintf(antS,"%c",antD); 370 if (jj<1) { 371 strcpy(antC,antS); 372 } else { 373 strcat(antC,antS); 374 } 375 } 376 handle->antType[handle->antSize] = antC; 377 if(handle->antSize < 100) {handle->antSize += 1;} 378 } 379 ret = 1008; 305 380 } 306 381 break; … … 1639 1714 1640 1715 #ifndef NO_RTCM3_MAIN 1641 static char datestr[] = "$Date: 2008/09/ 02 14:14:33$";1716 static char datestr[] = "$Date: 2008/09/22 09:39:49 $"; 1642 1717 1643 1718 /* The string, which is send as agent in HTTP request */ -
TabularUnified trunk/BNC/bncabout.html ¶
r1040 r1184 21 21 The Bundesamt fuer Geodaesie und Kartographie (BKG) may not be held liable for damages of any kind, direct or consequential, which may result from the use of this software.<br> 22 22 <br> 23 BKG, Frankfurt, Germany, September 2008<br>23 BKG, Frankfurt, Germany, November 2008<br> 24 24 E-Mail: <a><u>euref-ip@bkg.bund.de</u></a>.<br> 25 25 </p> -
TabularUnified trunk/BNC/bncgetthread.cpp ¶
r1168 r1184 737 737 bool dump = true; 738 738 739 740 739 RTCM2Decoder* decoder2 = dynamic_cast<RTCM2Decoder*>(_decoder); 740 if ( decoder2 && !_rnx_set_position ) { 741 741 double stax, stay, staz; 742 742 double dL1[3], dL2[3]; … … 796 796 if ( _checkMountPoint == _staID || _checkMountPoint == "ALL" ) { 797 797 798 // RTCM message types 799 // ------------------ 798 // RTCMv3 message types 799 // -------------------- 800 800 if (0<_decoder->_typeList.size()) { 801 801 QString type; … … 807 807 _decoder->_typeList.clear(); 808 808 809 // Antenna XYZ & H 810 // --------------- 811 if (0<_decoder->_antList.size()) { 809 // RTCMv3 antenna descriptor 810 // ------------------------- 811 if (0<_decoder->_antType.size()) { 812 QString ant1; 813 for (int ii=0;ii<_decoder->_antType.size();ii++) { 814 ant1 = QString("%1 ").arg(_decoder->_antType[ii]); 815 emit(newMessage(_staID + ": Antenna descriptor " + ant1.toAscii() )); 816 } 817 } 818 _decoder->_antType.clear(); 819 820 // RTCMv3 antenna XYZ 821 // ------------------ 822 if (0<_decoder->_antList5.size()) { 823 QString ant1,ant2,ant3; 824 for (int ii=0;ii<_decoder->_antList5.size();ii+=3) { 825 ant1 = QString("%1 ").arg(_decoder->_antList5[ii+0]*0.0001,0,'f',4); 826 ant2 = QString("%1 ").arg(_decoder->_antList5[ii+1]*0.0001,0,'f',4); 827 ant3 = QString("%1 ").arg(_decoder->_antList5[ii+2]*0.0001,0,'f',4); 828 emit(newMessage(_staID + ": ARP (ITRF) X " + ant1.toAscii() + "m" )); 829 emit(newMessage(_staID + ": ARP (ITRF) Y " + ant2.toAscii() + "m")); 830 emit(newMessage(_staID + ": ARP (ITRF) Z " + ant3.toAscii() + "m")); 831 } 832 } 833 _decoder->_antList5.clear(); 834 835 // RTCMv3 antenna XYZ-H 836 // -------------------- 837 if (0<_decoder->_antList6.size()) { 812 838 QString ant1,ant2,ant3,ant4; 813 for (int ii=0;ii<_decoder->_antList.size();ii+=4) { 814 ant1 = QString("%1 ").arg(_decoder->_antList[ii+0]*0.0001,0,'f',4); 815 ant2 = QString("%1 ").arg(_decoder->_antList[ii+1]*0.0001,0,'f',4); 816 ant3 = QString("%1 ").arg(_decoder->_antList[ii+2]*0.0001,0,'f',4); 817 ant4 = QString("%1 ").arg(_decoder->_antList[ii+3]*0.0001,0,'f',4); 839 for (int ii=0;ii<_decoder->_antList6.size();ii+=4) { 840 ant1 = QString("%1 ").arg(_decoder->_antList6[ii+0]*0.0001,0,'f',4); 841 ant2 = QString("%1 ").arg(_decoder->_antList6[ii+1]*0.0001,0,'f',4); 842 ant3 = QString("%1 ").arg(_decoder->_antList6[ii+2]*0.0001,0,'f',4); 843 ant4 = QString("%1 ").arg(_decoder->_antList6[ii+3]*0.0001,0,'f',4); 818 844 emit(newMessage(_staID + ": ARP (ITRF) X " + ant1.toAscii() + "m" )); 819 845 emit(newMessage(_staID + ": ARP (ITRF) Y " + ant2.toAscii() + "m")); … … 822 848 } 823 849 } 824 _decoder->_antList.clear(); 850 _decoder->_antList6.clear(); 825 851 } 826 852 } -
TabularUnified trunk/BNC/bnchelp.html ¶
r1165 r1184 71 71 3.4.1. <a href=#genlog>Logfile</a><br> 72 72 3.4.2. <a href=#genapp>Append Files</a><br> 73 3.4.3. <a href=#reconf>Reread Configuration</a><br> 73 74 3.5. <a href=#rinex>RINEX - Observations</a><br> 74 75 3.5.1. <a href=#rnxname>File Names</a><br> … … 165 166 </p> 166 167 <p><a name="general"><h4>3.4. General</h4></p> 168 <p> 169 The following defines general settings for BNC's logfile, file handling and re-configuration on-the-fly. 170 </p> 167 171 168 172 <p><a name="genlog"><h4>3.4.1 Logfile - optional</h4></p> … … 171 175 </p> 172 176 173 <p><a name="genapp"><h4>3.4.2 Append Files</h4></p> 177 <p><a name="genapp"><h4>3.4.2 Append Files - optional</h4></p> 174 178 <p> 175 179 When BNC is started, new files are created by default and any existing files with the same name will be overwritten. However, users might want to append existing files following a restart of BNC, a system crash or when BNC crashed. Tick 'Append files' to continue with existing files and keep what has been recorded so far. Note that option 'Append files' affects all types of files created by BNC. 180 </p> 181 182 <p><a name="reconf"><h4>3.4.3 Reread Configuration - mandatory</h4></p> 183 <p> 184 When operating BNC in online mode, some configuration parameters can be changed on-the-fly without interrupting the running process. For that BNC rereads parts of its configuration (see section 'Config File') in pre-defined intervals. Configuration parameters that can be changed on-the-fly are 185 </p> 186 <p> 187 <ul> 188 <li>'mountPoints' to change the selection of streams to be processed, see section 'Mountpoints',</li> 189 <li>'waitTime' to change the 'Wait for full epoch' parameter, see section 'Synchronized Observations', and</li> 190 <li>'binSample' to change the 'Sampling' parameter, see section 'Synchronized Observations'.</li> 191 </ul> 192 </p> 193 <p> 194 Select '1 min', '1 hour', or '1 day' to let BNC reread the above mentioned configuration parameters every full minute, hour, or day and thus avoid usage of 'Start', 'Stop', or 'Quit' buttons. 176 195 </p> 177 196 … … 675 694 <p> 676 695 Command line options are available to run BNC in 'no window' mode or let it read data from a file in 'offline' mode. 677 BNC will then use processing options from the configuration file ${HOME}/.config/BKG/BNC_NTRIP_Client.conf (Unix/Linux, see Config File example in the Annex) or from the register BKG_NTRIP_Client (Windows). Note that the self-explaining contents of the configuration file or the Windows register can easily be edited. 696 BNC will then use processing options from the configuration file ${HOME}/.config/BKG/BNC_NTRIP_Client.conf (Unix/Linux, see 'Config File' example in the Annex) or from the register BKG_NTRIP_Client (Windows). Note that the self-explaining contents of the configuration file or the Windows register can easily be edited. 678 697 </p> 679 698 … … 790 809 <tr><td>Jul 2007 </td><td>Version 1.4 </td><td>[Bug] Skip messages from proxy server<br> [Bug] Call RINEX script through 'nohup'</td></tr> 791 810 <tr><td>Apr 2008 </td><td>Version 1.5 </td><td>[Add] Handle ephemeris from RTCM Version 3.x streams<br> [Add] Upgrade to Qt Version 4.3.2<br> [Add] Optional RINEX v3 output<br> [Add] SBAS support<br> [Bug] RINEX skeleton download following stream outage<br> [Add] Handle ephemeris from RTIGS streams<br> [Add] Monitor stream failure/recovery and latency<br> [Mod] Redesign of main window<br> [Bug] Freezing of About window on Mac systems<br> [Bug] Fixed problem with PRN 32 in RTCMv2 decoder<br> [Bug] Fix for Trimble 4000SSI receivers in RTCMv2 decoder<br> [Mod] Major revision of input buffer in RTCMv2 decoder</td></tr> 792 <tr><td> Oct2008 </td><td>Version 1.6 </td><td>[Mod] Fill blanc columns in RINEXv3 with 0.000<br> [Add] RTCMv3 decoder for clock and orbit corrections<br>[Add] Check RTCMv3 streams for incoming message types<br> [Add] Decode RTCMv2 message types 3, 20, 21, and 22<br> [Add] Loss of lock and lock time indicator in RINEX output<br> [Bug] Rounding error in RTCMv3 decoder concern. GLONASS height<br> [Mod] Accept GLONASS in RTCMv3 when transmitted first<br> [Add] Leap second 1 January 2009<br> [Add] Read data from file, offline mode</td></tr>811 <tr><td>Nov 2008 </td><td>Version 1.6 </td><td>[Mod] Fill blanc columns in RINEXv3 with 0.000<br> [Add] RTCMv3 decoder for clock and orbit corrections<br>[Add] Check RTCMv3 streams for incoming message types<br> [Add] Decode RTCMv2 message types 3, 20, 21, and 22<br> [Add] Loss of lock and lock time indicator in RINEX output<br> [Bug] Rounding error in RTCMv3 decoder concern. GLONASS height<br> [Mod] Accept GLONASS in RTCMv3 when transmitted first<br> [Add] Leap second 1 January 2009<br> [Add] Read data from file, offline mode</td></tr> 793 812 </table> 794 813 </p> … … 983 1002 casterPort=80 984 1003 casterUser=user 1004 corrIntr=1 day 1005 corrPath= 1006 corrPort= 1007 corrTime=5 985 1008 ephIntr=1 day 986 1009 ephPath=/home/user/rinex … … 990 1013 mountPoints=//user:pass@www.euref-ip.net:2101/ACOR0 RTCM_2.3 43.36 351.60 no, //user:pass@www.igs-ip.net:2101/FFMJ3 RTCM_3.0 41.58 1.40 no 991 1014 obsRate= 1015 onTheFlyInterval=1 day 992 1016 outEphPort=2102 993 1017 outFile=/home/user/ascii … … 998 1022 rnxAppend=2 999 1023 rnxIntr=15 min 1000 rnxPath=/home/ weber/rinex1024 rnxPath=/home/user/rinex 1001 1025 rnxSampl=0 1002 rnxScript=/home/ weber/up2archive1026 rnxScript=/home/user/up2archive 1003 1027 rnxSkel=SKL 1004 1028 rnxV3=2 … … 1006 1030 </pre> 1007 1031 </p> 1032 <p> 1033 Note that on Windows systems configuration parameters are saved in register BKG_NTRIP_Client. 1034 <p> 1008 1035 1009 1036 <p><a name="links"><h3>8.5 Links</h3></p> -
TabularUnified trunk/BNC/bncwindow.cpp ¶
r1181 r1184 273 273 _rnxSkelLineEdit->setWhatsThis(tr("<p>Whenever BNC starts generating RINEX Observation files (and then once every day at midnight), it first tries to retrieve information needed for RINEX headers from so-called public RINEX header skeleton files which are derived from sitelogs. However, sometimes public RINEX header skeleton files are not available, its contents is not up to date, or you need to put additional/optional records in the RINEX header.</p><p>For that BNC allows using personal skeleton files that contain the header records you would like to include. You can derive a personal RINEX header skeleton file from the information given in an up to date sitelog. A file in the RINEX 'Directory' with the RINEX 'Skeleton extension' is interpreted by BNC as a personal RINEX header skeleton file for the corresponding stream.</p>")); 274 274 _rnxAppendCheckBox->setWhatsThis(tr("<p>When BNC is started, new files are created by default and any existing files with the same name will be overwritten. However, users might want to append already existing files following a restart of BNC, a system crash or when BNC crashed. Tick 'Append files' to continue with existing files and keep what has been recorded so far.</p>")); 275 _onTheFlyComboBox->setWhatsThis(tr("<p>When operating BNC in online mode, some configuration parameters can be changed on-the-fly without interrupting the running process. For that BNC rereads parts of its configuration in pre-defined intervals.<p></p>Select '1 min', '1 hour', or '1 day' to let BNC reread its configuration every full minute, hour, or day and thus avoid usage of 'Start', 'Stop', or 'Quit' buttons.</p>")); 275 276 _rnxIntrComboBox->setWhatsThis(tr("<p>Select the length of the RINEX Observation file.</p>")); 276 277 _ephIntrComboBox->setWhatsThis(tr("<p>Select the length of the RINEX Navigation file.</p>")); … … 332 333 gLayout->addWidget(new QLabel("Append files") ,1,0 ); 333 334 gLayout->addWidget(_rnxAppendCheckBox, 1,1 ); 334 gLayout->addWidget(new QLabel("Reread Configurationevery") ,2,0 );335 gLayout->addWidget(new QLabel("Reread configuration") ,2,0 ); 335 336 gLayout->addWidget(_onTheFlyComboBox, 2,1 ); 336 gLayout->addWidget(new QLabel("General settings for logfile andfile handling."),3, 0, 1, 2, Qt::AlignLeft);337 gLayout->addWidget(new QLabel("General settings for logfile, file handling and re-configuration on-the-fly."),3, 0, 1, 2, Qt::AlignLeft); 337 338 gLayout->addWidget(new QLabel(" "),4,0); 338 339 gLayout->addWidget(new QLabel(" "),5,0);
Note:
See TracChangeset
for help on using the changeset viewer.