Changeset 10479 in ntrip for trunk/BNC/src


Ignore:
Timestamp:
May 7, 2024, 10:36:55 AM (9 months ago)
Author:
stuerze
Message:

BNC writes combination results now in a separate output file

Location:
trunk/BNC/src
Files:
5 edited

Legend:

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

    r10470 r10479  
    304304      "   cmbMaxdisplacement {Maximal orbit displacement from the mean of corrections for a satellite [floating-point number]}\n"
    305305      "   cmbSampl           {Clock sampling rate [integer number of seconds: 0|10|20|30|40|50|60]}\n"
     306      "   cmbLogpath         {Directory for Combination log files [character string]}\n"
    306307      "   cmbGps             {GPS correction usage [integer number: 0=no,2=yes]}\n"
    307308      "   cmbGlo             {GLONASS correction usage [integer number: 0=no,2=yes]}\n"
  • trunk/BNC/src/bncsettings.cpp

    r10451 r10479  
    173173    setValue_p("cmbMaxdisplacement",  "");
    174174    setValue_p("cmbSampl",          "10");
     175    setValue_p("cmbLogpath",          "");
    175176    setValue_p("cmbGps",             "2");
    176177    setValue_p("cmbGlo",             "2");
  • trunk/BNC/src/bncwindow.cpp

    r10452 r10479  
    502502  _cmbSamplSpinBox->setSuffix(" sec");
    503503
     504  _cmbLogPath = new QLineEdit(settings.value("cmbLogpath").toString());
     505
    504506  QPushButton* addCmbRowButton = new QPushButton("Add Row");
    505507  QPushButton* delCmbRowButton = new QPushButton("Delete");
     
    521523    enableWidget(true, _cmbMaxdisplacementLineEdit);
    522524    enableWidget(true, _cmbSamplSpinBox);
     525    enableWidget(true, _cmbLogPath);
    523526  }
    524527  else {
     
    527530    enableWidget(false, _cmbMaxdisplacementLineEdit);
    528531    enableWidget(false, _cmbSamplSpinBox);
     532    enableWidget(false, _cmbLogPath);
    529533  }
    530534  _cmbGpsCheckBox = new QCheckBox();
     
    12881292  populateCmbTable();
    12891293  cmbLayout->addWidget(_cmbTable,                                                0, 0, 8, 10);
    1290   cmbLayout->addWidget(new QLabel(" Combine Broadcast Correction streams.<br>"), 0, 10, 1, 10);
     1294  cmbLayout->addWidget(new QLabel(" Combine Broadcast Correction streams"),      0, 10, 1, 10);
    12911295  cmbLayout->addWidget(addCmbRowButton,                                          1, 10);
    12921296  cmbLayout->addWidget(delCmbRowButton,                                          1, 11);
     
    12991303  cmbLayout->addWidget(new QLabel("Max Orb Displacement"),                       5, 10, Qt::AlignLeft);
    13001304  cmbLayout->addWidget(_cmbMaxdisplacementLineEdit,                              5, 11, Qt::AlignRight);
    1301   cmbLayout->addWidget(new QLabel("Sampling"),                                   6, 10, Qt::AlignLeft);
    1302   cmbLayout->addWidget(_cmbSamplSpinBox,                                         6, 11, Qt::AlignRight);
     1305  cmbLayout->addWidget(new QLabel("Logfile directory"),                          6, 10, Qt::AlignLeft);
     1306  cmbLayout->addWidget(_cmbLogPath,                                              6, 11, Qt::AlignRight);
     1307  cmbLayout->addWidget(new QLabel("Sampling"),                                   7, 10, Qt::AlignLeft);
     1308  cmbLayout->addWidget(_cmbSamplSpinBox,                                         7, 11, Qt::AlignRight);
     1309
    13031310
    13041311  cmbLayout->addWidget(new QLabel("GNSS"),                                       0, 14, Qt::AlignLeft);
     
    16021609  _cmbMaxresLineEdit->setWhatsThis(tr("<p>BNC combines all incoming clocks according to specified weights. Individual clock estimates that differ by more than 'Maximal Clk Residuum' meters from the average of all clocks will be ignored.<p></p>It is suggested to specify a value of about 0.2 m for the Kalman filter combination approach and a value of about 3.0 meters for the Single-Epoch combination approach.</p><p>Default is a value of '999.0'. <i>[key: cmbMaxres]</i></p>"));
    16031610  _cmbMaxdisplacementLineEdit->setWhatsThis(tr("<p>BNC builds mean values for all incoming orbit corrections per satellite. Individual orbit corrections that differ by more than 'Maximal Orb Displacement' meters from the average of all orbit corrections per satellite will be ignored.<p></p>It is suggested to specify a value of about 0.5 m.</p><p>Default is a value of '2.0'. <i>[key: cmbMaxdisplacement]</i></p>"));
    1604   _cmbSamplSpinBox->setWhatsThis(tr("<p>Select a combination Sampling interval for the clocks. Clock corrections will be produced following that interval.</p><p>A value of 10 sec may be an appropriate choice. A value of zero '0' tells BNC to use all available samples. <i>[key:  ]</i></p>"));
     1611  _cmbSamplSpinBox->setWhatsThis(tr("<p>Select a combination Sampling interval for the clocks. Clock corrections will be produced following that interval.</p><p>A value of 10 sec may be an appropriate choice. A value of zero '0' tells BNC to use all available samples. <i>[key: cmbSampl]</i></p>"));
     1612  _cmbLogPath->setWhatsThis(tr("<p>Specify a directory for saving daily Combination 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 Combination logfiles shall be produced. <i>[key: cmbLogpath]</i></p>"));
    16051613  _cmbGpsCheckBox->setWhatsThis(tr("<p>GPS clock corrections shall be combined. GPS Broadcast ephemeris and corrections are required. <i>[key: cmbGps]</i></p>"));
    16061614  _cmbGloCheckBox->setWhatsThis(tr("<p>GLONASS clock corrections shall be combined; GLONASS Broadcast ephemeris and corrections are required. <i>[key: cmbGlo]</i></p>"));
     
    17431751  delete _cmbMaxdisplacementLineEdit;
    17441752  delete _cmbSamplSpinBox;
     1753  delete _cmbLogPath;
    17451754  delete _cmbMethodComboBox;
    17461755  delete _cmbGpsCheckBox;
     
    22362245  settings.setValue("cmbMaxdisplacement", _cmbMaxdisplacementLineEdit->text());
    22372246  settings.setValue("cmbSampl",           _cmbSamplSpinBox->value());
     2247  settings.setValue("cmbLogpath",         _cmbLogPath->text());
    22382248  settings.setValue("cmbGps",             _cmbGpsCheckBox->checkState());
    22392249  settings.setValue("cmbGlo",             _cmbGloCheckBox->checkState());
     
    27702780      enableWidget(true, _cmbMaxdisplacementLineEdit);
    27712781      enableWidget(true, _cmbSamplSpinBox);
     2782      enableWidget(true, _cmbLogPath);
    27722783      enableWidget(true, _cmbGpsCheckBox);
    27732784      enableWidget(true, _cmbGloCheckBox);
     
    27842795      enableWidget(false, _cmbMaxdisplacementLineEdit);
    27852796      enableWidget(false, _cmbSamplSpinBox);
     2797      enableWidget(false, _cmbLogPath);
    27862798      enableWidget(false, _cmbGpsCheckBox);
    27872799      enableWidget(false, _cmbGloCheckBox);
     
    28932905    enableWidget(false, _cmbMaxdisplacementLineEdit);
    28942906    enableWidget(false, _cmbSamplSpinBox);
     2907    enableWidget(false, _cmbLogPath);
    28952908  }
    28962909}
  • trunk/BNC/src/combination/bnccomb.cpp

    r10477 r10479  
    313313  }
    314314
     315  // Logfile
     316  // -------
     317  QString intr = "1 day";
     318  QString logFileCmb = settings.value("cmbLogpath").toString();
     319  int l = logFileCmb.length();
     320  if (logFileCmb.isEmpty()) {
     321    _logFile = 0;
     322  }
     323  else {
     324    if (l && logFileCmb[l-1] != QDir::separator() ) {
     325      logFileCmb += QDir::separator();
     326    }
     327
     328    logFileCmb = logFileCmb + "COMB00BNC" + "${V3PROD}" + ".CMB";
     329
     330    _logFile = new bncoutf(logFileCmb, intr, _cmbSampl);
     331  }
     332
    315333  _newCorr = 0;
    316334}
     
    345363  delete _antex;
    346364  delete _bsx;
     365  delete _logFile;
    347366
    348367  QMapIterator<char, unsigned> itSys(_cmbSysPrn);
     
    518537      if ((newClk._time >= currentTime) ||       // future time stamp
    519538          (currentTime - newClk._time) > 60.0) { // very old data sets
    520   #ifdef BNC_DEBUG_CMB
    521539        emit newMessage("bncComb: future or very old data sets: " + acName.toLatin1() + " " + newClk._prn.toString().c_str() +
    522540            QString(" %1 ").arg(newClk._time.timestr().c_str()).toLatin1() + "vs. current time" +
    523541            QString(" %1 ").arg(currentTime.timestr().c_str()).toLatin1(), true);
    524   #endif
    525542        continue;
    526543      }
     
    530547    // --------------------
    531548    if (_resTime.valid() && newClk._time <= _resTime) {
    532 #ifdef BNC_DEBUG_CMB
    533549      emit newMessage("bncComb: old correction: " + acName.toLatin1() + " " + newClk._prn.toString().c_str() +
    534550          QString(" %1 ").arg(newClk._time.timestr().c_str()).toLatin1() + "vs. last processing Epoch" +
    535551          QString(" %1 ").arg(_resTime.timestr().c_str()).toLatin1(), true);
    536 #endif
    537552      continue;
    538553    }
     
    711726    t_eph* ephPrev = _ephUser.ephPrev(prn);
    712727    if (ephLast == 0) {
    713 #ifdef BNC_DEBUG_CMB
    714728      emit newMessage("bncComb: eph not found for "  + prn.mid(0,3).toLatin1(), true);
    715 #endif
    716729      delete _newCorr; _newCorr = 0;
    717730      continue;
     
    721734             ephLast->checkState() == t_eph::outdated ||
    722735             ephLast->checkState() == t_eph::unhealthy) {
    723 #ifdef BNC_DEBUG_CMB
    724736      emit newMessage("bncComb: ephLast not ok (checkState: " +  ephLast->checkStateToString().toLatin1() + ") for "  + prn.mid(0,3).toLatin1(), true);
    725 #endif
    726737      delete _newCorr; _newCorr = 0;
    727738      continue;
     
    739750      }
    740751      else {
    741 #ifdef BNC_DEBUG_CMB
    742752        emit newMessage("bncComb: eph not found for "  + prn.mid(0,3).toLatin1() +
    743753                        QString(" with IOD %1").arg(_newCorr->_iod).toLatin1(), true);
    744 #endif
    745754        delete _newCorr; _newCorr = 0;
    746755        continue;
     
    815824    processSystem(epoTime, sys, out);
    816825    _buffer.remove(sys);
    817     emit newMessage(_log, false);
     826    //emit newMessage(_log, false);
     827    if (_logFile) {
     828      _logFile->write(epoTime.gpsw(),epoTime.gpssec(), QString(_log));
     829    }
    818830  }
    819831}
  • trunk/BNC/src/combination/bnccomb.h

    r10451 r10479  
    1616#include "satObs.h"
    1717#include "bncconst.h"
     18#include "bncoutf.h"
    1819#include "../RTCM3/clock_and_orbit/clock_orbit_rtcm.h"
    1920#include "../RTCM3/clock_and_orbit/clock_orbit_igs.h"
     
    257258  bncAntex*                                  _antex;
    258259  bncBiasSnx*                                _bsx;
     260  bncoutf*                                   _logFile;
    259261  double                                     _MAX_RES;
    260262  double                                     _MAX_DISPLACEMENT;
Note: See TracChangeset for help on using the changeset viewer.