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 }