Changeset 8617 in ntrip
- Timestamp:
- Feb 28, 2019, 2:46:37 PM (6 years ago)
- Location:
- trunk/BNC/src
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
r8476 r8617 149 149 } 150 150 GETBITS(i, 7); 151 frqObs->_lockTime = lti2sec(type,i); 152 frqObs->_lockTimeValid = (frqObs->_lockTime >= 0.0 && frqObs->_phaseValid); 151 153 frqObs->_slipCounter = i; 152 154 if (type == 1002 || type == 1004) { … … 193 195 } 194 196 GETBITS(i, 7); 197 frqObs->_lockTime = lti2sec(type,i); 198 frqObs->_lockTimeValid = (frqObs->_lockTime >= 0.0 && frqObs->_phaseValid); 195 199 frqObs->_slipCounter = i; 196 200 if (type == 1004) { … … 714 718 + (rrmod[numsat]) * LIGHTSPEED / 1000.0 / cd.wl; 715 719 frqObs->_phaseValid = true; 720 frqObs->_lockTime = lti2sec(type,ll[count]); 721 frqObs->_lockTimeValid = (frqObs->_lockTime >= 0.0); 716 722 frqObs->_slipCounter = ll[count]; 717 723 } … … 728 734 + rrmod[numsat] * LIGHTSPEED / 1000.0 / cd.wl; 729 735 frqObs->_phaseValid = true; 736 frqObs->_lockTime = lti2sec(type,ll[count]); 737 frqObs->_lockTimeValid = (frqObs->_lockTime >= 0.0); 730 738 frqObs->_slipCounter = ll[count]; 731 739 } … … 743 751 / cd.wl; 744 752 frqObs->_phaseValid = true; 753 frqObs->_lockTime = lti2sec(type,ll[count]); 754 frqObs->_lockTimeValid = (frqObs->_lockTime >= 0.0); 745 755 frqObs->_slipCounter = ll[count]; 746 756 } … … 761 771 / cd.wl; 762 772 frqObs->_phaseValid = true; 773 frqObs->_lockTime = lti2sec(type,ll[count]); 774 frqObs->_lockTimeValid = (frqObs->_lockTime >= 0.0); 763 775 frqObs->_slipCounter = ll[count]; 764 776 } … … 784 796 / cd.wl; 785 797 frqObs->_phaseValid = true; 798 frqObs->_lockTime = lti2sec(type,ll[count]); 799 frqObs->_lockTimeValid = (frqObs->_lockTime >= 0.0); 786 800 frqObs->_slipCounter = ll[count]; 787 801 } … … 802 816 / cd.wl; 803 817 frqObs->_phaseValid = true; 818 frqObs->_lockTime = lti2sec(type,ll[count]); 819 frqObs->_lockTimeValid = (frqObs->_lockTime >= 0.0); 804 820 frqObs->_slipCounter = ll[count]; 805 821 } … … 890 906 } 891 907 GETBITS(i, 7); 908 frqObs->_lockTime = lti2sec(type,i); 909 frqObs->_lockTimeValid = (frqObs->_lockTime >= 0.0 && frqObs->_phaseValid); 892 910 frqObs->_slipCounter = i; 893 911 if (type == 1010 || type == 1012) { … … 934 952 } 935 953 GETBITS(i, 7); 954 frqObs->_lockTime = lti2sec(type,i); 955 frqObs->_lockTimeValid = (frqObs->_lockTime >= 0.0 && frqObs->_phaseValid); 936 956 frqObs->_slipCounter = i; 937 957 if (type == 1012) { -
trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
r8408 r8617 444 444 satPhaseBias._dispBiasConstistInd = _phaseBias.DispersiveBiasConsistencyIndicator; 445 445 satPhaseBias._MWConsistInd = _phaseBias.MWConsistencyIndicator; 446 satPhaseBias._yaw Deg = _phaseBias.Sat[ii].YawAngle * 180.0 / M_PI;447 satPhaseBias._yaw DegRate = _phaseBias.Sat[ii].YawRate * 180.0 / M_PI;446 satPhaseBias._yaw = _phaseBias.Sat[ii].YawAngle; 447 satPhaseBias._yawRate = _phaseBias.Sat[ii].YawRate; 448 448 for (unsigned jj = 0; jj < _phaseBias.Sat[ii].NumberOfPhaseBiases; jj++) { 449 449 const PhaseBias::PhaseBiasSat::PhaseBiasEntry& biasEntry = _phaseBias.Sat[ii].Biases[jj]; -
trunk/BNC/src/bnccaster.cpp
r8397 r8617 96 96 } 97 97 98 _printLockTime = settings.value("printLockTime",false).toBool(); 98 99 _samplingRateMult10 = int(settings.value("outSampl").toString().split("sec").first().toDouble() * 10.0); 99 100 _outWait = settings.value("outWait").toDouble(); … … 172 173 << setw(4) << obs._time.gpsw() << " " 173 174 << setw(14) << setprecision(7) << obs._time.gpssec() << " " 174 << bncRinex::asciiSatLine(obs ) << endl;175 << bncRinex::asciiSatLine(obs,_printLockTime) << endl; 175 176 176 177 string hlpStr = oStr.str(); … … 317 318 << setprecision(7) << obs._time.gpssec() << endl; 318 319 } 319 oStr << obs._staID << ' ' << bncRinex::asciiSatLine(obs) << endl; 320 oStr << obs._staID << ' ' 321 << bncRinex::asciiSatLine(obs,_printLockTime) << endl; 320 322 if (!it.hasNext()) { 321 323 oStr << endl; -
trunk/BNC/src/bnccaster.h
r8397 r8617 77 77 QList<QByteArray> _staIDs; 78 78 QList<bncGetThread*> _threads; 79 bool _printLockTime; 79 80 int _samplingRateMult10; 80 81 double _outWait; -
trunk/BNC/src/bnchelp.html
r8562 r8617 2688 2688 2689 2689 <p> 2690 An optional valid 'Lock Time' is only presented for observations from RTCM Version 3 streams. The parameter provides a measure of the amount of time that has elapsed during which the receiver has maintained continuous lock on that satellite signal. If a cycle slip occurs during the previous measurement cycle, the lock time will be reset to Zero. The 'Lock Time' could be of interest becuase the Lock Time Inficator is different for different RTCM3 measurement types. Hence, the 'Lock Time' in seconds is computed with the respective calculation rule. 2691 </p> 2692 2693 <p> 2690 2694 The following table describes the format of BNC's synchronized output of GNSS observations which consists of 'Epoch Records' and 'Observation Records'. Each Epoch Record is followed by one or more Observation Records. The Observation Record is repeated for each satellite having been observed in the current epoch. The length of an Observation Record is given by the number of observation types for this satellite. 2691 2695 </p> … … 2730 2734 <tr><td>Observation Code</td><td><b>S</b>2W</td><td>1X,A3</td></tr> 2731 2735 <tr><td>Observed Signal Strength </td><td>34.750</td><td>1X,F8.3</td></tr> 2736 2737 <tr><td><u>Lock Time (optional)</u></td><td></td><td></td></tr> 2738 <tr><td>Observation Code</td><td><b>T</b>2W</td><td>1X,A3</td></tr> 2739 <tr><td>Computed Lock Time </td><td>937.000</td><td>1X,F8.3</td></tr> 2732 2740 2733 2741 </table> -
trunk/BNC/src/bncrinex.cpp
r8500 r8617 601 601 // One Line in ASCII (Internal) Format 602 602 //////////////////////////////////////////////////////////////////////////// 603 string bncRinex::asciiSatLine(const t_satObs& obs ) {603 string bncRinex::asciiSatLine(const t_satObs& obs, bool printLockTime) { 604 604 605 605 ostringstream str; … … 630 630 << left << setw(3) << "S" + frqObs->_rnxType2ch << ' ' 631 631 << right << setw(8) << setprecision(3) << frqObs->_snr; 632 } 633 if (frqObs->_lockTimeValid && printLockTime) { 634 str << ' ' 635 << left << setw(3) << "T" + frqObs->_rnxType2ch << ' ' 636 << right << setw(9) << setprecision(3) << frqObs->_lockTime; 632 637 } 633 638 } -
trunk/BNC/src/bncrinex.h
r8397 r8617 49 49 bool rnxV3, 50 50 QDateTime* nextEpoch = 0); 51 static std::string asciiSatLine(const t_satObs& obs );51 static std::string asciiSatLine(const t_satObs& obs, bool printLockTime); 52 52 53 53 private: -
trunk/BNC/src/bncsettings.cpp
r8563 r8617 145 145 setValue_p("outFile", ""); 146 146 setValue_p("outUPort", ""); 147 setValue_p("printLockTime", "0"); 147 148 // Serial Output 148 149 setValue_p("serialMountPoint", ""); -
trunk/BNC/src/bncutils.cpp
r8417 r8617 949 949 } 950 950 951 // Convert RTCM3 lock-time indicator to lock time in seconds 952 //////////////////////////////////////////////////////////////////////////// 953 double lti2sec(int type, int lti) { 954 955 if ( (type>=1001 && type<=1004) || 956 (type>=1009 && type<=1012) ) { // RTCM3 msg 100[1...4] and 10[09...12] 957 if (lti< 0) return -1; 958 else if (lti< 24) return 1*lti; // [ 0 1 23] 959 else if (lti< 48) return 2*lti-24; // [ 24 2 70] 960 else if (lti< 72) return 4*lti-120; // [ 72 4 164] 961 else if (lti< 96) return 8*lti-408; // [168 8 352] 962 else if (lti< 120) return 16*lti-1176; // [360 16 728] 963 else if (lti< 127) return 32*lti-3096; // [744 32 905] 964 else if (lti==127) return 937; 965 else return -1; 966 } 967 else if (type%10==2 || type%10==3 || 968 type%10==4 || type%10==5) { // RTCM3 MSM-2/-3/-4/-5 969 switch(lti) { 970 case( 0) : return 0; 971 case( 1) : return 32e-3; 972 case( 2) : return 64e-3; 973 case( 3) : return 128e-3; 974 case( 4) : return 256e-3; 975 case( 5) : return 512e-3; 976 case( 6) : return 1024e-3; 977 case( 7) : return 2048e-3; 978 case( 8) : return 4096e-3; 979 case( 9) : return 8192e-3; 980 case(10) : return 16384e-3; 981 case(11) : return 32768e-3; 982 case(12) : return 65536e-3; 983 case(13) : return 131072e-3; 984 case(14) : return 262144e-3; 985 case(15) : return 524288e-3; 986 default : return -1; 987 }; 988 } 989 else if (type%10==6 || type%10==7) { // RTCM3 MSM-6 and MSM-7 990 if (lti< 0) return ( -1 ); 991 else if (lti< 64) return ( 1*lti )*1e-3; 992 else if (lti< 96) return ( 2*lti-64 )*1e-3; 993 else if (lti< 128) return ( 4*lti-256 )*1e-3; 994 else if (lti< 160) return ( 8*lti-768 )*1e-3; 995 else if (lti< 192) return ( 16*lti-2048 )*1e-3; 996 else if (lti< 224) return ( 32*lti-5120 )*1e-3; 997 else if (lti< 256) return ( 64*lti-12288 )*1e-3; 998 else if (lti< 288) return ( 128*lti-28672 )*1e-3; 999 else if (lti< 320) return ( 256*lti-65536 )*1e-3; 1000 else if (lti< 352) return ( 512*lti-147456 )*1e-3; 1001 else if (lti< 384) return ( 1024*lti-327680 )*1e-3; 1002 else if (lti< 416) return ( 2048*lti-720896 )*1e-3; 1003 else if (lti< 448) return ( 4096*lti-1572864 )*1e-3; 1004 else if (lti< 480) return ( 8192*lti-3407872 )*1e-3; 1005 else if (lti< 512) return ( 16384*lti-7340032 )*1e-3; 1006 else if (lti< 544) return ( 32768*lti-15728640 )*1e-3; 1007 else if (lti< 576) return ( 65536*lti-33554432 )*1e-3; 1008 else if (lti< 608) return ( 131072*lti-71303168 )*1e-3; 1009 else if (lti< 640) return ( 262144*lti-150994944 )*1e-3; 1010 else if (lti< 672) return ( 524288*lti-318767104 )*1e-3; 1011 else if (lti< 704) return (1048576*lti-671088640 )*1e-3; 1012 else if (lti==704) return (2097152*lti-1409286144)*1e-3; 1013 else return ( -1 ); 1014 } 1015 else { 1016 return -1; 1017 }; 1018 }; -
trunk/BNC/src/bncutils.h
r8011 r8617 142 142 int factorial(int n); 143 143 144 /** Convert RTCM3 lock-time indicator to lock time in seconds 145 * depending on input message format. Returns -1 if format is 146 * unknown or indicator is invalid 147 */ 148 double lti2sec(int type, int lti); 144 149 145 150 // CRC24Q checksum calculation function (only full bytes supported). -
trunk/BNC/src/bncwindow.cpp
r8562 r8617 307 307 _outFileLineEdit = new QLineEdit(settings.value("outFile").toString()); 308 308 _outUPortLineEdit = new QLineEdit(settings.value("outUPort").toString()); 309 _printLockTimeCheckBox = new QCheckBox(); 310 _printLockTimeCheckBox->setCheckState(Qt::CheckState(settings.value("printLockTime").toInt())); 309 311 310 312 connect(_outPortLineEdit, SIGNAL(textChanged(const QString &)), … … 312 314 313 315 connect(_outFileLineEdit, SIGNAL(textChanged(const QString &)), 316 this, SLOT(slotBncTextChanged())); 317 318 connect(_printLockTimeCheckBox, SIGNAL(stateChanged(int)), 314 319 this, SLOT(slotBncTextChanged())); 315 320 … … 824 829 sLayout->addWidget(new QLabel("Port (unsynchronized)"), 4, 0); 825 830 sLayout->addWidget(_outUPortLineEdit, 4, 1); 826 sLayout->addWidget(new QLabel(""), 5, 1); 827 sLayout->setRowStretch(6, 999); 831 sLayout->addWidget(new QLabel("Print lock time"), 5, 0); 832 sLayout->addWidget(_printLockTimeCheckBox, 5, 1); 833 sLayout->addWidget(new QLabel(""), 6, 1); 834 sLayout->setRowStretch(7, 999); 828 835 829 836 sgroup->setLayout(sLayout); … … 1342 1349 _outFileLineEdit->setWhatsThis(tr("<p>Specify the full path to a file where synchronized observations are saved in plain ASCII format.</p><p>Beware that the size of this file can rapidly increase depending on the number of incoming streams. <i>[key: outFile]</i></p>")); 1343 1350 _outUPortLineEdit->setWhatsThis(tr("<p>BNC can produce unsynchronized observations in a plain ASCII format on your local host via IP port.</p><p>Specify a port number to activate this function. <i>[key: outUPort]</i></p>")); 1351 _printLockTimeCheckBox->setWhatsThis(tr("<p>Print the lock time in seconds in the feed engine output.</p>")); 1344 1352 1345 1353 // WhatsThis, Serial Output … … 1373 1381 // WhatsThis, PPP (1) 1374 1382 // ------------------ 1375 _pppWidgets._dataSource->setWhatsThis(tr("<p>Select 'Real-time Streams' for real-time PPP from RTCM streams or 'RINEX Files' for post processing PPP from RINEX files.</p><p><ul><li>Real-time PPP requires that you pull a RTCM stream carrying GNSS observations plus a stream providing corrections to Broadcast Ephemeris. If the observations stream does not contain Broadcast Ephemeris then you must in addition pull a Broadcast Ephemeris stream like 'RTCM3EPH' from Ntrip Broadcaster <u>products.igs-ip.net</u>.<br></li><li>Post processing PPP requires RINEX Observation files, RINEX Navigation files and a file with corrections to Broadcast Ephemeris in plain ASCII format as saved beforehand using BNC.</li></ul></p><p>Note that BNC allows to carry out PPP solutions simultaneously for several stations. <i>[key: PPP/dataSource]</i></p>")); 1376 _pppWidgets._rinexObs->setWhatsThis(tr("<p>Specify the RINEX Observation file. <i>[key: PPP/rinexObs]</i></p>")); 1377 _pppWidgets._rinexNav->setWhatsThis(tr("<p>Specify the RINEX Navigation file. <i>[key: PPP/rinexNav]</i></p>")); 1378 _pppWidgets._corrMount->setWhatsThis(tr("<p>Specify a 'mountpoint' from the 'Streams' canvas below which provides corrections to Broadcast Ephemeris.</p><p>If you don't specify a corrections stream via this option, BNC will fall back to Single Point Positioning (SPP, positioning from observations and Broadcast Ephemeris only) instead of doing PPP. <i>[key: PPP/corrMount]</i></p>")); 1379 _pppWidgets._corrFile->setWhatsThis(tr("<p>Specify the Broadcast Ephemeris Corrections file as saved beforehand using BNC.</p><p>If you don't specify corrections by this option, BNC will fall back to Single Point Positioning (SPP, positioning from RINEX Obs and RINEX Nav files only) instead of doing PPP. <i>[key: PPP/corrFile]</i></p>")); 1380 _pppWidgets._antexFile->setWhatsThis(tr("<p>Observations in RTCM streams or RINEX files should be referred to the receiver's and to the satellite's Antenna Phase Center (APC) and therefore be corrected for<ul><li>Receiver APC offsets</li><li>Receiver APC variations</li><li>Satellite APC offsets.</li></ul> Specify the full path to an IGS 'ANTEX file' which contains APC offsets and variations.</p><p>If you don't specify an 'ANTEX file' then observations will not be corrected for APC offsets and variations. <i>[key: PPP/antexFile]</i></p>")); 1381 _pppWidgets._blqFile->setWhatsThis(tr("<p>Enter the full path to an ocean loading file in BLQ format. It contains a record for each site, which shows a header with information on the ocean tide model, the site name and the geographic coordinates. The first three rows of numbers designate amplitudes (meter), radial, west, south, and are followed by three lines with the corresponding phase values (degrees). <i>[key: PPP/blqFile]</i></p>")); 1382 _pppWidgets._crdFile->setWhatsThis(tr("<p>Enter the full path to an ASCII file which specifies the streams or files of those stations you want to process. Specifying a 'Coordinates file' is optional. If it exists, it should contain one record per station with the following parameters separated by blank character:<p><ul><li>Specify the station either by<ul><li>the 'Mountpoint' of the station's RTCM stream (when in real-time PPP mode), or</li><li>the 4-charater station ID of the RINEX Observations file (when in post processing PPP mode).</li></ul></li><li>Approximate X,Y,Z coordinate of station's Antenna Reference Point [m] (ARP, specify '0.0 0.0 0.0' if unknown).</li><li>North, East and Up component of antenna eccentricity [m] (specify '0.0 0.0 0.0' if unknown).</li><li>20 Characters describing the antenna type and radome following the IGS 'ANTEX file' standard (leave blank if unknown).</li><li>Receiver type following the naming conventions for IGS equipment.</li></ul></p><p>Records with exclamation mark '!' in the first column or blank records will be interpreted as comment lines and ignored. <i>[key: PPP/crdFile]</i></p>")); 1383 _pppWidgets._v3filenames->setWhatsThis(tr("<p>Tick 'Version 3 filenames' to let BNC create so-called extended filenames for PPP logfiles, NMEA files and SINEX Troposphere files following the RINEX Version 3 standard.</p><p>Default is an empty check box, meaning to create filenames following the RINEX Version 2 standard. The file content is not affected by this option. It only concerns the filenames. <i>[key: PPP/v3filenames]</i></p>")); 1384 _pppWidgets._logPath->setWhatsThis(tr("<p>Specify a directory for saving daily PPP logfiles. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no PPP logfiles shall be produced. <i>[key: PPP/logPath]</i></p>")); 1385 _pppWidgets._nmeaPath->setWhatsThis(tr("<p>Specify a directory for saving coordinates in daily NMEA files. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no NMEA file shall be produced. <i>[key: PPP/nmeaPath]</i></p>")); 1386 _pppWidgets._snxtroPath->setWhatsThis(tr("<p>Specify a directory for saving SINEX Troposphere files. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no SINEX Troposphere files shall be produced. <i>[key: PPP/snxtroPath]</i></p>")); 1387 _pppWidgets._snxtroIntr->setWhatsThis(tr("<p>Select a length for SINEX Troposphere files.</p><p>Default 'SNX TRO interval' for saving SINEX Troposphere files on disk is '1 hour'. <i>[key: PPP/snxtroIntr]</i></p>")); 1388 _pppWidgets._snxtroSampl->setWhatsThis(tr("<p>Select a 'Sampling' rate for saving troposphere parameters. <i>[key: PPP/snxtroSampl]</i></p>")); 1389 _pppWidgets._snxtroAc->setWhatsThis(tr("<p>Specify a 3-character abbreviation describing you as the generating Analysis Center (AC) in your SINEX troposphere files. <i>[key: PPP/snxtroAc]</i></p>")); 1390 _pppWidgets._snxtroSol->setWhatsThis(tr("<p>Specify a 4-character solution ID to allow a distingtion between different solutions per AC. <i>[key: PPP/snxtroSol]</i></p>")); 1383 _pppWidgets._dataSource->setWhatsThis(tr("<p>Select 'Real-time Streams' for real-time PPP from RTCM streams or 'RINEX Files' for post processing PPP from RINEX files.</p><p><ul><li>Real-time PPP requires that you pull a RTCM stream carrying GNSS observations plus a stream providing corrections to Broadcast Ephemeris. If the observations stream does not contain Broadcast Ephemeris then you must in addition pull a Broadcast Ephemeris stream like 'RTCM3EPH' from Ntrip Broadcaster <u>products.igs-ip.net</u>.<br></li><li>Post processing PPP requires RINEX Observation files, RINEX Navigation files and a file with corrections to Broadcast Ephemeris in plain ASCII format as saved beforehand using BNC.</li></ul></p><p>Note that BNC allows to carry out PPP solutions simultaneously for several stations.</p>")); 1384 _pppWidgets._rinexObs->setWhatsThis(tr("<p>Specify the RINEX Observation file.</p>")); 1385 _pppWidgets._rinexNav->setWhatsThis(tr("<p>Specify the RINEX Navigation file.</p>")); 1386 _pppWidgets._corrMount->setWhatsThis(tr("<p>Specify a 'mountpoint' from the 'Streams' canvas below which provides corrections to Broadcast Ephemeris.</p><p>If you don't specify a corrections stream via this option, BNC will fall back to Single Point Positioning (SPP, positioning from observations and Broadcast Ephemeris only) instead of doing PPP.</p>")); 1387 _pppWidgets._corrFile->setWhatsThis(tr("<p>Specify the Broadcast Ephemeris Corrections file as saved beforehand using BNC.</p><p>If you don't specify corrections by this option, BNC will fall back to Single Point Positioning (SPP, positioning from RINEX Obs and RINEX Nav files only) instead of doing PPP.</p>")); 1388 _pppWidgets._antexFile->setWhatsThis(tr("<p>Observations in RTCM streams or RINEX files should be referred to the receiver's and to the satellite's Antenna Phase Center (APC) and therefore be corrected for<ul><li>Receiver APC offsets</li><li>Receiver APC variations</li><li>Satellite APC offsets.</li></ul> Specify the full path to an IGS 'ANTEX file' which contains APC offsets and variations.</p><p>If you don't specify an 'ANTEX file' then observations will not be corrected for APC offsets and variations.</p>")); 1389 _pppWidgets._crdFile->setWhatsThis(tr("<p>Enter the full path to an ASCII file which specifies the streams or files of those stations you want to process. Specifying a 'Coordinates file' is optional. If it exists, it should contain one record per station with the following parameters separated by blank character:<p><ul><li>Specify the station either by<ul><li>the 'Mountpoint' of the station's RTCM stream (when in real-time PPP mode), or</li><li>the 4-charater station ID of the RINEX Observations file (when in post processing PPP mode).</li></ul></li><li>Approximate X,Y,Z coordinate of station's Antenna Reference Point [m] (ARP, specify '0.0 0.0 0.0' if unknown).</li><li>North, East and Up component of antenna eccentricity [m] (specify '0.0 0.0 0.0' if unknown).</li><li>20 Characters describing the antenna type and radome following the IGS 'ANTEX file' standard (leave blank if unknown).</li><li>Receiver type following the naming conventions for IGS equipment.</li></ul></p><p>Records with exclamation mark '!' in the first column or blank records will be interpreted as comment lines and ignored.</p>")); 1390 _pppWidgets._v3filenames->setWhatsThis(tr("<p>Tick 'Version 3 filenames' to let BNC create so-called extended filenames for PPP logfiles, NMEA files and SINEX Troposphere files following the RINEX Version 3 standard.</p><p>Default is an empty check box, meaning to create filenames following the RINEX Version 2 standard. The file content is not affected by this option. It only concerns the filenames.</p>")); 1391 _pppWidgets._logPath->setWhatsThis(tr("<p>Specify a directory for saving daily PPP logfiles. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no PPP logfiles shall be produced.</p>")); 1392 _pppWidgets._nmeaPath->setWhatsThis(tr("<p>Specify a directory for saving coordinates in daily NMEA files. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no NMEA file shall be produced.</p>")); 1393 _pppWidgets._snxtroPath->setWhatsThis(tr("<p>Specify a directory for saving SINEX Troposphere files. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no SINEX Troposphere files shall be produced.</p>")); 1394 _pppWidgets._snxtroIntr->setWhatsThis(tr("<p>Select a length for SINEX Troposphere files.</p><p>Default 'SNX TRO interval' for saving SINEX Troposphere files on disk is '1 hour'.</p>")); 1395 _pppWidgets._snxtroSampl->setWhatsThis(tr("<p>Select a 'Sampling' rate for saving troposphere parameters.</p>")); 1396 _pppWidgets._snxtroAc->setWhatsThis(tr("<p>Specify a 3-character abbreviation describing you as the generating Analysis Center (AC) in your SINEX troposphere files.</p>")); 1397 _pppWidgets._snxtroSol->setWhatsThis(tr("<p>Specify a 4-character solution ID to allow a distingtion between different solutions per AC.</p>")); 1391 1398 1392 1399 // WhatsThis, PPP (3) … … 1515 1522 delete _outFileLineEdit; 1516 1523 delete _outUPortLineEdit; 1524 delete _printLockTimeCheckBox; 1517 1525 delete _serialMountPointLineEdit; 1518 1526 delete _serialPortNameLineEdit; … … 1967 1975 settings.setValue("outSampl", _outSamplComboBox->currentText()); 1968 1976 settings.setValue("outFile", _outFileLineEdit->text()); 1969 settings.setValue("outUPort", _outUPortLineEdit->text()); 1977 settings.setValue("printLockTime",_printLockTimeCheckBox->checkState()); settings.setValue("outUPort", _outUPortLineEdit->text()); 1978 1970 1979 // Serial Output 1971 1980 settings.setValue("serialMountPoint",_serialMountPointLineEdit->text()); -
trunk/BNC/src/bncwindow.h
r8397 r8617 138 138 QLineEdit* _outPortLineEdit; 139 139 QLineEdit* _outUPortLineEdit; 140 QCheckBox* _printLockTimeCheckBox; 140 141 QLineEdit* _ephOutPortLineEdit; 141 142 QLineEdit* _corrPortLineEdit; -
trunk/BNC/src/satObs.cpp
r8483 r8617 284 284 } 285 285 *out << satPhaseBias._prn.toString() << ' ' 286 << setw(12) << setprecision(8) << satPhaseBias._yaw Deg<< ' '287 << setw(12) << setprecision(8) << satPhaseBias._yaw DegRate<< " "286 << setw(12) << setprecision(8) << satPhaseBias._yaw * 180.0 / M_PI << ' ' 287 << setw(12) << setprecision(8) << satPhaseBias._yawRate * 180.0 / M_PI<< " " 288 288 << setw(2) << satPhaseBias._bias.size(); 289 289 for (unsigned ii = 0; ii < satPhaseBias._bias.size(); ii++) { … … 330 330 331 331 int numBias; 332 in >> satPhaseBias._prn >> satPhaseBias._yawDeg >> satPhaseBias._yawDegRate 333 >> numBias; 332 double yawDeg, yawDegRate; 333 in >> satPhaseBias._prn >> yawDeg >> yawDegRate >> numBias; 334 satPhaseBias._yaw = yawDeg * M_PI / 180.0; 335 satPhaseBias._yawRate = yawDegRate * M_PI / 180.0; 334 336 335 337 while (in.good()) { -
trunk/BNC/src/satObs.h
r8483 r8617 23 23 _snr = 0.0; 24 24 _snrValid = false; 25 _lockTime = 0.0; 26 _lockTimeValid = false; 25 27 _slip = false; 26 28 _slipCounter = 0; … … 36 38 double _snr; 37 39 bool _snrValid; 40 double _lockTime; 41 bool _lockTimeValid; 38 42 bool _slip; 39 43 int _slipCounter; … … 164 168 _dispBiasConstistInd = 0; 165 169 _MWConsistInd = 0; 166 _yaw Deg= 0.0;167 _yaw DegRate= 0.0;170 _yaw = 0.0; 171 _yawRate = 0.0; 168 172 } 169 173 static void writeEpoch(std::ostream* out, const QList<t_satPhaseBias>& biasList); … … 175 179 unsigned int _dispBiasConstistInd; // not satellite specific 176 180 unsigned int _MWConsistInd; // not satellite specific 177 double _yaw Deg;178 double _yaw DegRate;181 double _yaw; 182 double _yawRate; 179 183 std::vector<t_frqPhaseBias> _bias; 180 184 };
Note:
See TracChangeset
for help on using the changeset viewer.