1   /* Copyright 2002-2021 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 a SBAS navigation message.
21   * @author Bryan Cazabonne
22   * @since 11.0
23   */
24  public class SBASNavigationMessage extends AbstractEphemerisMessage implements SBASOrbitalElements {
25  
26      /** Transmission time  of  message  (start  of  the message) in GPS seconds of the week. */
27      private double time;
28  
29      /** SV clock bias (s). */
30      private double aGf0;
31  
32      /** SV relative frequency. */
33      private double aGf1;
34  
35      /** User range accuracy (m). */
36      private double ura;
37  
38      /** Issue of data navigation (IODN). */
39      private int iodn;
40  
41      /** Constructor. */
42      public SBASNavigationMessage() {
43          // Nothing to do ...
44      }
45  
46      /** {@inheritDoc} */
47      @Override
48      public int getWeek() {
49          // No provided by the SBAS navigation message
50          return 0;
51      }
52  
53      /** {@inheritDoc} */
54      @Override
55      public double getTime() {
56          return time;
57      }
58  
59      /**
60       * Setter for the reference time of the SBAS orbit in GPS seconds of the week.
61       * @param time the time to set
62       */
63      public void setTime(final double time) {
64          this.time = time;
65      }
66  
67      /** {@inheritDoc} */
68      @Override
69      public int getIODN() {
70          return iodn;
71      }
72  
73      /**
74       * Setter for the issue of data navigation.
75       * @param iod the issue of data to set
76       */
77      public void setIODN(final double iod) {
78          // The value is given as a floating number in the navigation message
79          this.iodn = (int) iod;
80      }
81  
82  
83      /** {@inheritDoc} */
84      @Override
85      public double getAGf0() {
86          return aGf0;
87      }
88  
89      /**
90       * Setter for the SV clock bias.
91       * @param a0 the SV clock bias to set in seconds
92       */
93      public void setAGf0(final double a0) {
94          this.aGf0 = a0;
95      }
96  
97      /** {@inheritDoc} */
98      @Override
99      public double getAGf1() {
100         return aGf1;
101     }
102 
103     /**
104      * Setter for the SV relative frequency.
105      * @param a1 the SV relative frequency to set
106      */
107     public void setAGf1(final double a1) {
108         this.aGf1 = a1;
109     }
110 
111 
112     /**
113      * Getter for the user range accuray (meters).
114      * @return the user range accuracy
115      */
116     public double getURA() {
117         return ura;
118     }
119 
120     /**
121      * Setter for the user range accuracy.
122      * @param accuracy the value to set
123      */
124     public void setURA(final double accuracy) {
125         this.ura = accuracy;
126     }
127 
128 }