Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 212edc73 authored by Blake Kragten's avatar Blake Kragten
Browse files

GPS Atoms Addition

Porting gps location status (success/failure) logging to atom
GpsLocationStatusReported will be used by 2 count metrics to
determine the location failure rate.

Porting gps time to first fix seconds logging to atom
GPsTimeToFirstFixReported will be used by a value metric to determine
the average time to first fix on a GPS signal.

CTS tests will be added for these atoms in subsequent CL

Test: On Device using test script and gnsslogger.apk
>  make statsd_testdrive
>  ./out/host/linux-x86/bin/statsd_testdrive <ATOM_ID>

Bug: 141631388
Bug: 142740230
Change-Id: If8aed8f475078b05b977a73b4bba91c85af7716a
parent 70fd6b94
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -340,6 +340,8 @@ message Atom {
        PerfettoUploaded perfetto_uploaded =
            229 [(log_from_module) = "perfetto"];
        VmsClientConnectionStateChanged vms_client_connection_state_changed = 230;
        GpsLocationStatusReported gps_location_status_reported = 231;
        GpsTimeToFirstFixReported gps_time_to_first_fix_reported = 232;
    }

    // Pulled events will start at field 10000.
@@ -734,6 +736,27 @@ message GpsSignalQualityChanged {
    optional android.server.location.GpsSignalQualityEnum level = 1;
}

/**
 * Gps location status report
 *
 * Logged from:
 *   /frameworks/base/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java
 */
message GpsLocationStatusReported {
    // Boolean stating if location was acquired
    optional bool location_success = 1;
}

/**
 * Gps log time to first fix report
 *
 * Logged from:
 *   /frameworks/base/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java
 */
message GpsTimeToFirstFixReported {
    // int32 reporting the time to first fix in milliseconds
    optional int32 time_to_first_fix_millis = 1;
}

/**
 * Logs when a sync manager sync state changes.
+3 −0
Original line number Diff line number Diff line
@@ -114,6 +114,7 @@ public class GnssMetrics {
     * Logs the status of a location report received from the HAL
     */
    public void logReceivedLocationStatus(boolean isSuccessful) {
        StatsLog.write(StatsLog.GPS_LOCATION_STATUS_REPORTED, isSuccessful);
        if (!isSuccessful) {
            mLocationFailureStatistics.addItem(1.0);
            return;
@@ -130,6 +131,7 @@ public class GnssMetrics {
                DEFAULT_TIME_BETWEEN_FIXES_MILLISECS, desiredTimeBetweenFixesMilliSeconds)) - 1;
        if (numReportMissed > 0) {
            for (int i = 0; i < numReportMissed; i++) {
                StatsLog.write(StatsLog.GPS_LOCATION_STATUS_REPORTED, false);
                mLocationFailureStatistics.addItem(1.0);
            }
        }
@@ -140,6 +142,7 @@ public class GnssMetrics {
     */
    public void logTimeToFirstFixMilliSecs(int timeToFirstFixMilliSeconds) {
        mTimeToFirstFixSecStatistics.addItem((double) (timeToFirstFixMilliSeconds / 1000));
        StatsLog.write(StatsLog.GPS_TIME_TO_FIRST_FIX_REPORTED, timeToFirstFixMilliSeconds);
    }

    /**