Skip to main content

GenericType Mapping

When writing middleware to parse PpRx output, particularly signal-typed GBX reports such as GNSS_OBSERVABLES, you will encounter a GenericType integer field that identifies which GNSS signal the data belongs to. The mapping between GenericType integers and signals is given below.

Not all entries are supported in the current version of PpRx. Unsupported entries are reserved for future development.

enum GenericType {
GPS_L1_CA = 0; // GPS L1 civil C/A code (C1C)
GPS_L2_CM = 1; // GPS L2 civil M code (C2S)
GPS_L2_CL = 2; // GPS L2 civil L code (C2L)
GPS_L2_CLM = 3; // GPS L2 M+L combined code (C2X)
GPS_L1_P = 4; // GPS L1 P code (C1P)
GPS_L1_CP = 5; // GPS L1 civil C code (pilot) (C1L)
GPS_L1_CD = 6; // GPS L1 civil C code (data) (C1S)
GPS_L1_CPD = 7; // GPS L1 civil C code P+D combined tracking (C1X)
SBAS_L1_I = 13; // SBAS L1 on I channel (C1C)
GPS_L2_P = 14; // GPS L2 P code (C2P)
GALILEO_E1_BC = 15; // Galileo E1 code (sum of E1B and E1C) (C1X)
GALILEO_E1_B = 16; // E1B code for Galileo E1 (C1B)
GALILEO_E1_C = 17; // E1C code for Galileo E1 (C1C)
GPS_L1_L2_P_IFC = 18; // Ionosphere-free linear combination
// of L1 P(Y) code and L2 P(Y) (e.g.,
// reference type for ephemeris clock models)
GALILEO_E1_E5A_IFC = 19; // Ionosphere-free linear combination
// of Galileo E1 and Galileo E5b (e.g.,
// reference type for precise clock models)
GALILEO_E1_E5B_IFC = 20; // Ionosphere-free linear combination
// of Galileo E1 and Galileo E5b (e.g.,
// reference type for I/NAV clock models)
GPS_L5_I = 21; // GPS L5 civil in-phase (C5I)
GPS_L5_Q = 22; // GPS L5 civil quadrature (C5Q)
GPS_L5_IQ = 23; // GPS L5 civil combined IQ tracking (C5X)
UNKNOWN_L1_CW = 24; // Continuous Wave (CW) signal at L1 (unknown system)
UNKNOWN_L2_CW = 25; // Continuous Wave (CW) signal at L2 (unknown system)
UNKNOWN_L5_CW = 26; // Continuous Wave (CW) signal at L5 (unknown system)
GALILEO_E5A_I = 27; // Galileo E5a in-phase (C5I)
GALILEO_E5A_Q = 28; // Galileo E5a quadrature (C5Q)
GALILEO_E5A_IQ = 29; // Galileo E5a combined IQ tracking (C5X)
GALILEO_E5B_I = 30; // Galileo E5b in-phase (C7I)
GALILEO_E5B_Q = 31; // Galileo E5b quadrature (C7Q)
GALILEO_E5B_IQ = 32; // Galileo E5b combined IQ tracking (C7X)
GALILEO_E5_I = 33; // Galileo E5a+E5b in-phase (C8I)
GALILEO_E5_Q = 34; // Galileo E5a+E5b quadrature (C8Q)
GALILEO_E5_IQ = 35; // Galileo E5a+E5b combined IQ tracking (C8X)
GALILEO_E6_BC = 36; // Galileo E6 code (sum of E6B and E6C) (C6X)
GALILEO_E6_B = 37; // E6B code for Galileo E6 (C6B)
GALILEO_E6_C = 38; // E6C code for Galileo E6 (C6C)
SBAS_L5_I = 39; // SBAS L5 in-phase (C5I)
SBAS_L5_Q = 40; // SBAS L5 quadrature (C5Q)
SBAS_L5_IQ = 41; // SBAS L5 combined IQ tracking (C5X)
BDS_B1_I = 42; // BeiDou B1 in-phase (C2I)
BDS_B1_Q = 43; // BeiDou B1 quadrature (C2Q)
BDS_B1_IQ = 44; // BeiDou B1 combined IQ tracking (C2X)
BDS_B2_I = 45; // BeiDou B2 in-phase (C7I)
BDS_B2_Q = 46; // BeiDou B2 quadrature (C7Q)
BDS_B2_IQ = 47; // BeiDou B2 combined IQ tracking (C7X)
BDS_B3_I = 48; // BeiDou B3 in-phase (C6I)
BDS_B3_Q = 49; // BeiDou B3 quadrature (C6Q)
BDS_B3_IQ = 50; // BeiDou B3 combined IQ tracking (C6X)
QZSS_L1_CA = 51; // QZSS L1 C/A (C1C)
QZSS_L1_CP = 52; // QZSS L1CP (pilot) (C1L)
QZSS_L1_CD = 53; // QZSS L1CD (data) (C1S)
QZSS_L1_CPD = 54; // QZSS L1C P+D combined tracking (C1X)
QZSS_L2_CM = 55; // QZSS L2CM (C2S)
QZSS_L2_CL = 56; // QZSS L2CL (C2L)
QZSS_L2_CLM = 57; // QZSS L2C M+L combined tracking (C2X)
QZSS_L5_I = 58; // QZSS L5 in-phase (C5I)
QZSS_L5_Q = 59; // QZSS L5 quadrature (C5Q)
QZSS_L5_IQ = 60; // QZSS L5 combined IQ tracking (C5X)
QZSS_L1_L2_C_IFC = 70; // Ionosphere-free linear combination
// of L1 C/A code and L2 C (e.g.,
// reference type for Block I/II ephemeris clock
// models)
GLONASS_G1_CA = 61; // GLONASS G1 C/A code (C1C)
GLONASS_G1_P = 62; // GLONASS G1 P code (C1P)
GLONASS_G2_CA = 63; // GLONASS G2 C/A code (C2C)
GLONASS_G2_P = 64; // GLONASS G2 P code (C2P)
BDS_B1_CP = 65; // BeiDou B1 civil C code (pilot) (C1P)
BDS_B1_CD = 73; // BeiDou B1 civil C code (data) (C1D)
BDS_B1_CPD = 74; // BeiDou B1 civil C code P+D combined tracking (C1X)
BDS_B2A_P = 66; // BeiDou B2a (pilot) (C5P)
BDS_B2A_D = 67; // BeiDou B2a (data) (C5D)
BDS_B2A_PD = 68; // BeiDou B2a P+D combined tracking (C5X)
BDS_B2B_P = 69; // BeiDou B2b (pilot) (C7P)
BDS_B2B_D = 71; // BeiDou B2b (data) (C7D)
BDS_B2B_PD = 72; // BeiDou B2b P+D combined tracking (C7Z)
GLONASS_G1A_CP = 75; // GLONASS L1OCp (pilot) (C4B)
GLONASS_G1A_CD = 76; // GLONASS L1OCd (data) (C4A)
GLONASS_G1A_CPD = 77; // GLONASS L1OC P+D combined tracking (C4X)
GLONASS_G2A_CP = 78; // GLONASS L2OCp (pilot) (C6B)
GLONASS_G2A_CD = 79; // GLONASS L2CSI (data) (C6A)
GLONASS_G2A_CPD = 80; // GLONASS L2OC P+D combined tracking (C6X)
GLONASS_G3_I = 81; // GLONASS L3OC in-phase (C3I)
GLONASS_G3_Q = 82; // GLONASS L3OC quadrature (C3Q)
GLONASS_G3_IQ = 83; // GLONASS L3OC combined IQ tracking (C3X)
UNDEFINED_GENERIC_TYPE = -1;
}