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.ssr;
18  
19  /**
20   * Container for common data in SSR messages header.
21   * @author Bryan Cazabonne
22   * @since 11.0
23   */
24  public class SsrHeader {
25  
26      /** SSR Epoch Time 1s. */
27      private double ssrEpoch1s;
28  
29      /** SSR Update Interval. */
30      private int ssrUpdateInterval;
31  
32      /** SSR Multiple Message Indicator. */
33      private int ssrMultipleMessageIndicator;
34  
35      /** IOD SSR. */
36      private int iodSsr;
37  
38      /** SSR Provider ID. */
39      private int ssrProviderId;
40  
41      /** SSR Solution ID. */
42      private int ssrSolutionId;
43  
44      /** Empty constructor.
45       * <p>
46       * This constructor is not strictly necessary, but it prevents spurious
47       * javadoc warnings with JDK 18 and later.
48       * </p>
49       * @since 12.0
50       */
51      public SsrHeader() {
52          // nothing to do
53      }
54  
55      /**
56       * Get the SSR Epoch Time 1s.
57       * <p>
58       * Full seconds since the beginning of the week of continuous time scale
59       * with no offset from GPS, Galileo, QZSS, SBAS,
60       * UTC leap seconds from GLONASS,
61       * -14 s offset from BDS
62       * </p>
63       * @return the SSR Epoch Time 1s in seconds
64       */
65      public double getSsrEpoch1s() {
66          return ssrEpoch1s;
67      }
68  
69      /**
70       * Set the SSR Epoch Time 1s.
71       * @param ssrEpoch1s the SSR Epoch Time 1s to set
72       */
73      public void setSsrEpoch1s(final double ssrEpoch1s) {
74          this.ssrEpoch1s = ssrEpoch1s;
75      }
76  
77      /**
78       * Get the SSR Update Interval.
79       * @return the SSR Update Interval in seconds
80       */
81      public int getSsrUpdateInterval() {
82          return ssrUpdateInterval;
83      }
84  
85      /**
86       * Set the SSR Update Interval.
87       * @param ssrUpdateInterval the SSR Update Interval to set
88       */
89      public void setSsrUpdateInterval(final int ssrUpdateInterval) {
90          this.ssrUpdateInterval = ssrUpdateInterval;
91      }
92  
93      /**
94       * Get the SSR Multiple Message Indicator.
95       * <p>
96       * 0 - Last message of a sequence. 1 - Multiple message transmitted
97       * </p>
98       * @return the SSR Multiple Message Indicator
99       */
100     public int getSsrMultipleMessageIndicator() {
101         return ssrMultipleMessageIndicator;
102     }
103 
104     /**
105      * Set the SSR Multiple Message Indicator.
106      * @param ssrMultipleMessageIndicator the SSR Multiple Message Indicator to set
107      */
108     public void setSsrMultipleMessageIndicator(final int ssrMultipleMessageIndicator) {
109         this.ssrMultipleMessageIndicator = ssrMultipleMessageIndicator;
110     }
111 
112     /**
113      * Get the IOD SSR.
114      * <p>
115      * A change of Issue of Data SSR is used to
116      * indicate a change in the SSR generating configuration.
117      * </p>
118      * @return the IOD SSR
119      */
120     public int getIodSsr() {
121         return iodSsr;
122     }
123 
124     /**
125      * Set the IOD SSR.
126      * @param iodSsr the IOF SSR to set
127      */
128     public void setIodSsr(final int iodSsr) {
129         this.iodSsr = iodSsr;
130     }
131 
132     /**
133      * Get the SSR Provider ID.
134      * @return the SSR Provider ID
135      */
136     public int getSsrProviderId() {
137         return ssrProviderId;
138     }
139 
140     /**
141      * Set the SSR Provider ID.
142      * @param ssrProviderId the SSR Provider ID to set
143      */
144     public void setSsrProviderId(final int ssrProviderId) {
145         this.ssrProviderId = ssrProviderId;
146     }
147 
148     /**
149      * Get the SSR Solution ID.
150      * @return the SSR Solution ID
151      */
152     public int getSsrSolutionId() {
153         return ssrSolutionId;
154     }
155 
156     /**
157      * Set the SSR Solution ID.
158      * @param ssrSolutionId the SSR Solution ID to set
159      */
160     public void setSsrSolutionId(final int ssrSolutionId) {
161         this.ssrSolutionId = ssrSolutionId;
162     }
163 
164 }