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.propagation.analytical.gnss.data.BeidouLegacyNavigationMessageFactory;
23 import org.orekit.time.GNSSDate;
24 import org.orekit.utils.units.Unit;
25
26
27
28
29
30
31 public class BeidouD1D2Parser
32 extends AbstractNavigationParser<BeidouLegacyNavigationMessage, BeidouLegacyNavigationMessageFactory> {
33
34
35
36
37
38 public BeidouD1D2Parser(final ParseInfo parseInfo, final BeidouLegacyNavigationMessageFactory factory) {
39 super(parseInfo, factory);
40 }
41
42
43 @Override
44 public void parseLine00() {
45 final ParseInfo parseInfo = getParseInfo();
46 final BeidouLegacyNavigationMessageFactory factory = getFactory();
47 parseSvEpochSvClockLine(parseInfo.getTimeScales().getBDT(), parseInfo, factory);
48 }
49
50
51 @Override
52 public void parseLine01() {
53 super.parseLine01();
54 final BeidouLegacyNavigationMessageFactory factory = getFactory();
55 factory.setAode(getParseInfo().parseInt1());
56 }
57
58
59 @Override
60 public void parseLine06() {
61 final ParseInfo parseInfo = getParseInfo();
62 final BeidouLegacyNavigationMessageFactory factory = getFactory();
63 factory.setSvAccuracy(parseInfo.parseDouble1(Unit.METRE));
64 factory.setSatH1(parseInfo.parseInt2());
65 factory.setTgd1(parseInfo.parseDouble3(Unit.SECOND));
66 factory.setTgd2(parseInfo.parseDouble4(Unit.SECOND));
67 }
68
69
70 @Override
71 public void parseLine07() {
72 final ParseInfo parseInfo = getParseInfo();
73 final BeidouLegacyNavigationMessageFactory factory = getFactory();
74 factory.setTransmissionTime(new GNSSDate(factory.getTimeOfEphemeris().getWeekNumber(),
75 parseInfo.parseDouble1(Unit.SECOND),
76 factory.getSystem()));
77 factory.setAodc(parseInfo.parseInt2());
78 parseInfo.closePendingRecord();
79 }
80
81
82 @Override
83 public void closeRecord(final RinexNavigation file) {
84 file.addBeidouLegacyNavigationMessage(getMessage());
85 }
86
87 }