Changeset 5861 in ntrip
- Timestamp:
- Aug 8, 2014, 10:35:08 AM (11 years ago)
- Location:
- trunk/BNC/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/bnccore.cpp
r5846 r5861 60 60 // Singleton 61 61 //////////////////////////////////////////////////////////////////////////// 62 t_bncCore & bncCoreInstance() {62 t_bncCore* t_bncCore::instance() { 63 63 static t_bncCore _bncCore; 64 return _bncCore;64 return &_bncCore; 65 65 } 66 66 … … 124 124 _GLOFreq[ii] = 0; 125 125 } 126 127 _bncPPPclient = 0;128 126 129 127 _mainWindow = 0; -
trunk/BNC/src/bnccore.h
r5846 r5861 33 33 34 34 class bncComb; 35 class bncPPPclient;36 35 class bncTableItem; 37 36 38 37 class t_bncCore : public QObject { 39 Q_OBJECT 38 Q_OBJECT 39 friend class bncSettings; 40 40 41 friend class bncSettings; 42 QSettings::SettingsMap _settings; 41 public: 42 enum e_mode {interactive, nonInteractive, batchPostProcessing}; 43 t_bncCore(); 44 virtual ~t_bncCore(); 45 static t_bncCore* instance(); 46 e_mode mode() const {return _mode;} 47 void setGUIenabled(bool GUIenabled) {_GUIenabled = GUIenabled;} 48 void setMode(e_mode mode) {_mode = mode;} 49 void setPort(int port); 50 void setPortCorr(int port); 51 void setCaster(bncCaster* caster) {_caster = caster;} 52 const bncCaster* caster() const {return _caster;} 53 bool dateAndTimeGPSSet() const; 54 QDateTime dateAndTimeGPS() const; 55 void setDateAndTimeGPS(QDateTime dateTime); 56 void setConfFileName(const QString& confFileName); 57 QString confFileName() const {return _confFileName;} 58 void writeRawData(const QByteArray& data, const QByteArray& staID, 59 const QByteArray& format); 60 void storeGlonassSlotNums(const int GLOFreq[]); 61 void getGlonassSlotNums(int GLOFreq[]); 62 void initCombination(); 63 void stopCombination(); 64 const QString& pgmName() {return _pgmName;} 65 const QString& userName() {return _userName;} 66 QWidget* mainWindow() const {return _mainWindow;}; 67 void setMainWindow(QWidget* mainWindow){_mainWindow = mainWindow;} 68 bool GUIenabled() const {return _GUIenabled;} 43 69 44 public: 45 enum e_mode {interactive, nonInteractive, batchPostProcessing}; 46 t_bncCore(); 47 virtual ~t_bncCore(); 48 e_mode mode() const {return _mode;} 49 void setGUIenabled(bool GUIenabled) {_GUIenabled = GUIenabled;} 50 void setMode(e_mode mode) {_mode = mode;} 51 void setPort(int port); 52 void setPortCorr(int port); 53 void setCaster(bncCaster* caster) {_caster = caster;} 54 const bncCaster* caster() const {return _caster;} 55 bool dateAndTimeGPSSet() const; 56 QDateTime dateAndTimeGPS() const; 57 void setDateAndTimeGPS(QDateTime dateTime); 58 void setConfFileName(const QString& confFileName); 59 QString confFileName() const {return _confFileName;} 60 void writeRawData(const QByteArray& data, const QByteArray& staID, 61 const QByteArray& format); 62 void storeGlonassSlotNums(const int GLOFreq[]); 63 void getGlonassSlotNums(int GLOFreq[]); 64 void initCombination(); 65 void stopCombination(); 66 const QString& pgmName() {return _pgmName;} 67 const QString& userName() {return _userName;} 68 QWidget* mainWindow() const {return _mainWindow;}; 69 void setMainWindow(QWidget* mainWindow){_mainWindow = mainWindow;} 70 bool GUIenabled() const {return _GUIenabled;} 70 QMap<int, bncTableItem*> _uploadTableItems; 71 71 72 73 74 75 76 77 78 72 public slots: 73 void slotMessage(QByteArray msg, bool showOnScreen); 74 void slotNewGPSEph(gpsephemeris* gpseph); 75 void slotNewGlonassEph(glonassephemeris* glonasseph, const QString& staID); 76 void slotNewGalileoEph(galileoephemeris* galileoeph); 77 void slotNewCorrLine(QString line, QString staID, bncTime coTime); 78 void slotQuit(); 79 79 80 81 82 83 84 85 86 80 signals: 81 void newMessage(QByteArray msg, bool showOnScreen); 82 void newEphGPS(gpsephemeris gpseph); 83 void newEphGlonass(glonassephemeris glonasseph); 84 void newEphGalileo(galileoephemeris galileoeph); 85 void newCorrections(QStringList); 86 void providerIDChanged(QString); 87 87 88 88 private slots: 89 void slotNewConnection(); 90 void slotNewConnectionCorr(); 91 private: 92 void printEphHeader(); 93 void printGPSEph(gpsephemeris* ep, bool printFile); 94 void printGlonassEph(glonassephemeris* ep, bool printFile, const QString& staID); 95 void printGalileoEph(galileoephemeris* ep, bool printFile); 96 void printOutput(bool printFile, QTextStream* stream, 97 const QString& strV2, const QString& strV3); 98 void dumpCorrs(bncTime minTime, bncTime maxTime); 99 void dumpCorrs(); 100 void dumpCorrs(const QStringList& allCorrs); 101 void messagePrivate(const QByteArray& msg); 102 void checkEphemeris(gpsephemeris* oldEph, gpsephemeris* newEph); 89 void slotNewConnection(); 90 void slotNewConnectionCorr(); 103 91 104 QFile* _logFile; 105 QTextStream* _logStream; 106 int _logFileFlag; 107 QMutex _mutex; 108 QMutex _mutexMessage; 109 QString _ephPath; 110 QString _ephFileNameGPS; 111 int _rinexVers; 112 QFile* _ephFileGPS; 113 QTextStream* _ephStreamGPS; 114 QFile* _ephFileGlonass; 115 QTextStream* _ephStreamGlonass; 116 QFile* _ephFileGalileo; 117 QTextStream* _ephStreamGalileo; 118 gpsephemeris* _gpsEph[PRN_GPS_END - PRN_GPS_START + 1]; 119 glonassephemeris* _glonassEph[PRN_GLONASS_END - PRN_GLONASS_START + 1]; 120 galileoephemeris* _galileoEph[PRN_GALILEO_END - PRN_GALILEO_START + 1]; 121 QString _userName; 122 QString _pgmName; 123 int _port; 124 QTcpServer* _server; 125 QList<QTcpSocket*>* _sockets; 126 int _portCorr; 127 QTcpServer* _serverCorr; 128 QList<QTcpSocket*>* _socketsCorr; 129 int _portNMEA; 130 QTcpServer* _serverNMEA; 131 QList<QTcpSocket*>* _socketsNMEA; 132 bncCaster* _caster; 133 QMap<QString, bncTime> _lastCorrDumpTime; 134 double _waitCoTime; 135 QMultiMap<bncTime, QString>* _corrs; 136 QString _confFileName; 137 QDate _fileDate; 138 bncRawFile* _rawFile; 139 int _GLOFreq[PRN_GLONASS_NUM]; 140 bncComb* _bncComb; 141 e_mode _mode; 142 QWidget* _mainWindow; 143 bool _GUIenabled; 144 QDateTime* _dateAndTimeGPS; 145 mutable QMutex _mutexDateAndTimeGPS; 146 public: 147 bncPPPclient* _bncPPPclient; 148 QMap<int, bncTableItem*> _uploadTableItems; 92 private: 93 void printEphHeader(); 94 void printGPSEph(gpsephemeris* ep, bool printFile); 95 void printGlonassEph(glonassephemeris* ep, bool printFile, const QString& staID); 96 void printGalileoEph(galileoephemeris* ep, bool printFile); 97 void printOutput(bool printFile, QTextStream* stream, 98 const QString& strV2, const QString& strV3); 99 void dumpCorrs(bncTime minTime, bncTime maxTime); 100 void dumpCorrs(); 101 void dumpCorrs(const QStringList& allCorrs); 102 void messagePrivate(const QByteArray& msg); 103 void checkEphemeris(gpsephemeris* oldEph, gpsephemeris* newEph); 104 105 QSettings::SettingsMap _settings; 106 QFile* _logFile; 107 QTextStream* _logStream; 108 int _logFileFlag; 109 QMutex _mutex; 110 QMutex _mutexMessage; 111 QString _ephPath; 112 QString _ephFileNameGPS; 113 int _rinexVers; 114 QFile* _ephFileGPS; 115 QTextStream* _ephStreamGPS; 116 QFile* _ephFileGlonass; 117 QTextStream* _ephStreamGlonass; 118 QFile* _ephFileGalileo; 119 QTextStream* _ephStreamGalileo; 120 gpsephemeris* _gpsEph[PRN_GPS_END - PRN_GPS_START + 1]; 121 glonassephemeris* _glonassEph[PRN_GLONASS_END - PRN_GLONASS_START + 1]; 122 galileoephemeris* _galileoEph[PRN_GALILEO_END - PRN_GALILEO_START + 1]; 123 QString _userName; 124 QString _pgmName; 125 int _port; 126 QTcpServer* _server; 127 QList<QTcpSocket*>* _sockets; 128 int _portCorr; 129 QTcpServer* _serverCorr; 130 QList<QTcpSocket*>* _socketsCorr; 131 int _portNMEA; 132 QTcpServer* _serverNMEA; 133 QList<QTcpSocket*>* _socketsNMEA; 134 bncCaster* _caster; 135 QMap<QString, bncTime> _lastCorrDumpTime; 136 double _waitCoTime; 137 QMultiMap<bncTime, QString>* _corrs; 138 QString _confFileName; 139 QDate _fileDate; 140 bncRawFile* _rawFile; 141 int _GLOFreq[PRN_GLONASS_NUM]; 142 bncComb* _bncComb; 143 e_mode _mode; 144 QWidget* _mainWindow; 145 bool _GUIenabled; 146 QDateTime* _dateAndTimeGPS; 147 mutable QMutex _mutexDateAndTimeGPS; 149 148 }; 150 149 151 t_bncCore& bncCoreInstance(); 152 153 #define BNC_CORE (&bncCoreInstance()) 150 #define BNC_CORE (t_bncCore::instance()) 154 151 155 152 #endif -
trunk/BNC/src/bncgetthread.cpp
r5739 r5861 63 63 #include "bncsettings.h" 64 64 #include "latencychecker.h" 65 #include "bncpppclient.h"66 65 #include "upload/bncrtnetdecoder.h" 67 66 #include "RTCM/RTCM2Decoder.h" … … 126 125 _query = 0; 127 126 _nextSleep = 0; 128 _PPPclient = 0;129 127 _miscMount = settings.value("miscMount").toString(); 130 128 _decoder = 0; … … 315 313 } 316 314 317 // Initialize PPP Client?318 // ----------------------319 #ifndef MLS_SOFTWARE320 bncSettings settings;321 if (!settings.value("pppSPP").toString().isEmpty() &&322 settings.value("pppMount").toString() == _staID) {323 _PPPclient = new bncPPPclient(_staID);324 BNC_CORE->_bncPPPclient = _PPPclient;325 qRegisterMetaType<bncTime>("bncTime");326 connect(_PPPclient, SIGNAL(newPosition(bncTime, double, double, double)),327 this, SIGNAL(newPosition(bncTime, double, double, double)));328 connect(_PPPclient, SIGNAL(newNMEAstr(QByteArray)),329 this, SIGNAL(newNMEAstr(QByteArray)));330 }331 #endif332 333 315 return success; 334 316 } … … 358 340 _query->deleteLater(); 359 341 } 360 delete _PPPclient;361 342 if (_rawFile) { 362 343 QMapIterator<QString, GPSDecoder*> it(_decodersRaw); … … 537 518 decoder()->dumpRinexEpoch(obs, _format); 538 519 539 // PPP Client540 // ----------541 #ifndef MLS_SOFTWARE542 if (_PPPclient && _staID == _PPPclient->staID()) {543 _PPPclient->putNewObs(obs);544 }545 #endif546 520 // Save observations 547 521 // ----------------- -
trunk/BNC/src/bncgetthread.h
r5738 r5861 40 40 class QextSerialPort; 41 41 class latencyChecker; 42 class bncPPPclient;43 42 44 43 class bncGetThread : public QThread { … … 123 122 QFile* _serialOutFile; 124 123 t_serialNMEA _serialNMEA; 125 bncPPPclient* _PPPclient;126 124 bool _rawOutput; 127 125 QMap<QString, long> _prnLastEpo; -
trunk/BNC/src/bncwindow.cpp
r5860 r5861 68 68 #endif 69 69 #ifdef USE_POSTPROCESSING 70 # include "rinex/bncpostprocess.h"71 70 # include "rinex/reqcedit.h" 72 71 # include "rinex/reqcanalyze.h" … … 96 95 _bncFigurePPP = new bncFigurePPP(this); 97 96 _runningRealTime = false; 98 _runningPostProcessingPPP = false;99 97 _runningPostProcessingReqc = false; 100 _postProcessing = 0;101 98 _pppMain = new BNC_PPP::t_pppMain(); 102 103 _pppSPPComboBox = 0; // necessary for enableStartStop() 104 _reqcActionComboBox = 0; // necessary for enableStartStop() 99 _reqcActionComboBox = 0; // necessary for enableStartStop() 105 100 106 101 _mapWin = 0; … … 377 372 378 373 connect(_miscMountLineEdit, SIGNAL(textChanged(const QString &)), 379 this, SLOT(slotBncTextChanged()));380 381 // PPP Options382 // -----------383 _pppMountLineEdit = new QLineEdit(settings.value("pppMount").toString());384 _pppMountLineEdit->setMaximumWidth(8*ww);385 _pppCorrMountLineEdit = new QLineEdit(settings.value("pppCorrMount").toString());386 _pppMountLineEdit->setMinimumWidth(8*ww);387 _pppCorrMountLineEdit->setMinimumWidth(8*ww);388 _pppCorrMountLineEdit->setMaximumWidth(8*ww);389 _pppNMEALineEdit = new QLineEdit(settings.value("nmeaFile").toString());390 _pppNMEALineEdit->setMinimumWidth(15*ww);391 _pppNMEAPortLineEdit = new QLineEdit(settings.value("nmeaPort").toString());392 _pppNMEAPortLineEdit->setMaximumWidth(8*ww);393 _pppNMEAPortLineEdit->setMinimumWidth(8*ww);394 _pppSigCLineEdit = new QLineEdit(settings.value("pppSigmaCode").toString());395 _pppSigPLineEdit = new QLineEdit(settings.value("pppSigmaPhase").toString());396 _pppSigCrd0 = new QLineEdit(settings.value("pppSigCrd0").toString());397 _pppSigCrdP = new QLineEdit(settings.value("pppSigCrdP").toString());398 _pppSigTrp0 = new QLineEdit(settings.value("pppSigTrp0").toString());399 _pppSigTrpP = new QLineEdit(settings.value("pppSigTrpP").toString());400 _pppAverageLineEdit = new QLineEdit(settings.value("pppAverage").toString());401 _pppQuickStartLineEdit = new QLineEdit(settings.value("pppQuickStart").toString());402 _pppMaxSolGapLineEdit = new QLineEdit(settings.value("pppMaxSolGap").toString());403 _pppAudioResponseLineEdit = new QLineEdit(settings.value("pppAudioResponse").toString());404 _pppRefCrdXLineEdit = new QLineEdit(settings.value("pppRefCrdX").toString());405 _pppRefCrdYLineEdit = new QLineEdit(settings.value("pppRefCrdY").toString());406 _pppRefCrdZLineEdit = new QLineEdit(settings.value("pppRefCrdZ").toString());407 _pppRefdNLineEdit = new QLineEdit(settings.value("pppRefdN").toString());408 _pppRefdELineEdit = new QLineEdit(settings.value("pppRefdE").toString());409 _pppRefdULineEdit = new QLineEdit(settings.value("pppRefdU").toString());410 _pppSync = new QLineEdit(settings.value("pppSync").toString());411 _pppAntexFileChooser = new qtFileChooser;412 _pppAntexFileChooser->setMinimumWidth(12*ww);413 _pppAntennaLineEdit = new QLineEdit(settings.value("pppAntenna").toString());414 _pppAntexFileChooser->setFileName(settings.value("pppAntex").toString());415 416 _pppSPPComboBox = new QComboBox();417 _pppSPPComboBox->setEditable(false);418 _pppSPPComboBox->addItems(QString(",Realtime-PPP,Realtime-SPP,Post-Processing").split(","));419 int ik = _pppSPPComboBox->findText(settings.value("pppSPP").toString());420 if (ik != -1) {421 _pppSPPComboBox->setCurrentIndex(ik);422 }423 _pppUsePhaseCheckBox = new QCheckBox();424 _pppUsePhaseCheckBox->setCheckState(Qt::CheckState(425 settings.value("pppUsePhase").toInt()));426 _pppEstTropoCheckBox = new QCheckBox();427 _pppEstTropoCheckBox->setCheckState(Qt::CheckState(428 settings.value("pppEstTropo").toInt()));429 _pppGLONASSCheckBox = new QCheckBox();430 _pppGLONASSCheckBox->setCheckState(Qt::CheckState(431 settings.value("pppGLONASS").toInt()));432 _pppGalileoCheckBox = new QCheckBox();433 _pppGalileoCheckBox->setCheckState(Qt::CheckState(434 settings.value("pppGalileo").toInt()));435 436 connect(_pppMountLineEdit, SIGNAL(textChanged(const QString &)),437 this, SLOT(slotBncTextChanged()));438 439 connect(_pppCorrMountLineEdit, SIGNAL(textChanged(const QString &)),440 this, SLOT(slotBncTextChanged()));441 442 connect(_pppUsePhaseCheckBox, SIGNAL(stateChanged(int)),443 this, SLOT(slotBncTextChanged()));444 445 connect(_pppRefCrdXLineEdit, SIGNAL(textChanged(const QString &)),446 this, SLOT(slotBncTextChanged()));447 connect(_pppRefCrdYLineEdit, SIGNAL(textChanged(const QString &)),448 this, SLOT(slotBncTextChanged()));449 connect(_pppRefCrdZLineEdit, SIGNAL(textChanged(const QString &)),450 this, SLOT(slotBncTextChanged()));451 connect(_pppRefdNLineEdit, SIGNAL(textChanged(const QString &)),452 this, SLOT(slotBncTextChanged()));453 connect(_pppRefdELineEdit, SIGNAL(textChanged(const QString &)),454 this, SLOT(slotBncTextChanged()));455 connect(_pppRefdULineEdit, SIGNAL(textChanged(const QString &)),456 this, SLOT(slotBncTextChanged()));457 458 connect(_pppEstTropoCheckBox, SIGNAL(stateChanged(int)),459 this, SLOT(slotBncTextChanged()));460 461 connect(_pppSync, SIGNAL(textChanged(const QString &)),462 this, SLOT(slotBncTextChanged()));463 464 connect(_pppSPPComboBox, SIGNAL(currentIndexChanged(const QString &)),465 this, SLOT(slotBncTextChanged()));466 467 connect(_pppAntexFileChooser, SIGNAL(fileNameChanged(const QString &)),468 this, SLOT(slotBncTextChanged()));469 470 connect(_pppQuickStartLineEdit, SIGNAL(textChanged(const QString &)),471 374 this, SLOT(slotBncTextChanged())); 472 375 … … 654 557 QWidget* rgroup = new QWidget(); 655 558 QWidget* sergroup = new QWidget(); 656 QWidget* pppgroup = new QWidget();657 QWidget* ppp2group = new QWidget();658 QWidget* ppp3group = new QWidget();659 559 QWidget* pppGroup1 = new QWidget(); 660 560 QWidget* pppGroup2 = new QWidget(); 661 561 QWidget* pppGroup3 = new QWidget(); 562 QWidget* pppGroup4 = new QWidget(); 662 563 QWidget* reqcgroup = new QWidget(); 663 564 QWidget* cmbgroup = new QWidget(); … … 674 575 _aogroup->addTab(agroup,tr("Outages")); 675 576 _aogroup->addTab(rgroup,tr("Miscellaneous")); 676 _aogroup->addTab(pppgroup,tr("PPP (1)")); 677 _aogroup->addTab(ppp2group,tr("PPP (2)")); 678 _aogroup->addTab(ppp3group,tr("PPP (3)")); 679 680 _aogroup->addTab(pppGroup1,tr("PPP NEW (1)")); 681 _aogroup->addTab(pppGroup2,tr("PPP NEW (2)")); 682 _aogroup->addTab(pppGroup3,tr("PPP NEW (3)")); 577 _aogroup->addTab(pppGroup1,tr("PPP (1)")); 578 _aogroup->addTab(pppGroup2,tr("PPP (2)")); 579 _aogroup->addTab(pppGroup3,tr("PPP (3)")); 683 580 684 581 #ifdef USE_COMBINATION … … 905 802 rgroup->setLayout(rLayout); 906 803 907 // PPP Client 908 // ---------- 909 QGridLayout* pppLayout = new QGridLayout; 910 pppLayout->setColumnMinimumWidth(0,14*ww); 911 _pppSigCLineEdit->setMaximumWidth(6*ww); 912 _pppSigPLineEdit->setMaximumWidth(6*ww); 913 _pppSigCrd0->setMaximumWidth(6*ww); 914 _pppSigCrdP->setMaximumWidth(6*ww); 915 _pppSigTrp0->setMaximumWidth(6*ww); 916 _pppSigTrpP->setMaximumWidth(6*ww); 917 _pppAverageLineEdit->setMaximumWidth(6*ww); 918 _pppQuickStartLineEdit->setMaximumWidth(6*ww); 919 _pppMaxSolGapLineEdit->setMaximumWidth(6*ww); 920 _pppAudioResponseLineEdit->setMaximumWidth(6*ww); 921 _pppRefCrdXLineEdit->setMaximumWidth(10*ww); 922 _pppRefCrdYLineEdit->setMaximumWidth(10*ww); 923 _pppRefCrdZLineEdit->setMaximumWidth(10*ww); 924 _pppRefdNLineEdit->setMaximumWidth(6*ww); 925 _pppRefdELineEdit->setMaximumWidth(6*ww); 926 _pppRefdULineEdit->setMaximumWidth(6*ww); 927 _pppSync->setMaximumWidth(6*ww); 928 _pppSPPComboBox->setMinimumWidth(15*ww); 929 930 _postObsFileChooser = new qtFileChooser; 931 _postObsFileChooser->setFileName(settings.value("postObsFile").toString()); 932 _postObsFileChooser->setMinimumWidth(15*ww); 933 _postNavFileChooser = new qtFileChooser; 934 _postNavFileChooser->setFileName(settings.value("postNavFile").toString()); 935 _postNavFileChooser->setMinimumWidth(15*ww); 936 _postCorrFileChooser = new qtFileChooser; 937 _postCorrFileChooser->setFileName(settings.value("postCorrFile").toString()); 938 _postCorrFileChooser->setMinimumWidth(15*ww); 939 _postOutLineEdit = new QLineEdit(settings.value("postOutFile").toString()); 940 _postOutLineEdit->setMinimumWidth(15*ww); 941 804 // PPP 805 // --- 806 QGridLayout* pppLayout1 = new QGridLayout(); 942 807 int ir = 0; 943 pppLayout->addWidget(new QLabel("Precise Point Positioning, Panel 1."), ir, 0, 1, 2, Qt::AlignLeft);944 ++ir;945 pppLayout->addWidget(new QLabel("Mode & mountpoints"),ir, 0, Qt::AlignLeft);946 pppLayout->addWidget(_pppSPPComboBox, ir, 1, Qt::AlignRight);947 pppLayout->addWidget(_pppMountLineEdit, ir, 3, Qt::AlignRight);948 pppLayout->addWidget(new QLabel("Obs."), ir, 4, Qt::AlignLeft);949 pppLayout->addWidget(_pppCorrMountLineEdit, ir, 5, Qt::AlignRight);950 pppLayout->addWidget(new QLabel("Corr."), ir, 6, Qt::AlignLeft);951 ++ir;952 pppLayout->addWidget(new QLabel("Marker coordinates"), ir, 0, Qt::AlignLeft);953 pppLayout->addWidget(_pppRefCrdXLineEdit, ir, 1, Qt::AlignRight);954 pppLayout->addWidget(new QLabel("X "), ir, 2, Qt::AlignLeft);955 pppLayout->addWidget(_pppRefCrdYLineEdit, ir, 3, Qt::AlignRight);956 pppLayout->addWidget(new QLabel("Y"), ir, 4, Qt::AlignLeft);957 pppLayout->addWidget(_pppRefCrdZLineEdit, ir, 5, Qt::AlignRight);958 pppLayout->addWidget(new QLabel("Z"), ir, 6, Qt::AlignLeft);959 ++ir;960 pppLayout->addWidget(new QLabel("Antenna excentricity"), ir, 0, Qt::AlignLeft);961 pppLayout->addWidget(_pppRefdNLineEdit, ir, 1, Qt::AlignRight);962 pppLayout->addWidget(new QLabel("dN"), ir, 2, Qt::AlignLeft);963 pppLayout->addWidget(_pppRefdELineEdit, ir, 3, Qt::AlignRight);964 pppLayout->addWidget(new QLabel("dE"), ir, 4, Qt::AlignLeft);965 pppLayout->addWidget(_pppRefdULineEdit, ir, 5, Qt::AlignRight);966 pppLayout->addWidget(new QLabel("dU"), ir, 6, Qt::AlignLeft);967 ++ir;968 pppLayout->addWidget(new QLabel("NMEA output"), ir, 0, Qt::AlignLeft);969 pppLayout->addWidget(_pppNMEALineEdit, ir, 1, Qt::AlignRight);970 pppLayout->addWidget(new QLabel("NMEA File"), ir, 2, Qt::AlignLeft);971 pppLayout->addWidget(_pppNMEAPortLineEdit, ir, 3, Qt::AlignRight);972 pppLayout->addWidget(new QLabel("NMEA Port"), ir, 4, Qt::AlignLeft);973 ++ir;974 pppLayout->addWidget(new QLabel("Post-processing"), ir, 0, Qt::AlignLeft);975 pppLayout->addWidget(_postObsFileChooser, ir, 1, Qt::AlignRight);976 pppLayout->addWidget(new QLabel("Obs "), ir, 2, Qt::AlignLeft);977 pppLayout->addWidget(_postNavFileChooser, ir, 3, Qt::AlignRight);978 pppLayout->addWidget(new QLabel("Nav "), ir, 4, Qt::AlignLeft);979 ++ir;980 pppLayout->addWidget(_postCorrFileChooser, ir, 1, Qt::AlignRight);981 pppLayout->addWidget(new QLabel("Corr"), ir, 2, Qt::AlignLeft);982 pppLayout->addWidget(_postOutLineEdit, ir, 3, Qt::AlignRight);983 pppLayout->addWidget(new QLabel("Log (full path)"), ir, 4, Qt::AlignLeft);984 985 pppgroup->setLayout(pppLayout);986 987 // PPP Client (second panel)988 // -------------------------989 QGridLayout* ppp2Layout = new QGridLayout;990 ppp2Layout->setColumnMinimumWidth(0,14*ww);991 ir = 0;992 ppp2Layout->addWidget(new QLabel("Precise Point Positioning, Panel 2."), ir, 0, 1, 10);993 ++ir;994 ppp2Layout->addWidget(new QLabel("Antennas"), ir, 0);995 ppp2Layout->addWidget(_pppAntexFileChooser, ir, 1,1,3);996 ppp2Layout->addWidget(new QLabel("ANTEX File"), ir, 4);997 ppp2Layout->addWidget(_pppAntennaLineEdit, ir, 5,1,3);998 ppp2Layout->addWidget(new QLabel("Antenna Name"), ir, 8);999 ++ir;1000 ppp2Layout->addWidget(new QLabel("Basics"), ir, 0, 1, 5);1001 ppp2Layout->addWidget(_pppUsePhaseCheckBox, ir, 1, Qt::AlignRight);1002 ppp2Layout->addWidget(new QLabel("Use phase obs"), ir, 2);1003 ppp2Layout->addWidget(_pppEstTropoCheckBox, ir, 3, Qt::AlignRight);1004 ppp2Layout->addWidget(new QLabel("Estimate tropo"), ir, 4);1005 ppp2Layout->addWidget(_pppGLONASSCheckBox, ir, 5, Qt::AlignRight);1006 ppp2Layout->addWidget(new QLabel("Use GLONASS"), ir, 6);1007 ppp2Layout->addWidget(_pppGalileoCheckBox, ir, 7, Qt::AlignRight);1008 ppp2Layout->addWidget(new QLabel("Use Galileo "), ir, 8);1009 ++ir;1010 ppp2Layout->addWidget(new QLabel("Basics cont'd"), ir, 0);1011 ppp2Layout->addWidget(_pppSync, ir, 1);1012 ppp2Layout->addWidget(new QLabel("Sync Corr (sec) "), ir, 2);1013 ppp2Layout->addWidget(_pppAverageLineEdit, ir, 3, Qt::AlignRight);1014 ppp2Layout->addWidget(new QLabel("Averaging (min)") , ir, 4);1015 ppp2Layout->addWidget(_pppQuickStartLineEdit, ir, 5, Qt::AlignRight);1016 ppp2Layout->addWidget(new QLabel("Quick-Start (sec) "), ir, 6);1017 ppp2Layout->addWidget(_pppMaxSolGapLineEdit, ir, 7, Qt::AlignRight);1018 ppp2Layout->addWidget(new QLabel("Max Sol. Gap (sec)"), ir, 8);1019 ++ir;1020 ppp2Layout->addWidget(new QLabel("Basics cont'd"), ir, 0);1021 ppp2Layout->addWidget(_pppAudioResponseLineEdit, ir, 1, Qt::AlignRight);1022 ppp2Layout->addWidget(new QLabel("Audio response (m)"), ir, 2);1023 ++ir;1024 ppp2Layout->addWidget(new QLabel("Sigmas"), ir, 0);1025 ppp2Layout->addWidget(_pppSigCLineEdit, ir, 1, Qt::AlignRight);1026 ppp2Layout->addWidget(new QLabel("Code"), ir, 2);1027 ppp2Layout->addWidget(_pppSigPLineEdit, ir, 3);1028 ppp2Layout->addWidget(new QLabel("Phase"), ir, 4);1029 ++ir;1030 ppp2Layout->addWidget(new QLabel("Sigmas cont'd"), ir, 0);1031 ppp2Layout->addWidget(_pppSigCrd0, ir, 1, Qt::AlignRight);1032 ppp2Layout->addWidget(new QLabel("XYZ Init "), ir, 2);1033 ppp2Layout->addWidget(_pppSigCrdP, ir, 3, Qt::AlignRight);1034 ppp2Layout->addWidget(new QLabel("XYZ White Noise "), ir, 4);1035 ppp2Layout->addWidget(_pppSigTrp0, ir, 5, Qt::AlignRight);1036 ppp2Layout->addWidget(new QLabel("Tropo Init "), ir, 6);1037 ppp2Layout->addWidget(_pppSigTrpP, ir, 7);1038 ppp2Layout->addWidget(new QLabel("Tropo White Noise"), ir, 8);1039 ++ir;1040 ppp2Layout->addWidget(new QLabel(""), ir, 0);1041 1042 ppp2group->setLayout(ppp2Layout);1043 1044 // PPP Client (third panel)1045 // ------------------------1046 QVBoxLayout* ppp3Layout = new QVBoxLayout;1047 ppp3Layout->addWidget(new QLabel("Precise Point Positioning, Panel 3."));1048 ppp3Layout->addSpacing(ww);1049 1050 QHBoxLayout* ppp3LayoutHlp1 = new QHBoxLayout;1051 _pppPlotCoordinates = new QCheckBox();1052 _pppPlotCoordinates->setCheckState(Qt::CheckState(settings.value("pppPlotCoordinates").toInt()));1053 ppp3LayoutHlp1->addWidget(new QLabel("PPP Plot "));1054 ppp3LayoutHlp1->addWidget(_pppPlotCoordinates);1055 ppp3LayoutHlp1->addWidget(new QLabel("Nort-East-Up Time Series"));1056 ppp3LayoutHlp1->addStretch();1057 ppp3Layout->addLayout(ppp3LayoutHlp1);1058 ppp3Layout->addSpacing(ww);1059 1060 QHBoxLayout* ppp3LayoutHlp2 = new QHBoxLayout;1061 ppp3LayoutHlp2->addWidget(new QLabel("Track Plot "));1062 _mapWinButton = new QPushButton;1063 _mapWinButton->setText("Open Map");1064 connect(_mapWinButton, SIGNAL(clicked()), SLOT(slotMapPPP()));1065 ppp3LayoutHlp2->addWidget(_mapWinButton);1066 1067 ppp3LayoutHlp2->addSpacing(1*ww);1068 1069 _gmRadioButton = new QRadioButton;1070 _gmRadioButton->setChecked(!settings.value("useOsmMap").toBool());1071 ppp3LayoutHlp2->addWidget(new QLabel("Google"));1072 ppp3LayoutHlp2->addWidget(_gmRadioButton);1073 1074 _osmRadioButton = new QRadioButton;1075 _osmRadioButton->setChecked(settings.value("useOsmMap").toBool());1076 ppp3LayoutHlp2->addWidget(new QLabel("OSM"));1077 ppp3LayoutHlp2->addWidget(_osmRadioButton);1078 1079 ppp3LayoutHlp2->addSpacing(3*ww);1080 1081 _mapWinDotSizeLineEdit = new QLineEdit(settings.value("mapWinDotSize").toString());1082 ppp3LayoutHlp2->addWidget(new QLabel("Dot Size"));1083 _mapWinDotSizeLineEdit->setMaximumWidth(5*ww);1084 ppp3LayoutHlp2->addWidget(_mapWinDotSizeLineEdit);1085 1086 ppp3LayoutHlp2->addSpacing(3*ww);1087 1088 _mapWinDotColorComboBox = new QComboBox();1089 ppp3LayoutHlp2->addWidget(new QLabel("Dot Color"));1090 _mapWinDotColorComboBox->setEditable(false);1091 _mapWinDotColorComboBox->addItems(QString("red,yellow").split(","));1092 ii = _mapWinDotColorComboBox->findText(settings.value("mapWinDotColor").toString());1093 if (ii != -1) {1094 _mapWinDotColorComboBox->setCurrentIndex(ii);1095 }1096 ppp3LayoutHlp2->addWidget(_mapWinDotColorComboBox);1097 1098 ppp3LayoutHlp2->addSpacing(3*ww);1099 1100 _mapSpeedSlider = new QSlider;1101 _mapSpeedSlider->setOrientation(Qt::Horizontal);1102 _mapSpeedSlider->setRange(1, 100);1103 _mapSpeedSlider->setTickPosition(QSlider::TicksBelow);1104 _mapSpeedSlider->setTickInterval(10);1105 int speed = settings.value("mapSpeed").toInt();1106 if (speed == 0) speed = _mapSpeedSlider->maximum();1107 _mapSpeedSlider->setSliderPosition(speed);1108 ppp3LayoutHlp2->addWidget(new QLabel("Speed"));1109 ppp3LayoutHlp2->addWidget(_mapSpeedSlider);1110 1111 ppp3LayoutHlp2->addStretch();1112 ppp3Layout->addLayout(ppp3LayoutHlp2);1113 1114 ppp3Layout->addStretch();1115 ppp3group->setLayout(ppp3Layout);1116 1117 // PPP NEW1118 // -------1119 QGridLayout* pppLayout1 = new QGridLayout();1120 ir = 0;1121 808 pppLayout1->addWidget(new QLabel("<b>Precise Point Positioning (Input and Output)</b>"), ir, 0, 1, 7, Qt::AlignLeft); 1122 809 ++ir; … … 1189 876 pppGroup3->setLayout(pppLayout3); 1190 877 878 // ------------------------ 879 QVBoxLayout* pppLayout4 = new QVBoxLayout; 880 pppLayout4->addWidget(new QLabel("Precise Point Positioning, Panel 3.")); 881 pppLayout4->addSpacing(ww); 882 883 QHBoxLayout* pppLayout4Hlp1 = new QHBoxLayout; 884 _pppPlotCoordinates = new QCheckBox(); 885 _pppPlotCoordinates->setCheckState(Qt::CheckState(settings.value("pppPlotCoordinates").toInt())); 886 pppLayout4Hlp1->addWidget(new QLabel("PPP Plot ")); 887 pppLayout4Hlp1->addWidget(_pppPlotCoordinates); 888 pppLayout4Hlp1->addWidget(new QLabel("Nort-East-Up Time Series")); 889 pppLayout4Hlp1->addStretch(); 890 pppLayout4->addLayout(pppLayout4Hlp1); 891 pppLayout4->addSpacing(ww); 892 893 QHBoxLayout* pppLayout4Hlp2 = new QHBoxLayout; 894 pppLayout4Hlp2->addWidget(new QLabel("Track Plot ")); 895 _mapWinButton = new QPushButton; 896 _mapWinButton->setText("Open Map"); 897 connect(_mapWinButton, SIGNAL(clicked()), SLOT(slotMapPPP())); 898 pppLayout4Hlp2->addWidget(_mapWinButton); 899 900 pppLayout4Hlp2->addSpacing(1*ww); 901 902 _gmRadioButton = new QRadioButton; 903 _gmRadioButton->setChecked(!settings.value("useOsmMap").toBool()); 904 pppLayout4Hlp2->addWidget(new QLabel("Google")); 905 pppLayout4Hlp2->addWidget(_gmRadioButton); 906 907 _osmRadioButton = new QRadioButton; 908 _osmRadioButton->setChecked(settings.value("useOsmMap").toBool()); 909 pppLayout4Hlp2->addWidget(new QLabel("OSM")); 910 pppLayout4Hlp2->addWidget(_osmRadioButton); 911 912 pppLayout4Hlp2->addSpacing(3*ww); 913 914 _mapWinDotSizeLineEdit = new QLineEdit(settings.value("mapWinDotSize").toString()); 915 pppLayout4Hlp2->addWidget(new QLabel("Dot Size")); 916 _mapWinDotSizeLineEdit->setMaximumWidth(5*ww); 917 pppLayout4Hlp2->addWidget(_mapWinDotSizeLineEdit); 918 919 pppLayout4Hlp2->addSpacing(3*ww); 920 921 _mapWinDotColorComboBox = new QComboBox(); 922 pppLayout4Hlp2->addWidget(new QLabel("Dot Color")); 923 _mapWinDotColorComboBox->setEditable(false); 924 _mapWinDotColorComboBox->addItems(QString("red,yellow").split(",")); 925 ii = _mapWinDotColorComboBox->findText(settings.value("mapWinDotColor").toString()); 926 if (ii != -1) { 927 _mapWinDotColorComboBox->setCurrentIndex(ii); 928 } 929 pppLayout4Hlp2->addWidget(_mapWinDotColorComboBox); 930 931 pppLayout4Hlp2->addSpacing(3*ww); 932 933 _mapSpeedSlider = new QSlider; 934 _mapSpeedSlider->setOrientation(Qt::Horizontal); 935 _mapSpeedSlider->setRange(1, 100); 936 _mapSpeedSlider->setTickPosition(QSlider::TicksBelow); 937 _mapSpeedSlider->setTickInterval(10); 938 int speed = settings.value("mapSpeed").toInt(); 939 if (speed == 0) speed = _mapSpeedSlider->maximum(); 940 _mapSpeedSlider->setSliderPosition(speed); 941 pppLayout4Hlp2->addWidget(new QLabel("Speed")); 942 pppLayout4Hlp2->addWidget(_mapSpeedSlider); 943 944 pppLayout4Hlp2->addStretch(); 945 pppLayout4->addLayout(pppLayout4Hlp2); 946 947 pppLayout4->addStretch(); 948 pppGroup4->setLayout(pppLayout4); 949 1191 950 // Reqc Processing 1192 951 // --------------- … … 1194 953 _reqcActionComboBox->setEditable(false); 1195 954 _reqcActionComboBox->addItems(QString(",Edit/Concatenate,Analyze").split(",")); 1196 i k = _reqcActionComboBox->findText(settings.value("reqcAction").toString());955 int ik = _reqcActionComboBox->findText(settings.value("reqcAction").toString()); 1197 956 if (ik != -1) { 1198 957 _reqcActionComboBox->setCurrentIndex(ik); … … 1403 1162 _autoStartCheckBox->setWhatsThis(tr("<p>Tick 'Auto start' for auto-start of BNC at startup time in window mode with preassigned processing options.</p>")); 1404 1163 _rawOutFileLineEdit->setWhatsThis(tr("<p>Save all data coming in through various streams in the received order and format in one file.</p>")); 1405 1406 1164 _onTheFlyComboBox->setWhatsThis(tr("<p>When operating BNC online in 'no window' mode, some configuration parameters can be changed on-the-fly without interrupting the running process. For that BNC rereads parts of its configuration in pre-defined intervals.<p></p>Select '1 min', '5 min', '1 hour', or '1 day' to force BNC to reread its configuration every full minute, hour, or day and let in between edited configuration options become effective on-the-fly without terminating uninvolved threads.</p><p>Note that when operating BNC in window mode, on-the-fly changeable configuration options become effective immediately through 'Save & Reread Configuration'.</p>")); 1407 1165 _rnxIntrComboBox->setWhatsThis(tr("<p>Select the length of the RINEX Observation file.</p>")); … … 1435 1193 _serialFileNMEALineEdit->setWhatsThis(tr("<p>Specify the full path to a file where NMEA messages coming from your serial connected receiver are saved.</p>")); 1436 1194 _serialHeightNMEALineEdit->setWhatsThis(tr("<p>Specify an approximate 'Height' above mean sea level in meter for your VRS to simulate an inital NMEA-GGA message.</p><p>The setting of this option is ignored in case of streams coming from physical reference stations.</p>")); 1437 _pppMountLineEdit->setWhatsThis(tr("<p>Specify an observations stream by its mountpoint from the 'Streams' list compiled below if you want BNC to estimate coordinates for the affected receiver position through a PPP solution. Example: 'FFMJ1'</p><p>Note that PPP in BNC requires to also pull a stream carrying RTCM Version 3 satellite orbit and clock corrections to Broadcast Ephemeris referring to the satellites' Antenna Phase Centers (APC). Stream CLK11 on NTRIP broadcaster products.igs-ip.net is an example.</p><p>Pulling in addition a third stream carrying Broadcast Ephemeris messages in high repetition rate is suggested if such messages are comeing from the receiver in low repetition rate or don't come at all from there.</p>"));1438 _pppCorrMountLineEdit->setWhatsThis(tr("<p>You must specify an orbit/clock Broadcast Ephemeris corrections stream by its mountpoint from the 'Streams' list below. Example: 'CLK10'. Corrections must refer to satellite Antenna Phase Centers (APC).</p><p>Note that BNC can produce an internal PPP solution from combined Broadcast Ephemeris corrections as specified under 'Combine Corrections' if you introduce keyword 'INTERNAL' as the corrections mountpoint.</p>"));1439 _pppSPPComboBox->setWhatsThis(tr("<p>Choose between plain Single Point Positioning (SPP) and Precise Point Positioning (PPP) in 'Realtime' or 'Post-Processing' mode.</p><p>When in 'Post-Processing mode:<ul><li>Specifying a RINEX Observation, a RINEX Navigation and a Broadcast Correction file leads to a PPP solution.</li><li>Specifying only a RINEX Observation and a RINEX Navigation file and no Broadcast Correction file leads to a SPP solution.</ul></p>"));1440 1195 _reqcActionComboBox->setWhatsThis(tr("<p>BNC allows to edit or concatenate RINEX v2 or v3 files or to perform a quality check following UNAVCO's famous 'teqc' program.</p>")); 1441 1196 _reqcEditOptionButton->setWhatsThis(tr("<p>Specify options for editing RINEX v2 or v3 files.</p>")); 1442 _pppUsePhaseCheckBox->setWhatsThis(tr("<p>By default BNC applies a PPP solution using an ionosphere free P3 linear combination of code observations.</p><p>Tick 'Use phase obs' for an ionosphere free L3 linear combination of phase observations.</p>"));1443 _pppEstTropoCheckBox->setWhatsThis(tr("<p>By default BNC does not introduce troposphere parameters when estimating coordinates.</p><p>Tick 'Estimate tropo' to introduce troposphere parameters when estimating coordinates.</p>"));1444 _pppGLONASSCheckBox->setWhatsThis(tr("<p>By default BNC does not use GLONASS observations in PPP mode.</p><p>Tick 'Use GLONASS' for adding GLONASS observations to GPS and Galileo (optional) in a PPP solution.</p>"));1445 _pppGalileoCheckBox->setWhatsThis(tr("<p>By default BNC does not use Galileo observations in PPP mode.</p><p>Tick 'Use Galileo' for adding Galileo observations to GPS and GLONASS (optional) in a PPP solution.</p>"));1446 _pppPlotCoordinates->setWhatsThis(tr("<p>BNC will plot PPP results in the 'PPP Plot' tab as North (red), East (green) and Up (blue) displacements when this option is selected. Values will be either referred to an XYZ reference coordinate (if specified) or referred to the first estimated coordinate. The sliding PPP time series window will cover the period of the latest 5 minutes.</p><p>Note that a PPP time series makes only sense for a stationary operated receiver."));1447 1197 _mapWinButton->setWhatsThis(tr("<p>You make like to track your rover position using Google Maps or Open Street Map as a background map. Track plots can be produced with BNC in 'Realtime-PPP', 'Realtime-SPP' and 'Post-Processing' mode.</p><p>The 'Open Map' button opens a windows showing a map according to specified options.</p><p>When in 'Post-Processing' mode you should not forget to specify a proxy under the 'Network' tab if that is operated in front of BNC.")); 1448 1198 _gmRadioButton->setWhatsThis(tr("<p>Specify Google Maps as the background for your rover positions.")); … … 1451 1201 _mapWinDotColorComboBox->setWhatsThis(tr("<p>Specify the color of dots showing the rover track.</p>")); 1452 1202 _mapSpeedSlider->setWhatsThis(tr("<p>With BNC in PPP post-processing mode you can specify the speed of computations as appropriate for visualization. Note that you can adjust 'Speed' on-the-fly while BNC is already processing your observations.")); 1453 _pppNMEALineEdit->setWhatsThis(tr("<p>Specify the full path to a file where PPP results are saved as NMEA messages.</p>"));1454 _pppNMEAPortLineEdit->setWhatsThis(tr("<p>Specify an IP port number to output PPP results as NMEA messages through an IP port.</p>"));1455 _pppSigCLineEdit->setWhatsThis(tr("<p>Enter a sigma for your code observations in meters.</p><p>The higher the sigma you enter, the less the contribution of code observations to a PPP solution based on a combination of code and phase data. 5.0 (default) is likely to be an appropriate choice.</p>"));1456 _pppQuickStartLineEdit->setWhatsThis(tr("<p>Enter the lenght of a startup period in seconds for which you want to fix the PPP solution to a known XYZ coordinate as introduced above and adjust a sigma 'XYZ Ini' according to the coordinate's precision. Fixing the coordinate is done in BNC through setting the 'Sigma XYZ Noise' you define below temporarily to zero.</p><p>This so-called Quick-Start option allows the PPP solution to rapidly converge. It requires that the antenna remains unmoved on the know position throughout the startup period.</p><p>A value of 120 is likely to be an appropriate choice for 'Quick-Start'. Default is an empty option field, meaning that you don't want BNC to operate in Quick-Start mode.</p>"));1457 _pppMaxSolGapLineEdit->setWhatsThis(tr("<p>Specify a 'Maximum Solution Gap' in seconds. Should the time span between two consecutive solutions exceed this limit, the algorithm returns into Quick-Start mode and fixes the introduced reference coordinate for the specified period. A value of '60' seconds could be an appropriate choice.</p><p>This option makes only sense for a stationary operated receiver where solution convergence can be enforced because a good approximation for the rover position is known. Default is an empty option field, meaning that you don't want BNC to return into the Quick-Start mode after failures caused i.e. by longer lasting outages.</p>"));1458 _pppAudioResponseLineEdit->setWhatsThis(tr("<p>Specify an 'Audio response' threshold in meters. A beep is produced by BNC whenever a horizontal PPP coordinate component differs by more than the threshold value from the marker coordinate.</p><p>Default is an empty option field, meaning that you don't want BNC to produce alarm signals.</p>"));1459 _pppSigPLineEdit->setWhatsThis(tr("<p>Enter a sigma for your phase observations in meters.</p><p>The higher the sigma you enter, the less the contribution of phase observations to a PPP solutions based on a combination of code and phase data. 0.02 (default) is likely to be an appropriate choice.</p>"));1460 _pppAverageLineEdit->setWhatsThis(tr("<p>Enter the length of a sliding time window in minutes. BNC will continuously output moving average positions computed from those individual positions obtained most recently throughout this period.</p><p>An empty option field (default) means that you don't want BNC to output moving average positions.</p>"));1461 _pppSigCrd0->setWhatsThis(tr("<p>Enter a sigma in meters for the initial XYZ coordinate componentes. A value of 100.0 (default) may be an appropriate choice. However, this value may be significantly smaller (i.e. 0.01) when starting for example from a station with known XZY position in Quick-Start mode."));1462 _pppSigCrdP->setWhatsThis(tr("<p>Enter a sigma in meters for the white noise of estimated XYZ coordinate components. A value of 100.0 (default) may be appropriate considering the potential movement of a rover position.</p>"));1463 _pppSigTrp0->setWhatsThis(tr("<p>Enter a sigma in meters for the a-priory model based tropospheric delay estimation. A value of 0.1 (default) may be an appropriate choice.</p>"));1464 _pppSigTrpP->setWhatsThis(tr("<p>Enter a sigma in meters per second to describe the expected variation of the tropospheric effect.</p><p>Supposing 1Hz observation data, a value of 3e-6 (default) would mean that the tropospheric effect may vary for 3600 * 3e-6 = 0.01 meters per hour.</p>"));1465 _pppRefCrdXLineEdit->setWhatsThis(tr("<p>Enter reference coordinate X of the receiver's position.</p><p>This option only makes sense in static observation conditions.</p>"));1466 _pppRefCrdYLineEdit->setWhatsThis(tr("<p>Enter reference coordinate Y of the receiver's position.</p><p>This option only makes sens in static observation conditions.</p>"));1467 _pppRefCrdZLineEdit->setWhatsThis(tr("<p>Enter reference coordinate Z of the receiver's position.</p><p>This option only makes sens in static observation conditions.</p>"));1468 _pppRefdNLineEdit->setWhatsThis(tr("<p>Enter north antenna excentricity.</p>"));1469 _pppRefdELineEdit->setWhatsThis(tr("<p>Enter east antenna excentricity.</p>"));1470 _pppRefdULineEdit->setWhatsThis(tr("<p>Enter up antenna excentricity.</p>"));1471 1203 _bncFigurePPP->setWhatsThis(tr("PPP time series of North (red), East (green) and Up (blue) coordinate components are shown in the 'PPP Plot' tab when the corresponting option is selected above. Values are either referred to an XYZ reference coordinate (if specified) or referred to the first estimated set of coordinate compoments. The sliding PPP time series window covers the period of the latest 5 minutes.")); 1472 _pppSync->setWhatsThis(tr(1473 "<p> Zero value (or empty field, default) means that BNC processes each epoch of data "1474 "immediately after its arrival using satellite clock corrections available at "1475 "that time.</p><p> Non-zero value 'Sync Corr' (i.e. 5) means that the epochs of data "1476 "are buffered and the processing of each epoch is postponed till the satellite clock "1477 "corrections not older than 'Sync Corr' seconds are available.<p>"));1478 _pppAntexFileChooser->setWhatsThis(tr("<p>IGS provides a file containing absolute phase center corrections for GNSS satellite and receiver antennas in ANTEX format. Entering the full path to such an ANTEX file is required for correcting observations for antenna phase center offsets and variations. It allows you to specify the name of your receiver's antenna (as contained in the ANTEX file) to apply such corrections.</p><p>Default is an empty option field meaning that you don't want to correct observations for antenna phase center offsets and variations.</p>"));1479 _pppAntennaLineEdit->setWhatsThis(tr("<p>Specify the receiver's antenna name as defined in your ANTEX file. Observations will be corrected for the antenna phase center's offset which may result in a reduction of a few centimeters at max. Corrections for phase center variations are not yet applied by BNC. The specified name must consist of 20 characters. Add trailing blanks if the antenna name has less then 20 characters.</p><p>Default is an empty option field meaning that you don't want to correct observations for antenna phase center offsets.</p>"));1480 1204 _cmbTable->setWhatsThis(tr("<p>BNC allows to process several orbit and clock corrections streams in real-time to produce, encode, upload and save a combination of correctors coming from various providers. Hit the 'Add Row' button, double click on the 'Mountpoint' field to enter a Broadcast Ephemeris corrections mountpoint from the 'Streams' section below and hit Enter. Then double click on the 'AC Name' field to enter your choice of an abbreviation for the Analysis Center (AC) providing the stream. Finally, double click on the 'Weight' field to enter the weight to be applied for this stream in the combination.<ul><li>Note that an appropriate 'Wait for full corr epoch' value needs to be specified for the combination under the 'Broadcast Corrections' tab. A value of 15 seconds would make sense there if the update rate of incoming clock corrections is i.e. 10 seconds.</li><li>Note also that you need to tick 'Use GLONASS' which is part ot the 'PPP (2)' panel in case you want to produce an GPS plus GLONASS combination.</li></ul></p><p>Note further that the orbit information in the final combination stream is just copied from one of the incoming streams. The stream used for providing the orbits may vary over time: if the orbit providing stream has an outage then BNC switches to the next remaining stream for getting hold of the orbit information.</p><p>The combination process requires Broadcast Ephemeris. Besides the orbit and clock corrections stream(s) BNC should therefore pull a stream carrying Broadcast Ephemeris in the form of RTCM Version 3 messages.</p><p>It is possible to specify only one Broadcast Ephemeris corrections stream in the combination table. Instead of combining corrections BNC will then merge them with Broadcast Ephemeris to save results in SP3 and/or Clock RINEX format.")); 1481 1205 _cmbMaxresLineEdit->setWhatsThis(tr("<p>BNC combines all incoming clocks according to specified weights. Individual clock estimates that differ by more than 'Maximal 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'.</p>")); … … 1483 1207 _cmbMethodComboBox->setWhatsThis(tr("<p>Select a clock combination approach. Options are 'Single-Epoch' and Kalman 'Filter'. It is suggested to use the Kalman filter approach for the purpose of Precise Point Positioning.</p>")); 1484 1208 _uploadTable->setWhatsThis(tr("<p>BNC can upload clock and orbit corrections to broadcast ephemeris (Broadcast Corrections) in RTCM Version 3 SSR format. You may have a situation where clocks and orbits come from an external Real-time Network Engine (1) or a situation where clock and orbit corrections are combined within BNC (2).</p><p>(1) BNC identifies a stream as coming from a Real-time Network Engine if its format is specified as 'RTNET' and hence its decoder string in the 'Streams' canvas is 'RTNET'. It encodes and uploads that stream to the specified NTRIP broadcaster</p><p>(2) BNC understands that it is expected to encode and upload combined Broadcast Ephemeris corrections if you specify correction streams in the 'Combine Corrections' stream table.</p><p>Hit the 'Add Row' button, double click on the 'Host' field to enter the IP or URL of an NTRIP broadcaster and hit Enter. Then double click on the 'Port', 'Mount' and 'Password' fields to enter the NTRIP broadcaster IP port (default is 80), the mountpoint and the stream upload password. An empty 'Host' option field means that you don't want to upload corrections.</p><p>Select a target coordinate reference system (e.g. IGS08) for outgoing clock and orbit corrections.</p><p>By default orbit and clock corrections refer to Antenna Phase Center (APC). Tick 'CoM' to refer uploaded corrections to Center of Mass instead of APC.</p><p>Specify a path for saving the generated Broadcast Corrections plus Broadcast Ephemeris as SP3 orbit files. If the specified directory does not exist, BNC will not create SP3 orbit files. The following is a path example for a Linux system:<br>/home/user/BNC${GPSWD}.sp3<br>Note that '${GPSWD}' produces the GPS Week and Day number in the file name.</p><ul><li>As an SP3 file contents should be referred to the satellites Center of Mass (CoM) while correctors are referred to the satellites Antenna Phase Center (APC), an offset has to be applied which is available from an IGS ANTEX file. You should therefore specify the 'ANTEX File' path under tab 'PPP (2)' if you want to save the stream contents in SP3 format. If you don't specify an 'ANTEX File' path there, the SP3 file contents will be referred to the satellites APCs.</li></ul></p><p>Specify a path for saving the generated Broadcast Correction clocks plus Broadcast Ephemeris clocks as Clock RINEX files. If the specified directory does not exist, BNC will not create Clock RINEX files. The following is a path example for a Linux system:<br>/home/user/BNC${GPSWD}.clk<br>Note that '${GPSWD}' produces the GPS Week and Day number in the file name.</p><p>Specify finally an SSR Provider ID number, an SSR Solution ID number and an Issue of Data SSR number.</p><p>In case the 'Combine Corrections' table contains only one Broadcast Corrections stream, BNC will merge that stream with Broadcast Ephemeris to save results in files specified here through SP3 and/or Clock RINEX file path. In such a case you should define only the SP3 and Clock RINEX file path and no further options in the 'Upload Corrections' table.</p>")); 1485 _postObsFileChooser->setWhatsThis(tr("Full path to RINEX v2/v3 Observation file."));1486 _postNavFileChooser->setWhatsThis(tr("Full path to RINEX v2/v3 Navigation file."));1487 _postCorrFileChooser->setWhatsThis(tr("Full path to Broadcast Corrections file as previously saved with BNC in plain ASCII format."));1488 _postOutLineEdit->setWhatsThis(tr("Full path to file with post processing PPP results. "));1489 1209 addCmbRowButton->setWhatsThis(tr("Hit 'Add Row' button to add another line to the mountpoints table.")); 1490 1210 delCmbRowButton->setWhatsThis(tr("Hit 'Delete' button to delete the highlighted line from the mountpoints table.")); … … 1496 1216 _uploadSamplSp3SpinBox->setWhatsThis(tr("Select the SP3 orbit file sampling interval in minutes. A value of zero '0' tells BNC to store all available samples into SP3 orbit files.")); 1497 1217 setUploadTrafoButton->setWhatsThis(tr("Hit 'Custom Trafo' to specify your own 14 parameter Helmert Transformation instead of selecting a predefined transformation through 'System' button.")); 1498 1499 1218 _uploadEphHostLineEdit->setWhatsThis(tr("BNC can upload a Broadcast Ephemeris stream in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload Broadcast Ephemeris.")); 1500 1219 _uploadEphPortLineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80.")); … … 1503 1222 _uploadEphSampleSpinBox->setWhatsThis(tr("Select the Broadcast Ephemeris sampling interval in seconds. Defaut is '5' meaning that a complete set of Broadcast Ephemeris is uploaded every 5 seconds.")); 1504 1223 _uploadEphBytesCounter->setWhatsThis(tr("BNC shows the amount of data uploaded through this stream.")); 1505 1506 1224 _actDeleteMountPoints->setWhatsThis(tr("<p>Delete stream(s) from selection presented in the 'Streams' canvas.</p>")); 1507 1225 _actAddMountPoints->setWhatsThis(tr("<p>Add stream(s) to selection presented in the 'Streams' canvas.</p>")); 1508 1226 _actMapMountPoints->setWhatsThis(tr("<p> Draw distribution map of stream selection presented in the 'Streams' canvas. Use the mouse to zoom in or out.</p><p>Left button: Draw rectangle to zoom in.<br>Right button: Zoom out.<br>Middle button: Zoom back.</p>")); 1509 1510 1227 _actStart->setWhatsThis(tr("<p> Start running BNC.</p>")); 1511 1228 _actStop->setWhatsThis(tr("<p> Stop running BNC.</p>")); … … 1904 1621 settings.setValue("perfIntr", _perfIntrComboBox->currentText()); 1905 1622 settings.setValue("scanRTCM", _scanRTCMCheckBox->checkState()); 1906 // PPPP1907 settings.setValue("pppSPP", _pppSPPComboBox->currentText());1908 settings.setValue("pppMount", _pppMountLineEdit->text());1909 settings.setValue("pppCorrMount",_pppCorrMountLineEdit->text());1910 settings.setValue("pppRefCrdX", _pppRefCrdXLineEdit->text());1911 settings.setValue("pppRefCrdY", _pppRefCrdYLineEdit->text());1912 settings.setValue("pppRefCrdZ", _pppRefCrdZLineEdit->text());1913 settings.setValue("pppRefdN", _pppRefdNLineEdit->text());1914 settings.setValue("pppRefdE", _pppRefdELineEdit->text());1915 settings.setValue("pppRefdU", _pppRefdULineEdit->text());1916 settings.setValue("nmeaFile", _pppNMEALineEdit->text());1917 settings.setValue("nmeaPort", _pppNMEAPortLineEdit->text());1918 1623 settings.setValue("pppPlotCoordinates", _pppPlotCoordinates->checkState()); 1919 1624 settings.setValue("useOsmMap", _osmRadioButton->isChecked()); … … 1921 1626 settings.setValue("mapWinDotColor", _mapWinDotColorComboBox->currentText()); 1922 1627 settings.setValue("mapSpeed", _mapSpeedSlider->value()); 1923 settings.setValue("postObsFile", _postObsFileChooser->fileName());1924 settings.setValue("postNavFile", _postNavFileChooser->fileName());1925 settings.setValue("postCorrFile", _postCorrFileChooser->fileName());1926 settings.setValue("postOutFile", _postOutLineEdit->text());1927 settings.setValue("pppAntenna", _pppAntennaLineEdit->text());1928 settings.setValue("pppAntex", _pppAntexFileChooser->fileName());1929 settings.setValue("pppUsePhase", _pppUsePhaseCheckBox->checkState());1930 settings.setValue("pppEstTropo", _pppEstTropoCheckBox->checkState());1931 settings.setValue("pppGLONASS", _pppGLONASSCheckBox->checkState());1932 settings.setValue("pppGalileo", _pppGalileoCheckBox->checkState());1933 settings.setValue("pppSync", _pppSync->text());1934 settings.setValue("pppAverage", _pppAverageLineEdit->text());1935 settings.setValue("pppQuickStart", _pppQuickStartLineEdit->text());1936 settings.setValue("pppMaxSolGap", _pppMaxSolGapLineEdit->text());1937 settings.setValue("pppAudioResponse", _pppAudioResponseLineEdit->text());1938 settings.setValue("pppSigmaCode",_pppSigCLineEdit->text());1939 settings.setValue("pppSigmaPhase",_pppSigPLineEdit->text());1940 settings.setValue("pppSigCrd0",_pppSigCrd0->text());1941 settings.setValue("pppSigCrdP",_pppSigCrdP->text());1942 settings.setValue("pppSigTrp0",_pppSigTrp0->text());1943 settings.setValue("pppSigTrpP",_pppSigTrpP->text());1944 1628 // Reqc 1945 1629 settings.setValue("reqcAction", _reqcActionComboBox->currentText()); … … 1999 1683 void bncWindow::slotStart() { 2000 1684 saveOptions(); 2001 if ( _pppSPPComboBox->currentText() == "Post-Processing" ) { 2002 startPostProcessingPPP(); 2003 } 2004 else if ( !_reqcActionComboBox->currentText().isEmpty() ) { 1685 if ( !_reqcActionComboBox->currentText().isEmpty() ) { 2005 1686 startPostProcessingReqc(); 2006 1687 } … … 2108 1789 else if (iRet == QMessageBox::Yes) { 2109 1790 slotSaveOptions(); 2110 }2111 2112 if (_postProcessing) {2113 _postProcessing->terminate();2114 1791 } 2115 1792 … … 2494 2171 } 2495 2172 2496 // PPP Client 2497 // ---------- 2498 if (sender() == 0 2499 || sender() == _pppMountLineEdit 2500 || sender() == _pppCorrMountLineEdit 2501 || sender() == _pppRefCrdXLineEdit 2502 || sender() == _pppRefCrdYLineEdit 2503 || sender() == _pppRefCrdZLineEdit 2504 || sender() == _pppRefdNLineEdit 2505 || sender() == _pppRefdELineEdit 2506 || sender() == _pppRefdULineEdit 2507 || sender() == _pppSync 2508 || sender() == _pppSPPComboBox 2509 || sender() == _pppQuickStartLineEdit 2510 || sender() == _pppEstTropoCheckBox 2511 || sender() == _pppUsePhaseCheckBox 2512 || sender() == _pppAntexFileChooser 2513 #ifdef QT_WEBKIT 2514 || sender() == _mapWin 2515 #endif 2516 ) { 2517 2518 2519 enable = !_pppSPPComboBox->currentText().isEmpty(); 2520 if (enable) { 2521 enable = (!_pppMountLineEdit->text().isEmpty() && !_pppCorrMountLineEdit->text().isEmpty()) || 2522 (!_pppMountLineEdit->text().isEmpty() && _pppSPPComboBox->currentText() == "Realtime-SPP") || 2523 (_pppSPPComboBox->currentText() == "Post-Processing"); 2524 } 2525 2526 enableWidget(enable, _pppNMEALineEdit); 2527 enableWidget(enable, _pppNMEAPortLineEdit); 2528 enableWidget(enable, _pppRefCrdXLineEdit); 2529 enableWidget(enable, _pppRefCrdYLineEdit); 2530 enableWidget(enable, _pppRefCrdZLineEdit); 2531 enableWidget(enable, _pppRefdNLineEdit); 2532 enableWidget(enable, _pppRefdELineEdit); 2533 enableWidget(enable, _pppRefdULineEdit); 2534 enableWidget(enable, _pppUsePhaseCheckBox); 2535 enableWidget(enable, _pppPlotCoordinates); 2536 enableWidget(enable, _mapWinButton); 2537 enableWidget(enable, _mapWinDotSizeLineEdit); 2538 enableWidget(enable, _mapWinDotColorComboBox); 2539 enableWidget(enable, _gmRadioButton); 2540 enableWidget(enable, _osmRadioButton); 2541 enableWidget(enable, _pppEstTropoCheckBox); 2542 // enableWidget(enable, _pppGLONASSCheckBox); 2543 enableWidget(enable, _pppGalileoCheckBox); 2544 // enableWidget(enable, _pppAntexFileChooser); 2545 enableWidget(enable, _pppSigCLineEdit); 2546 enableWidget(enable, _pppSigCrd0); 2547 enableWidget(enable, _pppSigCrdP); 2548 2549 bool enable2 = enable && !_pppRefCrdXLineEdit->text().isEmpty() && 2550 !_pppRefCrdYLineEdit->text().isEmpty() && 2551 !_pppRefCrdZLineEdit->text().isEmpty(); 2552 2553 enableWidget(enable2, _pppAverageLineEdit); 2554 enableWidget(enable2, _pppQuickStartLineEdit); 2555 2556 bool enable3 = enable2 && !_pppQuickStartLineEdit->text().isEmpty(); 2557 enableWidget(enable3, _pppMaxSolGapLineEdit); 2558 enableWidget(enable3, _pppAudioResponseLineEdit); 2559 2560 bool enable4 = enable && !_pppAntexFileChooser->fileName().isEmpty(); 2561 enableWidget(enable4, _pppAntennaLineEdit); 2562 2563 bool enable5 = enable && _pppEstTropoCheckBox->isChecked(); 2564 enableWidget(enable5, _pppSigTrp0); 2565 enableWidget(enable5, _pppSigTrpP); 2566 2567 bool enable6 = enable && _pppUsePhaseCheckBox->isChecked(); 2568 enableWidget(enable6, _pppSigPLineEdit); 2569 2570 bool enable7 = enable && _pppSPPComboBox->currentText() == "Realtime-PPP"; 2571 enableWidget(enable7, _pppSync); 2572 2573 bool enable8 = _pppSPPComboBox->currentText() == "Realtime-PPP"; 2574 enableWidget(enable8, _pppCorrMountLineEdit); 2575 2576 bool enable9 = _pppSPPComboBox->currentText() == "Post-Processing"; 2577 enableWidget(enable9, _postObsFileChooser); 2578 enableWidget(enable9, _postNavFileChooser); 2579 enableWidget(enable9, _postCorrFileChooser); 2580 enableWidget(enable9, _postOutLineEdit); 2581 enableWidget(enable9, _mapSpeedSlider); 2582 2583 bool enable10 = !_pppSPPComboBox->currentText().isEmpty() && !enable9; 2584 enableWidget(enable10, _pppMountLineEdit); 2585 } 2586 2173 // QC 2174 // -- 2587 2175 if (sender() == 0 || sender() == _reqcActionComboBox) { 2588 2176 enable = !_reqcActionComboBox->currentText().isEmpty(); … … 2790 2378 } 2791 2379 2792 // Start Post-Processing PPP2793 ////////////////////////////////////////////////////////////////////////////2794 void bncWindow::startPostProcessingPPP() {2795 #ifdef USE_POSTPROCESSING2796 _runningPostProcessingPPP = true;2797 _actStart->setText("0 Epochs");2798 enableStartStop();2799 2800 _postProcessing = new t_postProcessing(this, _mapSpeedSlider->maximum(), _mapSpeedSlider->value());2801 connect(_postProcessing, SIGNAL(finished()), this, SLOT(slotFinishedPostProcessingPPP()));2802 connect(_postProcessing, SIGNAL(progress(int)), this, SLOT(slotPostProgress(int)));2803 connect(_mapSpeedSlider, SIGNAL(valueChanged(int)), _postProcessing, SLOT(slotSetSpeed(int)));2804 bncSettings settings;2805 if ( Qt::CheckState(settings.value("pppPlotCoordinates").toInt()) == Qt::Checked) {2806 _bncFigurePPP->reset();2807 connect(_postProcessing, SIGNAL(newPosition(bncTime, double, double, double)),2808 _bncFigurePPP, SLOT(slotNewPosition(bncTime, double, double, double)));2809 }2810 #ifdef QT_WEBKIT2811 if (_mapWin) {2812 connect(_postProcessing, SIGNAL(newPosition(bncTime, double, double, double)),2813 _mapWin, SLOT(slotNewPosition(bncTime, double, double, double)));2814 }2815 #endif2816 2817 _postProcessing->start();2818 #else2819 QMessageBox::information(this, "Information",2820 "Post-Processing Not Permitted");2821 #endif2822 }2823 2824 // Post-Processing PPP Finished2825 ////////////////////////////////////////////////////////////////////////////2826 void bncWindow::slotFinishedPostProcessingPPP() {2827 #ifdef QT_WEBKIT2828 if (_mapWin) {2829 _postProcessing->disconnect(_mapWin);2830 }2831 #endif2832 _runningPostProcessingPPP = false;2833 delete _postProcessing;2834 _postProcessing = 0;2835 QMessageBox::information(this, "Information",2836 "Post-Processing Thread Finished");2837 _actStart->setText("Start");2838 enableStartStop();2839 }2840 2841 2380 // Progress Bar Change 2842 2381 //////////////////////////////////////////////////////////////////////////// … … 2895 2434 void bncWindow::enableStartStop() { 2896 2435 2897 if ( _pppSPPComboBox && _pppSPPComboBox->currentText() == "Post-Processing" ) { 2898 if (_runningPostProcessingPPP) { 2899 _actStart->setEnabled(false); 2900 } 2901 else { 2902 _actStart->setEnabled(true); 2903 } 2904 _actStop->setEnabled(false); 2905 } 2906 else if ( _reqcActionComboBox && !_reqcActionComboBox->currentText().isEmpty() ) { 2436 if ( _reqcActionComboBox && !_reqcActionComboBox->currentText().isEmpty() ) { 2907 2437 if (_runningPostProcessingReqc) { 2908 2438 _actStart->setEnabled(false); … … 2972 2502 _mapWin, SLOT(slotNewPosition(bncTime, double, double, double))); 2973 2503 } 2974 if (_postProcessing) {2975 connect(_postProcessing, SIGNAL(newPosition(bncTime, double, double, double)),2976 _mapWin, SLOT(slotNewPosition(bncTime, double, double, double)));2977 }2978 2504 } 2979 2505 _mapWin->show(); … … 2995 2521 thread->disconnect(_mapWin); 2996 2522 } 2997 if (_postProcessing) {2998 _postProcessing->disconnect(_mapWin);2999 }3000 2523 _mapWin->deleteLater(); 3001 2524 _mapWin = 0; -
trunk/BNC/src/bncwindow.h
r5815 r5861 55 55 class qtFileChooser; 56 56 class bncMapWin; 57 class t_postProcessing;58 57 59 58 namespace BNC_PPP { … … 112 111 void enableWidget(bool enable, QWidget* widget); 113 112 void startRealTime(); 114 void startPostProcessingPPP();115 113 void startPostProcessingReqc(); 116 114 void enableStartStop(); … … 148 146 QLineEdit* _miscMountLineEdit; 149 147 QLineEdit* _miscPortLineEdit; 150 QLineEdit* _pppMountLineEdit;151 QLineEdit* _pppCorrMountLineEdit;152 QLineEdit* _pppNMEALineEdit;153 QLineEdit* _pppNMEAPortLineEdit;154 QLineEdit* _pppSigCLineEdit;155 QLineEdit* _pppSigPLineEdit;156 QLineEdit* _pppSigCrd0;157 QLineEdit* _pppSigCrdP;158 QLineEdit* _pppSigTrp0;159 QLineEdit* _pppSigTrpP;160 QLineEdit* _pppSync;161 QLineEdit* _pppAverageLineEdit;162 QLineEdit* _pppQuickStartLineEdit;163 QLineEdit* _pppMaxSolGapLineEdit;164 QLineEdit* _pppAudioResponseLineEdit;165 QLineEdit* _pppRefCrdXLineEdit;166 QLineEdit* _pppRefCrdYLineEdit;167 QLineEdit* _pppRefCrdZLineEdit;168 QLineEdit* _pppRefdNLineEdit;169 QLineEdit* _pppRefdELineEdit;170 QLineEdit* _pppRefdULineEdit;171 QCheckBox* _pppPlotCoordinates;172 QCheckBox* _pppUsePhaseCheckBox;173 QCheckBox* _pppEstTropoCheckBox;174 QCheckBox* _pppGLONASSCheckBox;175 QCheckBox* _pppGalileoCheckBox;176 QLineEdit* _pppAntennaLineEdit;177 qtFileChooser* _pppAntexFileChooser;178 179 qtFileChooser* _postObsFileChooser;180 qtFileChooser* _postNavFileChooser;181 qtFileChooser* _postCorrFileChooser;182 QLineEdit* _postOutLineEdit;183 148 184 149 QComboBox* _reqcActionComboBox; … … 198 163 QLineEdit* _logFileLineEdit; 199 164 QLineEdit* _rawOutFileLineEdit; 200 QComboBox* _pppSPPComboBox;201 165 QComboBox* _rnxIntrComboBox; 202 166 QComboBox* _ephIntrComboBox; … … 265 229 bool _realTimeRunning; 266 230 bool _runningRealTime; 267 bool _runningPostProcessingPPP;268 231 bool _runningPostProcessingReqc; 269 t_postProcessing* _postProcessing;270 232 271 233 QPushButton* _mapWinButton; 272 234 QRadioButton* _gmRadioButton; 235 QCheckBox* _pppPlotCoordinates; 273 236 QRadioButton* _osmRadioButton; 274 237 QComboBox* _mapWinDotColorComboBox; 275 238 QSlider* _mapSpeedSlider; 276 239 bncMapWin* _mapWin; 240 277 241 QList<bncGetThread*> _threads; 278 242 -
trunk/BNC/src/combination/bnccomb.cpp
r5808 r5861 23 23 #include "upload/bncrtnetdecoder.h" 24 24 #include "bncsettings.h" 25 #include "bncmodel.h"26 25 #include "bncutils.h" 27 #include "bncpppclient.h"28 26 #include "bncsp3.h" 29 27 #include "bncantex.h" … … 682 680 corr->eph->position(_resTime.gpsw(), _resTime.gpssec(), 683 681 xc.data(), vv.data()); 684 bncPPPclient::applyCorr(_resTime, corr, xc, vv);685 682 686 683 // Correction Phase Center --> CoM … … 741 738 _rtnetDecoder->Decode(outLines.toAscii().data(), outLines.length(), errmsg); 742 739 743 // Optionally send new Corrections to PPP 744 // -------------------------------------- 745 if (BNC_CORE->_bncPPPclient) { 746 BNC_CORE->_bncPPPclient->slotNewCorrections(corrLines); 747 } 740 // Send new Corrections to PPP etc. 741 // -------------------------------- 742 emit newCorrections(corrLines); 748 743 } 749 744 -
trunk/BNC/src/combination/bnccomb.h
r5583 r5861 43 43 signals: 44 44 void newMessage(QByteArray msg, bool showOnScreen); 45 void newCorrections(QStringList); 45 46 46 47 private:
Note:
See TracChangeset
for help on using the changeset viewer.