1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.rinex.navigation.parsers;
18
19 import org.orekit.files.rinex.navigation.EarthOrientationParameterMessage;
20 import org.orekit.files.rinex.navigation.RinexNavigation;
21 import org.orekit.files.rinex.navigation.RinexNavigationParser;
22 import org.orekit.utils.units.Unit;
23
24
25
26
27
28 public class EarthOrientationParameterParser
29 extends RecordLineParser {
30
31
32 private final ParseInfo parseInfo;
33
34
35 private final EarthOrientationParameterMessage message;
36
37
38
39
40
41 public EarthOrientationParameterParser(final ParseInfo parseInfo, final EarthOrientationParameterMessage message) {
42 this.parseInfo = parseInfo;
43 this.message = message;
44 }
45
46
47 @Override
48 public void parseLine00() {
49 message.setReferenceEpoch(parseInfo.parseDate(message.getSystem()));
50 message.setXp(parseInfo.parseDouble2(Unit.ARC_SECOND));
51 message.setXpDot(parseInfo.parseDouble3(RinexNavigationParser.AS_PER_DAY));
52 message.setXpDotDot(parseInfo.parseDouble4(RinexNavigationParser.AS_PER_DAY2));
53 }
54
55
56 @Override
57 public void parseLine01() {
58 message.setYp(parseInfo.parseDouble2(Unit.ARC_SECOND));
59 message.setYpDot(parseInfo.parseDouble3(RinexNavigationParser.AS_PER_DAY));
60 message.setYpDotDot(parseInfo.parseDouble4(RinexNavigationParser.AS_PER_DAY2));
61 }
62
63
64 @Override
65 public void parseLine02() {
66 message.setTransmissionTime(parseInfo.parseDouble1(Unit.SECOND));
67 message.setDut1(parseInfo.parseDouble2(Unit.SECOND));
68 message.setDut1Dot(parseInfo.parseDouble3(RinexNavigationParser.S_PER_DAY));
69 message.setDut1DotDot(parseInfo.parseDouble4(RinexNavigationParser.S_PER_DAY2));
70 parseInfo.closePendingRecord();
71 }
72
73
74 @Override
75 public void closeRecord(final RinexNavigation file) {
76 file.addEarthOrientationParameter(message);
77 }
78
79 }