- Timestamp:
- Feb 15, 2008, 10:44:50 AM (17 years ago)
- Location:
- trunk/BNC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/bncgetthread.cpp
r681 r686 106 106 // Notice threshold 107 107 // ---------------- 108 _inspSegm = settings.value("inspSegm").toInt(); 108 _inspSegm = 50; 109 if ( settings.value("obsRate").toString().isEmpty() ) { _inspSegm = 0; } 110 if ( settings.value("obsRate").toString().indexOf("1 Hz") != -1 ) { _inspSegm = 10; } 111 if ( settings.value("obsRate").toString().indexOf("0.5 Hz") != -1 ) { _inspSegm = 20; } 112 if ( settings.value("obsRate").toString().indexOf("0.2 Hz") != -1 ) { _inspSegm = 40; } 113 if ( settings.value("obsRate").toString().indexOf("0.1 Hz") != -1 ) { _inspSegm = 50; } 109 114 _adviseFail = settings.value("adviseFail").toInt(); 110 115 _adviseReco = settings.value("adviseReco").toInt(); … … 509 514 _decodeStart.setDate(QDate()); 510 515 _decodeStart.setTime(QTime()); 511 emit(newMessage(_staID + ": Outage recovery threshold exceeded")); 512 callScript("End_Outage"); 516 if (_inspSegm>0) { 517 emit(newMessage(_staID + ": Outage recovery threshold exceeded")); 518 callScript("End_Outage"); 519 } 513 520 } 514 521 … … 613 620 _decodeStop.setDate(QDate()); 614 621 _decodeStop.setTime(QTime()); 615 emit(newMessage(_staID + ": Outage failure threshold exceeded")); 616 callScript("Begin_Outage"); 622 if (_inspSegm>0) { 623 emit(newMessage(_staID + ": Outage failure threshold exceeded")); 624 callScript("Begin_Outage"); 625 } 617 626 } 618 627 _nextSleep *= 2; -
trunk/BNC/bncgetthread.h
r672 r686 76 76 QByteArray _nmea; 77 77 QString _adviseScript; 78 int _obsRate; 78 79 int _inspSegm; 79 80 int _adviseFail; -
trunk/BNC/bncmain.cpp
r684 r686 81 81 settings.setValue("rnxSkel", "SKL"); 82 82 settings.setValue("waitTime", 5); 83 settings.setValue(" inspSegm", "15");83 settings.setValue("obsRate", ""); 84 84 settings.setValue("adviseFail", "15"); 85 85 settings.setValue("adviseReco", "5"); -
trunk/BNC/bncwindow.cpp
r684 r686 153 153 _rnxSamplSpinBox->setValue(settings.value("rnxSampl").toInt()); 154 154 _rnxSamplSpinBox->setSuffix(" sec"); 155 _inspSegmSpinBox = new QSpinBox(); 156 _inspSegmSpinBox->setMinimum(0); 157 _inspSegmSpinBox->setMaximum(60); 158 _inspSegmSpinBox->setSingleStep(1); 159 _inspSegmSpinBox->setMaximumWidth(9*ww); 160 _inspSegmSpinBox->setValue(settings.value("inspSegm").toInt()); 161 _inspSegmSpinBox->setSuffix(" sec"); 155 _obsRateComboBox = new QComboBox(); 156 _obsRateComboBox->setMaximumWidth(9*ww); 157 _obsRateComboBox->setEditable(false); 158 _obsRateComboBox->addItems(QString(",0.1 Hz,0.2 Hz,0.5 Hz,1 Hz").split(",")); 159 int kk = _obsRateComboBox->findText(settings.value("obsRate").toString()); 160 if (kk != -1) { 161 _obsRateComboBox->setCurrentIndex(kk); 162 } 162 163 _adviseRecoSpinBox = new QSpinBox(); 163 164 _adviseRecoSpinBox->setMinimum(0); … … 267 268 _ephIntrComboBox->setWhatsThis(tr("<p>Select the length of the RINEX Navigation file.</p>")); 268 269 _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>")); 269 _ inspSegmSpinBox->setWhatsThis(tr("<p>BNC can collect all returns (success or failure) coming from a decoder within a certain short time span (Inspect segment) to then decide whether the stream content of that segment is corrupted or not. When a continuous problem is detected in consecutive segments, BNC can inform its operator about this event through an Advisory note. A value of about 15 sec (default) as 'Inspect segment' is recommended when handling 1Hz data.</p><p>A value of zero '0' means that you don't want BNC to inform you about incoming data that can not be decoded and that the specialhandling of corrupted streams is bypassed.</p>"));270 _adviseRecoSpinBox->setWhatsThis(tr("<p>Following a stream outage or a longer series of bad 'Inspect segments', an Advisory note is generated when valid 'Inspect segments' 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 using this function for corrupted streams needs an 'Inspect segment' greater zero '0'.</p>"));271 _adviseFailSpinBox->setWhatsThis(tr("<p>An Advisory note is generated when no (or only corrupted) observations are seen in all 'Inspect segments' 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 using this function for corrupted streams needs an 'Inspect segment' greater zero '0'.</p>"));270 _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>")); 271 _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>")); 272 _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>")); 272 273 _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.")); 273 _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 or invalid path means that you don't want to use this option.</p>"));274 _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>")); 274 275 _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>")); 275 276 _log->setWhatsThis(tr("Records of BNC's activities are shown in the Log section. The message log covers the communication status between BNC and the NTRIP broadcaster as well as any problems that occur in the communication link, stream availability, stream delay, stream conversion etc.")); … … 294 295 aogroup->addTab(egroup,tr("RINEX - Ephemeris")); 295 296 aogroup->addTab(sgroup,tr("Synchronized Observations")); 296 aogroup->addTab(agroup,tr("Advisory "));297 aogroup->addTab(agroup,tr("Advisory Note")); 297 298 298 299 QGridLayout* pLayout = new QGridLayout; … … 349 350 QGridLayout* aLayout = new QGridLayout; 350 351 aLayout->setColumnMinimumWidth(0,12*ww); 351 aLayout->addWidget(new QLabel(" Inspect segment"),0, 0);352 aLayout->addWidget(_ inspSegmSpinBox, 0, 1);353 aLayout->addWidget(new QLabel("Failure "),1, 0);352 aLayout->addWidget(new QLabel("Observation Rate"), 0, 0); 353 aLayout->addWidget(_obsRateComboBox, 0, 1); 354 aLayout->addWidget(new QLabel("Failure threshold"), 1, 0); 354 355 aLayout->addWidget(_adviseFailSpinBox, 1, 1); 355 aLayout->addWidget(new QLabel("Recovery "),2, 0);356 aLayout->addWidget(new QLabel("Recovery threshold"), 2, 0); 356 357 aLayout->addWidget(_adviseRecoSpinBox, 2, 1); 357 358 aLayout->addWidget(new QLabel("Script (full path)"), 3, 0); … … 513 514 settings.setValue("proxyPort", _proxyPortLineEdit->text()); 514 515 settings.setValue("waitTime", _waitTimeSpinBox->value()); 515 settings.setValue(" inspSegm", _inspSegmSpinBox->value());516 settings.setValue("obsRate", _obsRateComboBox->currentText()); 516 517 settings.setValue("adviseFail", _adviseFailSpinBox->value()); 517 518 settings.setValue("adviseReco", _adviseRecoSpinBox->value()); … … 606 607 607 608 getThread->start(); 609 _mountPointsTable->setSortingEnabled(true); 608 610 } 609 611 } -
trunk/BNC/bncwindow.h
r679 r686 102 102 QCheckBox* _rnxAppendCheckBox; 103 103 QSpinBox* _waitTimeSpinBox; 104 Q SpinBox* _inspSegmSpinBox;104 QComboBox* _obsRateComboBox; 105 105 QSpinBox* _adviseFailSpinBox; 106 106 QSpinBox* _adviseRecoSpinBox;
Note:
See TracChangeset
for help on using the changeset viewer.