source: ntrip/branches/BNC_2.12/src/bncephuser.h@ 9322

Last change on this file since 9322 was 9322, checked in by stuerze, 19 months ago

some lines are added to consider corrected GPS BRDC data sets which come 16 seconds before nominal TOC

File size: 2.2 KB
Line 
1// Part of BNC, a utility for retrieving decoding and
2// converting GNSS data streams from NTRIP broadcasters.
3//
4// Copyright (C) 2007
5// German Federal Agency for Cartography and Geodesy (BKG)
6// http://www.bkg.bund.de
7// Czech Technical University Prague, Department of Geodesy
8// http://www.fsv.cvut.cz
9//
10// Email: euref-ip@bkg.bund.de
11//
12// This program is free software; you can redistribute it and/or
13// modify it under the terms of the GNU General Public License
14// as published by the Free Software Foundation, version 2.
15//
16// This program is distributed in the hope that it will be useful,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19// GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License
22// along with this program; if not, write to the Free Software
23// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24
25#ifndef BNCEPHUSER_H
26#define BNCEPHUSER_H
27
28#include <deque>
29#include <QtCore>
30#include <newmat.h>
31
32#include "bncconst.h"
33#include "bnctime.h"
34#include "bncutils.h"
35#include "ephemeris.h"
36
37class bncEphUser : public QObject {
38 Q_OBJECT
39
40 public slots:
41 void slotNewGPSEph(t_ephGPS);
42 void slotNewGlonassEph(t_ephGlo);
43 void slotNewGalileoEph(t_ephGal);
44 void slotNewSBASEph(t_ephSBAS);
45 void slotNewBDSEph(t_ephBDS);
46
47 public:
48 bncEphUser(bool connectSlots);
49 virtual ~bncEphUser();
50
51 t_irc putNewEph(t_eph* newEph, bool check);
52
53 t_eph* ephLast(const QString& prn) {
54 if (_eph.contains(prn)) {
55 return _eph[prn].back();
56 }
57 return 0;
58 }
59
60 t_eph* ephPrev(const QString& prn) {
61 if (_eph.contains(prn)) {
62 unsigned nn = _eph[prn].size();
63 if (nn > 1) {
64 return _eph[prn].at(nn-2);
65 }
66 }
67 return 0;
68 }
69
70 const QList<QString> prnList() {return _eph.keys();}
71
72 protected:
73 virtual void ephBufferChanged() {}
74
75 private:
76 void checkEphemeris(t_eph* eph, bool realTime);
77 bool newCorrectedGpsEphSet(const t_eph* eph);
78 QMutex _mutex;
79 static const unsigned _maxQueueSize = 6;
80 QMap<QString, std::deque<t_eph*> > _eph;
81};
82
83#endif
Note: See TracBrowser for help on using the repository browser.