AbstractEphemerisMessage.java

  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. import org.orekit.time.AbsoluteDate;

  19. /**
  20.  * Base class for ephemeris-based navigation messages.
  21.  * @author Bryan Cazabonne
  22.  * @since 11.0
  23.  *
  24.  * @see GLONASSNavigationMessage
  25.  * @see SBASNavigationMessage
  26.  */
  27. public abstract class AbstractEphemerisMessage {

  28.     /** Ephemeris reference epoch. */
  29.     private AbsoluteDate date;

  30.     /** Time of clock epoch. */
  31.     private AbsoluteDate epochToc;

  32.     /** PRN number of the satellite. */
  33.     private int prn;

  34.     /** Satellite X position in meters. */
  35.     private double x;

  36.     /** Satellite X velocity in meters per second. */
  37.     private double xDot;

  38.     /** Satellite X acceleration in meters per second². */
  39.     private double xDotDot;

  40.     /** Satellite Y position in meters. */
  41.     private double y;

  42.     /** Satellite Y velocity in meters per second. */
  43.     private double yDot;

  44.     /** Satellite Y acceleration in meters per second². */
  45.     private double yDotDot;

  46.     /** Satellite Z position in meters. */
  47.     private double z;

  48.     /** Satellite Z velocity in meters per second. */
  49.     private double zDot;

  50.     /** Satellite Z acceleration in meters per second². */
  51.     private double zDotDot;

  52.     /** Health status. */
  53.     private double health;

  54.     /** Constructor. */
  55.     public AbstractEphemerisMessage() {
  56.         // Nothing to do ...
  57.     }

  58.     /**
  59.      * Getter for the reference date of the ephemeris.
  60.      * @return the reference date of the ephemeris
  61.      */
  62.     public AbsoluteDate getDate() {
  63.         return date;
  64.     }

  65.     /**
  66.      * Setter for the reference date of the ephemeris.
  67.      * @param date the date to set
  68.      */
  69.     public void setDate(final AbsoluteDate date) {
  70.         this.date = date;
  71.     }

  72.     /**
  73.      * Getter for the time of clock epoch.
  74.      * @return the time of clock epoch
  75.      */
  76.     public AbsoluteDate getEpochToc() {
  77.         return epochToc;
  78.     }

  79.     /**
  80.      * Setter for the time of clock epoch.
  81.      * @param epochToc the epoch to set
  82.      */
  83.     public void setEpochToc(final AbsoluteDate epochToc) {
  84.         this.epochToc = epochToc;
  85.     }

  86.     /**
  87.      * Getter for the PRN number of the satellite.
  88.      * @return the PRN number of the satellite
  89.      */
  90.     public int getPRN() {
  91.         return prn;
  92.     }

  93.     /**
  94.      * Setter for the PRN number of the satellite.
  95.      * @param number the prn number ot set
  96.      */
  97.     public void setPRN(final int number) {
  98.         this.prn = number;
  99.     }

  100.     /**
  101.      * Getter for the satellite X position.
  102.      * @return the satellite X position in meters
  103.      */
  104.     public double getX() {
  105.         return x;
  106.     }

  107.     /**
  108.      * Setter for the satellite X position.
  109.      * @param x satellite X position (meters) to set
  110.      */
  111.     public void setX(final double x) {
  112.         this.x = x;
  113.     }

  114.     /**
  115.      * Getter for the satellite X velocity.
  116.      * @return the satellite X velocity in m/s
  117.      */
  118.     public double getXDot() {
  119.         return xDot;
  120.     }

  121.     /**
  122.      * Setter for the satellite X velocity.
  123.      * @param vx the satellite X velocity (m/s) to set
  124.      */
  125.     public void setXDot(final double vx) {
  126.         this.xDot = vx;
  127.     }

  128.     /**
  129.      * Getter for the satellite X acceleration.
  130.      * @return the satellite X acceleration in m/s²
  131.      */
  132.     public double getXDotDot() {
  133.         return xDotDot;
  134.     }

  135.     /**
  136.      * Setter for the satellite X acceleration.
  137.      * @param ax the satellite X acceleration (m/s²) to set
  138.      */
  139.     public void setXDotDot(final double ax) {
  140.         this.xDotDot = ax;
  141.     }

  142.     /**
  143.      * Getter for the satellite Y position.
  144.      * @return the satellite Y position in meters
  145.      */
  146.     public double getY() {
  147.         return y;
  148.     }

  149.     /**
  150.      * Setter for the satellite Y position.
  151.      * @param y satellite Y position (meters) to set
  152.      */
  153.     public void setY(final double y) {
  154.         this.y = y;
  155.     }

  156.     /**
  157.      * Getter for the satellite Y velocity.
  158.      * @return the satellite Y velocity in m/s
  159.      */
  160.     public double getYDot() {
  161.         return yDot;
  162.     }

  163.     /**
  164.      * Setter for the satellite Y velocity.
  165.      * @param vy the satellite Y velocity (m/s) to set
  166.      */
  167.     public void setYDot(final double vy) {
  168.         this.yDot = vy;
  169.     }

  170.     /**
  171.      * Getter for the satellite Y acceleration.
  172.      * @return the satellite Y acceleration in m/s²
  173.      */
  174.     public double getYDotDot() {
  175.         return yDotDot;
  176.     }

  177.     /**
  178.      * Setter for the satellite Y acceleration.
  179.      * @param ay the satellite Y acceleration (m/s²) to set
  180.      */
  181.     public void setYDotDot(final double ay) {
  182.         this.yDotDot = ay;
  183.     }

  184.     /**
  185.      * Getter for the satellite Z position.
  186.      * @return the satellite Z position in meters
  187.      */
  188.     public double getZ() {
  189.         return z;
  190.     }

  191.     /**
  192.      * Setter for the satellite Z position.
  193.      * @param z satellite Z position (meters) to set
  194.      */
  195.     public void setZ(final double z) {
  196.         this.z = z;
  197.     }

  198.     /**
  199.      * Getter for the satellite Z velocity.
  200.      * @return the satellite Z velocity in m/s
  201.      */
  202.     public double getZDot() {
  203.         return zDot;
  204.     }

  205.     /**
  206.      * Setter for the satellite Z velocity.
  207.      * @param vz the satellite Z velocity (m/s) to set
  208.      */
  209.     public void setZDot(final double vz) {
  210.         this.zDot = vz;
  211.     }

  212.     /**
  213.      * Getter for the satellite Z acceleration.
  214.      * @return the satellite Z acceleration in m/s²
  215.      */
  216.     public double getZDotDot() {
  217.         return zDotDot;
  218.     }

  219.     /**
  220.      * Setter for the satellite Z acceleration.
  221.      * @param az the satellite Z acceleration (m/s²) to set
  222.      */
  223.     public void setZDotDot(final double az) {
  224.         this.zDotDot = az;
  225.     }

  226.     /**
  227.      * Getter for the health status.
  228.      * @return the health status
  229.      */
  230.     public double getHealth() {
  231.         return health;
  232.     }

  233.     /**
  234.      * Setter for the health status.
  235.      * @param health the health status to set
  236.      */
  237.     public void setHealth(final double health) {
  238.         this.health = health;
  239.     }

  240. }