1 /* Copyright 2022-2025 Luc Maisonobe
2 * Licensed to CS GROUP (CS) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * CS licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package org.orekit.files.rinex.navigation;
18
19 import org.orekit.gnss.SatelliteSystem;
20 import org.orekit.time.AbsoluteDate;
21
22 /** Container for data contained in a Earth Orientation Parameter navigation message.
23 * @author Luc Maisonobe
24 * @since 12.0
25 */
26 public class EarthOrientationParameterMessage extends TypeSvMessage {
27
28 /** Reference epoch. */
29 private AbsoluteDate referenceEpoch;
30
31 /** X component of the pole (rad). */
32 private double xp;
33
34 /** X component of the pole first derivative (rad/s). */
35 private double xpDot;
36
37 /** X component of the pole second derivative (rad/s²). */
38 private double xpDotDot;
39
40 /** Y component of the pole (rad). */
41 private double yp;
42
43 /** Y component of the pole first derivative (rad/s). */
44 private double ypDot;
45
46 /** Y component of the pole second derivative (rad/s²). */
47 private double ypDotDot;
48
49 /** ΔUT₁ (s).
50 * According to Rinex 4.00 table A31, this may be either UT₁-UTC or UT₁-GPST
51 * depending on constellation and applicable Interface Control Document).
52 */
53 private double dUt1;
54
55 /** ΔUT₁ first derivative (s/s). */
56 private double dUt1Dot;
57
58 /** ΔUT₁ second derivative (s/s²). */
59 private double dUt1DotDot;
60
61 /** Transmission time. */
62 private double transmissionTime;
63
64 /** Simple constructor.
65 * @param system satellite system
66 * @param prn satellite number
67 * @param navigationMessageType navigation message type
68 */
69 public EarthOrientationParameterMessage(final SatelliteSystem system, final int prn, final String navigationMessageType) {
70 super(system, prn, navigationMessageType);
71 }
72
73 /** Get the reference epoch.
74 * @return the reference epoch
75 */
76 public AbsoluteDate getReferenceEpoch() {
77 return referenceEpoch;
78 }
79
80 /** Set the reference epoch.
81 * @param referenceEpoch the reference epoch to set
82 */
83 public void setReferenceEpoch(final AbsoluteDate referenceEpoch) {
84 this.referenceEpoch = referenceEpoch;
85 }
86
87 /** Get the X component of the pole.
88 * @return the X component of the pole (rad)
89 */
90 public double getXp() {
91 return xp;
92 }
93
94 /** Set the X component of the pole.
95 * @param xp X component of the pole (rad)
96 */
97 public void setXp(final double xp) {
98 this.xp = xp;
99 }
100
101 /** Get the X component of the pole first derivative.
102 * @return the X component of the pole first derivative (rad/s)
103 */
104 public double getXpDot() {
105 return xpDot;
106 }
107
108 /** Set the X component of the pole first derivative.
109 * @param xpDot X component of the pole first derivative (rad/s)
110 */
111 public void setXpDot(final double xpDot) {
112 this.xpDot = xpDot;
113 }
114
115 /** Get the X component of the pole second derivative.
116 * @return the X component of the pole second derivative (rad/s²)
117 */
118 public double getXpDotDot() {
119 return xpDotDot;
120 }
121
122 /** Set the X component of the pole second derivative.
123 * @param xpDotDot X component of the pole second derivative (rad/s²)
124 */
125 public void setXpDotDot(final double xpDotDot) {
126 this.xpDotDot = xpDotDot;
127 }
128
129 /** Get the Y component of the pole.
130 * @return the Y component of the pole (rad)
131 */
132 public double getYp() {
133 return yp;
134 }
135
136 /** Set the Y component of the pole.
137 * @param yp Y component of the pole (rad)
138 */
139 public void setYp(final double yp) {
140 this.yp = yp;
141 }
142
143 /** Get the Y component of the pole first derivative.
144 * @return the Y component of the pole first derivative (rad/s)
145 */
146 public double getYpDot() {
147 return ypDot;
148 }
149
150 /** Set the Y component of the pole first derivative.
151 * @param ypDot Y component of the pole first derivative (rad/s)
152 */
153 public void setYpDot(final double ypDot) {
154 this.ypDot = ypDot;
155 }
156
157 /** Get the Y component of the pole second derivative.
158 * @return the Y component of the pole second derivative (rad/s²)
159 */
160 public double getYpDotDot() {
161 return ypDotDot;
162 }
163
164 /** Set the Y component of the pole second derivative.
165 * @param ypDotDot Y component of the pole second derivative (rad/s²)
166 */
167 public void setYpDotDot(final double ypDotDot) {
168 this.ypDotDot = ypDotDot;
169 }
170
171 /** Get the ΔUT₁.
172 * @return the ΔUT₁ (s)
173 */
174 public double getDut1() {
175 return dUt1;
176 }
177
178 /** Set the ΔUT₁.
179 * @param dUT1 ΔUT₁ (s)
180 */
181 public void setDut1(final double dUT1) {
182 this.dUt1 = dUT1;
183 }
184
185 /** Get the ΔUT₁ first derivative.
186 * @return the ΔUT₁ first derivative (s/s)
187 */
188 public double getDut1Dot() {
189 return dUt1Dot;
190 }
191
192 /** Set the ΔUT₁ first derivative.
193 * @param dUT1Dot ΔUT₁ first derivative (s/s)
194 */
195 public void setDut1Dot(final double dUT1Dot) {
196 this.dUt1Dot = dUT1Dot;
197 }
198
199 /** Get the ΔUT₁ second derivative.
200 * @return the ΔUT₁ second derivative (s/s²)
201 */
202 public double getDut1DotDot() {
203 return dUt1DotDot;
204 }
205
206 /** Set the ΔUT₁ second derivative.
207 * @param dUT1DotDot ΔUT₁ second derivative (s/s²)
208 */
209 public void setDut1DotDot(final double dUT1DotDot) {
210 this.dUt1DotDot = dUT1DotDot;
211 }
212
213 /** Get the message transmission time.
214 * @return message transmission time
215 */
216 public double getTransmissionTime() {
217 return transmissionTime;
218 }
219
220 /** Set the message transmission time.
221 * @param transmissionTime the message transmission time
222 */
223 public void setTransmissionTime(final double transmissionTime) {
224 this.transmissionTime = transmissionTime;
225 }
226
227 }