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

Commit 3ba5d228 authored by Enrico Granata's avatar Enrico Granata
Browse files

Allow changing the mock location returned by GNSS HAL

This CL introduces a new lshal debug command for GNSS HAL
  location [lat=..] [lon=..] [ele=..] that allows changing
the mock location provided by GNSS HAL to clients

This can be used manually to configure a single mock location,
or in a scripted scenario to, e.g., supply a set of locations
from a GPX file to simulate a moving device

Bug: None
Test: set different locations via command line to Cuttlefish device, e.g.
$ adb shell lshal debug android.hardware.gnss@2.1::IGnss/default location lat=46.6317 lon=-114.0789
Change-Id: I7217c59f66f1ee7f5a9bd3f3dd3af7be4b43c024
parent c146f861
Loading
Loading
Loading
Loading
+12 −11
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@


#include "Constants.h"
#include "Constants.h"
#include "GnssDebug.h"
#include "GnssDebug.h"
#include "MockLocation.h"


using namespace ::android::hardware::gnss::common;
using namespace ::android::hardware::gnss::common;


@@ -33,9 +34,9 @@ namespace implementation {
Return<void> GnssDebug::getDebugData(V1_0::IGnssDebug::getDebugData_cb _hidl_cb) {
Return<void> GnssDebug::getDebugData(V1_0::IGnssDebug::getDebugData_cb _hidl_cb) {
    PositionDebug positionDebug = {
    PositionDebug positionDebug = {
            .valid = true,
            .valid = true,
        .latitudeDegrees = kMockLatitudeDegrees,
            .latitudeDegrees = gMockLatitudeDegrees,
        .longitudeDegrees = kMockLongitudeDegrees,
            .longitudeDegrees = gMockLongitudeDegrees,
        .altitudeMeters = kMockAltitudeMeters,
            .altitudeMeters = gMockAltitudeMeters,
            .speedMetersPerSec = kMockSpeedMetersPerSec,
            .speedMetersPerSec = kMockSpeedMetersPerSec,
            .bearingDegrees = kMockBearingDegrees,
            .bearingDegrees = kMockBearingDegrees,
            .horizontalAccuracyMeters = kMockHorizontalAccuracyMeters,
            .horizontalAccuracyMeters = kMockHorizontalAccuracyMeters,
+1 −0
Original line number Original line Diff line number Diff line
@@ -29,6 +29,7 @@ cc_library_static {
        "v2_1/GnssDebug.cpp",
        "v2_1/GnssDebug.cpp",
        "v2_1/GnssMeasurement.cpp",
        "v2_1/GnssMeasurement.cpp",
        "v2_1/GnssMeasurementCorrections.cpp",
        "v2_1/GnssMeasurementCorrections.cpp",
        "MockLocation.cpp",
        "Utils.cpp",
        "Utils.cpp",
        "NmeaFixInfo.cpp",
        "NmeaFixInfo.cpp",
    ],
    ],
+25 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "MockLocation.h"

namespace android::hardware::gnss::common {

float gMockLatitudeDegrees{37.4219999};
float gMockLongitudeDegrees{-122.0840575};
float gMockAltitudeMeters{1.60062531};

}  // namespace android::hardware::gnss::common
+4 −3
Original line number Original line Diff line number Diff line
@@ -15,6 +15,7 @@
 */
 */


#include <Constants.h>
#include <Constants.h>
#include <MockLocation.h>
#include <Utils.h>
#include <Utils.h>
#include <utils/SystemClock.h>
#include <utils/SystemClock.h>


@@ -141,9 +142,9 @@ V2_0::GnssLocation Utils::getMockLocationV2_0() {
V1_0::GnssLocation Utils::getMockLocationV1_0() {
V1_0::GnssLocation Utils::getMockLocationV1_0() {
    V1_0::GnssLocation location = {
    V1_0::GnssLocation location = {
            .gnssLocationFlags = 0xFF,
            .gnssLocationFlags = 0xFF,
            .latitudeDegrees = kMockLatitudeDegrees,
            .latitudeDegrees = gMockLatitudeDegrees,
            .longitudeDegrees = kMockLongitudeDegrees,
            .longitudeDegrees = gMockLongitudeDegrees,
            .altitudeMeters = kMockAltitudeMeters,
            .altitudeMeters = gMockAltitudeMeters,
            .speedMetersPerSec = kMockSpeedMetersPerSec,
            .speedMetersPerSec = kMockSpeedMetersPerSec,
            .bearingDegrees = kMockBearingDegrees,
            .bearingDegrees = kMockBearingDegrees,
            .horizontalAccuracyMeters = kMockHorizontalAccuracyMeters,
            .horizontalAccuracyMeters = kMockHorizontalAccuracyMeters,
+0 −3
Original line number Original line Diff line number Diff line
@@ -24,9 +24,6 @@ namespace hardware {
namespace gnss {
namespace gnss {
namespace common {
namespace common {


const float kMockLatitudeDegrees = 37.4219999;
const float kMockLongitudeDegrees = -122.0840575;
const float kMockAltitudeMeters = 1.60062531;
const float kMockSpeedMetersPerSec = 0;
const float kMockSpeedMetersPerSec = 0;
const float kMockBearingDegrees = 0;
const float kMockBearingDegrees = 0;
const float kMockHorizontalAccuracyMeters = 5;
const float kMockHorizontalAccuracyMeters = 5;
Loading