source: ntrip/trunk/BNC/src/bncclockrinex.cpp @ 8483

Last change on this file since 8483 was 8483, checked in by stuerze, 11 months ago

SSR parameter clock rate, clock drift and URA are added within RTNET format

File size: 3.9 KB
Line 
1
2/* -------------------------------------------------------------------------
3 * BKG NTRIP Server
4 * -------------------------------------------------------------------------
5 *
6 * Class:      bncClockRinex
7 *
8 * Purpose:    writes RINEX Clock files
9 *
10 * Author:     L. Mervart
11 *
12 * Created:    29-Mar-2011
13 *
14 * Changes:
15 *
16 * -----------------------------------------------------------------------*/
17
18#include <math.h>
19#include <iomanip>
20
21#include "bncclockrinex.h"
22#include "bncsettings.h"
23#include "bncversion.h"
24
25using namespace std;
26
27// Constructor
28////////////////////////////////////////////////////////////////////////////
29bncClockRinex::bncClockRinex(const QString& sklFileName, const QString& intr,
30                             int sampl)
31  : bncoutf(sklFileName, intr, sampl) {
32  bncSettings settings;
33}
34
35// Destructor
36////////////////////////////////////////////////////////////////////////////
37bncClockRinex::~bncClockRinex() {
38}
39
40// Write One Epoch
41////////////////////////////////////////////////////////////////////////////
42t_irc bncClockRinex::write(int GPSweek, double GPSweeks, const QString& prn,
43                           double clkRnx, double clkRnxRate, double clkRnxAcc,
44                           double clkRnxSig, double clkRnxRateSig, double clkRnxAccSig) {
45
46  if (reopen(GPSweek, GPSweeks) == success) {
47
48      QDateTime datTim = dateAndTimeFromGPSweek(GPSweek, GPSweeks);
49      double sec = fmod(GPSweeks, 60.0);
50
51      int numValues = 1;
52      if (clkRnxSig && clkRnxRate && clkRnxRateSig) {
53        numValues += 3;
54      }
55      if (clkRnxAcc && clkRnxAccSig) {
56        numValues += 2;
57      }
58
59      _out << "AS " << prn.toLatin1().data()
60           << datTim.toString("  yyyy MM dd hh mm").toLatin1().data()
61           << fixed      << setw(10) << setprecision(6)  << sec
62           << "  " << numValues << "   "
63           << fortranFormat(clkRnx, 19, 12).toLatin1().data();
64
65      if (numValues >=2) {
66        _out << " " << fortranFormat(clkRnxSig, 19, 12).toLatin1().data() << endl;
67      }
68      if (numValues == 4) {
69        _out << fortranFormat(clkRnxRate, 19, 12).toLatin1().data() << " ";
70        _out << fortranFormat(clkRnxRateSig, 19, 12).toLatin1().data() << " ";
71      }
72      if (numValues == 6) {
73        _out << fortranFormat(clkRnxAcc, 19, 12).toLatin1().data() << " ";
74        _out << " " << fortranFormat(clkRnxAccSig, 19, 12).toLatin1().data();
75      }
76      _out << endl;
77
78    return success;
79  }
80  else {
81    return failure;
82  }
83}
84
85// Write Header
86////////////////////////////////////////////////////////////////////////////
87void bncClockRinex::writeHeader(const QDateTime& datTim) {
88
89  _out << "     3.00           C                                       "
90       << "RINEX VERSION / TYPE" << endl;
91
92
93  _out << "BNC v" << BNCVERSION     << "                               "
94       << datTim.toString("yyyyMMdd hhmmss").leftJustified(20, ' ', true).toLatin1().data()
95       << "PGM / RUN BY / DATE" << endl;
96
97  _out << "     1    AS                                                "
98       << "# / TYPES OF DATA" << endl;
99
100  _out << "unknown                                                     "
101       << "ANALYSIS CENTER" << endl;
102
103  _out << "    54                                                      "
104       << "# OF SOLN SATS" << endl;
105
106  _out << "G01 G02 G03 G04 G05 G06 G07 G08 G09 G10 G11 G12 G13 G14 G15 "
107       << "PRN LIST" << endl;
108
109  _out << "G16 G17 G18 G19 G20 G21 G22 G23 G25 G26 G27 G28 G29 G30 G31 "
110       << "PRN LIST" << endl;
111
112  _out << "G32 R01 R02 R03 R05 R06 R07 R08 R09 R10 R11 R12 R13 R14 R15 "
113       << "PRN LIST" << endl;
114
115  _out << "R16 R17 R18 R19 R20 R21 R22 R23 R24                         "
116       << "PRN LIST" << endl;
117
118  _out << "     0    IGS14                                             "
119       << "# OF SOLN STA / TRF" << endl;
120
121  _out << "                                                            "
122       << "END OF HEADER" << endl;
123}
124
Note: See TracBrowser for help on using the repository browser.