- Timestamp:
- Mar 11, 2008, 10:06:25 AM (17 years ago)
- Location:
- trunk/BNC
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/bncgetthread.cpp
r722 r723 462 462 _decodePause.secsTo(QDateTime::currentDateTime()) >= currPause || !_makePause ) { 463 463 464 printf("Hier\n");465 464 if (decode) { 466 465 if ( _decoder->Decode(data, nBytes) == success ) { -
trunk/BNC/bncgetthread.h
r709 r723 84 84 QString _endDateOut; 85 85 QString _endTimeOut; 86 bool _makePause; 86 87 int _obsRate; 87 88 int _inspSegm; -
trunk/BNC/bnchelp.html
r721 r723 84 84 3.8.2. <a href=#advfail>Failure Threshold</a><br> 85 85 3.8.3. <a href=#advreco>Recovery Threshold</a><br> 86 3.8.4. <a href=#advscript>Advisory Script</a><br> 87 3.8.5. <a href=#latelog>Latency Logging</a><br> 86 3.8.4. <a href=#pause>Pause</a><br> 87 3.8.5. <a href=#advscript>Advisory Script</a><br> 88 3.8.6. <a href=#latelog>Latency Logging</a><br> 88 89 3.9. <a href=#mountpoints>Mountpoints</a><br> 89 90 3.9.1. <a href=#mountadd>Add Mountpoints</a><br> … … 383 384 </p> 384 385 <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. 386 387 </p> 387 388 <p> … … 410 411 </p> 411 412 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> 415 In 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> 418 Do 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> 413 422 <p> 414 423 As 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. … … 439 448 </p> 440 449 441 <p><a name="latelog"><h4>3.8. 5Latency Logging - optional </h4></p>450 <p><a name="latelog"><h4>3.8.6 Latency Logging - optional </h4></p> 442 451 <p> 443 452 Latency is defined here by the following equation: … … 811 820 latIntr= 812 821 logFile=/home/user/log.txt 822 makePause=0 813 823 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 814 824 obsRate= -
trunk/BNC/bncwindow.cpp
r712 r723 161 161 _obsRateComboBox->setCurrentIndex(kk); 162 162 } 163 _makePauseCheckBox = new QCheckBox(); 164 _makePauseCheckBox->setCheckState(Qt::CheckState( 165 settings.value("makePause").toInt())); 163 166 _adviseRecoSpinBox = new QSpinBox(); 164 167 _adviseRecoSpinBox->setMinimum(0); … … 279 282 _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>")); 280 283 _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>")); 283 287 _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>")); 285 289 _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>")); 286 290 _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>")); … … 361 365 QGridLayout* aLayout = new QGridLayout; 362 366 aLayout->setColumnMinimumWidth(0,12*ww); 367 aLayout->setColumnMinimumWidth(1,8*ww); 368 aLayout->setColumnMinimumWidth(2,12*ww); 369 aLayout->setColumnMinimumWidth(3,40*ww); 363 370 aLayout->addWidget(new QLabel("Observation rate"), 0, 0); 364 371 aLayout->addWidget(_obsRateComboBox, 0, 1); … … 367 374 aLayout->addWidget(new QLabel("Recovery threshold"), 2, 0); 368 375 aLayout->addWidget(_adviseRecoSpinBox, 2, 1); 376 aLayout->addWidget(new QLabel("Pause"), 2, 2, Qt::AlignRight); 377 aLayout->addWidget(_makePauseCheckBox, 2, 3, Qt::AlignLeft); 369 378 aLayout->addWidget(new QLabel("Script (full path)"), 3, 0); 370 aLayout->addWidget(_adviseScriptLineEdit, 3, 1 );379 aLayout->addWidget(_adviseScriptLineEdit, 3, 1,1,3); 371 380 aLayout->addWidget(new QLabel("Latency logging"), 4, 0); 372 381 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); 374 383 agroup->setLayout(aLayout); 375 384 … … 529 538 settings.setValue("adviseFail", _adviseFailSpinBox->value()); 530 539 settings.setValue("adviseReco", _adviseRecoSpinBox->value()); 540 settings.setValue("makePause", _makePauseCheckBox->checkState()); 531 541 settings.setValue("outFile", _outFileLineEdit->text()); 532 542 settings.setValue("latIntr", _latIntrComboBox->currentText());
Note:
See TracChangeset
for help on using the changeset viewer.