blob: a16b170da4e9c7e80ae00735a39e71d9bb6f4826 [file] [log] [blame]
/*
* Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.gnss;
import android.hardware.gnss.GnssConstellationType;
/**
* Represents a GNSS signal type.
*/
@VintfStability
parcelable GnssSignalType {
/**
* Constellation type of the SV that transmits the signal.
*/
GnssConstellationType constellation = GnssConstellationType.UNKNOWN;
/**
* Carrier frequency of the signal tracked, for example it can be the
* GPS central frequency for L1 = 1575.45 MHz, or L2 = 1227.60 MHz, L5 =
* 1176.45 MHz, varying GLO channels, etc. If the field is not set, it
* is the primary common use central frequency, e.g. L1 = 1575.45 MHz
* for GPS.
*
* For an L1, L5 receiver tracking a satellite on L1 and L5 at the same
* time, two raw measurement structs must be reported for this same
* satellite, in one of the measurement structs, all the values related
* to L1 must be filled, and in the other all of the values related to
* L5 must be filled.
*/
double carrierFrequencyHz;
/**
* GNSS signal code type "A" representing GALILEO E1A, GALILEO E6A, IRNSS L5A, IRNSS SA.
*/
const @utf8InCpp String CODE_TYPE_A = "A";
/**
* GNSS signal code type "B" representing GALILEO E1B, GALILEO E6B, IRNSS L5B, IRNSS SB.
*/
const @utf8InCpp String CODE_TYPE_B = "B";
/**
* GNSS signal code type "C" representing GPS L1 C/A, GPS L2 C/A, GLONASS G1 C/A,
* GLONASS G2 C/A, GALILEO E1C, GALILEO E6C, SBAS L1 C/A, QZSS L1 C/A, IRNSS L5C.
*/
const @utf8InCpp String CODE_TYPE_C = "C";
/**
* GNSS signal code type "D" representing BDS B1C D.
*/
const @utf8InCpp String CODE_TYPE_D = "D";
/**
* GNSS signal code type "I" representing GPS L5 I, GLONASS G3 I, GALILEO E5a I, GALILEO E5b I,
* GALILEO E5a+b I, SBAS L5 I, QZSS L5 I, BDS B1 I, BDS B2 I, BDS B3 I.
*/
const @utf8InCpp String CODE_TYPE_I = "I";
/**
* GNSS signal code type "L" representing GPS L1C (P), GPS L2C (L), QZSS L1C (P), QZSS L2C (L),
* LEX(6) L.
*/
const @utf8InCpp String CODE_TYPE_L = "L";
/**
* GNSS signal code type "M" representing GPS L1M, GPS L2M.
*/
const @utf8InCpp String CODE_TYPE_M = "M";
/**
* GNSS signal code type "N" representing GPS L1 codeless, GPS L2 codeless.
*/
const @utf8InCpp String CODE_TYPE_N = "N";
/**
* GNSS signal code type "P" representing GPS L1P, GPS L2P, GLONASS G1P, GLONASS G2P, BDS B1C P.
*/
const @utf8InCpp String CODE_TYPE_P = "P";
/**
* GNSS signal code type "Q" representing GPS L5 Q, GLONASS G3 Q, GALILEO E5a Q, GALILEO E5b Q,
* GALILEO E5a+b Q, SBAS L5 Q, QZSS L5 Q, BDS B1 Q, BDS B2 Q, BDS B3 Q.
*/
const @utf8InCpp String CODE_TYPE_Q = "Q";
/**
* GNSS signal code type "S" represents GPS L1C (D), GPS L2C (M), QZSS L1C (D), QZSS L2C (M),
* LEX(6) S.
*/
const @utf8InCpp String CODE_TYPE_S = "S";
/**
* GNSS signal code type "W" representing GPS L1 Z-tracking, GPS L2 Z-tracking.
*/
const @utf8InCpp String CODE_TYPE_W = "W";
/**
* GNSS signal code type "X" representing GPS L1C (D+P), GPS L2C (M+L), GPS L5 (I+Q),
* GLONASS G3 (I+Q), GALILEO E1 (B+C), GALILEO E5a (I+Q), GALILEO E5b (I+Q), GALILEO E5a+b(I+Q),
* GALILEO E6 (B+C), SBAS L5 (I+Q), QZSS L1C (D+P), QZSS L2C (M+L), QZSS L5 (I+Q),
* LEX(6) (S+L), BDS B1 (I+Q), BDS B1C (D+P), BDS B2 (I+Q), BDS B3 (I+Q), IRNSS L5 (B+C).
*/
const @utf8InCpp String CODE_TYPE_X = "X";
/**
* GNSS signal code type "Y" representing GPS L1Y, GPS L2Y.
*/
const @utf8InCpp String CODE_TYPE_Y = "Y";
/**
* GNSS signal code type "Z" representing GALILEO E1 (A+B+C), GALILEO E6 (A+B+C), QZSS L1-SAIF.
*/
const @utf8InCpp String CODE_TYPE_Z = "Z";
/**
* GNSS signal code type "UNKNOWN" representing the GNSS Measurement's code type is unknown.
*/
const @utf8InCpp String CODE_TYPE_UNKNOWN = "UNKNOWN";
/**
* The type of code that is currently being tracked in the GNSS signal.
*
* For high precision applications the type of code being tracked needs to be considered
* in-order to properly apply code specific corrections to the pseudorange measurements.
*
* The value is one of the constant Strings with prefix CODE_TYPE_ defined in this parcelable.
*
* This is used to specify the observation descriptor defined in GNSS Observation Data File
* Header Section Description in the RINEX standard (Version 3.XX). In RINEX Version 3.03,
* in Appendix Table A2 Attributes are listed as uppercase letters (for instance, "A" for
* "A channel"). In the future, if for instance a code "G" was added in the official RINEX
* standard, "G" could be specified here.
*/
@utf8InCpp String codeType;
}