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