diff --git a/current.txt b/current.txt index d8f9c08708..c9cba7090b 100644 --- a/current.txt +++ b/current.txt @@ -660,7 +660,7 @@ ba5ac712b2a656dc07c83ab4a7a2c2f3bee1bbcb752e8b8ffa9b672f3b5b0728 android.hardwar 3541d83adfeac16ee3e45d183a58dffe06012ccb5aa5bcd2e4f6eeae269f69cd android.hardware.gnss@2.1::IGnssCallback 737d750017738f0753d13ba01a3310e0161f294b8ae80b3fd63eaa227e9d9c66 android.hardware.gnss@2.1::IGnssConfiguration 7913a11206a577b12ade86a7cf3f95c2639cb514d086673f279bf99238c9917e android.hardware.gnss@2.1::IGnssMeasurement -0a16e5913e94d995cfcf959a1c6f10b0b8e9dfdb5f45ac6e7244711ddd740272 android.hardware.gnss@2.1::IGnssMeasurementCallback +df52e2c39ed701a355b5e0fdbf83fe5fa7d04bfecd715116b39373d46dc3c682 android.hardware.gnss@2.1::IGnssMeasurementCallback 6670e7780803a8c696c6391fda5589a334b1b37dc7be9393792ed35035413633 android.hardware.gnss.measurement_corrections@1.1::IMeasurementCorrections 956c1576ca0d6f11b42980ef59052062836b6763fe973af6cb709da50787f710 android.hardware.gnss.measurement_corrections@1.1::types ce8dbe76eb9ee94b46ef98f725be992e760a5751073d4f4912484026541371f3 android.hardware.health@2.1::IHealth diff --git a/gnss/2.1/IGnssMeasurementCallback.hal b/gnss/2.1/IGnssMeasurementCallback.hal index 0e6abbd5e5..60a542330d 100644 --- a/gnss/2.1/IGnssMeasurementCallback.hal +++ b/gnss/2.1/IGnssMeasurementCallback.hal @@ -30,13 +30,13 @@ interface IGnssMeasurementCallback extends @2.0::IGnssMeasurementCallback { */ enum GnssMeasurementFlags : @1.0::IGnssMeasurementCallback.GnssMeasurementFlags { /** - * A valid receiver inter-signal bias is stored in the data structure. + * A valid full inter-signal bias is stored in the data structure. */ - HAS_RECEIVER_ISB = 1 << 16, + HAS_FULL_ISB = 1 << 16, /** - * A valid receiver inter-signal bias uncertainty is stored in the data structure. + * A valid full inter-signal bias uncertainty is stored in the data structure. */ - HAS_RECEIVER_ISB_UNCERTAINTY = 1 << 17, + HAS_FULL_ISB_UNCERTAINTY = 1 << 17, /** * A valid satellite inter-signal bias is stored in the data structure. */ @@ -77,42 +77,58 @@ interface IGnssMeasurementCallback extends @2.0::IGnssMeasurementCallback { bitfield flags; /** - * The receiver inter-signal bias (ISB) in nanoseconds. + * The full inter-signal bias (ISB) in nanoseconds. * - * This value is the estimated receiver-side inter-system (different from the constellation - * in GnssClock.referenceSignalTypeForIsb) bias and inter-frequency (different from the - * carrier frequency in GnssClock.referenceSignalTypeForIsb) bias. The reported receiver ISB - * must include signal delays caused by + * This value is the sum of the estimated receiver-side and the space-segment-side + * inter-system bias, inter-frequency bias and inter-code bias, including * - * - Receiver inter-constellation bias - * - Receiver inter-frequency bias - * - Receiver inter-code bias + * - Receiver inter-constellation bias (with respect to the constellation in + * GnssClock.referenceSignalTypeForIsb) + * - Receiver inter-frequency bias (with respect to the carrier frequency in + * GnssClock.referenceSignalTypeForIsb) + * - Receiver inter-code bias (with respect to the code type in + * GnssClock.referenceSignalTypeForIsb) + * - Master clock bias (e.g., GPS-GAL Time Offset (GGTO), GPS-UTC Time Offset + * (TauGps), BDS-GLO Time Offset (BGTO)) (with respect to the constellation in + * GnssClock.referenceSignalTypeForIsb) + * - Group delay (e.g., Total Group Delay (TGD)) + * - Satellite inter-frequency bias (GLO only) (with respect to the carrier frequency in + * GnssClock.referenceSignalTypeForIsb) + * - Satellite inter-code bias (e.g., Differential Code Bias (DCB)) (with respect to the + * code type in GnssClock.referenceSignalTypeForIsb) + * + * If a component of the above is already compensated in the provided + * GnssMeasurement.receivedSvTimeInNs, then it must not be included in the reported full + * ISB. * * The value does not include the inter-frequency Ionospheric bias. * - * The receiver ISB of GnssClock.referenceSignalTypeForIsb is defined to be 0.0 nanoseconds. + * The full ISB of GnssClock.referenceSignalTypeForIsb is defined to be 0.0 nanoseconds. */ - double receiverInterSignalBiasNs; + double fullInterSignalBiasNs; /** - * 1-sigma uncertainty associated with the receiver inter-signal bias in nanoseconds. + * 1-sigma uncertainty associated with the full inter-signal bias in nanoseconds. */ - double receiverInterSignalBiasUncertaintyNs; + double fullInterSignalBiasUncertaintyNs; /** * The satellite inter-signal bias in nanoseconds. * - * This value is the satellite-and-control-segment-side inter-system (different from the - * constellation in GnssClock.referenceSignalTypeForIsb) bias and inter-frequency (different - * from the carrier frequency in GnssClock.referenceSignalTypeForIsb) bias, including: + * This value is the sum of the space-segment-side inter-system bias, inter-frequency bias + * and inter-code bias, including * - * - Master clock bias (e.g., GPS-GAL Time Offset (GGTO), GPT-UTC Time Offset (TauGps), - * BDS-GLO Time Offset (BGTO)) + * - Master clock bias (e.g., GPS-GAL Time Offset (GGTO), GPS-UTC Time Offset + * (TauGps), BDS-GLO Time Offset (BGTO)) (with respect to the constellation in + * GnssClock.referenceSignalTypeForIsb) * - 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)). + * - Satellite inter-frequency bias (GLO only) (with respect to the carrier frequency in + * GnssClock.referenceSignalTypeForIsb) + * - Satellite inter-code bias (e.g., Differential Code Bias (DCB)) (with respect to the + * code type in GnssClock.referenceSignalTypeForIsb) * - * The receiver ISB of GnssClock.referenceSignalTypeForIsb is defined to be 0.0 nanoseconds. + * The satellite ISB of GnssClock.referenceSignalTypeForIsb is defined to be 0.0 + * nanoseconds. */ double satelliteInterSignalBiasNs; diff --git a/gnss/2.1/vts/functional/gnss_hal_test_cases.cpp b/gnss/2.1/vts/functional/gnss_hal_test_cases.cpp index 7b054c0033..33feb5e5f0 100644 --- a/gnss/2.1/vts/functional/gnss_hal_test_cases.cpp +++ b/gnss/2.1/vts/functional/gnss_hal_test_cases.cpp @@ -98,7 +98,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. + * 2. ISB fields are valid */ TEST_P(GnssHalTest, TestGnssMeasurementFields) { const int kFirstGnssMeasurementTimeoutSeconds = 10; @@ -126,9 +126,8 @@ TEST_P(GnssHalTest, TestGnssMeasurementFields) { // 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) && + if (((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_FULL_ISB) > 0) && + ((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_FULL_ISB_UNCERTAINTY) > 0) && ((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_SATELLITE_ISB) > 0) && ((uint32_t)(measurement.flags & GnssMeasurementFlags::HAS_SATELLITE_ISB_UNCERTAINTY) > 0)) { @@ -143,8 +142,8 @@ TEST_P(GnssHalTest, TestGnssMeasurementFields) { 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.fullInterSignalBiasNs) < 1.0e6); + ASSERT_TRUE(measurement.fullInterSignalBiasUncertaintyNs >= 0); ASSERT_TRUE(std::abs(measurement.satelliteInterSignalBiasNs) < 1.0e6); ASSERT_TRUE(measurement.satelliteInterSignalBiasUncertaintyNs >= 0); } diff --git a/gnss/common/utils/default/Utils.cpp b/gnss/common/utils/default/Utils.cpp index 2e5b87330f..386090e486 100644 --- a/gnss/common/utils/default/Utils.cpp +++ b/gnss/common/utils/default/Utils.cpp @@ -39,12 +39,12 @@ GnssDataV2_1 Utils::getMockMeasurementV2_1() { .v2_0 = gnssDataV2_0.measurements[0], .flags = (uint32_t)(GnssMeasurementFlagsV2_1::HAS_CARRIER_FREQUENCY | GnssMeasurementFlagsV2_1::HAS_CARRIER_PHASE | - GnssMeasurementFlagsV2_1::HAS_RECEIVER_ISB | - GnssMeasurementFlagsV2_1::HAS_RECEIVER_ISB_UNCERTAINTY | + GnssMeasurementFlagsV2_1::HAS_FULL_ISB | + GnssMeasurementFlagsV2_1::HAS_FULL_ISB_UNCERTAINTY | GnssMeasurementFlagsV2_1::HAS_SATELLITE_ISB | GnssMeasurementFlagsV2_1::HAS_SATELLITE_ISB_UNCERTAINTY), - .receiverInterSignalBiasNs = 10.0, - .receiverInterSignalBiasUncertaintyNs = 100.0, + .fullInterSignalBiasNs = 30.0, + .fullInterSignalBiasUncertaintyNs = 250.0, .satelliteInterSignalBiasNs = 20.0, .satelliteInterSignalBiasUncertaintyNs = 150.0, .basebandCN0DbHz = 25.0,