1   /* Copyright 2002-2024 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.antenna;
18  
19  import java.util.Map;
20  
21  import org.orekit.gnss.Frequency;
22  import org.orekit.gnss.SatelliteSystem;
23  import org.orekit.time.AbsoluteDate;
24  
25  /**
26   * GNSS satellite antenna model.
27   *
28   * @author Luc Maisonobe
29   * @since 9.2
30   * @see <a href="ftp://www.igs.org/pub/station/general/antex14.txt">ANTEX: The Antenna Exchange Format, Version 1.4</a>
31   *
32   */
33  public class SatelliteAntenna extends Antenna {
34  
35      /** Satellite system. */
36      private final SatelliteSystem satelliteSystem;
37  
38      /** PRN number. */
39      private final int prnNumber;
40  
41      /** Satellite type.
42       * @since 9.3
43       */
44      private final SatelliteType satelliteType;
45  
46      /** Satellite code. */
47      private final int satelliteCode;
48  
49      /** COSPAR ID. */
50      private final String cosparID;
51  
52      /** Start of validity. */
53      private final AbsoluteDate validFrom;
54  
55      /** End of validity. */
56      private final AbsoluteDate validUntil;
57  
58      /** Simple constructor.
59       * @param type antenna type
60       * @param sinexCode sinex code
61       * @param patterns frequencies patterns
62       * @param satelliteSystem satellite system
63       * @param prnNumber PRN number
64       * @param satelliteType satellite type
65       * @param satelliteCode satellite code
66       * @param cosparID COSPAR ID
67       * @param validFrom start of validity
68       * @param validUntil end of validity
69       */
70      public SatelliteAntenna(final String type, final String sinexCode,
71                              final Map<Frequency, FrequencyPattern> patterns,
72                              final SatelliteSystem satelliteSystem, final int prnNumber,
73                              final SatelliteType satelliteType, final int satelliteCode,
74                              final String cosparID,
75                              final AbsoluteDate validFrom, final AbsoluteDate validUntil) {
76          super(type, sinexCode, patterns);
77          this.satelliteSystem = satelliteSystem;
78          this.prnNumber       = prnNumber;
79          this.satelliteType   = satelliteType;
80          this.satelliteCode   = satelliteCode;
81          this.cosparID        = cosparID;
82          this.validFrom       = validFrom;
83          this.validUntil      = validUntil;
84      }
85  
86      /** Get satellite system.
87       * @return satellite system
88       */
89      public SatelliteSystem getSatelliteSystem() {
90          return satelliteSystem;
91      }
92  
93      /** Get PRN number.
94       * @return PRN number
95       */
96      public int getPrnNumber() {
97          return prnNumber;
98      }
99  
100     /** Get satellite type.
101      * @return satellite type
102      * @since 9.3
103      */
104     public SatelliteType getSatelliteType() {
105         return satelliteType;
106     }
107 
108     /** Get satellite code.
109      * @return satellite code
110      */
111     public int getSatelliteCode() {
112         return satelliteCode;
113     }
114 
115     /** Get COSPAR ID.
116      * @return COSPAR ID
117      */
118     public String getCosparID() {
119         return cosparID;
120     }
121 
122     /** Get start of validity.
123      * @return start of validity
124      */
125     public AbsoluteDate getValidFrom() {
126         return validFrom;
127     }
128 
129     /** Get end of validity.
130      * @return end of validity
131      */
132     public AbsoluteDate getValidUntil() {
133         return validUntil;
134     }
135 
136 }