1 /* Copyright 2002-2025 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.gnss.metric.messages.common;
18
19
20 /**
21 * Container for phase bias data.
22 * @author Bryan Cazabonne
23 * @since 11.0
24 */
25 public class PhaseBias {
26
27 /** GNSS signal and tracking mode identifier. */
28 private final int signalID;
29
30 /** Signal integer property. */
31 private final boolean isSignalInteger;
32
33 /** Signal Wide-Lane integer indicator. */
34 private final int signalWideLaneIntegerIndicator;
35
36 /** Signal discontinuity counter. */
37 private final int discontinuityCounter;
38
39 /** Phase bias for the corresponding signal identifier. */
40 private final double phaseBias;
41
42 /**
43 * Constructor.
44 * @param signalID GNSS signal and tracking mode identifier
45 * @param isSignalInteger true if signal has integer property
46 * @param signalWideLaneIntegerIndicator signal Wide-Lane integer indicator
47 * @param discontinuityCounter signal discontinuity counter
48 * @param phaseBias phase bias associated to the signal ID in meters
49 */
50 public PhaseBias(final int signalID, final boolean isSignalInteger,
51 final int signalWideLaneIntegerIndicator,
52 final int discontinuityCounter, final double phaseBias) {
53 // Initialize fields
54 this.signalID = signalID;
55 this.isSignalInteger = isSignalInteger;
56 this.signalWideLaneIntegerIndicator = signalWideLaneIntegerIndicator;
57 this.discontinuityCounter = discontinuityCounter;
58 this.phaseBias = phaseBias;
59 }
60
61 /**
62 * Get the GNSS signal and tracking mode identifier.
63 * @return the GNSS signal and tracking mode identifier
64 */
65 public int getSignalID() {
66 return signalID;
67 }
68
69 /**
70 * Get the flag indicating is signal has integer property.
71 * @return true is signal has integer property
72 */
73 public boolean isSignalInteger() {
74 return isSignalInteger;
75 }
76
77 /**
78 * Get the signal Wide-Lane integer indicator.
79 * <ul>
80 * <li>0: No wide-lane with integer property for this signal or satellite</li>
81 * <li>1: Signal belongs to group two of wide-lanes with integer property</li>
82 * <li>2: Signal belongs to group one of wide-lanes with integer property</li>
83 * <li>3: Signal belongs to group one of wide-lanes with integer property</li>
84 * </ul>
85 * @return the signal Wide-Lane indicator
86 */
87 public int getSignalWideLaneIntegerIndicator() {
88 return signalWideLaneIntegerIndicator;
89 }
90
91 /**
92 * Get the signal phase discontinuity counter.
93 * <p>
94 * Increased for every discontinuity in phase
95 * </p>
96 * @return the signal phase discontinuity counter
97 */
98 public int getDiscontinuityCounter() {
99 return discontinuityCounter;
100 }
101
102 /**
103 * Get the phase bias associated to the signal ID.
104 * @return the phase bias in meters
105 */
106 public double getPhaseBias() {
107 return phaseBias;
108 }
109
110 }