1   /* Copyright 2022-2025 Luc Maisonobe
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.estimation.measurements.gnss;
18  
19  import org.orekit.estimation.measurements.CommonParametersWithoutDerivatives;
20  import org.orekit.propagation.SpacecraftState;
21  import org.orekit.utils.TimeStampedPVCoordinates;
22  
23  /** Common intermediate parameters used to estimate measurements where receiver is a satellite.
24   * @author Luc Maisonobe
25   * @since 12.1
26   */
27  public class OnBoardCommonParametersWithoutDerivatives
28      extends CommonParametersWithoutDerivatives {
29  
30      /** Local clock offset. */
31      private final double localOffset;
32  
33      /** Local clock rate. */
34      private final double localRate;
35  
36      /** Remote clock offset. */
37      private final double remoteOffset;
38  
39      /** Remote clock rate. */
40      private final double remoteRate;
41  
42      /** Remote satellite position/velocity. */
43      private final TimeStampedPVCoordinates remotePV;
44  
45      /** Simple constructor.
46       * @param localState local spacecraft state
47       * @param localOffset local clock offset
48       * @param localRate local clock rate
49       * @param remoteOffset remote clock offset
50       * @param remoteRate remote clock rate
51       * @param tauD downlink delay
52       * @param localPV local satellite position/velocity
53       * @param remotePV remote satellite position/velocity
54       */
55      public OnBoardCommonParametersWithoutDerivatives(final SpacecraftState localState,
56                                                       final double localOffset, final double localRate,
57                                                       final double remoteOffset, final double remoteRate,
58                                                       final double tauD,
59                                                       final TimeStampedPVCoordinates localPV,
60                                                       final TimeStampedPVCoordinates remotePV) {
61          super(localState, tauD, localState, localPV);
62          this.localOffset  = localOffset;
63          this.localRate    = localRate;
64          this.remoteOffset = remoteOffset;
65          this.remoteRate   = remoteRate;
66          this.remotePV     = remotePV;
67      }
68  
69      /** Get local clock offset.
70       * @return local clock offset
71       */
72      public double getLocalOffset() {
73          return localOffset;
74      }
75  
76      /** Get local clock rate.
77       * @return local clock rate
78       */
79      public double getLocalRate() {
80          return localRate;
81      }
82  
83      /** Get remote clock offset.
84       * @return remote clock offset
85       */
86      public double getRemoteOffset() {
87          return remoteOffset;
88      }
89  
90      /** Get remote clock rate.
91       * @return remote clock rate
92       */
93      public double getRemoteRate() {
94          return remoteRate;
95      }
96  
97      /** Get remote satellite position/velocity.
98       * @return remote satellite position/velocity
99       */
100     public TimeStampedPVCoordinates getRemotePV() {
101         return remotePV;
102     }
103 
104 }