Changeset 723 in ntrip


Ignore:
Timestamp:
Mar 11, 2008, 10:06:25 AM (16 years ago)
Author:
weber
Message:

* empty log message *

Location:
trunk/BNC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncgetthread.cpp

    r722 r723  
    462462          _decodePause.secsTo(QDateTime::currentDateTime()) >= currPause || !_makePause )  {
    463463
    464 printf("Hier\n");
    465464          if (decode) {
    466465            if ( _decoder->Decode(data, nBytes) == success ) {
  • trunk/BNC/bncgetthread.h

    r709 r723  
    8484   QString     _endDateOut;
    8585   QString     _endTimeOut;
     86   bool        _makePause;
    8687   int         _obsRate;
    8788   int         _inspSegm;
  • trunk/BNC/bnchelp.html

    r721 r723  
    8484&nbsp; &nbsp; &nbsp; 3.8.2. <a href=#advfail>Failure Threshold</a><br>
    8585&nbsp; &nbsp; &nbsp; 3.8.3. <a href=#advreco>Recovery Threshold</a><br>
    86 &nbsp; &nbsp; &nbsp; 3.8.4. <a href=#advscript>Advisory Script</a><br>
    87 &nbsp; &nbsp; &nbsp; 3.8.5. <a href=#latelog>Latency Logging</a><br>
     86&nbsp; &nbsp; &nbsp; 3.8.4. <a href=#pause>Pause</a><br>
     87&nbsp; &nbsp; &nbsp; 3.8.5. <a href=#advscript>Advisory Script</a><br>
     88&nbsp; &nbsp; &nbsp; 3.8.6. <a href=#latelog>Latency Logging</a><br>
    88893.9. <a href=#mountpoints>Mountpoints</a><br>
    8990&nbsp; &nbsp; &nbsp; 3.9.1. <a href=#mountadd>Add Mountpoints</a><br>
     
    383384</p>
    384385<p>
    385 <u>Stream corruption:</u> Not all bits chunk transfers to BNC's internal decoders return valid observations. Sometimes several chunks might be needed before the next observation can be properly decoded. BNC buffers all the outputs (both valid and invalid) from the decoder for a short time span (size derived from the expected 'Observation rate') and then determines whether a stream is valid or corrupted. In case of a corrupted stream, the decoding process is paused and decodings are then attempted again at decreasing rate. BNC will first attempt to decode again after a 30 second lag and if unsuccessful, make another attempt within 60 seconds after the previous attempt. If it is still unsuccessful, it will make another attempt to decode within 120 seconds after the previous attempt and so on. Each decoding attempt doubles the wait time since the previous attempt. The maximum wait time between attempts is limited to 960 seconds.
     386<u>Stream corruption:</u> Not all bits chunk transfers to BNC's internal decoders return valid observations. Sometimes several chunks might be needed before the next observation can be properly decoded. BNC buffers all the outputs (both valid and invalid) from the decoder for a short time span (size derived from the expected 'Observation rate') and then determines whether a stream is valid or corrupted.
    386387</p>
    387388<p>
     
    410411</p>
    411412
    412 <p><a name="advscript"><h4>3.8.4 Advisory Script - optional </h4></p>
     413<p><a name="pause"><h4>3.8.4 Pause - optional</h4></p>
     414<p>
     415In case of a corrupted stream, the decoding process can be paused and decodings are then attempted again at decreasing rate. BNC will first attempt to decode again after a 30 second lag and if unsuccessful, make another attempt within 60 seconds after the previous attempt. If it is still unsuccessful, it will make another attempt to decode within 120 seconds after the previous attempt and so on. Each decoding attempt doubles the wait time since the previous attempt. The maximum wait time between attempts is limited to 960 seconds. Tick 'Pause' to activate this function. Note that it is only effective if an 'Observation rate' is specified.
     416</p>
     417<p>
     418Do not tick 'Pause' if you want to prevent BNC from making any decoding pause. Be aware that this may incur an unnecessary workload.
     419</p>
     420
     421<p><a name="advscript"><h4>3.8.5 Advisory Script - optional </h4></p>
    413422<p>
    414423As mentioned previously, BNC can trigger a shell script or a batch file to be executed when one of the events described are reported. This script can be used to email an advisory note to network operator or stream providers. To enable this feature, specify the full path to the script or batch file in the 'Script' field. The affected mountpoint and type of event reported ('Begin_Outage', 'End_Outage', 'Begin_Corrupted' or 'End_Corrupted') will then be passed on to the script as command line parameters (%1 and %2 on Windows systems or $1 and $2 on Unix/Linux systems) together with date and time information.
     
    439448</p>
    440449
    441 <p><a name="latelog"><h4>3.8.5 Latency Logging - optional </h4></p>
     450<p><a name="latelog"><h4>3.8.6 Latency Logging - optional </h4></p>
    442451<p>
    443452Latency is defined here by the following equation:
     
    811820latIntr=
    812821logFile=/home/user/log.txt
     822makePause=0
    813823mountPoints=//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
    814824obsRate=
  • trunk/BNC/bncwindow.cpp

    r712 r723  
    161161    _obsRateComboBox->setCurrentIndex(kk);
    162162  }
     163  _makePauseCheckBox  = new QCheckBox();
     164  _makePauseCheckBox->setCheckState(Qt::CheckState(
     165                                    settings.value("makePause").toInt()));
    163166  _adviseRecoSpinBox = new QSpinBox();
    164167  _adviseRecoSpinBox->setMinimum(0);
     
    279282  _rnxSamplSpinBox->setWhatsThis(tr("<p>Select the RINEX Observation sampling interval in seconds. A value of zero '0' tells BNC to store all received epochs into RINEX.</p>"));
    280283  _obsRateComboBox->setWhatsThis(tr("<p>BNC can collect all returns (success or failure) coming from a decoder within a certain short time span to then decide whether a stream has an outage or its content is corrupted. The procedure needs a rough estimate of the expected 'Observation rate' of the incoming streams. When a continuous problem is detected, BNC can inform its operator about this event through an advisory note.</p><p>An empty option field (default) means that you don't want an explicit information from BNC about stream outages and incoming streams that can not be decoded and that the special procedure for handling of corrupted streams is bypassed.</p>"));
    281   _adviseRecoSpinBox->setWhatsThis(tr("<p>Following a stream outage or a longer series of bad observations, an advisory note is generated when valid observations are received again throughout the 'Recovery threshold' time span. A value of about 5min (default) is recommended.</p><p>A value of zero '0' means that for any stream recovery BNC immediately generates an advisory note.</p><p>Note that for using this function you need to specify the 'Observation rate'.</p>"));
    282   _adviseFailSpinBox->setWhatsThis(tr("<p>An advisory note is generated when no (or only corrupted) observations are seen throughout the 'Failure threshold' time span. A value of 15 min (default) is recommended.</p><p>A value of zero '0' means that for any stream failure BNC immediately generates an advisory note.</p><p>Note that for using this function you need to specify the 'Observation rate'.</p>"));
     284  _adviseRecoSpinBox->setWhatsThis(tr("<p>Following a stream outage or a longer series of bad observations, an advisory note is generated when valid observations are received again throughout the 'Recovery threshold' time span. A value of about 5min (default) is recommended.</p><p>A value of zero '0' means that for any stream recovery, however short, BNC immediately generates an advisory note.</p><p>Note that for using this function you need to specify the 'Observation rate'.</p>"));
     285  _adviseFailSpinBox->setWhatsThis(tr("<p>An advisory note is generated when no (or only corrupted) observations are seen throughout the 'Failure threshold' time span. A value of 15 min (default) is recommended.</p><p>A value of zero '0' means that for any stream failure, however short, BNC immediately generates an advisory note.</p><p>Note that for using this function you need to specify the 'Observation rate'.</p>"));
     286  _makePauseCheckBox->setWhatsThis(tr("<p>In case of a continuously corrupted stream, the decoding process can be paused and decodings are then attempted again at decreasing rate till the stream hopefully recovers. Tick 'Pause' to activate this function.</p><p>Do not tick 'Pause' (default) in order to prevent BNC from making any decoding pause. Be aware that this may incur an unnecessary workload.</p><p>Note that this function is only effective if an 'Observation rate' is specified.</p>"));
    283287  _logFileLineEdit->setWhatsThis(tr("Records of BNC's activities are shown in the Log section on the bottom of this window. They can be saved into a file when a valid path is specified in the 'Logfile (full path)' field."));
    284   _adviseScriptLineEdit->setWhatsThis(tr("<p>Specify the full path to a script or batch file to handle advisory notes generated in the event of corrupted streams or stream outages. The affected mountpoint and one of the comments 'Begin_Outage', 'End_Outage', 'Begin_Corrupted', or 'End_Corrupted' are passed on to the script as command line parameters.</p><p>The script can be configured to send an email to BNC's operator and/or to the affected stream provider. An empty option field (default) or invalid path means that you don't want to use this option.</p>"));
     288  _adviseScriptLineEdit->setWhatsThis(tr("<p>Specify the full path to a script or batch file to handle advisory notes generated in the event of corrupted streams or stream outages. The affected mountpoint and one of the comments 'Begin_Outage', 'End_Outage', 'Begin_Corrupted', or 'End_Corrupted' are passed on to the script as command line parameters.</p><p>The script can be configured to send an email to BNC's operator and/or to the affected stream provider. An empty option field (default) or invalid path means that you don't want to use this option.</p><p> Note that for using this function you need to specify the 'Observation rate'.</p>"));
    285289  _latIntrComboBox->setWhatsThis(tr("<p>BNC can average all latencies per stream over a certain period. The resulting mean latencies are recorded in the Log file/section at the end of each 'Lagency logging' interval.</p><p>Select a 'Latency logging' interval or select the empty option field if you do not want BNC to log latency information.</p>"));
    286290  _mountPointsTable->setWhatsThis(tr("<p>Streams selected for retrieval are listed in the 'Mountpoints' section. Clicking on 'Add Mountpoints' button will open a window that allows the user to select data streams from an NTRIP broadcaster according to their mountpoints. To remove a stream from the 'Mountpoints' list, highlight it by clicking on it and hit the 'Delete Mountpoints' button. You can also remove multiple mountpoints by highlighting them using +Shift and +Ctrl.</p><p>BNC automatically allocates one of its internal decoders to a stream based on the stream's 'format' and 'format-details' as given in the sourcetable. However, there might be cases where you need to override the automatic selection due to incorrect sourcetable for example. BNC allows users to manually select the required decoder by editing the decoder string. Double click on the 'decoder' field, enter your preferred decoder and then hit Enter. The accepted decoder strings are 'RTCM_2.x', 'RTCM_3.x', and 'RTIGS'.</p><p>In case you need to log the raw data as is, BNC allows users to by-pass its decoders and and directly save the input in daily log files. To do this specify the decoder string as 'ZERO'.</p><p>BNC can also retrieve streams from virtual reference stations (VRS). To initiate these streams, an approximate rover position needs to be sent in NMEA GGA message to the NTRIP broadcaster. In return, a user-specific data stream is generated, typically by a Network-RTK software. This stream is customized to the exact latitude and longitude as shown in the 'lat' and 'long' columns under 'Mountpoints'. These VRS streams are indicated by a 'yes' in the 'nmea' column under 'Mountpoints' as well as in the sourcetable. The default 'lat' and 'long' values are taken from the sourcetable. However, in most cases you would probably want to change this according to your requirement. Double click on 'lat' and 'long' fields, enter the values you wish to send and then hit Enter. The format is in positive north latitude degrees (e.g. for northern hemisphere: 52.436, for southern hemisphere: -24.567) and eastern longitude degrees (e.g.: 358.872 or -1.128). Only mountpoints with a 'yes' in its 'nmea' column can be edited. The position should preferably be a point within the coverage of the network.</p>"));
     
    361365  QGridLayout* aLayout = new QGridLayout;
    362366  aLayout->setColumnMinimumWidth(0,12*ww);
     367  aLayout->setColumnMinimumWidth(1,8*ww);
     368  aLayout->setColumnMinimumWidth(2,12*ww);
     369  aLayout->setColumnMinimumWidth(3,40*ww);
    363370  aLayout->addWidget(new QLabel("Observation rate"),              0, 0);
    364371  aLayout->addWidget(_obsRateComboBox,                            0, 1);
     
    367374  aLayout->addWidget(new QLabel("Recovery threshold"),            2, 0);
    368375  aLayout->addWidget(_adviseRecoSpinBox,                          2, 1);
     376  aLayout->addWidget(new QLabel("Pause"),                         2, 2, Qt::AlignRight);
     377  aLayout->addWidget(_makePauseCheckBox,                          2, 3, Qt::AlignLeft);
    369378  aLayout->addWidget(new QLabel("Script (full path)"),            3, 0);
    370   aLayout->addWidget(_adviseScriptLineEdit,                       3, 1);
     379  aLayout->addWidget(_adviseScriptLineEdit,                       3, 1,1,3);
    371380  aLayout->addWidget(new QLabel("Latency logging"),               4, 0);
    372381  aLayout->addWidget(_latIntrComboBox,                            4, 1);
    373   aLayout->addWidget(new QLabel("Network monitoring, handling of corrupted streams, mean latency."),5,0,1,2,Qt::AlignLeft);
     382  aLayout->addWidget(new QLabel("Network monitoring, outages, handling of corrupted streams, mean latency."),5,0,1,4,Qt::AlignLeft);
    374383  agroup->setLayout(aLayout);
    375384
     
    529538  settings.setValue("adviseFail",  _adviseFailSpinBox->value());
    530539  settings.setValue("adviseReco",  _adviseRecoSpinBox->value());
     540  settings.setValue("makePause",   _makePauseCheckBox->checkState());
    531541  settings.setValue("outFile",     _outFileLineEdit->text());
    532542  settings.setValue("latIntr",     _latIntrComboBox->currentText());
Note: See TracChangeset for help on using the changeset viewer.