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.hipparchus.util.FastMath;
20 import org.orekit.files.rinex.navigation.RinexNavigation;
21 import org.orekit.files.rinex.navigation.RinexNavigationParser;
22 import org.orekit.files.rinex.navigation.parsers.ParseInfo;
23 import org.orekit.propagation.analytical.gnss.data.NavICL1NvNavigationMessage;
24 import org.orekit.utils.units.Unit;
25
26
27
28
29
30
31 public class NavICL1NvParser extends CivilianNavigationParser<NavICL1NvNavigationMessage> {
32
33
34
35
36
37 public NavICL1NvParser(final ParseInfo parseInfo, final NavICL1NvNavigationMessage message) {
38 super(parseInfo, message);
39 }
40
41
42 @Override
43 public void parseLine05() {
44 final ParseInfo parseInfo = getParseInfo();
45 final NavICL1NvNavigationMessage message = getMessage();
46 message.setIDot(parseInfo.parseDouble1(RinexNavigationParser.RAD_PER_S));
47 message.setDeltaN0Dot(parseInfo.parseDouble2(RinexNavigationParser.RAD_PER_S2));
48 message.setReferenceSignalFlag(parseInfo.parseInt4());
49 }
50
51
52 @Override
53 public void parseLine06() {
54 final ParseInfo parseInfo = getParseInfo();
55 final NavICL1NvNavigationMessage message = getMessage();
56 final int uraIndex = parseInfo.parseInt1();
57 message.setSvAccuracy(NavICLnavParser.NAVIC_URA[FastMath.min(uraIndex, NavICLnavParser.NAVIC_URA.length - 1)]);
58 message.setSvHealth(parseInfo.parseInt2());
59 message.setTGD(parseInfo.parseDouble3(Unit.SECOND));
60 message.setTGDSL5(parseInfo.parseDouble4(Unit.SECOND));
61 }
62
63
64 @Override
65 public void parseLine07() {
66 final ParseInfo parseInfo = getParseInfo();
67 final NavICL1NvNavigationMessage message = getMessage();
68 message.setIscSL1P(parseInfo.parseDouble1(Unit.SECOND));
69 message.setIscL1DL1P(parseInfo.parseDouble2(Unit.SECOND));
70 message.setIscL1PS(parseInfo.parseDouble3(Unit.SECOND));
71 message.setIscL1DS(parseInfo.parseDouble4(Unit.SECOND));
72 }
73
74
75 @Override
76 public void parseLine08() {
77 final ParseInfo parseInfo = getParseInfo();
78 final NavICL1NvNavigationMessage message = getMessage();
79 message.setTransmissionTime(parseInfo.parseDouble1(Unit.SECOND));
80 message.setWeek(parseInfo.parseInt2());
81 parseInfo.closePendingRecord();
82 }
83
84
85 @Override
86 public void closeRecord(final RinexNavigation file) {
87 file.addNavICL1NVNavigationMessage(getMessage());
88 }
89
90 }