1 /* Copyright 2022-2026 Thales Alenia Space
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
18 package org.orekit.gnss.metric.messages.rtcm.msm;
19
20 import org.orekit.gnss.SatInSystem;
21
22 /**
23 * Container for RTCM MSM satellite-specific data fields.
24 * @author Nathan Schiffmacher
25 * @since 14.0
26 */
27 public class RtcmMsmSatelliteData {
28
29 /** Satellite the data refers to. */
30 private SatInSystem satellite;
31
32 /** DF397: GNSS Satellite rough ranges (truncated to milliseconds), expressed in seconds. Null if not present. */
33 private double intMillisRoughRange;
34
35 /** DF398: GNSS Satellite rough ranges modulo 1 millisecond, expressed in seconds. Null if not present. */
36 private double modMillisRoughRange;
37
38 /** DF399: GNSS Satellite rough Phaserange Rates, expressed in meters per second. Null if not present. */
39 private double roughPhaserangeRate;
40
41 /** Extended satellite data, GNSS specific. */
42 private long extendedSatelliteData;
43
44 /**
45 * Get the satellite the MSM data refers to.
46 * @return satellite identifier in its system
47 */
48 public SatInSystem getSatellite() {
49 return satellite;
50 }
51
52 /**
53 * Set the satellite the MSM data refers to.
54 * @param satellite satellite identifier in its system
55 */
56 public void setSatellite(final SatInSystem satellite) {
57 this.satellite = satellite;
58 }
59
60 /**
61 * Get the rough range truncated to integer milliseconds.
62 * @return rough range in seconds, truncated to milliseconds
63 */
64 public double getIntMillisRoughRange() {
65 return intMillisRoughRange;
66 }
67
68 /**
69 * Set the rough range truncated to integer milliseconds.
70 * @param roughRangeMillis rough range in seconds, truncated to milliseconds
71 */
72 public void setIntMillisRoughRange(final double roughRangeMillis) {
73 this.intMillisRoughRange = roughRangeMillis;
74 }
75
76 /**
77 * Get the rough range modulo 1 millisecond.
78 * @return rough range modulo 1 ms, in seconds
79 */
80 public double getModMillisRoughRange() {
81 return modMillisRoughRange;
82 }
83
84 /**
85 * Set the rough range modulo 1 millisecond.
86 * @param roughRangeModMillis rough range modulo 1 ms, in seconds
87 */
88 public void setModMillisRoughRange(final double roughRangeModMillis) {
89 this.modMillisRoughRange = roughRangeModMillis;
90 }
91
92 /**
93 * Get the rough phaserange rate.
94 * @return rough phaserange rate in meters per second
95 */
96 public double getRoughPhaserangeRate() {
97 return roughPhaserangeRate;
98 }
99
100 /**
101 * Set the rough phaserange rate.
102 * @param phaserangeRate rough phaserange rate in meters per second
103 */
104 public void setRoughPhaserangeRate(final double phaserangeRate) {
105 this.roughPhaserangeRate = phaserangeRate;
106 }
107
108 /**
109 * Get the extended satellite data.
110 * @return extended GNSS-specific satellite data
111 */
112 public long getExtendedSatelliteData() {
113 return extendedSatelliteData;
114 }
115
116 /**
117 * Set the extended satellite data.
118 * @param extendedSatelliteData extended GNSS-specific satellite data
119 */
120 public void setExtendedSatelliteData(final long extendedSatelliteData) {
121 this.extendedSatelliteData = extendedSatelliteData;
122 }
123 }