1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.rinex.navigation.parsers.ephemeris;
18
19 import org.orekit.files.rinex.navigation.RinexNavigation;
20 import org.orekit.files.rinex.navigation.parsers.ParseInfo;
21 import org.orekit.propagation.analytical.gnss.data.BeidouLegacyNavigationMessage;
22 import org.orekit.utils.units.Unit;
23
24
25
26
27
28
29 public class BeidouD1D2Parser extends AbstractNavigationParser<BeidouLegacyNavigationMessage> {
30
31
32
33
34
35 public BeidouD1D2Parser(final ParseInfo parseInfo, final BeidouLegacyNavigationMessage message) {
36 super(parseInfo, message);
37 }
38
39
40 @Override
41 public void parseLine00() {
42 final ParseInfo parseInfo = getParseInfo();
43 final BeidouLegacyNavigationMessage message = getMessage();
44 parseSvEpochSvClockLine(parseInfo.getTimeScales().getBDT(), parseInfo, message);
45 }
46
47
48 @Override
49 public void parseLine01() {
50 super.parseLine01();
51 getMessage().setAODE(getParseInfo().parseDouble1(Unit.SECOND));
52 }
53
54
55 @Override
56 public void parseLine06() {
57 final ParseInfo parseInfo = getParseInfo();
58 final BeidouLegacyNavigationMessage message = getMessage();
59 message.setSvAccuracy(parseInfo.parseDouble1(Unit.METRE));
60 message.setSatH1(parseInfo.parseInt2());
61 message.setTGD1(parseInfo.parseDouble3(Unit.SECOND));
62 message.setTGD2(parseInfo.parseDouble4(Unit.SECOND));
63 }
64
65
66 @Override
67 public void parseLine07() {
68 final ParseInfo parseInfo = getParseInfo();
69 final BeidouLegacyNavigationMessage message = getMessage();
70 message.setTransmissionTime(parseInfo.parseDouble1(Unit.SECOND));
71 message.setAODC(parseInfo.parseDouble2(Unit.SECOND));
72 parseInfo.closePendingRecord();
73 }
74
75
76 @Override
77 public void closeRecord(final RinexNavigation file) {
78 file.addBeidouLegacyNavigationMessage(getMessage());
79 }
80
81 }