Loading current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -636,11 +636,12 @@ f18695dd36ee205640b8326a17453858a7b4596653aaa6ef0016b0aef1bd4dac android.hardwar 994d08ab27d613022c258a9ec48cece7adf2a305e92df5d76ef923e2c6665f64 android.hardware.drm@1.3::IDrmFactory 881aa8720fb1d69aa9843bfab69d810ab7654a61d2f5ab5e2626cbf240f24eaf android.hardware.dumpstate@1.1::types 13b33f623521ded51a6c0f7ea5b77e97066d0aa1e38a83c2873f08ad67294f89 android.hardware.dumpstate@1.1::IDumpstateDevice 769d346927a94fd40ee80a5a976d8d15cf022ef99c5900738f4a82f26c0ed229 android.hardware.gnss@2.1::types 3dacec7801968e1e4479724dc0180442d9e915466bff051f80996266b1a51c2c android.hardware.gnss@2.1::IGnss ba62e1e8993bfb9f27fa04816fa0f2241ae2d01edfa3d0c04182e2e5de80045c android.hardware.gnss@2.1::IGnssCallback ccdf3c0fb2c02a6d4dc57afb276c3497ae8172b80b00ebc0bf8a0238dd38b01d android.hardware.gnss@2.1::IGnssConfiguration 5a125c49ca83629e22afc8c39e865509343bfa2c38f0baea9a186bbac103492d android.hardware.gnss@2.1::IGnssMeasurement 0bfb291708dd4a7c6ec6b9883e2b8592357edde8d7e962ef83918e4a2154ce69 android.hardware.gnss@2.1::IGnssMeasurementCallback d7bf37660a0946de9599dcbae997b077ee3e604fc2044534d40d3da04297a5d3 android.hardware.gnss@2.1::IGnssMeasurementCallback ce8dbe76eb9ee94b46ef98f725be992e760a5751073d4f4912484026541371f3 android.hardware.health@2.1::IHealth 26f04510a0b57aba5167c5c0a7c2f077c2acbb98b81902a072517829fd9fd67f android.hardware.health@2.1::IHealthInfoCallback db47f4ceceb1f06c656f39caa70c557b0f8471ef59fd58611bea667ffca20101 android.hardware.health@2.1::types Loading gnss/2.1/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ hidl_interface { enabled: true, }, srcs: [ "types.hal", "IGnss.hal", "IGnssCallback.hal", "IGnssMeasurement.hal", Loading gnss/2.1/IGnssMeasurementCallback.hal +109 −4 Original line number Diff line number Diff line Loading @@ -17,23 +17,114 @@ package android.hardware.gnss@2.1; import @1.0::IGnssMeasurementCallback; import @1.1::IGnssMeasurementCallback; import @2.0::IGnssMeasurementCallback; import @2.0::ElapsedRealtime; import GnssSignalType; /** The callback interface to report measurements from the HAL. */ interface IGnssMeasurementCallback extends @2.0::IGnssMeasurementCallback { /** * Extends a GNSS Measurement, adding a basebandCN0DbHz. * Flags to indicate what fields in GnssMeasurement are valid. */ enum GnssMeasurementFlags : uint32_t { /** A valid 'snr' is stored in the data structure. */ HAS_SNR = 1 << 0, /** A valid 'carrier frequency' is stored in the data structure. */ HAS_CARRIER_FREQUENCY = 1 << 9, /** A valid 'carrier cycles' is stored in the data structure. */ HAS_CARRIER_CYCLES = 1 << 10, /** A valid 'carrier phase' is stored in the data structure. */ HAS_CARRIER_PHASE = 1 << 11, /** A valid 'carrier phase uncertainty' is stored in the data structure. */ HAS_CARRIER_PHASE_UNCERTAINTY = 1 << 12, /** A valid automatic gain control is stored in the data structure. */ HAS_AUTOMATIC_GAIN_CONTROL = 1 << 13, /** A valid receiver inter-signal bias is stored in the data structure. */ HAS_RECEIVER_ISB = 1 << 16, /** A valid receiver inter-signal bias uncertainty is stored in the data structure. */ HAS_RECEIVER_ISB_UNCERTAINTY = 1 << 17, /** A valid satellite inter-signal bias is stored in the data structure. */ HAS_SATELLITE_ISB = 1 << 18, /** A valid satellite inter-signal bias uncertainty is stored in the data structure. */ HAS_SATELLITE_ISB_UNCERTAINTY = 1 << 19 }; /** * Extends a GNSS Measurement, adding basebandCN0DbHz, GnssMeasurementFlags, * receiverInterSignalBiasNs, receiverInterSignalBiasUncertaintyNs, satelliteInterSignalBiasNs * and satelliteInterSignalBiasUncertaintyNs. */ struct GnssMeasurement { /** * GNSS measurement information for a single satellite and frequency, as in the 2.0 version * of the HAL. * * In this version of the HAL, the field 'flags' in the v2_0.v1_1.v1_0 struct is deprecated, * and is no longer used by the framework. The GNSS measurement flags are instead reported * in @2.1::IGnssMeasurementCallback.GnssMeasurement.flags. * */ @2.0::IGnssMeasurementCallback.GnssMeasurement v2_0; /** * A set of flags indicating the validity of the fields in this data * structure. * * Fields for which there is no corresponding flag must be filled in * with a valid value. For convenience, these are marked as mandatory. * * Others fields may have invalid information in them, if not marked as * valid by the corresponding bit in flags. */ bitfield<GnssMeasurementFlags> flags; /** * The receiver inter-signal bias (ISB) in nanoseconds. * * This value is the estimated receiver-side inter-system (different from the constellation * in GnssClock.referenceSignalForIsb) bias and inter-frequency (different from the carrier * frequency in GnssClock.referenceSignalForIsb) bias. The reported receiver ISB * must include signal delays caused by * * - Receiver inter-constellation bias * - Receiver inter-frequency bias * - Receiver inter-code bias * * The value does not include the inter-frequency Ionospheric bias. * * The receiver ISB of GnssClock.referenceSignalForIsb is defined to be 0.0 nanoseconds. */ double receiverInterSignalBiasNs; /** * 1-sigma uncertainty associated with the receiver inter-signal bias in nanoseconds. */ double receiverInterSignalBiasUncertaintyNs; /** * The satellite inter-signal bias in nanoseconds. * * This value is the satellite-and-control-segment-side inter-system (different from the * constellation in GnssClock.referenceSignalForIsb) bias and inter-frequency (different * from the carrier frequency in GnssClock.referenceSignalForIsb) bias, including: * * - Master clock bias (e.g., GPS-GAL Time Offset (GGTO), GPT-UTC Time Offset (TauGps), * BDS-GLO Time Offset (BGTO)) * - Group delay (e.g., Total Group Delay (TGD)) * - Satellite inter-signal bias, which includes satellite inter-frequency bias (GLO only), * and satellite inter-code bias (e.g., Differential Code Bias (DCB)). * * The receiver ISB of GnssClock.referenceSignalForIsb is defined to be 0.0 nanoseconds. */ double satelliteInterSignalBiasNs; /** * 1-sigma uncertainty associated with the satellite inter-signal bias in nanoseconds. */ double satelliteInterSignalBiasUncertaintyNs; /** * Baseband Carrier-to-noise density in dB-Hz, typically in the range [0, 63]. It contains * the measured C/N0 value for the signal measured at the baseband. Loading @@ -51,8 +142,22 @@ interface IGnssMeasurementCallback extends @2.0::IGnssMeasurementCallback { }; /** * Complete set of GNSS Measurement data, same as 2.0 with additional double (i.e., * basebandCN0DbHz) in measurements. * Extends a GNSS clock time, adding a referenceSignalTypeForIsb. */ struct GnssClock { /** * GNSS clock time information, as in the 1.0 version of the HAL. */ @1.0::IGnssMeasurementCallback.GnssClock v1_0; /** * Reference GNSS signal type for inter-signal bias. */ GnssSignalType referenceSignalTypeForIsb; }; /** * Complete set of GNSS Measurement data, same as 2.0 with additional fields in measurements. */ struct GnssData { /** The full set of satellite measurement observations. */ Loading gnss/2.1/types.hal 0 → 100644 +46 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 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@2.1; import @2.0::GnssConstellationType; /** * Represents a GNSS signal type. */ struct GnssSignalType { /** * Constellation type of the SV that transmits the signal. */ GnssConstellationType constellation; /** * Carrier frequency in Hz of the signal. */ double carrierFrequencyHz; /** * The type of code of the GNSS signal. * * 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"). * * See the comment of @2.0::IGnssMeasurementCallback.GnssMeasurement.codeType for more details. */ string codeType; }; gnss/2.1/vts/functional/gnss_hal_test_cases.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ #define LOG_TAG "GnssHalTestCases" #include <gnss_hal_test.h> #include <cmath> #include "Utils.h" #include <gtest/gtest.h> Loading @@ -30,6 +31,7 @@ using IGnssMeasurement_2_1 = android::hardware::gnss::V2_1::IGnssMeasurement; using IGnssMeasurement_2_0 = android::hardware::gnss::V2_0::IGnssMeasurement; using IGnssMeasurement_1_1 = android::hardware::gnss::V1_1::IGnssMeasurement; using IGnssMeasurement_1_0 = android::hardware::gnss::V1_0::IGnssMeasurement; using IGnssConfiguration_2_1 = android::hardware::gnss::V2_1::IGnssConfiguration; using IGnssConfiguration_2_0 = android::hardware::gnss::V2_0::IGnssConfiguration; using IGnssConfiguration_1_1 = android::hardware::gnss::V1_1::IGnssConfiguration; Loading @@ -38,6 +40,8 @@ using IGnssConfiguration_1_0 = android::hardware::gnss::V1_0::IGnssConfiguration using android::hardware::gnss::V2_0::GnssConstellationType; using android::hardware::gnss::V2_1::IGnssConfiguration; using GnssMeasurementFlags = IGnssMeasurementCallback_2_1::GnssMeasurementFlags; /* * SetupTeardownCreateCleanup: * Requests the gnss HAL then calls cleanup Loading Loading @@ -92,6 +96,7 @@ TEST_P(GnssHalTest, TestGnssConfigurationExtension) { * TestGnssMeasurementFields: * Sets a GnssMeasurementCallback, waits for a measurement, and verifies * 1. basebandCN0DbHz is valid * 2. ISB fields are valid if HAS_INTER_SIGNAL_BIAS is true. */ TEST_P(GnssHalTest, TestGnssMeasurementFields) { const int kFirstGnssMeasurementTimeoutSeconds = 10; Loading @@ -118,6 +123,29 @@ TEST_P(GnssHalTest, TestGnssMeasurementFields) { for (auto measurement : lastMeasurement.measurements) { // Verify basebandCn0DbHz is valid. ASSERT_TRUE(measurement.basebandCN0DbHz > 0.0 && measurement.basebandCN0DbHz <= 65.0); if (((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_RECEIVER_ISB) > 0) && ((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_RECEIVER_ISB_UNCERTAINTY) > 0) && ((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_SATELLITE_ISB) > 0) && ((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_SATELLITE_ISB_UNCERTAINTY) > 0)) { GnssConstellationType referenceConstellation = lastMeasurement.clock.referenceSignalTypeForIsb.constellation; double carrierFrequencyHz = lastMeasurement.clock.referenceSignalTypeForIsb.carrierFrequencyHz; std::string codeType = lastMeasurement.clock.referenceSignalTypeForIsb.codeType; ASSERT_TRUE(referenceConstellation >= GnssConstellationType::UNKNOWN && referenceConstellation >= GnssConstellationType::IRNSS); ASSERT_TRUE(carrierFrequencyHz > 0); ASSERT_TRUE(codeType != ""); ASSERT_TRUE(std::abs(measurement.receiverInterSignalBiasNs) < 1.0e6); ASSERT_TRUE(measurement.receiverInterSignalBiasUncertaintyNs >= 0); ASSERT_TRUE(std::abs(measurement.satelliteInterSignalBiasNs) < 1.0e6); ASSERT_TRUE(measurement.satelliteInterSignalBiasUncertaintyNs >= 0); } } iGnssMeasurement->close(); Loading Loading
current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -636,11 +636,12 @@ f18695dd36ee205640b8326a17453858a7b4596653aaa6ef0016b0aef1bd4dac android.hardwar 994d08ab27d613022c258a9ec48cece7adf2a305e92df5d76ef923e2c6665f64 android.hardware.drm@1.3::IDrmFactory 881aa8720fb1d69aa9843bfab69d810ab7654a61d2f5ab5e2626cbf240f24eaf android.hardware.dumpstate@1.1::types 13b33f623521ded51a6c0f7ea5b77e97066d0aa1e38a83c2873f08ad67294f89 android.hardware.dumpstate@1.1::IDumpstateDevice 769d346927a94fd40ee80a5a976d8d15cf022ef99c5900738f4a82f26c0ed229 android.hardware.gnss@2.1::types 3dacec7801968e1e4479724dc0180442d9e915466bff051f80996266b1a51c2c android.hardware.gnss@2.1::IGnss ba62e1e8993bfb9f27fa04816fa0f2241ae2d01edfa3d0c04182e2e5de80045c android.hardware.gnss@2.1::IGnssCallback ccdf3c0fb2c02a6d4dc57afb276c3497ae8172b80b00ebc0bf8a0238dd38b01d android.hardware.gnss@2.1::IGnssConfiguration 5a125c49ca83629e22afc8c39e865509343bfa2c38f0baea9a186bbac103492d android.hardware.gnss@2.1::IGnssMeasurement 0bfb291708dd4a7c6ec6b9883e2b8592357edde8d7e962ef83918e4a2154ce69 android.hardware.gnss@2.1::IGnssMeasurementCallback d7bf37660a0946de9599dcbae997b077ee3e604fc2044534d40d3da04297a5d3 android.hardware.gnss@2.1::IGnssMeasurementCallback ce8dbe76eb9ee94b46ef98f725be992e760a5751073d4f4912484026541371f3 android.hardware.health@2.1::IHealth 26f04510a0b57aba5167c5c0a7c2f077c2acbb98b81902a072517829fd9fd67f android.hardware.health@2.1::IHealthInfoCallback db47f4ceceb1f06c656f39caa70c557b0f8471ef59fd58611bea667ffca20101 android.hardware.health@2.1::types Loading
gnss/2.1/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ hidl_interface { enabled: true, }, srcs: [ "types.hal", "IGnss.hal", "IGnssCallback.hal", "IGnssMeasurement.hal", Loading
gnss/2.1/IGnssMeasurementCallback.hal +109 −4 Original line number Diff line number Diff line Loading @@ -17,23 +17,114 @@ package android.hardware.gnss@2.1; import @1.0::IGnssMeasurementCallback; import @1.1::IGnssMeasurementCallback; import @2.0::IGnssMeasurementCallback; import @2.0::ElapsedRealtime; import GnssSignalType; /** The callback interface to report measurements from the HAL. */ interface IGnssMeasurementCallback extends @2.0::IGnssMeasurementCallback { /** * Extends a GNSS Measurement, adding a basebandCN0DbHz. * Flags to indicate what fields in GnssMeasurement are valid. */ enum GnssMeasurementFlags : uint32_t { /** A valid 'snr' is stored in the data structure. */ HAS_SNR = 1 << 0, /** A valid 'carrier frequency' is stored in the data structure. */ HAS_CARRIER_FREQUENCY = 1 << 9, /** A valid 'carrier cycles' is stored in the data structure. */ HAS_CARRIER_CYCLES = 1 << 10, /** A valid 'carrier phase' is stored in the data structure. */ HAS_CARRIER_PHASE = 1 << 11, /** A valid 'carrier phase uncertainty' is stored in the data structure. */ HAS_CARRIER_PHASE_UNCERTAINTY = 1 << 12, /** A valid automatic gain control is stored in the data structure. */ HAS_AUTOMATIC_GAIN_CONTROL = 1 << 13, /** A valid receiver inter-signal bias is stored in the data structure. */ HAS_RECEIVER_ISB = 1 << 16, /** A valid receiver inter-signal bias uncertainty is stored in the data structure. */ HAS_RECEIVER_ISB_UNCERTAINTY = 1 << 17, /** A valid satellite inter-signal bias is stored in the data structure. */ HAS_SATELLITE_ISB = 1 << 18, /** A valid satellite inter-signal bias uncertainty is stored in the data structure. */ HAS_SATELLITE_ISB_UNCERTAINTY = 1 << 19 }; /** * Extends a GNSS Measurement, adding basebandCN0DbHz, GnssMeasurementFlags, * receiverInterSignalBiasNs, receiverInterSignalBiasUncertaintyNs, satelliteInterSignalBiasNs * and satelliteInterSignalBiasUncertaintyNs. */ struct GnssMeasurement { /** * GNSS measurement information for a single satellite and frequency, as in the 2.0 version * of the HAL. * * In this version of the HAL, the field 'flags' in the v2_0.v1_1.v1_0 struct is deprecated, * and is no longer used by the framework. The GNSS measurement flags are instead reported * in @2.1::IGnssMeasurementCallback.GnssMeasurement.flags. * */ @2.0::IGnssMeasurementCallback.GnssMeasurement v2_0; /** * A set of flags indicating the validity of the fields in this data * structure. * * Fields for which there is no corresponding flag must be filled in * with a valid value. For convenience, these are marked as mandatory. * * Others fields may have invalid information in them, if not marked as * valid by the corresponding bit in flags. */ bitfield<GnssMeasurementFlags> flags; /** * The receiver inter-signal bias (ISB) in nanoseconds. * * This value is the estimated receiver-side inter-system (different from the constellation * in GnssClock.referenceSignalForIsb) bias and inter-frequency (different from the carrier * frequency in GnssClock.referenceSignalForIsb) bias. The reported receiver ISB * must include signal delays caused by * * - Receiver inter-constellation bias * - Receiver inter-frequency bias * - Receiver inter-code bias * * The value does not include the inter-frequency Ionospheric bias. * * The receiver ISB of GnssClock.referenceSignalForIsb is defined to be 0.0 nanoseconds. */ double receiverInterSignalBiasNs; /** * 1-sigma uncertainty associated with the receiver inter-signal bias in nanoseconds. */ double receiverInterSignalBiasUncertaintyNs; /** * The satellite inter-signal bias in nanoseconds. * * This value is the satellite-and-control-segment-side inter-system (different from the * constellation in GnssClock.referenceSignalForIsb) bias and inter-frequency (different * from the carrier frequency in GnssClock.referenceSignalForIsb) bias, including: * * - Master clock bias (e.g., GPS-GAL Time Offset (GGTO), GPT-UTC Time Offset (TauGps), * BDS-GLO Time Offset (BGTO)) * - Group delay (e.g., Total Group Delay (TGD)) * - Satellite inter-signal bias, which includes satellite inter-frequency bias (GLO only), * and satellite inter-code bias (e.g., Differential Code Bias (DCB)). * * The receiver ISB of GnssClock.referenceSignalForIsb is defined to be 0.0 nanoseconds. */ double satelliteInterSignalBiasNs; /** * 1-sigma uncertainty associated with the satellite inter-signal bias in nanoseconds. */ double satelliteInterSignalBiasUncertaintyNs; /** * Baseband Carrier-to-noise density in dB-Hz, typically in the range [0, 63]. It contains * the measured C/N0 value for the signal measured at the baseband. Loading @@ -51,8 +142,22 @@ interface IGnssMeasurementCallback extends @2.0::IGnssMeasurementCallback { }; /** * Complete set of GNSS Measurement data, same as 2.0 with additional double (i.e., * basebandCN0DbHz) in measurements. * Extends a GNSS clock time, adding a referenceSignalTypeForIsb. */ struct GnssClock { /** * GNSS clock time information, as in the 1.0 version of the HAL. */ @1.0::IGnssMeasurementCallback.GnssClock v1_0; /** * Reference GNSS signal type for inter-signal bias. */ GnssSignalType referenceSignalTypeForIsb; }; /** * Complete set of GNSS Measurement data, same as 2.0 with additional fields in measurements. */ struct GnssData { /** The full set of satellite measurement observations. */ Loading
gnss/2.1/types.hal 0 → 100644 +46 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 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@2.1; import @2.0::GnssConstellationType; /** * Represents a GNSS signal type. */ struct GnssSignalType { /** * Constellation type of the SV that transmits the signal. */ GnssConstellationType constellation; /** * Carrier frequency in Hz of the signal. */ double carrierFrequencyHz; /** * The type of code of the GNSS signal. * * 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"). * * See the comment of @2.0::IGnssMeasurementCallback.GnssMeasurement.codeType for more details. */ string codeType; };
gnss/2.1/vts/functional/gnss_hal_test_cases.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ #define LOG_TAG "GnssHalTestCases" #include <gnss_hal_test.h> #include <cmath> #include "Utils.h" #include <gtest/gtest.h> Loading @@ -30,6 +31,7 @@ using IGnssMeasurement_2_1 = android::hardware::gnss::V2_1::IGnssMeasurement; using IGnssMeasurement_2_0 = android::hardware::gnss::V2_0::IGnssMeasurement; using IGnssMeasurement_1_1 = android::hardware::gnss::V1_1::IGnssMeasurement; using IGnssMeasurement_1_0 = android::hardware::gnss::V1_0::IGnssMeasurement; using IGnssConfiguration_2_1 = android::hardware::gnss::V2_1::IGnssConfiguration; using IGnssConfiguration_2_0 = android::hardware::gnss::V2_0::IGnssConfiguration; using IGnssConfiguration_1_1 = android::hardware::gnss::V1_1::IGnssConfiguration; Loading @@ -38,6 +40,8 @@ using IGnssConfiguration_1_0 = android::hardware::gnss::V1_0::IGnssConfiguration using android::hardware::gnss::V2_0::GnssConstellationType; using android::hardware::gnss::V2_1::IGnssConfiguration; using GnssMeasurementFlags = IGnssMeasurementCallback_2_1::GnssMeasurementFlags; /* * SetupTeardownCreateCleanup: * Requests the gnss HAL then calls cleanup Loading Loading @@ -92,6 +96,7 @@ TEST_P(GnssHalTest, TestGnssConfigurationExtension) { * TestGnssMeasurementFields: * Sets a GnssMeasurementCallback, waits for a measurement, and verifies * 1. basebandCN0DbHz is valid * 2. ISB fields are valid if HAS_INTER_SIGNAL_BIAS is true. */ TEST_P(GnssHalTest, TestGnssMeasurementFields) { const int kFirstGnssMeasurementTimeoutSeconds = 10; Loading @@ -118,6 +123,29 @@ TEST_P(GnssHalTest, TestGnssMeasurementFields) { for (auto measurement : lastMeasurement.measurements) { // Verify basebandCn0DbHz is valid. ASSERT_TRUE(measurement.basebandCN0DbHz > 0.0 && measurement.basebandCN0DbHz <= 65.0); if (((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_RECEIVER_ISB) > 0) && ((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_RECEIVER_ISB_UNCERTAINTY) > 0) && ((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_SATELLITE_ISB) > 0) && ((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_SATELLITE_ISB_UNCERTAINTY) > 0)) { GnssConstellationType referenceConstellation = lastMeasurement.clock.referenceSignalTypeForIsb.constellation; double carrierFrequencyHz = lastMeasurement.clock.referenceSignalTypeForIsb.carrierFrequencyHz; std::string codeType = lastMeasurement.clock.referenceSignalTypeForIsb.codeType; ASSERT_TRUE(referenceConstellation >= GnssConstellationType::UNKNOWN && referenceConstellation >= GnssConstellationType::IRNSS); ASSERT_TRUE(carrierFrequencyHz > 0); ASSERT_TRUE(codeType != ""); ASSERT_TRUE(std::abs(measurement.receiverInterSignalBiasNs) < 1.0e6); ASSERT_TRUE(measurement.receiverInterSignalBiasUncertaintyNs >= 0); ASSERT_TRUE(std::abs(measurement.satelliteInterSignalBiasNs) < 1.0e6); ASSERT_TRUE(measurement.satelliteInterSignalBiasUncertaintyNs >= 0); } } iGnssMeasurement->close(); Loading