source: ntrip/trunk/BNC/RTCM/RTCM2Decoder.cpp@ 242

Last change on this file since 242 was 242, checked in by mervart, 18 years ago

* empty log message *

File size: 1.5 KB
Line 
1//------------------------------------------------------------------------------
2//
3// RTCM2Decoder.cpp
4//
5//------------------------------------------------------------------------------
6
7#include "../bncutils.h"
8#include "GPSDecoder.h"
9#include "RTCM2.h"
10
11using namespace std;
12
13//
14// Constructor
15//
16
17RTCM2Decoder::RTCM2Decoder() {
18
19}
20
21//
22// Destructor
23//
24
25RTCM2Decoder::~RTCM2Decoder() {
26
27}
28
29//
30//
31//
32
33void RTCM2Decoder::Decode(char* buffer, int bufLen) {
34
35 _buffer.append(buffer, bufLen);
36 int refWeek;
37 double refSecs;
38 currentGPSWeeks(refWeek, refSecs);
39
40 while(true) {
41 _PP.getPacket(_buffer);
42 if (!_PP.valid()) {
43 return;
44 }
45
46 if ( _PP.ID()==18 || _PP.ID()==19 ) {
47
48 _ObsBlock.extract(_PP);
49
50 if (_ObsBlock.valid()) {
51
52 int epochWeek;
53 double epochSecs;
54 _ObsBlock.resolveEpoch(refWeek, refSecs, epochWeek, epochSecs);
55
56 for (int iSat=0; iSat < _ObsBlock.nSat; iSat++) {
57 Observation* obs = new Observation();
58
59 obs->SVPRN = _ObsBlock.PRN[iSat];
60 obs->GPSWeek = epochWeek;
61 obs->GPSWeeks = epochSecs;
62 obs->C1 = _ObsBlock.rng_C1[iSat];
63 obs->P1 = _ObsBlock.rng_P1[iSat];
64 obs->P2 = _ObsBlock.rng_P2[iSat];
65 obs->L1 = _ObsBlock.resolvedPhase_L1(iSat);
66 obs->L2 = _ObsBlock.resolvedPhase_L2(iSat);
67
68 _obsList.push_back(obs);
69 }
70 _ObsBlock.clear();
71 }
72 }
73 }
74}
75
Note: See TracBrowser for help on using the repository browser.