diff options
Diffstat (limited to 'location')
-rw-r--r-- | location/java/android/location/GnssMeasurement.java | 142 |
1 files changed, 77 insertions, 65 deletions
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(); } |