diff options
author | Yu-Han Yang <yuhany@google.com> | 2020-03-09 12:22:44 -0700 |
---|---|---|
committer | Yu-Han Yang <yuhany@google.com> | 2020-03-17 20:42:53 +0000 |
commit | b4f806f07f28f0e590c08f049ed5f53d8e466b6d (patch) | |
tree | 3a52fec2c30906974f22e863726f88686005cd36 | |
parent | c28520ad97dd582f013e6fa79601b46a3159937c (diff) |
Update inter-signal bias (framework)
- Rename recieverInterSignalBiasNs into interSignalBiasNs, which refers
to the sum of receiver ISB and satellite ISB.
Bug: 150724332
Test: atest GnssMeasurementTest
Change-Id: I322cbe42d24d1f0fe60351c47579323a8715d4d7
-rw-r--r-- | api/current.txt | 8 | ||||
-rw-r--r-- | api/test-current.txt | 8 | ||||
-rw-r--r-- | api/test-lint-baseline.txt | 4 | ||||
-rw-r--r-- | location/java/android/location/GnssMeasurement.java | 142 | ||||
-rw-r--r-- | services/core/jni/com_android_server_location_GnssLocationProvider.cpp | 10 |
5 files changed, 92 insertions, 80 deletions
diff --git a/api/current.txt b/api/current.txt index 90f1c81fccab..fa8080c038d1 100644 --- a/api/current.txt +++ b/api/current.txt @@ -23601,13 +23601,13 @@ package android.location { method @FloatRange(from=0, to=63) public double getCn0DbHz(); method @NonNull public String getCodeType(); method public int getConstellationType(); + method public double getFullInterSignalBiasNanos(); + method @FloatRange(from=0.0) public double getFullInterSignalBiasUncertaintyNanos(); method public int getMultipathIndicator(); method public double getPseudorangeRateMetersPerSecond(); method public double getPseudorangeRateUncertaintyMetersPerSecond(); method public long getReceivedSvTimeNanos(); method public long getReceivedSvTimeUncertaintyNanos(); - method public double getReceiverInterSignalBiasNanos(); - method @FloatRange(from=0.0) public double getReceiverInterSignalBiasUncertaintyNanos(); method public double getSatelliteInterSignalBiasNanos(); method @FloatRange(from=0.0) public double getSatelliteInterSignalBiasUncertaintyNanos(); method public double getSnrInDb(); @@ -23621,8 +23621,8 @@ package android.location { method @Deprecated public boolean hasCarrierPhase(); method @Deprecated public boolean hasCarrierPhaseUncertainty(); method public boolean hasCodeType(); - method public boolean hasReceiverInterSignalBiasNanos(); - method public boolean hasReceiverInterSignalBiasUncertaintyNanos(); + method public boolean hasFullInterSignalBiasNanos(); + method public boolean hasFullInterSignalBiasUncertaintyNanos(); method public boolean hasSatelliteInterSignalBiasNanos(); method public boolean hasSatelliteInterSignalBiasUncertaintyNanos(); method public boolean hasSnrInDb(); diff --git a/api/test-current.txt b/api/test-current.txt index a1a652fcea9f..01a765b15c7b 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -1356,8 +1356,8 @@ package android.location { method @Deprecated public void resetCarrierPhase(); method @Deprecated public void resetCarrierPhaseUncertainty(); method public void resetCodeType(); - method public void resetReceiverInterSignalBiasNanos(); - method public void resetReceiverInterSignalBiasUncertaintyNanos(); + method public void resetFullInterSignalBiasNanos(); + method public void resetFullInterSignalBiasUncertaintyNanos(); method public void resetSatelliteInterSignalBiasNanos(); method public void resetSatelliteInterSignalBiasUncertaintyNanos(); method public void resetSnrInDb(); @@ -1374,13 +1374,13 @@ package android.location { method public void setCn0DbHz(double); method public void setCodeType(@NonNull String); method public void setConstellationType(int); + method public void setFullInterSignalBiasNanos(double); + method public void setFullInterSignalBiasUncertaintyNanos(@FloatRange(from=0.0) double); method public void setMultipathIndicator(int); method public void setPseudorangeRateMetersPerSecond(double); method public void setPseudorangeRateUncertaintyMetersPerSecond(double); method public void setReceivedSvTimeNanos(long); method public void setReceivedSvTimeUncertaintyNanos(long); - method public void setReceiverInterSignalBiasNanos(double); - method public void setReceiverInterSignalBiasUncertaintyNanos(@FloatRange(from=0.0) double); method public void setSatelliteInterSignalBiasNanos(double); method public void setSatelliteInterSignalBiasUncertaintyNanos(@FloatRange(from=0.0) double); method public void setSnrInDb(double); diff --git a/api/test-lint-baseline.txt b/api/test-lint-baseline.txt index 94db3464c8de..caf8fdbeca0d 100644 --- a/api/test-lint-baseline.txt +++ b/api/test-lint-baseline.txt @@ -421,9 +421,9 @@ GetterSetterNames: android.location.GnssMeasurement#setCarrierFrequencyHz(float) GetterSetterNames: android.location.GnssMeasurement#setCodeType(String): -GetterSetterNames: android.location.GnssMeasurement#setReceiverInterSignalBiasNanos(double): +GetterSetterNames: android.location.GnssMeasurement#setFullInterSignalBiasNanos(double): -GetterSetterNames: android.location.GnssMeasurement#setReceiverInterSignalBiasUncertaintyNanos(double): +GetterSetterNames: android.location.GnssMeasurement#setFullInterSignalBiasUncertaintyNanos(double): GetterSetterNames: android.location.GnssMeasurement#setSatelliteInterSignalBiasNanos(double): diff --git a/location/java/android/location/GnssMeasurement.java b/location/java/android/location/GnssMeasurement.java index 83a8995bee13..5e3b8aa629b4 100644 --- a/location/java/android/location/GnssMeasurement.java +++ b/location/java/android/location/GnssMeasurement.java @@ -21,8 +21,8 @@ import static android.hardware.gnss.V2_1.IGnssMeasurementCallback.GnssMeasuremen import static android.hardware.gnss.V2_1.IGnssMeasurementCallback.GnssMeasurementFlags.HAS_CARRIER_FREQUENCY; import static android.hardware.gnss.V2_1.IGnssMeasurementCallback.GnssMeasurementFlags.HAS_CARRIER_PHASE; import static android.hardware.gnss.V2_1.IGnssMeasurementCallback.GnssMeasurementFlags.HAS_CARRIER_PHASE_UNCERTAINTY; -import static android.hardware.gnss.V2_1.IGnssMeasurementCallback.GnssMeasurementFlags.HAS_RECEIVER_ISB; -import static android.hardware.gnss.V2_1.IGnssMeasurementCallback.GnssMeasurementFlags.HAS_RECEIVER_ISB_UNCERTAINTY; +import static android.hardware.gnss.V2_1.IGnssMeasurementCallback.GnssMeasurementFlags.HAS_FULL_ISB; +import static android.hardware.gnss.V2_1.IGnssMeasurementCallback.GnssMeasurementFlags.HAS_FULL_ISB_UNCERTAINTY; import static android.hardware.gnss.V2_1.IGnssMeasurementCallback.GnssMeasurementFlags.HAS_SATELLITE_ISB; import static android.hardware.gnss.V2_1.IGnssMeasurementCallback.GnssMeasurementFlags.HAS_SATELLITE_ISB_UNCERTAINTY; import static android.hardware.gnss.V2_1.IGnssMeasurementCallback.GnssMeasurementFlags.HAS_SNR; @@ -63,8 +63,8 @@ public final class GnssMeasurement implements Parcelable { private double mSnrInDb; private double mAutomaticGainControlLevelInDb; @NonNull private String mCodeType; - private double mReceiverInterSignalBiasNanos; - private double mReceiverInterSignalBiasUncertaintyNanos; + private double mFullInterSignalBiasNanos; + private double mFullInterSignalBiasUncertaintyNanos; private double mSatelliteInterSignalBiasNanos; private double mSatelliteInterSignalBiasUncertaintyNanos; @@ -268,9 +268,9 @@ public final class GnssMeasurement implements Parcelable { mSnrInDb = measurement.mSnrInDb; mAutomaticGainControlLevelInDb = measurement.mAutomaticGainControlLevelInDb; mCodeType = measurement.mCodeType; - mReceiverInterSignalBiasNanos = measurement.mReceiverInterSignalBiasNanos; - mReceiverInterSignalBiasUncertaintyNanos = - measurement.mReceiverInterSignalBiasUncertaintyNanos; + mFullInterSignalBiasNanos = measurement.mFullInterSignalBiasNanos; + mFullInterSignalBiasUncertaintyNanos = + measurement.mFullInterSignalBiasUncertaintyNanos; mSatelliteInterSignalBiasNanos = measurement.mSatelliteInterSignalBiasNanos; mSatelliteInterSignalBiasUncertaintyNanos = measurement.mSatelliteInterSignalBiasUncertaintyNanos; @@ -1435,99 +1435,110 @@ public final class GnssMeasurement implements Parcelable { } /** - * Returns {@code true} if {@link #getReceiverInterSignalBiasNanos()} is available, + * Returns {@code true} if {@link #getFullInterSignalBiasNanos()} is available, * {@code false} otherwise. */ - public boolean hasReceiverInterSignalBiasNanos() { - return isFlagSet(HAS_RECEIVER_ISB); + public boolean hasFullInterSignalBiasNanos() { + return isFlagSet(HAS_FULL_ISB); } /** - * Gets the GNSS measurement's receiver inter-signal bias in nanoseconds with sub-nanosecond - * accuracy. + * Gets the GNSS measurement's inter-signal bias in nanoseconds with sub-nanosecond accuracy. * - * <p>This value is the estimated receiver-side inter-system (different from the - * constellation in {@link GnssClock#getReferenceConstellationTypeForIsb()} bias and - * inter-frequency (different from the carrier frequency in - * {@link GnssClock#getReferenceCarrierFrequencyHzForIsb()}) bias. The reported receiver - * inter-signal bias must include signal delays caused by: + * <p>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: * * <ul> - * <li>Receiver inter-constellation bias</li> - * <li>Receiver inter-frequency bias</li> - * <li>Receiver inter-code bias</li> + * <li>Receiver inter-constellation bias (with respect to the constellation in + * {@link GnssClock#getReferenceConstellationTypeForIsb())</li> + * <li>Receiver inter-frequency bias (with respect to the carrier frequency in + * {@link GnssClock#getReferenceConstellationTypeForIsb())</li> + * <li>Receiver inter-code bias (with respect to the code type in + * {@link GnssClock#getReferenceConstellationTypeForIsb())</li> + * <li>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 + * {@link GnssClock#getReferenceConstellationTypeForIsb())</li> + * <li>Group delay (e.g., Total Group Delay (TGD))</li> + * <li>Satellite inter-frequency bias (GLO only) (with respect to the carrier frequency in + * {@link GnssClock#getReferenceConstellationTypeForIsb())</li> + * <li>Satellite inter-code bias (e.g., Differential Code Bias (DCB)) (with respect to the code + * type in {@link GnssClock#getReferenceConstellationTypeForIsb())</li> * </ul> * + * <p>If a component of the above is already compensated in the provided + * {@link GnssMeasurement#getReceivedSvTimeNanos()}, then it must not be included in the + * reported full ISB. + * * <p>The value does not include the inter-frequency Ionospheric bias. * - * <p>The value is only available if {@link #hasReceiverInterSignalBiasNanos()} is {@code true}. + * <p>The value is only available if {@link #hasFullInterSignalBiasNanos()} is {@code true}. */ - public double getReceiverInterSignalBiasNanos() { - return mReceiverInterSignalBiasNanos; + public double getFullInterSignalBiasNanos() { + return mFullInterSignalBiasNanos; } /** - * Sets the GNSS measurement's receiver inter-signal bias in nanoseconds. + * Sets the GNSS measurement's inter-signal bias in nanoseconds. * * @hide */ @TestApi - public void setReceiverInterSignalBiasNanos(double receiverInterSignalBiasNanos) { - setFlag(HAS_RECEIVER_ISB); - mReceiverInterSignalBiasNanos = receiverInterSignalBiasNanos; + public void setFullInterSignalBiasNanos(double fullInterSignalBiasNanos) { + setFlag(HAS_FULL_ISB); + mFullInterSignalBiasNanos = fullInterSignalBiasNanos; } /** - * Resets the GNSS measurement's receiver inter-signal bias in nanoseconds. + * Resets the GNSS measurement's inter-signal bias in nanoseconds. * * @hide */ @TestApi - public void resetReceiverInterSignalBiasNanos() { - resetFlag(HAS_RECEIVER_ISB); + public void resetFullInterSignalBiasNanos() { + resetFlag(HAS_FULL_ISB); } /** - * Returns {@code true} if {@link #getReceiverInterSignalBiasUncertaintyNanos()} is available, + * Returns {@code true} if {@link #getFullInterSignalBiasUncertaintyNanos()} is available, * {@code false} otherwise. */ - public boolean hasReceiverInterSignalBiasUncertaintyNanos() { - return isFlagSet(HAS_RECEIVER_ISB_UNCERTAINTY); + public boolean hasFullInterSignalBiasUncertaintyNanos() { + return isFlagSet(HAS_FULL_ISB_UNCERTAINTY); } /** - * Gets the GNSS measurement's receiver inter-signal bias uncertainty (1 sigma) in + * Gets the GNSS measurement's inter-signal bias uncertainty (1 sigma) in * nanoseconds with sub-nanosecond accuracy. * - * <p>The value is only available if {@link #hasReceiverInterSignalBiasUncertaintyNanos()} is + * <p>The value is only available if {@link #hasFullInterSignalBiasUncertaintyNanos()} is * {@code true}. */ @FloatRange(from = 0.0) - public double getReceiverInterSignalBiasUncertaintyNanos() { - return mReceiverInterSignalBiasUncertaintyNanos; + public double getFullInterSignalBiasUncertaintyNanos() { + return mFullInterSignalBiasUncertaintyNanos; } /** - * Sets the GNSS measurement's receiver inter-signal bias uncertainty (1 sigma) in nanoseconds. + * Sets the GNSS measurement's inter-signal bias uncertainty (1 sigma) in nanoseconds. * * @hide */ @TestApi - public void setReceiverInterSignalBiasUncertaintyNanos(@FloatRange(from = 0.0) - double receiverInterSignalBiasUncertaintyNanos) { - setFlag(HAS_RECEIVER_ISB_UNCERTAINTY); - mReceiverInterSignalBiasUncertaintyNanos = receiverInterSignalBiasUncertaintyNanos; + public void setFullInterSignalBiasUncertaintyNanos(@FloatRange(from = 0.0) + double fullInterSignalBiasUncertaintyNanos) { + setFlag(HAS_FULL_ISB_UNCERTAINTY); + mFullInterSignalBiasUncertaintyNanos = fullInterSignalBiasUncertaintyNanos; } /** - * Resets the GNSS measurement's receiver inter-signal bias uncertainty (1 sigma) in + * Resets the GNSS measurement's inter-signal bias uncertainty (1 sigma) in * nanoseconds. * * @hide */ @TestApi - public void resetReceiverInterSignalBiasUncertaintyNanos() { - resetFlag(HAS_RECEIVER_ISB_UNCERTAINTY); + public void resetFullInterSignalBiasUncertaintyNanos() { + resetFlag(HAS_FULL_ISB_UNCERTAINTY); } /** @@ -1542,17 +1553,18 @@ public final class GnssMeasurement implements Parcelable { * Gets the GNSS measurement's satellite inter-signal bias in nanoseconds with sub-nanosecond * accuracy. * - * <p>This value is the satellite-and-control-segment-side inter-system (different from the - * constellation in {@link GnssClock#getReferenceConstellationTypeForIsb()}) bias and - * inter-frequency (different from the carrier frequency in - * {@link GnssClock#getReferenceCarrierFrequencyHzForIsb()}) bias, including: + * <p>This value is the space-segment-side inter-system bias, inter-frequency bias and + * inter-code bias, including: * * <ul> - * <li>Master clock bias (e.g., GPS-GAL Time Offset (GGTO), GPT-UTC Time Offset (TauGps), - * BDS-GLO Time Offset (BGTO))</li> + * <li>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 + * {@link GnssClock#getReferenceConstellationTypeForIsb())</li> * <li>Group delay (e.g., Total Group Delay (TGD))</li> - * <li>Satellite inter-signal bias, which includes satellite inter-frequency bias (GLO only), - * and satellite inter-code bias (e.g., Differential Code Bias (DCB)).</li> + * <li>Satellite inter-frequency bias (GLO only) (with respect to the carrier frequency in + * {@link GnssClock#getReferenceConstellationTypeForIsb())</li> + * <li>Satellite inter-code bias (e.g., Differential Code Bias (DCB)) (with respect to the code + * type in {@link GnssClock#getReferenceConstellationTypeForIsb())</li> * </ul> * * <p>The value is only available if {@link #hasSatelliteInterSignalBiasNanos()} is {@code @@ -1654,8 +1666,8 @@ public final class GnssMeasurement implements Parcelable { gnssMeasurement.mAutomaticGainControlLevelInDb = parcel.readDouble(); gnssMeasurement.mCodeType = parcel.readString(); gnssMeasurement.mBasebandCn0DbHz = parcel.readDouble(); - gnssMeasurement.mReceiverInterSignalBiasNanos = parcel.readDouble(); - gnssMeasurement.mReceiverInterSignalBiasUncertaintyNanos = parcel.readDouble(); + gnssMeasurement.mFullInterSignalBiasNanos = parcel.readDouble(); + gnssMeasurement.mFullInterSignalBiasUncertaintyNanos = parcel.readDouble(); gnssMeasurement.mSatelliteInterSignalBiasNanos = parcel.readDouble(); gnssMeasurement.mSatelliteInterSignalBiasUncertaintyNanos = parcel.readDouble(); @@ -1692,8 +1704,8 @@ public final class GnssMeasurement implements Parcelable { parcel.writeDouble(mAutomaticGainControlLevelInDb); parcel.writeString(mCodeType); parcel.writeDouble(mBasebandCn0DbHz); - parcel.writeDouble(mReceiverInterSignalBiasNanos); - parcel.writeDouble(mReceiverInterSignalBiasUncertaintyNanos); + parcel.writeDouble(mFullInterSignalBiasNanos); + parcel.writeDouble(mFullInterSignalBiasUncertaintyNanos); parcel.writeDouble(mSatelliteInterSignalBiasNanos); parcel.writeDouble(mSatelliteInterSignalBiasUncertaintyNanos); } @@ -1778,14 +1790,14 @@ public final class GnssMeasurement implements Parcelable { builder.append(String.format(format, "CodeType", mCodeType)); } - if (hasReceiverInterSignalBiasNanos() || hasReceiverInterSignalBiasUncertaintyNanos()) { + if (hasFullInterSignalBiasNanos() || hasFullInterSignalBiasUncertaintyNanos()) { builder.append(String.format( formatWithUncertainty, - "ReceiverInterSignalBiasNs", - hasReceiverInterSignalBiasNanos() ? mReceiverInterSignalBiasNanos : null, - "ReceiverInterSignalBiasUncertaintyNs", - hasReceiverInterSignalBiasUncertaintyNanos() - ? mReceiverInterSignalBiasUncertaintyNanos : null)); + "InterSignalBiasNs", + hasFullInterSignalBiasNanos() ? mFullInterSignalBiasNanos : null, + "InterSignalBiasUncertaintyNs", + hasFullInterSignalBiasUncertaintyNanos() + ? mFullInterSignalBiasUncertaintyNanos : null)); } if (hasSatelliteInterSignalBiasNanos() || hasSatelliteInterSignalBiasUncertaintyNanos()) { @@ -1824,8 +1836,8 @@ public final class GnssMeasurement implements Parcelable { resetAutomaticGainControlLevel(); resetCodeType(); resetBasebandCn0DbHz(); - resetReceiverInterSignalBiasNanos(); - resetReceiverInterSignalBiasUncertaintyNanos(); + resetFullInterSignalBiasNanos(); + resetFullInterSignalBiasUncertaintyNanos(); resetSatelliteInterSignalBiasNanos(); resetSatelliteInterSignalBiasUncertaintyNanos(); } diff --git a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp index 336934e5fb03..822f3835cc07 100644 --- a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp +++ b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp @@ -1448,13 +1448,13 @@ void GnssMeasurementCallback::translateSingleGnssMeasurement SET(BasebandCn0DbHz, measurement_V2_1->basebandCN0DbHz); - if (measurement_V2_1->flags & GnssMeasurementFlags::HAS_RECEIVER_ISB) { - SET(ReceiverInterSignalBiasNanos, measurement_V2_1->receiverInterSignalBiasNs); + if (measurement_V2_1->flags & GnssMeasurementFlags::HAS_FULL_ISB) { + SET(FullInterSignalBiasNanos, measurement_V2_1->fullInterSignalBiasNs); } - if (measurement_V2_1->flags & GnssMeasurementFlags::HAS_RECEIVER_ISB_UNCERTAINTY) { - SET(ReceiverInterSignalBiasUncertaintyNanos, - measurement_V2_1->receiverInterSignalBiasUncertaintyNs); + if (measurement_V2_1->flags & GnssMeasurementFlags::HAS_FULL_ISB_UNCERTAINTY) { + SET(FullInterSignalBiasUncertaintyNanos, + measurement_V2_1->fullInterSignalBiasUncertaintyNs); } if (measurement_V2_1->flags & GnssMeasurementFlags::HAS_SATELLITE_ISB) { |