diff options
author | Joe Huang <joethhuang@google.com> | 2021-05-10 17:07:40 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-05-10 17:07:40 +0000 |
commit | 88385cc1f0715953d6e5a2664c3f63799d6912d4 (patch) | |
tree | 10035b74be447839bb26ccf86f9fef9b2fcfb8b1 /location | |
parent | a2547e3057d40485652cef2e73a560ca22691bf8 (diff) | |
parent | 027bb813be24fc1243d53843b8a54265d1789f68 (diff) |
Merge "Add additional doc for SatellitePvt" into sc-dev
Diffstat (limited to 'location')
-rw-r--r-- | location/java/android/location/SatellitePvt.java | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/location/java/android/location/SatellitePvt.java b/location/java/android/location/SatellitePvt.java index 27c7eda1dae3..1456f74ef6d4 100644 --- a/location/java/android/location/SatellitePvt.java +++ b/location/java/android/location/SatellitePvt.java @@ -28,6 +28,19 @@ import android.os.Parcelable; * same signal transmission time {@link GnssMeasurement#getReceivedSvTimeNanos()}. * * <p>The position and velocity must be in ECEF coordinates. + * + * <p>If {@link GnssMeasurement#getSatellitePvt()} is derived from Broadcast ephemeris, then the + * position is already w.r.t. the antenna phase center. However, if + * {@link GnssMeasurement#getSatellitePvt()} is derived from other modeled orbits, such as + * long-term orbits, or precise orbits, then the orbits may have been computed w.r.t. + * the satellite center of mass, and then GNSS vendors are expected to correct for the effect + * on different phase centers (can differ by meters) of different GNSS signals (e.g. L1, L5) + * on the reported satellite position. Accordingly, we might observe a different satellite + * position reported for L1 GnssMeasurement struct compared to L5 GnssMeasurement struct. + * + * <p>If {@link GnssMeasurement#getReceivedSvTimeNanos()} is not fully decoded, + * {@link GnssMeasurement#getSatellitePvt()} could still be reported and + * {@link GnssMeasurement#getReceivedSvTimeUncertaintyNanos()} would be used to provide confidence. * @hide */ @SystemApi @@ -203,7 +216,7 @@ public final class SatellitePvt implements Parcelable { /** * Returns the signal in Space User Range Error Rate (URE Rate) (meters per second). * - * It covers satellite velocity error and Satellite clock drift + * <p>It covers satellite velocity error and Satellite clock drift * projected to the pseudorange rate measurements. */ @FloatRange(from = 0.0f, fromInclusive = false) @@ -272,6 +285,14 @@ public final class SatellitePvt implements Parcelable { /** * Returns the satellite hardware code bias of the reported code type w.r.t * ionosphere-free measurement in meters. + * + * <p>When broadcast ephemeris is used, this is the offset caused + * by the satellite hardware delays at different frequencies; + * e.g. in IS-GPS-705D, this term is described in Section + * 20.3.3.3.1.2.1. + * + * <p>For GPS this term is ~10ns, and affects the satellite position + * computation by less than a millimeter. */ @FloatRange() public double getHardwareCodeBiasMeters() { @@ -282,6 +303,17 @@ public final class SatellitePvt implements Parcelable { * Returns the satellite time correction for ionospheric-free signal measurement * (meters). The satellite clock correction for the given signal type * = satTimeCorrectionMeters - satHardwareCodeBiasMeters. + * + * <p>When broadcast ephemeris is used, this is the offset modeled in the + * clock terms broadcast over the air by the satellites; + * e.g. in IS-GPS-200H, Section 20.3.3.3.3.1, this term is + * ∆tsv = af0 + af1(t - toc) + af2(t - toc)^2 + ∆tr. + * + * <p>If another source of ephemeris is used for SatellitePvt, then the + * equivalent value of satTimeCorrection must be provided. + * + * <p>For GPS this term is ~1ms, and affects the satellite position + * computation by ~1m. */ @FloatRange() public double getTimeCorrectionMeters() { |