SubFrame4A.java

  1. /* Copyright 2022-2025 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. package org.orekit.gnss.rflink.gps;

  18. /**
  19.  * Container for sub-frames 4, pages 1, 6, 11, 16 and 21,
  20.  * but also for sub-frames 4, pages 2, 3, 4, 5, 7, 8, and 9
  21.  * which have a similar structure.
  22.  * <p>
  23.  * Table 40-1, sheets 6 and 7 in
  24.  * <a href="https://navcen.uscg.gov/sites/default/files/pdf/gps/IS-GPS-200N.pdf">NAVSTAR
  25.  * GPS Space Segment/Navigation User Segment Interface</a>, IS-GPS-200N, 22 Aug 2022
  26.  * </p>
  27.  * @author Luc Maisonobe
  28.  * @since 12.0
  29.  */
  30. public class SubFrame4A extends SubFrame45 {

  31.     /** Index of reserved field in word 3. */
  32.     private static final int RESERVED_3 = 9;

  33.     /** Index of reserved field in word 4. */
  34.     private static final int RESERVED_4 = 10;

  35.     /** Index of reserved field in word 5. */
  36.     private static final int RESERVED_5 = 11;

  37.     /** Index of reserved field in word 6. */
  38.     private static final int RESERVED_6 = 12;

  39.     /** Index of reserved field in word 7. */
  40.     private static final int RESERVED_7 = 13;

  41.     /** Index of reserved field in word 8. */
  42.     private static final int RESERVED_8 = 14;

  43.     /** Index of reserved field A in word 9. */
  44.     private static final int RESERVED_A_9 = 15;

  45.     /** Index of reserved field B in word 9. */
  46.     private static final int RESERVED_B_9 = 16;

  47.     /** Index of reserved field in word 10. */
  48.     private static final int RESERVED_10 = 17;

  49.     /** Simple constructor.
  50.      * @param words raw words
  51.      */
  52.     SubFrame4A(final int[] words) {

  53.         // create raw container
  54.         super(words, RESERVED_10 + 1);

  55.         // populate container
  56.         setField(RESERVED_3,    3,  6, 16, words);
  57.         setField(RESERVED_4,    4,  6, 24, words);
  58.         setField(RESERVED_5,    5,  6, 24, words);
  59.         setField(RESERVED_6,    6,  6, 24, words);
  60.         setField(RESERVED_7,    7,  6, 24, words);
  61.         setField(RESERVED_8,    8,  6, 24, words);
  62.         setField(RESERVED_A_9,  9, 22,  8, words);
  63.         setField(RESERVED_B_9,  9,  6, 16, words);
  64.         setField(RESERVED_10,  10,  8, 22, words);

  65.     }

  66.     /** Get the reserved field in word 3.
  67.      * @return reserved field in word 3
  68.      */
  69.     public int getReserved03() {
  70.         return getField(RESERVED_3);
  71.     }

  72.     /** Get the reserved field in word 4.
  73.      * @return reserved field in word 4
  74.      */
  75.     public int getReserved04() {
  76.         return getField(RESERVED_4);
  77.     }

  78.     /** Get the reserved field in word 5.
  79.      * @return reserved field in word 5
  80.      */
  81.     public int getReserved05() {
  82.         return getField(RESERVED_5);
  83.     }

  84.     /** Get the reserved field in word 6.
  85.      * @return reserved field in word 6
  86.      */
  87.     public int getReserved06() {
  88.         return getField(RESERVED_6);
  89.     }

  90.     /** Get the reserved field in word 7.
  91.      * @return reserved field in word 7
  92.      */
  93.     public int getReserved07() {
  94.         return getField(RESERVED_7);
  95.     }

  96.     /** Get the reserved field in word 8.
  97.      * @return reserved field in word 8
  98.      */
  99.     public int getReserved08() {
  100.         return getField(RESERVED_8);
  101.     }

  102.     /** Get the reserved field A in word 9.
  103.      * @return reserved field A in word 9
  104.      */
  105.     public int getReservedA09() {
  106.         return getField(RESERVED_A_9);
  107.     }

  108.     /** Get the reserved field B in word 9.
  109.      * @return reserved field B in word 9
  110.      */
  111.     public int getReservedB09() {
  112.         return getField(RESERVED_B_9);
  113.     }

  114.     /** Get the reserved field in word 10.
  115.      * @return reserved field in word 10
  116.      */
  117.     public int getReserved10() {
  118.         return getField(RESERVED_10);
  119.     }

  120. }