Changeset 6270 in ntrip for trunk


Ignore:
Timestamp:
Oct 31, 2014, 5:45:25 PM (9 years ago)
Author:
mervart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/rinex/reqcanalyze.h

    r6269 r6270  
    3434class t_polarPoint;
    3535
    36 class t_availData {
     36class t_qcObs {
    3737 public:
    38   QVector<double> _L1ok;
    39   QVector<double> _L2ok;
    40   QVector<double> _L1slip;
    41   QVector<double> _L2slip;
    42   QVector<double> _L1gap;
    43   QVector<double> _L2gap;
    44   QVector<double> _eleDeg;
    45   QVector<double> _eleTim;
     38  t_qcObs() {
     39    _hasL1    = false;
     40    _hasL2    = false;
     41    _slipL1   = false;
     42    _slipL2   = false;
     43    _gapL1    = false;
     44    _gapL2    = false;
     45    _slotSet  = false;
     46    _slotNum  = 0;
     47    _MP1      = 0.0;
     48    _MP2      = 0.0;
     49    _SNR1     = 0.0;
     50    _SNR2     = 0.0;
     51  }
     52  t_irc set(const t_satObs& obs);
     53  double _eleDeg;
     54  double _azDeg;
     55  bool   _hasL1;
     56  bool   _hasL2;
     57  bool   _slipL1;
     58  bool   _slipL2;
     59  bool   _gapL1;
     60  bool   _gapL2;
     61  bool   _slotSet;
     62  int    _slotNum;
     63  double _MP1;
     64  double _MP2;
     65  double _SNR1;
     66  double _SNR2;
    4667};
    4768
    48 class t_prnStat {
     69class t_qcEpo {
    4970 public:
    50   t_prnStat() {
     71  bncTime              _epoTime;
     72  double               _PDOP;
     73  QMap<t_prn, t_qcObs> _qcObs;
     74};
     75
     76class t_qcSat {
     77 public:
     78  t_qcSat() {
    5179    _numObs          = 0;
    5280    _numSlipsFlagged = 0;
     
    6088};
    6189
    62 class t_obsStat {
     90class t_qcFile {
    6391 public:
    64   void reset() {
    65     _mjdX24.clear();
    66     _numSat.clear();
    67     _PDOP.clear();
    68     _prnStat.clear();
    69   }
    70   QVector<double> _mjdX24;
    71   QVector<double> _numSat;
    72   QVector<double> _PDOP;
    73   bncTime         _startTime;
    74   bncTime         _endTime;
    75   QString         _antennaName;
    76   QString         _markerName;
    77   QString         _receiverType;
    78   double          _interval;
    79   QMap<t_prn, t_prnStat> _prnStat;
     92  t_qcFile() {clear();}
     93  void clear() {_qcSat.clear(); _qcEpo.clear();}
     94  bncTime              _startTime;
     95  bncTime              _endTime;
     96  QString              _antennaName;
     97  QString              _markerName;
     98  QString              _receiverType;
     99  double               _interval;
     100  QMap<t_prn, t_qcSat> _qcSat;
     101  QVector<t_qcEpo>     _qcEpo;
     102  QVector<t_qcEpo>     _qcEpoSampled;
    80103};
    81104
     
    85108 public:
    86109  t_reqcAnalyze(QObject* parent);
     110  virtual void run();
    87111
    88112 protected:
     
    91115 signals:
    92116  void finished();
    93   void dspSkyPlot(const QString&,
    94                   const QByteArray&,
    95                   QVector<t_polarPoint*>*,
    96                   const QByteArray&,
    97                   QVector<t_polarPoint*>*,
    98                   const QByteArray&, double);
    99117
    100   void dspAvailPlot(const QString&, const QByteArray&);
    101    
    102  private slots:
    103   void slotDspSkyPlot(const QString& fileName,
    104                       const QByteArray& title1,
    105                       QVector<t_polarPoint*>* data1,
    106                       const QByteArray& title2,
    107                       QVector<t_polarPoint*>* data2,
    108                       const QByteArray& scaleTitle, double maxValue);
     118 private:
     119  void   analyzeFile(t_rnxObsFile* obsFile);
    109120
    110   void slotDspAvailPlot(const QString& fileName, const QByteArray& title);
     121  void   updateQcSat(const t_qcObs& qcObs, t_qcSat& qcSat);
    111122
    112  public:
    113   virtual void run();
    114  
    115  private:
    116   class t_oneObs {
    117    public:
    118     t_oneObs(int GPSWeek, double GPSWeeks) {
    119       _GPSWeek  = GPSWeek;
    120       _GPSWeeks = GPSWeeks;
    121       _hasL1    = false;
    122       _hasL2    = false;
    123       _slipL1   = false;
    124       _slipL2   = false;
    125       _MP1      = 0.0;
    126       _MP2      = 0.0;
    127       _SNR1     = 0.0;
    128       _SNR2     = 0.0;
    129       _slotSet  = false;
    130     }
    131     int    _GPSWeek;
    132     double _GPSWeeks;
    133     bool   _hasL1;
    134     bool   _hasL2;
    135     bool   _slipL1;
    136     bool   _slipL2;
    137     double _MP1;
    138     double _MP2;
    139     double _SNR1;
    140     double _SNR2;
    141     bool   _slotSet;
    142   };
     123  t_irc  setQcObs(const t_satObs& satObs, t_qcObs& qcObs);
    143124
    144   class t_allObs {
    145    public:
    146     t_allObs() {}
    147     ~t_allObs() {
    148       for (int ii = 0; ii < _oneObsVec.size(); ii++) {
    149         delete _oneObsVec[ii];
    150       }
    151     }
    152     t_irc addObs(const t_satObs& obs, int slotNum);
    153     QVector<t_oneObs*> _oneObsVec;
    154   };
     125  void   preparePlotData(const t_rnxObsFile* obsFile);
    155126
    156   void analyzeFile(t_rnxObsFile* obsFile);
    157   void preparePlotData(const t_prn& prn, const ColumnVector& xyzSta,
    158                        double obsInterval,
    159                        QVector<t_polarPoint*>* dataMP1,
    160                        QVector<t_polarPoint*>* dataMP2,
    161                        QVector<t_polarPoint*>* dataSNR1,
    162                        QVector<t_polarPoint*>* dataSNR2);
    163   void prepareObsStat(unsigned iEpo, double obsInterval,
    164                       const ColumnVector& xyzSta);
    165127  double cmpDOP(const ColumnVector& xyzSta) const;
    166   void printReport(QVector<t_polarPoint*>* dataMP1,
    167                    QVector<t_polarPoint*>* dataMP2,
    168                    QVector<t_polarPoint*>* dataSNR1,
    169                    QVector<t_polarPoint*>* dataSNR2);
    170128
    171   QString                  _logFileName;
    172   QFile*                   _logFile;
    173   QTextStream*             _log;
    174   QStringList              _obsFileNames;
    175   QVector<t_rnxObsFile*>   _rnxObsFiles;
    176   QStringList              _navFileNames;
    177   QVector<t_eph*>          _ephs;
    178   t_rnxObsFile::t_rnxEpo*  _currEpo;
    179   QMap<t_prn, t_allObs>    _allObsMap;
    180   QMap<t_prn, t_availData> _availDataMap;
    181   t_obsStat                _obsStat;
    182   QMutex                   _mutex;
     129  void   dspSkyPlot(const QString& fileName, const QByteArray& title1,
     130                    QVector<t_polarPoint*>* data1, const QByteArray& title2,
     131                    QVector<t_polarPoint*>* data2, const QByteArray& scaleTitle, double maxValue);
     132
     133  void   dspAvailPlot(const QString& fileName, const QByteArray& title);
     134
     135  void   printReport();
     136
     137  QString                 _logFileName;
     138  QFile*                  _logFile;
     139  QTextStream*            _log;
     140  QStringList             _obsFileNames;
     141  QVector<t_rnxObsFile*>  _rnxObsFiles;
     142  QStringList             _navFileNames;
     143  QVector<t_eph*>         _ephs;
     144  t_rnxObsFile::t_rnxEpo* _currEpo;
     145  t_qcFile                _qcFile;
     146  QMutex                  _mutex;
    183147};
    184148
Note: See TracChangeset for help on using the changeset viewer.