// Part of BNC, a utility for retrieving decoding and // converting GNSS data streams from NTRIP broadcasters. // // Copyright (C) 2007 // German Federal Agency for Cartography and Geodesy (BKG) // http://www.bkg.bund.de // Czech Technical University Prague, Department of Geodesy // http://www.fsv.cvut.cz // // Email: euref-ip@bkg.bund.de // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation, version 2. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef LATENCYCHECKER_H #define LATENCYCHECKER_H #include #include "satObs.h" class latencyChecker : public QObject { Q_OBJECT public: latencyChecker(QByteArray staID); ~latencyChecker(); void checkReconnect(); void checkOutage(bool decoded); void checkObsLatency(const QList& obsList); void checkCorrLatency(int corrGPSEpochTime, int type); double currentLatency() { return _curLat;} class t_latency { public: t_latency() { _oldSec = 0; _newSec = 0; _numGaps = 0; _diffSec = 0; _numLat = 0; _sumLat = 0.0; _sumLatQ = 0.0; _meanDiff = 0.0; _minLat = 1000.0; _maxLat = -1000.0; _curLat = 0.0; _type = ""; _followSec = false; } void init() { _diffSec = 0; _numGaps = 0; _sumLat = 0.0; _sumLatQ = 0.0; _numLat = 0; _minLat = 1000.0; _maxLat = -1000.0; }; void print() { qDebug() << _type; qDebug() << "_oldSec: " << _oldSec; qDebug() << "_newSec: " << _newSec; qDebug() << "_numGaps: " << _numGaps; qDebug() << "_diffSec: " << _diffSec; qDebug() << "_numLat: " << _numLat; qDebug() << "_sumLat: " << _sumLat; qDebug() << "_sumLatQ: " << _sumLatQ; qDebug() << "_meanDiff: " << _meanDiff; qDebug() << "_minLat: " << _minLat; qDebug() << "_maxLat: " << _maxLat; qDebug() << "_curLat: " << _curLat; qDebug() << "_followSec" << _followSec; }; int _oldSec; int _newSec; int _numGaps; int _diffSec; int _numLat; double _sumLat; double _sumLatQ; double _meanDiff; double _minLat; double _maxLat; double _curLat; QByteArray _type; bool _followSec; }; t_latency _lObs; t_latency _lOrb; t_latency _lClk; t_latency _lClkOrb; t_latency _lPb; t_latency _lCb; t_latency _lVtec; t_latency _lUra; t_latency _lHr; t_latency _lSsrIgs; void setCurrentLatency(double lat) { _curLat = lat; } signals: void newMessage(QByteArray msg, bool showOnScreen); private: void callScript(const char* comment); int _inspSegm; int _adviseFail; int _adviseReco; int _miscIntr; int _numSucc; int _secSucc; int _secFail; int _initPause; int _currPause; bool _wrongEpoch; bool _checkSeg; bool _begCorrupt; bool _endCorrupt; bool _fromReconnect; bool _fromCorrupt; QByteArray _staID; QString _adviseScript; QString _checkMountPoint; QString _begDateCorr; QString _begTimeCorr; QString _begDateOut; QString _begTimeOut; QString _endDateCorr; QString _endTimeCorr; QString _endDateOut; QString _endTimeOut; QDateTime _checkTime; QDateTime _decodeSucc; QDateTime _decodeFailure; QDateTime _decodeStart; QDateTime _decodeStop; QDateTime _decodeStartCorr; QDateTime _decodeStopCorr; QDateTime _checkPause; QDateTime _begDateTimeOut; QDateTime _endDateTimeOut; QDateTime _begDateTimeCorr; QDateTime _endDateTimeCorr; double _curLat; }; #endif