1 /* Copyright 2002-2025 CS GROUP
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.propagation.analytical.gnss.data;
18
19 import org.orekit.time.AbsoluteDate;
20 import org.orekit.time.TimeStamped;
21
22 /**
23 * Base class for ephemeris-based navigation messages.
24 * @author Bryan Cazabonne
25 * @since 11.0
26 *
27 * @see GLONASSFdmaNavigationMessage
28 * @see SBASNavigationMessage
29 */
30 public abstract class AbstractEphemerisMessage implements TimeStamped, NavigationMessage {
31
32 /** Ephemeris reference epoch. */
33 private AbsoluteDate date;
34
35 /** Time of clock epoch. */
36 private AbsoluteDate epochToc;
37
38 /** PRN number of the satellite. */
39 private int prn;
40
41 /** Satellite X position in meters. */
42 private double x;
43
44 /** Satellite X velocity in meters per second. */
45 private double xDot;
46
47 /** Satellite X acceleration in meters per second². */
48 private double xDotDot;
49
50 /** Satellite Y position in meters. */
51 private double y;
52
53 /** Satellite Y velocity in meters per second. */
54 private double yDot;
55
56 /** Satellite Y acceleration in meters per second². */
57 private double yDotDot;
58
59 /** Satellite Z position in meters. */
60 private double z;
61
62 /** Satellite Z velocity in meters per second. */
63 private double zDot;
64
65 /** Satellite Z acceleration in meters per second². */
66 private double zDotDot;
67
68 /** Health status. */
69 private double health;
70
71 /** Constructor. */
72 protected AbstractEphemerisMessage() {
73 // Nothing to do ...
74 }
75
76 /**
77 * Getter for the reference date of the ephemeris.
78 * @return the reference date of the ephemeris
79 */
80 public AbsoluteDate getDate() {
81 return date;
82 }
83
84 /**
85 * Setter for the reference date of the ephemeris.
86 * @param date the date to set
87 */
88 public void setDate(final AbsoluteDate date) {
89 this.date = date;
90 }
91
92 /**
93 * Getter for the time of clock epoch.
94 * @return the time of clock epoch
95 */
96 public AbsoluteDate getEpochToc() {
97 return epochToc;
98 }
99
100 /**
101 * Setter for the time of clock epoch.
102 * @param epochToc the epoch to set
103 */
104 public void setEpochToc(final AbsoluteDate epochToc) {
105 this.epochToc = epochToc;
106 }
107
108 /**
109 * Getter for the PRN number of the satellite.
110 * @return the PRN number of the satellite
111 */
112 public int getPRN() {
113 return prn;
114 }
115
116 /**
117 * Setter for the PRN number of the satellite.
118 * @param number the prn number ot set
119 */
120 public void setPRN(final int number) {
121 this.prn = number;
122 }
123
124 /**
125 * Getter for the satellite X position.
126 * @return the satellite X position in meters
127 */
128 public double getX() {
129 return x;
130 }
131
132 /**
133 * Setter for the satellite X position.
134 * @param x satellite X position (meters) to set
135 */
136 public void setX(final double x) {
137 this.x = x;
138 }
139
140 /**
141 * Getter for the satellite X velocity.
142 * @return the satellite X velocity in m/s
143 */
144 public double getXDot() {
145 return xDot;
146 }
147
148 /**
149 * Setter for the satellite X velocity.
150 * @param vx the satellite X velocity (m/s) to set
151 */
152 public void setXDot(final double vx) {
153 this.xDot = vx;
154 }
155
156 /**
157 * Getter for the satellite X acceleration.
158 * @return the satellite X acceleration in m/s²
159 */
160 public double getXDotDot() {
161 return xDotDot;
162 }
163
164 /**
165 * Setter for the satellite X acceleration.
166 * @param ax the satellite X acceleration (m/s²) to set
167 */
168 public void setXDotDot(final double ax) {
169 this.xDotDot = ax;
170 }
171
172 /**
173 * Getter for the satellite Y position.
174 * @return the satellite Y position in meters
175 */
176 public double getY() {
177 return y;
178 }
179
180 /**
181 * Setter for the satellite Y position.
182 * @param y satellite Y position (meters) to set
183 */
184 public void setY(final double y) {
185 this.y = y;
186 }
187
188 /**
189 * Getter for the satellite Y velocity.
190 * @return the satellite Y velocity in m/s
191 */
192 public double getYDot() {
193 return yDot;
194 }
195
196 /**
197 * Setter for the satellite Y velocity.
198 * @param vy the satellite Y velocity (m/s) to set
199 */
200 public void setYDot(final double vy) {
201 this.yDot = vy;
202 }
203
204 /**
205 * Getter for the satellite Y acceleration.
206 * @return the satellite Y acceleration in m/s²
207 */
208 public double getYDotDot() {
209 return yDotDot;
210 }
211
212 /**
213 * Setter for the satellite Y acceleration.
214 * @param ay the satellite Y acceleration (m/s²) to set
215 */
216 public void setYDotDot(final double ay) {
217 this.yDotDot = ay;
218 }
219
220 /**
221 * Getter for the satellite Z position.
222 * @return the satellite Z position in meters
223 */
224 public double getZ() {
225 return z;
226 }
227
228 /**
229 * Setter for the satellite Z position.
230 * @param z satellite Z position (meters) to set
231 */
232 public void setZ(final double z) {
233 this.z = z;
234 }
235
236 /**
237 * Getter for the satellite Z velocity.
238 * @return the satellite Z velocity in m/s
239 */
240 public double getZDot() {
241 return zDot;
242 }
243
244 /**
245 * Setter for the satellite Z velocity.
246 * @param vz the satellite Z velocity (m/s) to set
247 */
248 public void setZDot(final double vz) {
249 this.zDot = vz;
250 }
251
252 /**
253 * Getter for the satellite Z acceleration.
254 * @return the satellite Z acceleration in m/s²
255 */
256 public double getZDotDot() {
257 return zDotDot;
258 }
259
260 /**
261 * Setter for the satellite Z acceleration.
262 * @param az the satellite Z acceleration (m/s²) to set
263 */
264 public void setZDotDot(final double az) {
265 this.zDotDot = az;
266 }
267
268 /**
269 * Getter for the health status.
270 * @return the health status
271 */
272 public double getHealth() {
273 return health;
274 }
275
276 /**
277 * Setter for the health status.
278 * @param health the health status to set
279 */
280 public void setHealth(final double health) {
281 this.health = health;
282 }
283
284 }