source: ntrip/branches/BNC_2.12/src/rinex/rnxnavfile.h @ 8351

Last change on this file since 8351 was 8351, checked in by stuerze, 15 months ago

individual satellite system will be considerred now during concatenation of ephemeris files

File size: 2.6 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 RNXNAVFILE_H
26#define RNXNAVFILE_H
27
28#include <queue>
29#include <QtCore>
30#include "bncconst.h"
31#include "bnctime.h"
32#include "ephemeris.h"
33
34class t_pppOpt;
35class bncPPPclient;
36class t_eph;
37
38#define defaultRnxNavVersion2 2.11
39#define defaultRnxNavVersion3 3.03
40
41class t_rnxNavFile {
42
43 public:
44  enum e_inpOut {input, output};
45 private:
46  class t_rnxNavHeader {
47   public:
48    t_rnxNavHeader();
49    ~t_rnxNavHeader();
50    t_irc  read(QTextStream* stream);
51    double _version;
52    bool   _glonass;
53    t_eph::e_type _satSys;
54    QStringList _comments;
55  };
56
57 public:
58  t_rnxNavFile(const QString& fileName, e_inpOut inpOut);
59  ~t_rnxNavFile();
60  t_eph* getNextEph(const bncTime& tt, const QMap<QString, unsigned int>* corrIODs);
61  const std::vector<t_eph*> ephs() const {return _ephs;}
62  double version() const {return _header._version;}
63  void   setVersion(double version) {_header._version = version;}
64  bool   glonass() const {return _header._glonass;}
65  QStringList comments() const {return _header._comments;}
66  t_eph::e_type satSystem() const {return _header._satSys;}
67  void   setGlonass(bool glo) {_header._glonass = glo;}
68  void   setGnssTypeV3(t_eph::e_type sys) {_header._satSys = sys;}
69  void   writeHeader(const QMap<QString, QString>* txtMap = 0);
70  void   writeEph(const t_eph* eph);
71
72 protected:
73  t_rnxNavFile() {};
74  void openRead(const QString& fileName);
75  void openWrite(const QString& fileName);
76  void close();
77
78 private:
79  void read(QTextStream* stream);
80
81  e_inpOut            _inpOut;
82  QFile*              _file;
83  QString             _fileName;
84  QTextStream*        _stream;
85  std::vector<t_eph*> _ephs;
86  t_rnxNavHeader      _header;
87};
88
89#endif
Note: See TracBrowser for help on using the repository browser.