source: ntrip/trunk/BNC/src/bncutils.h@ 6807

Last change on this file since 6807 was 6799, checked in by stuerze, 10 years ago

simplification and harmonization of the conversion from accuracy indices into metric values and vice versa

File size: 4.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 BNCUTILS_H
26#define BNCUTILS_H
27
28#include <vector>
29
30#include <QString>
31#include <QDateTime>
32
33#include <newmat.h>
34#include <bncconst.h>
35#include <ephemeris.h>
36
37void expandEnvVar(QString& str);
38
39QDateTime dateAndTimeFromGPSweek(int GPSWeek, double GPSWeeks);
40
41void currentGPSWeeks(int& week, double& sec);
42
43QDateTime currentDateAndTimeGPS();
44
45QByteArray ggaString(const QByteArray& latitude, const QByteArray& longitude,
46 const QByteArray& height, const QString& ggaType);
47
48void RSW_to_XYZ(const ColumnVector& rr, const ColumnVector& vv,
49 const ColumnVector& rsw, ColumnVector& xyz);
50
51void XYZ_to_RSW(const ColumnVector& rr, const ColumnVector& vv,
52 const ColumnVector& xyz, ColumnVector& rsw);
53
54t_irc xyz2ell(const double* XYZ, double* Ell);
55
56void xyz2neu(const double* Ell, const double* xyz, double* neu);
57
58void neu2xyz(const double* Ell, const double* neu, double* xyz);
59
60void jacobiXYZ_NEU(const double* Ell, Matrix& jacobi);
61
62void jacobiEll_XYZ(const double* Ell, Matrix& jacobi);
63
64void covariXYZ_NEU(const SymmetricMatrix& Qxyz, const double* Ell,
65 SymmetricMatrix& Qneu);
66
67void covariNEU_XYZ(const SymmetricMatrix& Qneu, const double* Ell,
68 SymmetricMatrix& Qxyz);
69
70double Frac(double x);
71
72double Modulo(double x, double y);
73
74double nint(double val);
75
76ColumnVector rungeKutta4(double xi, const ColumnVector& yi, double dx, double* acc,
77 ColumnVector (*der)(double x, const ColumnVector& y, double* acc));
78
79void GPSweekFromDateAndTime(const QDateTime& dateTime, int& GPSWeek, double& GPSWeeks);
80
81void GPSweekFromYMDhms(int year, int month, int day, int hour, int min, double sec,
82 int& GPSWeek, double& GPSWeeks);
83
84void mjdFromDateAndTime(const QDateTime& dateTime, int& mjd, double& dayfrac);
85
86bool findInVector(const std::vector<QString>& vv, const QString& str);
87
88int readInt(const QString& str, int pos, int len, int& value);
89
90int readDbl(const QString& str, int pos, int len, double& value);
91
92void topos(double xRec, double yRec, double zRec, double xSat, double ySat, double zSat,
93 double& rho, double& eleSat, double& azSat);
94
95void deg2DMS(double decDeg, int& deg, int& min, double& sec);
96
97QString fortranFormat(double value, int width, int prec);
98
99void kalman(const Matrix& AA, const ColumnVector& ll, const DiagonalMatrix& PP,
100 SymmetricMatrix& QQ, ColumnVector& xx);
101
102double djul(long j1, long m1, double tt);
103
104double gpjd(double second, int nweek) ;
105
106void jdgp(double tjul, double & second, long & nweek);
107
108void jmt (double djul, long& jj, long& mm, double& dd);
109
110void stripWhiteSpace(std::string& str);
111
112double accuracyFromIndex(int index, t_eph::e_type type);
113
114int indexFromAccuracy(double accuracy, t_eph::e_type type);
115
116#endif
Note: See TracBrowser for help on using the repository browser.