source: ntrip/trunk/BNC/src/GPSDecoder.h@ 10611

Last change on this file since 10611 was 10533, checked in by stuerze, 10 months ago

Service and RTCM CRS encoding and decoding as well as Helmert parameter decoding added + some re-organisation

File size: 3.0 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 GPSDECODER_H
26#define GPSDECODER_H
27
28#include <iostream>
29#include <iomanip>
30#include <vector>
31#include <string>
32
33#include <QtCore>
34
35#include "bncconst.h"
36#include "bnctime.h"
37#include "satObs.h"
38#include "crs.h"
39
40class bncRinex;
41using namespace std;
42
43class GPSDecoder {
44 public:
45 GPSDecoder();
46 virtual ~GPSDecoder();
47
48 virtual t_irc Decode(char* buffer, int bufLen,
49 std::vector<std::string>& errmsg) = 0;
50
51
52 virtual int corrGPSEpochTime() const {return -1;}
53
54 void initRinex(const QByteArray& staID, const QUrl& mountPoint,
55 const QByteArray& latitude, const QByteArray& longitude,
56 const QByteArray& nmea, const QByteArray& ntripVersion);
57
58 void dumpRinexEpoch(const t_satObs& obs, const QByteArray& format);
59
60 void setRinexReconnectFlag(bool flag);
61
62 struct t_antRefPoint {
63 enum t_type { ARP, APC };
64
65 t_antRefPoint() {
66 xx = yy = zz = height = 0.0;
67 type = ARP;
68 height_f = false;
69 message = 0;
70 };
71
72 double xx;
73 double yy;
74 double zz;
75 t_type type;
76 double height;
77 bool height_f;
78 int message;
79 };
80
81 struct t_antInfo {
82 t_antInfo() {
83 };
84 char descriptor[256];
85 char serialnumber[256];
86 };
87
88 struct t_recInfo {
89 t_recInfo() {
90 };
91 char descriptor[256];
92 char serialnumber[256];
93 char firmware[256];
94 };
95
96 /** List of observations */
97 QList<t_satObs> _obsList;
98 QList<int> _typeList; // RTCM message types
99 QList<t_antInfo> _antType; // RTCM antenna descriptor
100 QList<t_recInfo> _recType; // RTCM receiver descriptor
101 QList<t_antRefPoint> _antList; // RTCM antenna XYZ
102 QList<t_helmertPar> _helmertPar; // List of Helmert parameter sets
103 QList<t_serviceCrs> _serviceCrs; // Service CRS
104 QList<t_rtcmCrs> _rtcmCrs; // RTCM CRS
105 QString _gloFrq; // GLONASS slot
106 bncRinex* _rnx; // RINEX writer
107};
108
109#endif
Note: See TracBrowser for help on using the repository browser.