Changeset 8397 in ntrip for trunk/BNC


Ignore:
Timestamp:
Jun 28, 2018, 12:47:06 PM (6 years ago)
Author:
stuerze
Message:

some changes to allow 10 Hz observation data generation with correct file names and observation data resampling (RINEX files, feed engine) and harmonization of all 3 applications

Location:
trunk/BNC/src
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/GPSDecoder.cpp

    r8372 r8397  
    8282  if (_rnx) {
    8383    int sec = int(nint(obs._time.gpssec()*10));
    84     if (_rnx->samplingRate() == 0 || sec % (_rnx->samplingRate()*10) == 0) {
     84    if (sec % _rnx->samplingRate() == 0) {
    8585      _rnx->deepCopy(obs);
    8686    }
  • trunk/BNC/src/bnccaster.cpp

    r8372 r8397  
    9696  }
    9797
    98   _samplingRate = settings.value("outSampl").toInt();
    99   _outWait      = settings.value("outWait").toDouble();
     98  _samplingRateMult10 = int(settings.value("outSampl").toString().split("sec").first().toDouble() * 10.0);
     99  _outWait            = settings.value("outWait").toDouble();
    100100  if (_outWait <= 0.0) {
    101101    _outWait = 0.01;
     
    304304      const QList<t_satObs>& allObs = itEpo.value();
    305305      int sec = int(nint(epoTime.gpssec()*10));
    306       if ( (_out || _sockets) && (_samplingRate == 0 || sec % (_samplingRate*10) == 0) ) {
     306      if ( (_out || _sockets) && (sec % (_samplingRateMult10) == 0) ) {
    307307        QListIterator<t_satObs> it(allObs);
    308308        bool firstObs = true;
     
    374374  // Reread several options
    375375  // ----------------------
    376   _samplingRate = settings.value("outSampl").toInt();
     376  _samplingRateMult10 = int(settings.value("outSampl").toString().split("sec").first().toDouble() * 10.0);
    377377  _outWait      = settings.value("outWait").toInt();
    378378  if (_outWait < 1) {
  • trunk/BNC/src/bnccaster.h

    r8252 r8397  
    5252 signals:
    5353   void mountPointsRead(QList<bncGetThread*>);
    54    void getThreadsFinished();   
     54   void getThreadsFinished();
    5555   void newMessage(QByteArray msg, bool showOnScreen);
    5656   void newObs(QByteArray staID, QList<t_satObs> obsList);
     
    7777   QList<QByteArray>               _staIDs;
    7878   QList<bncGetThread*>            _threads;
    79    int                             _samplingRate;
     79   int                             _samplingRateMult10;
    8080   double                          _outWait;
    8181   QMutex                          _mutex;
  • trunk/BNC/src/bncmain.cpp

    r8354 r8397  
    102102      "   rnxPath        {Directory [character string]}\n"
    103103      "   rnxIntr        {File interval [character string: 1 min|2 min|5 min|10 min|15 min|30 min|1 hour|1 day]}\n"
    104       "   rnxSampl       {File sampling rate [integer number of seconds: 0,5|10|15|20|25|30|35|40|45|50|55|60]} \n"
     104      "   rnxSampl       {File sampling rate [character string: 0.1 sec|1 sec|5 sec|10 sec|15 sec|30 sec|60 sec]}\n"
    105105      "   rnxSkel        {RINEX skeleton file extension [character string]}\n"
    106106      "   rnxOnlyWithSKL {Using RINEX skeleton file is mandatory [integer number: 0=no,2=yes]}\n"
     
    126126      "   reqcPlotDir           {QC plots directory [character string]}\n"
    127127      "   reqcRnxVersion        {RINEX version [integer number: 2|3]}\n"
    128       "   reqcSampling          {RINEX output file sampling rate [integer number of seconds: 0|5|10|15|20|25|30|35|40|45|50|55|60]}\n"
     128      "   reqcSampling          {RINEX output file sampling rate [character string: 0.1 sec|1 sec|5 sec|10 sec|15 sec|30 sec|60 sec]}\n"
    129129      "   reqcV2Priority        {Version 2 priority of signal attributes [character string, list separated by blank character, example: G:12&PWCSLXYN G:5&IQX C:IQX]}\n"
    130130      "   reqcStartDateTime     {Start time [character string, example: 1967-11-02T00:00:00]}\n"
     
    163163      "   outPort  {Output port, synchronized [integer number]}\n"
    164164      "   outWait  {Wait for full observation epoch [integer number of seconds: 1-30]}\n"
    165       "   outSampl {Sampling rate [integer number of seconds: 0|5|10|15|20|25|30|35|40|45|50|55|60]}\n"
     165      "   outSampl {Sampling rate [character string: 0.1 sec|1 sec|5 sec|10 sec|15 sec|30 sec|60 sec]}\n"
    166166      "   outFile  {Output file, full path [character string]}\n"
    167167      "   outUPort {Output port, unsynchronized [integer number]}\n"
     
    305305      "(5) bnc --conf /dev/null --key startTab 4 --key reqcAction Edit/Concatenate"
    306306      " --key reqcObsFile AGAR.15O --key reqcOutObsFile AGAR_X.15O"
    307       " --key reqcRnxVersion 2 --key reqcSampling 30 --key reqcV2Priority CWPX_?\n"
     307      " --key reqcRnxVersion 2 --key reqcSampling 30 sec --key reqcV2Priority CWPX_?\n"
    308308      "(6) bnc --key mountPoints \"//user:pass@mgex.igs-ip.net:2101/CUT07 RTCM_3.0 ETH 9.03 38.74 no 2;"
    309309      "//user:pass@www.igs-ip.net:2101/FFMJ1 RTCM_3.1 DEU 50.09 8.66 no 2\"\n"
  • trunk/BNC/src/bncrinex.cpp

    r8354 r8397  
    9090  _userName = _userName.leftJustified(20, ' ', true);
    9191
    92   _samplingRate = settings.value("rnxSampl").toInt();
     92  _samplingRateMult10 = int(settings.value("rnxSampl").toString().split("sec").first().toDouble() * 10.0);
     93
     94  if      (settings.value("rnxSampl").toString() == "0.1 sec") {
     95    _samplingRateStr = "_10Z";
     96  }
     97  else if (settings.value("rnxSampl").toString() == "1 sec") {
     98    _samplingRateStr = "_01S";
     99  }
     100  else if (settings.value("rnxSampl").toString() == "5 sec") {
     101    _samplingRateStr = "_05S";
     102  }
     103  else if (settings.value("rnxSampl").toString() == "10 sec") {
     104    _samplingRateStr = "_10S";
     105  }
     106  else if (settings.value("rnxSampl").toString() == "15 sec") {
     107    _samplingRateStr = "_15S";
     108  }
     109  else if (settings.value("rnxSampl").toString() == "30 sec") {
     110    _samplingRateStr = "_30S";
     111  }
     112  else if (settings.value("rnxSampl").toString() == "60 sec") {
     113    _samplingRateStr = "_01M";
     114  }
    93115
    94116  _writeRinexFileOnlyWithSkl = settings.value("rnxOnlyWithSKL").toBool();
     
    348370      }
    349371    }
    350     int sampl = settings.value("rnxSampl").toString().mid(0,2).toInt();
    351     if (!sampl)
    352       sampl++;
     372
    353373    path += ID4 +
    354374            QString("%1").arg(monNum, 1, 10) +
     
    359379            QString("%1").arg(datTim.date().dayOfYear(), 3, 10, QChar('0')) +
    360380            hlpStr + // HMS_period
    361             QString("_%1S").arg(sampl, 2, 10, QChar('0')) + // sampling rate
     381            QString("%1").arg(_samplingRateStr) + // sampling rate
    362382            "_MO" + // mixed OBS
    363383            distStr +
  • trunk/BNC/src/bncrinex.h

    r8354 r8397  
    4040   ~bncRinex();
    4141
    42    int  samplingRate() const {return _samplingRate;}
     42   int  samplingRate() const {return _samplingRateMult10;}
    4343   void deepCopy(t_satObs obs);
    4444   void dumpEpoch(const QByteArray& format, const bncTime& maxTime);
     
    7777   bool            _reconnectFlag;
    7878   QDate           _skeletonDate;
    79    int             _samplingRate;
     79   QString         _samplingRateStr;
     80   int             _samplingRateMult10;
    8081   QStringList     _addComments;
    8182
  • trunk/BNC/src/bncsettings.cpp

    r8354 r8397  
    8787    setValue_p("rnxIntr",             "1 day");
    8888    setValue_p("rnxOnlyWithSKL",      "");
    89     setValue_p("rnxSampl",            "0");
     89    setValue_p("rnxSampl",            "1 sec");
    9090    setValue_p("rnxSkel",             "SKL");
    9191    setValue_p("rnxV2Priority",       "");
     
    107107    setValue_p("reqcPlotDir",         "");
    108108    setValue_p("reqcRnxVersion",      "");
    109     setValue_p("reqcSampling",        "");
     109    setValue_p("reqcSampling",        "1 sec");
    110110    setValue_p("reqcStartDateTime",   "1967-11-02T00:00:00");
    111111    setValue_p("reqcEndDateTime",     "2099-01-01T00:00:00");
     
    142142    setValue_p("outPort",             "");
    143143    setValue_p("outWait",             "5");
    144     setValue_p("outSampl",            "0");
     144    setValue_p("outSampl",            "1 sec");
    145145    setValue_p("outFile",             "");
    146146    setValue_p("outUPort",            "");
  • trunk/BNC/src/bncwindow.cpp

    r8369 r8397  
    227227    _rnxIntrComboBox->setCurrentIndex(ii);
    228228  }
    229   _rnxSamplSpinBox    = new QSpinBox();
    230   _rnxSamplSpinBox->setMinimum(0);
    231   _rnxSamplSpinBox->setMaximum(60);
    232   _rnxSamplSpinBox->setSingleStep(5);
    233   _rnxSamplSpinBox->setValue(settings.value("rnxSampl").toInt());
     229  _rnxSamplComboBox    = new QComboBox();
     230  _rnxSamplComboBox->setEditable(false);
     231  _rnxSamplComboBox->addItems(QString("0.1 sec,1 sec,5 sec,10 sec,15 sec,30 sec,60 sec").split(","));
     232  int ij = _rnxSamplComboBox->findText(settings.value("rnxSampl").toString());
     233  if (ij != -1) {
     234    _rnxSamplComboBox->setCurrentIndex(ij);
     235  }
    234236  _rnxFileCheckBox = new QCheckBox();
    235237  _rnxFileCheckBox->setCheckState(Qt::CheckState(settings.value("rnxOnlyWithSKL").toInt()));
    236   _rnxSamplSpinBox->setSuffix(" sec");
    237238  _rnxSkelLineEdit    = new QLineEdit(settings.value("rnxSkel").toString());
    238239  _rnxSkelLineEdit->setMaximumWidth(5*ww);
     
    298299  _outWaitSpinBox->setSuffix(" sec");
    299300  _outWaitSpinBox->setValue(settings.value("outWait").toInt());
    300   _outSamplSpinBox    = new QSpinBox();
    301   _outSamplSpinBox->setMinimum(0);
    302   _outSamplSpinBox->setMaximum(60);
    303   _outSamplSpinBox->setSingleStep(5);
    304   _outSamplSpinBox->setValue(settings.value("outSampl").toInt());
    305   _outSamplSpinBox->setSuffix(" sec");
     301  _outSamplComboBox    = new QComboBox();
     302  _outSamplComboBox->addItems(QString("0.1 sec,1 sec,5 sec,10 sec,15 sec,30 sec,60 sec").split(","));
     303  int nn = _rnxSamplComboBox->findText(settings.value("rnxSampl").toString());
     304    if (nn != -1) {
     305      _rnxSamplComboBox->setCurrentIndex(nn);
     306    }
    306307  _outFileLineEdit    = new QLineEdit(settings.value("outFile").toString());
    307308  _outUPortLineEdit   = new QLineEdit(settings.value("outUPort").toString());
     
    740741  oLayout->setColumnMinimumWidth(0,14*ww);
    741742  _rnxIntrComboBox->setMaximumWidth(9*ww);
    742   _rnxSamplSpinBox->setMaximumWidth(9*ww);
     743  _rnxSamplComboBox->setMaximumWidth(9*ww);
    743744
    744745  oLayout->addWidget(new QLabel("Saving RINEX observation files.<br>"),0, 0, 1,50);
     
    748749  oLayout->addWidget(_rnxIntrComboBox,                             2, 1);
    749750  oLayout->addWidget(new QLabel("  Sampling"),                     2, 2, Qt::AlignRight);
    750   oLayout->addWidget(_rnxSamplSpinBox,                             2, 3, Qt::AlignLeft);
     751  oLayout->addWidget(_rnxSamplComboBox,                            2, 3, Qt::AlignLeft);
    751752  oLayout->addWidget(new QLabel("Skeleton extension"),             3, 0);
    752753  oLayout->addWidget(_rnxSkelLineEdit,                             3, 1, Qt::AlignLeft);
     
    809810  _outPortLineEdit->setMaximumWidth(9*ww);
    810811  _outWaitSpinBox->setMaximumWidth(9*ww);
    811   _outSamplSpinBox->setMaximumWidth(9*ww);
     812  _outSamplComboBox->setMaximumWidth(9*ww);
    812813  _outUPortLineEdit->setMaximumWidth(9*ww);
    813814
     
    816817  sLayout->addWidget(_outPortLineEdit,                              1, 1);
    817818  sLayout->addWidget(new QLabel("       Wait for full obs epoch"),  1, 2, Qt::AlignRight);
    818   sLayout->addWidget(_outWaitSpinBox,                              1, 3, Qt::AlignLeft);
     819  sLayout->addWidget(_outWaitSpinBox,                               1, 3, Qt::AlignLeft);
    819820  sLayout->addWidget(new QLabel("Sampling"),                        2, 0);
    820   sLayout->addWidget(_outSamplSpinBox,                              2, 1, Qt::AlignLeft);
     821  sLayout->addWidget(_outSamplComboBox,                             2, 1, Qt::AlignLeft);
    821822  sLayout->addWidget(new QLabel("File (full path)"),                3, 0);
    822823  sLayout->addWidget(_outFileLineEdit,                              3, 1, 1, 10);
     
    12951296  _rnxPathLineEdit->setWhatsThis(tr("<p>Here you specify the path to where the RINEX Observation files will be stored.</p><p>If the specified directory does not exist, BNC will not create RINEX Observation files. <i>[key: rnxPath]</i></p>"));
    12961297  _rnxIntrComboBox->setWhatsThis(tr("<p>Select the length of the RINEX Observation file. <i>[key: rnxIntr]</i></p>"));
    1297   _rnxSamplSpinBox->setWhatsThis(tr("<p>Select the RINEX Observation sampling interval in seconds.</p><p>A value of zero '0' tells BNC to store all received epochs into RINEX Observation files. <i>[key: rnxSampl]</i></p>"));
     1298  _rnxSamplComboBox->setWhatsThis(tr("<p>Select the RINEX Observation sampling interval in seconds. <i>[key: rnxSampl]</i></p>"));
    12981299  _rnxSkelLineEdit->setWhatsThis(tr("<p>BNC allows using personal RINEX skeleton files that contain the RINEX header records you would like to include. You can derive a skeleton file from information given in an up to date sitelog.</p><p>A file in the RINEX Observations 'Directory' with a 'Skeleton extension' skl or SKL is interpreted by BNC as a personal RINEX header skeleton file for the corresponding stream. In case of 'SKL'/'skl' the 4-char ID forming the base name has to be written in upper/lower cases. <i>[key: rnxSkel]</i></p>"));
    12991300  _rnxFileCheckBox->setWhatsThis(tr("<p>Tick check box 'Skeleton mandatory' in case you want that RINEX files are only produced if skeleton files are available for BNC. If no skeleton file is available for a particular source then no RINEX Observation file will be produced from the affected stream.</p><p>Note that a skeleton file contains RINEX header information such as receiver and antenna types. In case of stream conversion to RINEX Version 3, a skeleton file should also contain information on potentially available observation types. A missing skeleton file will therefore enforce BNC to only save a default set of RINEX 3 observation types. <i>[key: rnxOnlyWithSKL]</i></p>"));
     
    13381339  _outPortLineEdit->setWhatsThis(tr("<p>BNC can produce synchronized 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: outPort]</i></p>"));
    13391340  _outWaitSpinBox->setWhatsThis(tr("<p>When feeding a real-time GNSS network engine waiting for synchronized input epoch by epoch, BNC drops whatever is received later than 'Wait for full obs epoch' seconds.</p><p>A value of 3 to 5 seconds is recommended, depending on the latency of the incoming streams and the delay acceptable to your real-time GNSS network engine or product. <i>[key: outWait]</i></p>"));
    1340   _outSamplSpinBox->setWhatsThis(tr("<p>Select a synchronized observation sampling interval in seconds.</p><p>A value of zero '0' tells BNC to send/store all received epochs. <i>[key: outSampl]</i></p>"));
     1341  _outSamplComboBox->setWhatsThis(tr("<p>Select a synchronized observation sampling interval in seconds. <i>[key: outSampl]</i></p>"));
    13411342  _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>"));
    13421343  _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>"));
     
    14961497  delete _rnxPathLineEdit;
    14971498  delete _rnxIntrComboBox;
    1498   delete _rnxSamplSpinBox;
     1499  delete _rnxSamplComboBox;
    14991500  delete _rnxFileCheckBox;
    15001501  delete _rnxSkelLineEdit;
     
    15111512  delete _outPortLineEdit;
    15121513  delete _outWaitSpinBox;
    1513   delete _outSamplSpinBox;
     1514  delete _outSamplComboBox;
    15141515  delete _outFileLineEdit;
    15151516  delete _outUPortLineEdit;
     
    19461947  settings.setValue("rnxPath",      _rnxPathLineEdit->text());
    19471948  settings.setValue("rnxIntr",      _rnxIntrComboBox->currentText());
    1948   settings.setValue("rnxSampl",     _rnxSamplSpinBox->value());
     1949  settings.setValue("rnxSampl",     _rnxSamplComboBox->currentText());
    19491950  settings.setValue("rnxSkel",      _rnxSkelLineEdit->text());
    19501951  settings.setValue("rnxOnlyWithSKL",_rnxFileCheckBox->checkState());
     
    19641965  settings.setValue("outPort",     _outPortLineEdit->text());
    19651966  settings.setValue("outWait",     _outWaitSpinBox->value());
    1966   settings.setValue("outSampl",    _outSamplSpinBox->value());
     1967  settings.setValue("outSampl",    _outSamplComboBox->currentText());
    19671968  settings.setValue("outFile",     _outFileLineEdit->text());
    19681969  settings.setValue("outUPort",    _outUPortLineEdit->text());
     
    22762277  populateMountPointsTable();
    22772278  bncSettings settings;
    2278   _outSamplSpinBox->setValue(settings.value("outSampl").toInt());
     2279  _outSamplComboBox->findText(settings.value("rnxSampl").toString());
    22792280  _outWaitSpinBox->setValue(settings.value("outWait").toInt());
    22802281  QListIterator<bncGetThread*> iTh(threads);
     
    24332434    enable = !_rnxPathLineEdit->text().isEmpty();
    24342435    enableWidget(enable, _rnxIntrComboBox);
    2435     enableWidget(enable, _rnxSamplSpinBox);
     2436    enableWidget(enable, _rnxSamplComboBox);
    24362437    enableWidget(enable, _rnxSkelLineEdit);
    24372438    enableWidget(enable, _rnxFileCheckBox);
     
    24802481    enable = !_outPortLineEdit->text().isEmpty() || !_outFileLineEdit->text().isEmpty();
    24812482    enableWidget(enable, _outWaitSpinBox);
    2482     enableWidget(enable, _outSamplSpinBox);
     2483    enableWidget(enable, _outSamplComboBox);
    24832484  }
    24842485
  • trunk/BNC/src/bncwindow.h

    r8354 r8397  
    172172    QComboBox* _ephIntrComboBox;
    173173    QComboBox* _corrIntrComboBox;
    174     QSpinBox*  _rnxSamplSpinBox;
    175     QSpinBox*  _outSamplSpinBox;
     174    QComboBox*  _rnxSamplComboBox;
     175    QComboBox*  _outSamplComboBox;
    176176    QCheckBox* _rnxAppendCheckBox;
    177177    QCheckBox* _autoStartCheckBox;
  • trunk/BNC/src/reqcdlg.cpp

    r8252 r8397  
    6969
    7070  _reqcRnxVersion        = new QComboBox(this);
    71   _reqcSampling          = new QSpinBox(this);
     71  _reqcSampling          = new QComboBox(this);
    7272  _reqcStartDateTime     = new QDateTimeEdit(this);
    7373  _reqcStartDateTime->setDisplayFormat(timeFmtString);
     
    9494  _reqcNewReceiverNumber = new QLineEdit(this);
    9595
    96 
    9796  _reqcRnxVersion->setEditable(false);
    9897  _reqcRnxVersion->addItems(QString("2,3").split(","));
    9998  _reqcRnxVersion->setMaximumWidth(7*ww);
    10099
    101   _reqcSampling->setMinimum(0);
    102   _reqcSampling->setMaximum(60);
    103   _reqcSampling->setSingleStep(5);
    104   _reqcSampling->setSuffix(" sec");
    105   _reqcSampling->setMaximumWidth(7*ww);
     100  _reqcSampling->setEditable(false);
     101  _reqcSampling->addItems(QString("0.1 sec,1 sec,5 sec,10 sec,15 sec,30 sec,60 sec").split(","));
     102  bncSettings settings;
     103  int ll = _reqcSampling->findText(settings.value("reqcSampl").toString());
     104  if (ll != -1) {
     105    _reqcSampling->setCurrentIndex(ll);
     106  }
    106107
    107108  // Read Options
    108109  // ------------
    109   bncSettings settings;
    110 
    111110  int kk = _reqcRnxVersion->findText(settings.value("reqcRnxVersion").toString());
    112111  if (kk != -1) {
    113112    _reqcRnxVersion->setCurrentIndex(kk);
    114113  }
    115   _reqcSampling->setValue(settings.value("reqcSampling").toInt());
     114  _reqcSampling->findText(settings.value("reqcSampling").toString());
    116115  if (settings.value("reqcStartDateTime").toString().isEmpty()) {
    117116    _reqcStartDateTime->setDateTime(QDateTime::fromString("1967-11-02T00:00:00", Qt::ISODate));
     
    242241  // -----------------------------
    243242  _reqcRnxVersion->setWhatsThis(tr("<p>Select version number of emerging new RINEX file.</p><p>Note the following:</p><p>When converting <u>RINEX Version 2 to Version 3 </u>Observation files, the tracking mode or channel information (signal attribute, see RINEX Version 3 documentation) in the (last out of the three characters) observation code is left blank if unknown.</p><p>When converting <u>RINEX Version 3 to Version 2</u>, the mapping of observations follows a 'Signal priority list' with signal attributes as defined in RINEX Version 3. <i>[key: reqcRnxVersion]</i></p>"));
    244   _reqcSampling->setWhatsThis(tr("<p>Select sampling rate of emerging new RINEX Observation file.</p><p>'0 sec' means that observations from all epochs in the RINEX input file will become part of the RINEX output file. <i>[key: reqcSampling]</i></p>"));
     243  _reqcSampling->setWhatsThis(tr("<p>Select sampling rate of emerging new RINEX Observation file. <i>[key: reqcSampling]</i></p>"));
    245244  _reqcV2Priority->setWhatsThis(tr("<p>Specify a priority list of characters defining signal attributes as defined in RINEX Version 3. Priorities will be used to map observations with RINEX Version 3 attributes from incoming streams to Version 2. The underscore character '_' stands for undefined attributes. A question mark '?' can be used as wildcard which represents any one character.</p><p>Signal priorities can be specified as equal for all systems, as system specific or as system and freq. specific. For example: </li><ul><li>'CWPX_?' (General signal priorities valid for all GNSS) </li><li>'C:IQX I:ABCX' (System specific signal priorities for BDS and IRNSS) </li><li>'G:12&PWCSLXYN G:5&IQX R:12&PC R:3&IQX' (System and frequency specific signal priorities) </li></ul>Default is the following priority list 'G:12&PWCSLXYN_ G:5&IQX_ R:12&PC_ R:3&IQX_ E:16&BCX_ E:578&IQX_ J:1&SLXCZ_ J:26&SLX_ J:5&IQX_ C:IQX_ I:ABCX_ S:1&C_ S:5&IQX_'. <i>[key: reqcV2Priority]</i></p>"));
    246245  _reqcStartDateTime->setWhatsThis(tr("<p>Specify begin of emerging new RINEX Observation file. <i>[key: reqcStartDateTime]</i></p>"));
     
    314313
    315314  settings.setValue("reqcRnxVersion"       , _reqcRnxVersion->currentText());
    316   settings.setValue("reqcSampling"         , _reqcSampling->value());
     315  settings.setValue("reqcSampling"         , _reqcSampling->currentText());
    317316  settings.setValue("reqcV2Priority"       , _reqcV2Priority->text());
    318317  settings.setValue("reqcStartDateTime"    , _reqcStartDateTime->dateTime().toString(Qt::ISODate));
  • trunk/BNC/src/reqcdlg.h

    r8252 r8397  
    5858
    5959   QComboBox*     _reqcRnxVersion;
    60    QSpinBox*      _reqcSampling;
     60   QComboBox*     _reqcSampling;
    6161   QDateTimeEdit* _reqcStartDateTime;
    6262   QDateTimeEdit* _reqcEndDateTime;
  • trunk/BNC/src/rinex/reqcanalyze.cpp

    r8368 r8397  
    819819        << "End Time           : " << _qcFile._endTime.datestr().c_str()           << ' '
    820820                                   << _qcFile._endTime.timestr(1,'.').c_str()      << endl
    821         << "Interval           : " << _qcFile._interval                            << endl;
     821        << "Interval           : " << _qcFile._interval << " sec"                  << endl;
    822822
    823823  // Number of systems
  • trunk/BNC/src/rinex/reqcedit.cpp

    r8372 r8397  
    6969    _rnxVersion = defaultRnxObsVersion3;
    7070  }
    71   _samplingRate   = settings.value("reqcSampling").toInt();
     71  _samplingRate   = settings.value("reqcSampling").toString().split("sec").first().toDouble();
    7272  _begTime        = bncTime(settings.value("reqcStartDateTime").toString().toLatin1().data());
    7373  _endTime        = bncTime(settings.value("reqcEndDateTime").toString().toLatin1().data());
     
    118118          << _rnxVersion << endl;
    119119    *_log << QByteArray("Sampling").leftJustified(15) << ": "
    120           << _samplingRate << endl;
     120          << _samplingRate << " sec" << endl;
    121121    *_log << QByteArray("Start time").leftJustified(15) << ": "
    122122          << _begTime.datestr().c_str() << ' '
     
    338338
    339339        int sec = int(nint(epo->tt.gpssec()*10));
    340         if (_samplingRate == 0 || sec % (_samplingRate*10) == 0) {
     340        if (sec % (int(_samplingRate)*10) == 0) {
    341341          applyLLI(obsFile, epo);
    342342          outObsFile.writeEpoch(epo);
  • trunk/BNC/src/rinex/reqcedit.h

    r7474 r8397  
    7171  QString                _outNavFileName;
    7272  double                 _rnxVersion;
    73   int                    _samplingRate;
     73  double                 _samplingRate;
    7474  bncTime                _begTime;
    7575  bncTime                _endTime;
Note: See TracChangeset for help on using the changeset viewer.