Update GnssAssistance AIDL
- Add missing fields for Glonass ephemeris & almanac.
- Define health type for Galileo & Glonass.
Bug: 358381377
Test: atest VtsHalGnssTargetTest
Change-Id: Icb9c895e95b6cb25c21a63a8026017227c0c5cc3
diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/BeidouSatelliteEphemeris.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/BeidouSatelliteEphemeris.aidl
index ec517e6..7b1e66e 100644
--- a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/BeidouSatelliteEphemeris.aidl
+++ b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/BeidouSatelliteEphemeris.aidl
@@ -20,7 +20,7 @@
/* @hide */
@VintfStability
parcelable BeidouSatelliteEphemeris {
- int prn;
+ int svid;
android.hardware.gnss.gnss_assistance.BeidouSatelliteEphemeris.BeidouSatelliteClockModel satelliteClockModel;
android.hardware.gnss.gnss_assistance.KeplerianOrbitModel satelliteOrbitModel;
android.hardware.gnss.gnss_assistance.BeidouSatelliteEphemeris.BeidouSatelliteHealth satelliteHealth;
diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GalileoSatelliteEphemeris.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GalileoSatelliteEphemeris.aidl
index 1bac08e..e5a3630 100644
--- a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GalileoSatelliteEphemeris.aidl
+++ b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GalileoSatelliteEphemeris.aidl
@@ -35,7 +35,7 @@
/* @hide */
@VintfStability
parcelable GalileoSatelliteEphemeris {
- int satelliteCodeNumber;
+ int svid;
android.hardware.gnss.gnss_assistance.GalileoSatelliteEphemeris.GalileoSatelliteClockModel[] satelliteClockModel;
android.hardware.gnss.gnss_assistance.KeplerianOrbitModel satelliteOrbitModel;
android.hardware.gnss.gnss_assistance.GalileoSatelliteEphemeris.GalileoSvHealth svHealth;
@@ -58,11 +58,23 @@
}
@VintfStability
parcelable GalileoSvHealth {
- int dataValidityStatusE1b;
- int signalHealthStatusE1b;
- int dataValidityStatusE5a;
- int signalHealthStatusE5a;
- int dataValidityStatusE5b;
- int signalHealthStatusE5b;
+ android.hardware.gnss.gnss_assistance.GalileoSatelliteEphemeris.GalileoSvHealth.GalileoHealthDataVaidityType dataValidityStatusE1b;
+ android.hardware.gnss.gnss_assistance.GalileoSatelliteEphemeris.GalileoSvHealth.GalileoHealthStatusType signalHealthStatusE1b;
+ android.hardware.gnss.gnss_assistance.GalileoSatelliteEphemeris.GalileoSvHealth.GalileoHealthDataVaidityType dataValidityStatusE5a;
+ android.hardware.gnss.gnss_assistance.GalileoSatelliteEphemeris.GalileoSvHealth.GalileoHealthStatusType signalHealthStatusE5a;
+ android.hardware.gnss.gnss_assistance.GalileoSatelliteEphemeris.GalileoSvHealth.GalileoHealthDataVaidityType dataValidityStatusE5b;
+ android.hardware.gnss.gnss_assistance.GalileoSatelliteEphemeris.GalileoSvHealth.GalileoHealthStatusType signalHealthStatusE5b;
+ @Backing(type="int") @VintfStability
+ enum GalileoHealthDataVaidityType {
+ DATA_VALID = 0,
+ WORKING_WITHOUT_GUARANTEE = 1,
+ }
+ @Backing(type="int") @VintfStability
+ enum GalileoHealthStatusType {
+ OK = 0,
+ OUT_OF_SERVICE = 1,
+ EXTENDED_OPERATION_MODE = 2,
+ IN_TEST = 3,
+ }
}
}
diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GlonassAlmanac.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GlonassAlmanac.aidl
index 55621ab..6cf79f5 100644
--- a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GlonassAlmanac.aidl
+++ b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GlonassAlmanac.aidl
@@ -21,12 +21,14 @@
@VintfStability
parcelable GlonassAlmanac {
long issueDateMs;
- android.hardware.gnss.gnss_assistance.GlonassAlmanac.GlonassSatelliteAlmanac[] satelliteAlmanac;
+ android.hardware.gnss.gnss_assistance.GlonassAlmanac.GlonassSatelliteAlmanac[] satelliteAlmanacs;
@VintfStability
parcelable GlonassSatelliteAlmanac {
int slotNumber;
int svHealth;
- int frequencyChannel;
+ int frequencyChannelNumber;
+ int calendarDayNumber;
+ boolean isGlonassM;
double tau;
double tLambda;
double lambda;
diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GlonassSatelliteEphemeris.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GlonassSatelliteEphemeris.aidl
index bbcb3af..a08268b 100644
--- a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GlonassSatelliteEphemeris.aidl
+++ b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GlonassSatelliteEphemeris.aidl
@@ -39,14 +39,20 @@
int svHealth;
double frameTimeSeconds;
int ageInDays;
+ int updateIntervalMinutes;
+ boolean isOddUpdateInterval;
+ boolean isGlonassM;
android.hardware.gnss.gnss_assistance.GlonassSatelliteEphemeris.GlonassSatelliteClockModel satelliteClockModel;
android.hardware.gnss.gnss_assistance.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel satelliteOrbitModel;
+ const int GLONASS_HEALTH_STATUS_HEALTHY = 0;
+ const int GLONASS_HEALTH_STATUS_UNHEALTHY = 1;
@VintfStability
parcelable GlonassSatelliteClockModel {
long timeOfClockSeconds;
double clockBias;
- double freqBias;
- int freqNumber;
+ double frequencyBias;
+ int frequencyChannelNumber;
+ double groupDelayDiffSeconds;
}
@VintfStability
parcelable GlonassSatelliteOrbitModel {
diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GnssAlmanac.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GnssAlmanac.aidl
index b986be4..a7f3f5c 100644
--- a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GnssAlmanac.aidl
+++ b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GnssAlmanac.aidl
@@ -36,10 +36,11 @@
@VintfStability
parcelable GnssAlmanac {
long issueDateMs;
- int iod;
+ int ioda;
int weekNumber;
int toaSeconds;
- android.hardware.gnss.gnss_assistance.GnssAlmanac.GnssSatelliteAlmanac[] satelliteAlmanac;
+ boolean isCompleteAlmanacProvided;
+ android.hardware.gnss.gnss_assistance.GnssAlmanac.GnssSatelliteAlmanac[] satelliteAlmanacs;
@VintfStability
parcelable GnssSatelliteAlmanac {
int svid;
diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GpsSatelliteEphemeris.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GpsSatelliteEphemeris.aidl
index 721edb4..8a2ab77 100644
--- a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GpsSatelliteEphemeris.aidl
+++ b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/GpsSatelliteEphemeris.aidl
@@ -35,7 +35,7 @@
/* @hide */
@VintfStability
parcelable GpsSatelliteEphemeris {
- int prn;
+ int svid;
android.hardware.gnss.gnss_assistance.GpsSatelliteEphemeris.GpsL2Params gpsL2Params;
android.hardware.gnss.gnss_assistance.GpsSatelliteEphemeris.GpsSatelliteClockModel satelliteClockModel;
android.hardware.gnss.gnss_assistance.KeplerianOrbitModel satelliteOrbitModel;
diff --git a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/QzssSatelliteEphemeris.aidl b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/QzssSatelliteEphemeris.aidl
index 5bb1c97..5f13167 100644
--- a/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/QzssSatelliteEphemeris.aidl
+++ b/gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/gnss_assistance/QzssSatelliteEphemeris.aidl
@@ -35,7 +35,7 @@
/* @hide */
@VintfStability
parcelable QzssSatelliteEphemeris {
- int prn;
+ int svid;
android.hardware.gnss.gnss_assistance.GpsSatelliteEphemeris.GpsL2Params gpsL2Params;
android.hardware.gnss.gnss_assistance.GpsSatelliteEphemeris.GpsSatelliteClockModel satelliteClockModel;
android.hardware.gnss.gnss_assistance.KeplerianOrbitModel satelliteOrbitModel;
diff --git a/gnss/aidl/android/hardware/gnss/gnss_assistance/BeidouSatelliteEphemeris.aidl b/gnss/aidl/android/hardware/gnss/gnss_assistance/BeidouSatelliteEphemeris.aidl
index bb1f7d9..241a466 100644
--- a/gnss/aidl/android/hardware/gnss/gnss_assistance/BeidouSatelliteEphemeris.aidl
+++ b/gnss/aidl/android/hardware/gnss/gnss_assistance/BeidouSatelliteEphemeris.aidl
@@ -81,8 +81,8 @@
int toeSeconds;
}
- /** The PRN number of the Beidou satellite. */
- int prn;
+ /** PRN or satellite ID number for the Beidou satellite. */
+ int svid;
/** Satellite clock model. */
BeidouSatelliteClockModel satelliteClockModel;
diff --git a/gnss/aidl/android/hardware/gnss/gnss_assistance/GalileoSatelliteEphemeris.aidl b/gnss/aidl/android/hardware/gnss/gnss_assistance/GalileoSatelliteEphemeris.aidl
index e3160ef..1af07e5 100644
--- a/gnss/aidl/android/hardware/gnss/gnss_assistance/GalileoSatelliteEphemeris.aidl
+++ b/gnss/aidl/android/hardware/gnss/gnss_assistance/GalileoSatelliteEphemeris.aidl
@@ -82,27 +82,45 @@
*/
@VintfStability
parcelable GalileoSvHealth {
+ /** Galileo health data validity type. */
+ @VintfStability
+ @Backing(type="int")
+ enum GalileoHealthDataVaidityType {
+ DATA_VALID = 0,
+ WORKING_WITHOUT_GUARANTEE = 1
+ }
+
+ /** Galileo health status type. */
+ @VintfStability
+ @Backing(type="int")
+ enum GalileoHealthStatusType {
+ OK = 0,
+ OUT_OF_SERVICE = 1,
+ EXTENDED_OPERATION_MODE = 2,
+ IN_TEST = 3
+ }
+
/** E1-B data validity status. */
- int dataValidityStatusE1b;
+ GalileoHealthDataVaidityType dataValidityStatusE1b;
/** E1-B/C signal health status. */
- int signalHealthStatusE1b;
+ GalileoHealthStatusType signalHealthStatusE1b;
/** E5a data validity status. */
- int dataValidityStatusE5a;
+ GalileoHealthDataVaidityType dataValidityStatusE5a;
/** E5a signal health status. */
- int signalHealthStatusE5a;
+ GalileoHealthStatusType signalHealthStatusE5a;
/** E5b data validity status. */
- int dataValidityStatusE5b;
+ GalileoHealthDataVaidityType dataValidityStatusE5b;
/** E5b signal health status. */
- int signalHealthStatusE5b;
+ GalileoHealthStatusType signalHealthStatusE5b;
}
- /** Satellite code number. */
- int satelliteCodeNumber;
+ /** PRN or satellite ID number for the Galileo satellite. */
+ int svid;
/** Array of satellite clock model. */
GalileoSatelliteClockModel[] satelliteClockModel;
diff --git a/gnss/aidl/android/hardware/gnss/gnss_assistance/GlonassAlmanac.aidl b/gnss/aidl/android/hardware/gnss/gnss_assistance/GlonassAlmanac.aidl
index d4f149d..614edda 100644
--- a/gnss/aidl/android/hardware/gnss/gnss_assistance/GlonassAlmanac.aidl
+++ b/gnss/aidl/android/hardware/gnss/gnss_assistance/GlonassAlmanac.aidl
@@ -2,7 +2,7 @@
/**
* Contains Glonass almanac data.
- * This is defined in Glonass ICD v5.1, Section 4.5.
+ * This is defined in Glonass ICD v5.1, section 4.5.
*
* @hide
*/
@@ -10,18 +10,31 @@
parcelable GlonassAlmanac {
/**
* Contains Glonass satellite almanac data.
- * This is defined in Glonass ICD v5.1, Section 4.5.
+ * This is defined in Glonass ICD v5.1, section 4.5.
*/
@VintfStability
parcelable GlonassSatelliteAlmanac {
/** Slot number. */
int slotNumber;
- /** Satellite health (0=healthy, 1=unhealthy). */
+ /**
+ * Satellite health which is set with the GLONASS_HEALTH_STATUS_*
+ * constants in GlonassSatelliteEphemeris.
+ */
int svHealth;
- /** Frequency channel number. */
- int frequencyChannel;
+ /**
+ * Frequency channel number.
+ *
+ * This is defined in Glonass ICD v5.1 section 3.3.1.1.
+ */
+ int frequencyChannelNumber;
+
+ /** Calendar day number within the four-year period beginning since the leap year. */
+ int calendarDayNumber;
+
+ /** Flag to indicates if the satellite is a GLONASS-M satellitee. */
+ boolean isGlonassM;
/** Coarse value of satellite time correction to GLONASS time in seconds. */
double tau;
@@ -44,7 +57,7 @@
/** Eccentricity. */
double eccentricity;
- /** Argument of perigee in radians. */
+ /** Argument of perigee in semi-circles. */
double omega;
}
@@ -52,5 +65,5 @@
long issueDateMs;
/** Array of GlonassSatelliteAlmanac. */
- GlonassSatelliteAlmanac[] satelliteAlmanac;
+ GlonassSatelliteAlmanac[] satelliteAlmanacs;
}
diff --git a/gnss/aidl/android/hardware/gnss/gnss_assistance/GlonassSatelliteEphemeris.aidl b/gnss/aidl/android/hardware/gnss/gnss_assistance/GlonassSatelliteEphemeris.aidl
index bebde51..e17de59 100644
--- a/gnss/aidl/android/hardware/gnss/gnss_assistance/GlonassSatelliteEphemeris.aidl
+++ b/gnss/aidl/android/hardware/gnss/gnss_assistance/GlonassSatelliteEphemeris.aidl
@@ -16,8 +16,6 @@
package android.hardware.gnss.gnss_assistance;
-import android.hardware.gnss.gnss_assistance.SatelliteEphemerisTime;
-
/**
* Contains ephemeris parameters specific to Glonass satellites.
* This is defined in RINEX 3.05 APPENDIX 10 and Glonass ICD v5.1, section 4.4.
@@ -41,10 +39,21 @@
double clockBias;
/** Frequency bias (+GammaN). */
- double freqBias;
+ double frequencyBias;
- /** Frequency number. */
- int freqNumber;
+ /**
+ * Frequency channel number.
+ *
+ * This is defined in Glonass ICD v5.1 section 3.3.1.1.
+ */
+ int frequencyChannelNumber;
+
+ /**
+ * L1/L2 group delay difference in seconds (DeltaTau).
+ *
+ * It is set to 0.999999999999E+09 if the value is not available.
+ */
+ double groupDelayDiffSeconds;
}
/** Contains Glonass orbit model parameters in PZ-90 coordinate system. */
@@ -78,13 +87,16 @@
double zAccel;
}
- /**
- * L1/Satellite system (R), satellite number (slot number in sat.
- * constellation).
- */
+ /** Glonass health status healthy. */
+ const int GLONASS_HEALTH_STATUS_HEALTHY = 0;
+
+ /** Glonass health status unhealthy. */
+ const int GLONASS_HEALTH_STATUS_UNHEALTHY = 1;
+
+ /** Slot number. */
int slotNumber;
- /** Satellite health (0=healthy, 1=unhealthy). */
+ /** Satellite health which is set with the GLONASS_HEALTH_STATUS_* constants */
int svHealth;
/** Message frame time in seconds of the UTC week (tk+nd*86400). */
@@ -93,6 +105,15 @@
/** Age of current information in days (E). */
int ageInDays;
+ /** Update and validity interval in minutes (P1) **/
+ int updateIntervalMinutes;
+
+ /** Flag to indicate oddness(1) or evenness(0) of update interval (P2). */
+ boolean isOddUpdateInterval;
+
+ /** Flag to indicates if the satellite is a Glonass-M satellitee (M). */
+ boolean isGlonassM;
+
/** Satellite clock model. */
GlonassSatelliteClockModel satelliteClockModel;
diff --git a/gnss/aidl/android/hardware/gnss/gnss_assistance/GnssAlmanac.aidl b/gnss/aidl/android/hardware/gnss/gnss_assistance/GnssAlmanac.aidl
index 08f3373..f12378b 100644
--- a/gnss/aidl/android/hardware/gnss/gnss_assistance/GnssAlmanac.aidl
+++ b/gnss/aidl/android/hardware/gnss/gnss_assistance/GnssAlmanac.aidl
@@ -40,7 +40,7 @@
* This is defined Galileo-OS-SIS-ICD-v2.1 section 5.1.10.
* This is unused for GPS/QZSS/Baidou.
*/
- int iod;
+ int ioda;
/**
* Almanac reference week number.
@@ -55,6 +55,12 @@
int toaSeconds;
/**
+ * Flag to indicate if the satelliteAlmanacs contains complete GNSS
+ * constellation indicated by svid.
+ **/
+ boolean isCompleteAlmanacProvided;
+
+ /**
* Contains almanac parameters for GPS, QZSS, Galileo, Beidou.
*
* For Beidou, this is defined in BDS-SIS-ICD-B1I-3.0 section 5.2.4.15.
@@ -64,7 +70,7 @@
*/
@VintfStability
parcelable GnssSatelliteAlmanac {
- /** The PRN number of the GNSS satellite. */
+ /** PRN or satellite ID number for the satellite. */
int svid;
/**
@@ -124,5 +130,5 @@
}
/** Array of GnssSatelliteAlmanac. */
- GnssSatelliteAlmanac[] satelliteAlmanac;
+ GnssSatelliteAlmanac[] satelliteAlmanacs;
}
diff --git a/gnss/aidl/android/hardware/gnss/gnss_assistance/GpsSatelliteEphemeris.aidl b/gnss/aidl/android/hardware/gnss/gnss_assistance/GpsSatelliteEphemeris.aidl
index ab38030..4be2fcc 100644
--- a/gnss/aidl/android/hardware/gnss/gnss_assistance/GpsSatelliteEphemeris.aidl
+++ b/gnss/aidl/android/hardware/gnss/gnss_assistance/GpsSatelliteEphemeris.aidl
@@ -27,8 +27,8 @@
*/
@VintfStability
parcelable GpsSatelliteEphemeris {
- /** Satellite PRN */
- int prn;
+ /** PRN or satellite ID number for the GPS satellite. */
+ int svid;
/* Contains information about L2 params. */
@VintfStability
diff --git a/gnss/aidl/android/hardware/gnss/gnss_assistance/QzssSatelliteEphemeris.aidl b/gnss/aidl/android/hardware/gnss/gnss_assistance/QzssSatelliteEphemeris.aidl
index a5a22d0..6768daf 100644
--- a/gnss/aidl/android/hardware/gnss/gnss_assistance/QzssSatelliteEphemeris.aidl
+++ b/gnss/aidl/android/hardware/gnss/gnss_assistance/QzssSatelliteEphemeris.aidl
@@ -30,8 +30,8 @@
*/
@VintfStability
parcelable QzssSatelliteEphemeris {
- /** Satellite PRN. */
- int prn;
+ /** PRN or satellite ID number for the Qzss satellite. */
+ int svid;
/** L2 parameters. */
GpsL2Params gpsL2Params;