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 /** Simple constructor. */
45 public RtcmMsmSatelliteData() {
46 // nothing to do
47 }
48
49 /**
50 * Get the satellite the MSM data refers to.
51 * @return satellite identifier in its system
52 */
53 public SatInSystem getSatellite() {
54 return satellite;
55 }
56
57 /**
58 * Set the satellite the MSM data refers to.
59 * @param satellite satellite identifier in its system
60 */
61 public void setSatellite(final SatInSystem satellite) {
62 this.satellite = satellite;
63 }
64
65 /**
66 * Get the rough range truncated to integer milliseconds.
67 * @return rough range in seconds, truncated to milliseconds
68 */
69 public double getIntMillisRoughRange() {
70 return intMillisRoughRange;
71 }
72
73 /**
74 * Set the rough range truncated to integer milliseconds.
75 * @param roughRangeMillis rough range in seconds, truncated to milliseconds
76 */
77 public void setIntMillisRoughRange(final double roughRangeMillis) {
78 this.intMillisRoughRange = roughRangeMillis;
79 }
80
81 /**
82 * Get the rough range modulo 1 millisecond.
83 * @return rough range modulo 1 ms, in seconds
84 */
85 public double getModMillisRoughRange() {
86 return modMillisRoughRange;
87 }
88
89 /**
90 * Set the rough range modulo 1 millisecond.
91 * @param roughRangeModMillis rough range modulo 1 ms, in seconds
92 */
93 public void setModMillisRoughRange(final double roughRangeModMillis) {
94 this.modMillisRoughRange = roughRangeModMillis;
95 }
96
97 /**
98 * Get the rough phaserange rate.
99 * @return rough phaserange rate in meters per second
100 */
101 public double getRoughPhaserangeRate() {
102 return roughPhaserangeRate;
103 }
104
105 /**
106 * Set the rough phaserange rate.
107 * @param phaserangeRate rough phaserange rate in meters per second
108 */
109 public void setRoughPhaserangeRate(final double phaserangeRate) {
110 this.roughPhaserangeRate = phaserangeRate;
111 }
112
113 /**
114 * Get the extended satellite data.
115 * @return extended GNSS-specific satellite data
116 */
117 public long getExtendedSatelliteData() {
118 return extendedSatelliteData;
119 }
120
121 /**
122 * Set the extended satellite data.
123 * @param extendedSatelliteData extended GNSS-specific satellite data
124 */
125 public void setExtendedSatelliteData(final long extendedSatelliteData) {
126 this.extendedSatelliteData = extendedSatelliteData;
127 }
128 }