Index: /trunk/BNC/src/bncwindow.cpp =================================================================== --- /trunk/BNC/src/bncwindow.cpp (revision 9598) +++ /trunk/BNC/src/bncwindow.cpp (revision 9599) @@ -957,4 +957,6 @@ _pppWidgets._snxtroAc ->setMaximumWidth(10*ww); _pppWidgets._snxtroSol ->setMaximumWidth(7*ww); + _pppWidgets._ionoMount->setMaximumWidth(15*ww); + QGridLayout* pppLayout1 = new QGridLayout(); @@ -997,4 +999,8 @@ pppLayout1->addWidget(_pppWidgets._snxtroSampl, ir, 7, Qt::AlignRight); ++ir; + pppLayout1->addWidget(new QLabel("Ionosphere stream"), ir, 0); + pppLayout1->addWidget(_pppWidgets._ionoMount, ir, 1); + pppLayout1->addWidget(new QLabel("Ionosphere file"), ir, 2); + pppLayout1->addWidget(_pppWidgets._ionoFile, ir, 3); pppLayout1->addWidget(new QLabel(" SNX TRO AC"), ir, 4); pppLayout1->addWidget(_pppWidgets._snxtroAc, ir, 5); @@ -1444,4 +1450,5 @@ _pppWidgets._snxtroAc->setWhatsThis(tr("
Specify a 3-character abbreviation describing you as the generating Analysis Center (AC) in your SINEX troposphere files.
")); _pppWidgets._snxtroSol->setWhatsThis(tr("Specify a 4-character solution ID to allow a distingtion between different solutions per AC.
")); + _pppWidgets._ionoMount->setWhatsThis(tr("Specify a 'mountpoint' from the 'Streams' canvas below which provides VTEC informations in SSR format.
If you don't specify a corrections stream via this option, BNC will use VTEC informations from the Corrections stream 'mountpoint', if available.
")); // WhatsThis, PPP (3) Index: /trunk/BNC/src/pppMain.cpp =================================================================== --- /trunk/BNC/src/pppMain.cpp (revision 9598) +++ /trunk/BNC/src/pppMain.cpp (revision 9599) @@ -164,4 +164,5 @@ opt->_corrMount.assign(settings.value("PPP/corrMount").toString().toStdString()); opt->_isAPC = (opt->_corrMount.substr(0,4)=="SSRA"); + opt->_ionoMount.assign(settings.value("PPP/ionoMount").toString().toStdString()); } else { @@ -171,4 +172,5 @@ QFileInfo tmp = QFileInfo(QString::fromStdString(opt->_corrFile)); opt->_isAPC = (tmp.baseName().mid(0,4)=="SSRA"); + opt->_ionoFile.assign(settings.value("PPP/ionoFile").toString().toStdString()); } Index: /trunk/BNC/src/pppOptions.h =================================================================== --- /trunk/BNC/src/pppOptions.h (revision 9598) +++ /trunk/BNC/src/pppOptions.h (revision 9599) @@ -36,8 +36,10 @@ std::string _crdFile; std::string _corrMount; + std::string _ionoMount; bool _isAPC; std::string _rinexObs; std::string _rinexNav; std::string _corrFile; + std::string _ionoFile; double _corrWaitTime; std::string _roverName; Index: /trunk/BNC/src/pppRun.cpp =================================================================== --- /trunk/BNC/src/pppRun.cpp (revision 9598) +++ /trunk/BNC/src/pppRun.cpp (revision 9599) @@ -130,4 +130,5 @@ _rnxNavFile = 0; _corrFile = 0; + _ionoFile = 0; _speed = settings.value("PPP/mapSpeedSlider").toInt(); connect(this, SIGNAL(progressRnxPPP(int)), BNC_CORE, SIGNAL(progressRnxPPP(int))); @@ -422,9 +423,15 @@ if (_opt->_realTime) { - if (_opt->_corrMount.empty() || _opt->_corrMount != vTec._staID) { - return; - } - } - + if (_opt->_ionoMount.empty() && _opt->_corrMount.empty()) { + return; + } + if ( _opt->_ionoMount.empty() && + !_opt->_corrMount.empty() && _opt->_corrMount != vTec._staID) { + return; + } + if (!_opt->_ionoMount.empty() && _opt->_ionoMount != vTec._staID) { + return; + } + } _pppClient->putTec(&vTec); } @@ -555,4 +562,10 @@ } + if (!_opt->_ionoFile.empty()) { + _ionoFile = new t_corrFile(QString(_opt->_corrFile.c_str())); + connect(_ionoFile, SIGNAL(newTec(t_vTec)), + this, SLOT(slotNewTec(t_vTec))); + } + // Read/Process Observations // ------------------------- @@ -583,4 +596,24 @@ catch (...) { emit newMessage("unknown exceptions in corrFile", true); + break; + } + } + + // Get Additional VTEC Informations + // -------------------------------- + if (_ionoFile) { + try { + _ionoFile->syncRead(epo->tt); + } + catch (const char* msg) { + emit newMessage(QByteArray(msg), true); + break; + } + catch (const string& msg) { + emit newMessage(QByteArray(msg.c_str()), true); + break; + } + catch (...) { + emit newMessage("unknown exceptions in ionoFile", true); break; } Index: /trunk/BNC/src/pppRun.h =================================================================== --- /trunk/BNC/src/pppRun.h (revision 9598) +++ /trunk/BNC/src/pppRun.h (revision 9599) @@ -71,4 +71,5 @@ t_rnxNavFile* _rnxNavFile; t_corrFile* _corrFile; + t_corrFile* _ionoFile; int _speed; bool _stopFlag; Index: /trunk/BNC/src/pppWidgets.cpp =================================================================== --- /trunk/BNC/src/pppWidgets.cpp (revision 9598) +++ /trunk/BNC/src/pppWidgets.cpp (revision 9599) @@ -65,5 +65,7 @@ _rinexNav = new qtFileChooser(); _rinexNav ->setObjectName("PPP/rinexNav"); _widgets << _rinexNav; _corrMount = new QLineEdit(); _corrMount ->setObjectName("PPP/corrMount"); _widgets << _corrMount; + _ionoMount = new QLineEdit(); _ionoMount ->setObjectName("PPP/ionoMount"); _widgets << _ionoMount; _corrFile = new qtFileChooser(); _corrFile ->setObjectName("PPP/corrFile"); _widgets << _corrFile; + _ionoFile = new qtFileChooser(); _ionoFile ->setObjectName("PPP/ionoFile"); _widgets << _ionoFile; _crdFile = new qtFileChooser(); _crdFile ->setObjectName("PPP/crdFile"); _widgets << _crdFile; _antexFile = new qtFileChooser(); _antexFile ->setObjectName("PPP/antexFile"); _widgets << _antexFile; @@ -233,5 +235,7 @@ delete _rinexNav; delete _corrMount; + delete _ionoMount; delete _corrFile; + delete _ionoFile; delete _crdFile; delete _antexFile; @@ -330,4 +334,5 @@ // --------- _corrMount ->setText(settings.value(_corrMount ->objectName()).toString()); + _ionoMount ->setText(settings.value(_ionoMount ->objectName()).toString()); _logPath ->setText(settings.value(_logPath ->objectName()).toString()); _nmeaPath ->setText(settings.value(_nmeaPath ->objectName()).toString()); @@ -446,5 +451,7 @@ settings.setValue(_rinexNav ->objectName(), _rinexNav ->fileName()); settings.setValue(_corrMount ->objectName(), _corrMount ->text()); + settings.setValue(_ionoMount ->objectName(), _ionoMount ->text()); settings.setValue(_corrFile ->objectName(), _corrFile ->fileName()); + settings.setValue(_ionoFile ->objectName(), _ionoFile ->fileName()); settings.setValue(_crdFile ->objectName(), _crdFile ->fileName()); settings.setValue(_antexFile ->objectName(), _antexFile ->fileName()); @@ -527,7 +534,9 @@ _rinexNav->setEnabled(false); _corrFile->setEnabled(false); + _ionoFile->setEnabled(false); } else if (rinexFiles) { _corrMount ->setEnabled(false); + _ionoMount ->setEnabled(false); _audioResponse->setEnabled(false); } @@ -549,7 +558,9 @@ _pseudoObs->setEnabled(true); _sigmaGIM->setEnabled(true); + _maxResGIM->setEnabled(true); } else { _pseudoObs->setEnabled(false); _sigmaGIM->setEnabled(false); + _maxResGIM->setEnabled(false); } Index: /trunk/BNC/src/pppWidgets.h =================================================================== --- /trunk/BNC/src/pppWidgets.h (revision 9598) +++ /trunk/BNC/src/pppWidgets.h (revision 9599) @@ -49,5 +49,7 @@ qtFileChooser* _rinexNav; QLineEdit* _corrMount; + QLineEdit* _ionoMount; qtFileChooser* _corrFile; + qtFileChooser* _ionoFile; qtFileChooser* _crdFile; qtFileChooser* _antexFile;