1   /* Copyright 2002-2024 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  /**
20   * Container for data contained in an IRNSS navigation message.
21   * @author Bryan Cazabonne
22   * @since 11.0
23   */
24  public class IRNSSNavigationMessage extends AbstractNavigationMessage  {
25  
26      /** Issue of Data, Ephemeris and Clock. */
27      private int iodec;
28  
29      /** Group Delay Differential (s). */
30      private double tgd;
31  
32      /** User range accuracy (m). */
33      private double ura;
34  
35      /** Satellite health status. */
36      private double svHealth;
37  
38      /** Constructor. */
39      public IRNSSNavigationMessage() {
40          super(GNSSConstants.IRNSS_MU, GNSSConstants.IRNSS_AV, GNSSConstants.IRNSS_WEEK_NB);
41      }
42  
43      /**
44       * Getter for the Issue Of Data Ephemeris and Clock (IODEC).
45       * @return the Issue Of Data Ephemeris and Clock (IODEC)
46       */
47      public int getIODEC() {
48          return iodec;
49      }
50  
51      /**
52       * Setter for the Issue of Data, Ephemeris and Clock.
53       * @param value the IODEC to set
54       */
55      public void setIODEC(final double value) {
56          // The value is given as a floating number in the navigation message
57          this.iodec = (int) value;
58      }
59  
60      /**
61       * Getter for the estimated group delay differential TGD for L5-S correction.
62       * @return the estimated group delay differential TGD for L5-S correction (s)
63       */
64      public double getTGD() {
65          return tgd;
66      }
67  
68      /**
69       * Setter for the Group Delay Differential (s).
70       * @param time the group delay differential to set
71       */
72      public void setTGD(final double time) {
73          this.tgd = time;
74      }
75  
76      /**
77       * Getter for the user range accuray (meters).
78       * @return the user range accuracy
79       */
80      public double getURA() {
81          return ura;
82      }
83  
84      /**
85       * Setter for the user range accuracy.
86       * @param accuracy the value to set
87       */
88      public void setURA(final double accuracy) {
89          this.ura = accuracy;
90      }
91  
92      /**
93       * Getter for the satellite health status.
94       * @return the satellite health status
95       */
96      public double getSvHealth() {
97          return svHealth;
98      }
99  
100     /**
101      * Setter for the satellite health status.
102      * @param svHealth the value to set
103      */
104     public void setSvHealth(final double svHealth) {
105         this.svHealth = svHealth;
106     }
107 
108 }