source: ntrip/trunk/BNC/src/RTCM3/RTCM3coDecoder.h@ 7117

Last change on this file since 7117 was 7055, checked in by stuerze, 10 years ago

IOD data type changed, to support IODs computed from CRC over broadcasted ephemris and clock parameters

File size: 2.8 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 RTCM3CODECODER_H
26#define RTCM3CODECODER_H
27
28#include <fstream>
29#include <QtCore>
30#include <QtNetwork>
31#include "GPSDecoder.h"
32
33extern "C" {
34# include "clock_orbit_rtcm.h"
35}
36
37class RTCM3coDecoder : public QObject, public GPSDecoder {
38Q_OBJECT
39 public:
40 RTCM3coDecoder(const QString& staID);
41 virtual ~RTCM3coDecoder();
42 virtual t_irc Decode(char* buffer, int bufLen, std::vector<std::string>& errmsg);
43 virtual int corrGPSEpochTime() const {return int(_lastTime.gpssec());}
44
45 signals:
46 void newOrbCorrections(QList<t_orbCorr>);
47 void newClkCorrections(QList<t_clkCorr>);
48 void newCodeBiases(QList<t_satCodeBias>);
49 void newPhaseBiases(QList<t_satPhaseBias>);
50 void newTec(t_vTec);
51 void newMessage(QByteArray msg, bool showOnScreen);
52 void providerIDChanged(QString staID);
53
54 private:
55 void reset();
56 void setEpochTime();
57 void sendResults();
58 void reopen();
59 void checkProviderID();
60 std::string codeTypeToRnxType(char system, CodeType type) const;
61
62 std::ofstream* _out;
63 QString _staID;
64 QString _fileNameSkl;
65 QString _fileName;
66 QByteArray _buffer;
67 ClockOrbit _clkOrb;
68 CodeBias _codeBias;
69 PhaseBias _phaseBias;
70 VTEC _vTEC;
71 int _providerID[3];
72 bncTime _lastTime;
73 QMap<t_prn, unsigned long> _IODs;
74 QMap<bncTime, QList<t_orbCorr> > _orbCorrections;
75 QMap<bncTime, QList<t_clkCorr> > _clkCorrections;
76 QMap<t_prn, t_clkCorr> _lastClkCorrections;
77 QMap<bncTime, QList<t_satCodeBias> > _codeBiases;
78 QMap<bncTime, QList<t_satPhaseBias> > _phaseBiases;
79 QMap<bncTime, t_vTec> _vTecMap;
80};
81
82#endif
Note: See TracBrowser for help on using the repository browser.