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
This commit is contained in:
Yu-Han Yang
2020-03-09 12:22:44 -07:00
parent c28520ad97
commit b4f806f07f
5 changed files with 92 additions and 80 deletions

View File

@@ -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();

View File

@@ -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);

View File

@@ -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):

View File

@@ -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();
}

View File

@@ -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) {