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.GalileoNavigationMessage;
22 import org.orekit.utils.units.Unit;
23
24
25
26
27
28
29 public class GalileoParser extends AbstractNavigationParser<GalileoNavigationMessage> {
30
31
32
33
34
35 public GalileoParser(final ParseInfo parseInfo, final GalileoNavigationMessage message) {
36 super(parseInfo, message);
37 }
38
39
40 @Override
41 public void parseLine00() {
42 final ParseInfo parseInfo = getParseInfo();
43 final GalileoNavigationMessage message = getMessage();
44 parseSvEpochSvClockLine(parseInfo.getTimeScales().getGPS(), parseInfo, message);
45 }
46
47
48 @Override
49 public void parseLine01() {
50 super.parseLine01();
51 getMessage().setIODNav(getParseInfo().parseInt1());
52 }
53
54
55 @Override
56 public void parseLine05() {
57 super.parseLine05();
58 getMessage().setDataSource(getParseInfo().parseInt2());
59 }
60
61
62 @Override
63 public void parseLine06() {
64 final ParseInfo parseInfo = getParseInfo();
65 final GalileoNavigationMessage message = getMessage();
66 message.setSisa(parseInfo.parseDouble1(Unit.METRE));
67 message.setSvHealth(parseInfo.parseDouble2(Unit.NONE));
68 message.setBGDE1E5a(parseInfo.parseDouble3(Unit.SECOND));
69 message.setBGDE5bE1(parseInfo.parseDouble4(Unit.SECOND));
70 }
71
72
73 @Override
74 public void parseLine07() {
75 final ParseInfo parseInfo = getParseInfo();
76 final GalileoNavigationMessage message = getMessage();
77 message.setTransmissionTime(parseInfo.parseDouble1(Unit.SECOND));
78 parseInfo.closePendingRecord();
79 }
80
81
82 @Override
83 public void closeRecord(final RinexNavigation file) {
84 file.addGalileoNavigationMessage(getMessage());
85 }
86
87 }