diff options
author | Chris Gross <chrisgross@google.com> | 2021-05-19 11:39:13 -0700 |
---|---|---|
committer | Scott Lobdell <slobdell@google.com> | 2021-05-21 00:34:23 +0000 |
commit | 219787565ff982848d596fa8743cd132af113e6b (patch) | |
tree | 93bd3c94771fb966fdf611d38865e712fb83e969 /location | |
parent | 7b4a006d559a571313e36799d93af7e3c6b69c82 (diff) | |
parent | 75eb1dd292d1800d660c5146464264b25854d318 (diff) |
Merge SP1A.210513.004
Change-Id: Ic23aece12c3bbd2b4dcf3205fdbcdd1601deabec
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() { |