Loading compatibility_matrices/compatibility_matrix.current.xml +1 −0 Original line number Diff line number Diff line Loading @@ -203,6 +203,7 @@ <hal format="hidl" optional="true"> <name>android.hardware.gnss</name> <version>2.0-1</version> <version>3.0</version> <interface> <name>IGnss</name> <instance>default</instance> Loading gnss/2.1/Android.bp +3 −2 Original line number Diff line number Diff line Loading @@ -12,13 +12,13 @@ hidl_interface { "IGnssAntennaInfo.hal", "IGnssAntennaInfoCallback.hal", "IGnssCallback.hal", "IGnssConfiguration.hal", "IGnssMeasurement.hal", "IGnssMeasurementCallback.hal", "IGnssConfiguration.hal", ], interfaces: [ "android.hardware.gnss.measurement_corrections@1.1", "android.hardware.gnss.measurement_corrections@1.0", "android.hardware.gnss.measurement_corrections@1.1", "android.hardware.gnss.visibility_control@1.0", "android.hardware.gnss@1.0", "android.hardware.gnss@1.1", Loading @@ -26,4 +26,5 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, gen_java_constants: true, } gnss/2.1/default/Android.bp +0 −6 Original line number Diff line number Diff line Loading @@ -21,12 +21,6 @@ cc_binary { vendor: true, vintf_fragments: ["android.hardware.gnss@2.1-service.xml"], srcs: [ "Gnss.cpp", "GnssAntennaInfo.cpp", "GnssDebug.cpp", "GnssMeasurement.cpp", "GnssMeasurementCorrections.cpp", "GnssConfiguration.cpp", "service.cpp", ], shared_libs: [ Loading gnss/2.1/default/Gnss.hdeleted 100644 → 0 +0 −128 Original line number Diff line number Diff line /* * Copyright (C) 2019 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. */ #pragma once #include <android/hardware/gnss/2.1/IGnss.h> #include <hidl/MQDescriptor.h> #include <hidl/Status.h> #include <atomic> #include <mutex> #include <thread> #include "GnssAntennaInfo.h" #include "GnssConfiguration.h" #include "NmeaFixInfo.h" namespace android { namespace hardware { namespace gnss { namespace V2_1 { using GnssSvInfo = IGnssCallback::GnssSvInfo; using ::android::hardware::gnss::common::NmeaFixInfo; namespace implementation { constexpr int INPUT_BUFFER_SIZE = 128; constexpr char CMD_GET_LOCATION[] = "CMD_GET_LOCATION"; constexpr char GNSS_PATH[] = "/dev/gnss0"; struct Gnss : public IGnss { Gnss(); ~Gnss(); // Methods from V1_0::IGnss follow. Return<bool> setCallback(const sp<V1_0::IGnssCallback>& callback) override; Return<bool> start() override; Return<bool> stop() override; Return<void> cleanup() override; Return<bool> injectTime(int64_t timeMs, int64_t timeReferenceMs, int32_t uncertaintyMs) override; Return<bool> injectLocation(double latitudeDegrees, double longitudeDegrees, float accuracyMeters) override; Return<void> deleteAidingData(V1_0::IGnss::GnssAidingData aidingDataFlags) override; Return<bool> setPositionMode(V1_0::IGnss::GnssPositionMode mode, V1_0::IGnss::GnssPositionRecurrence recurrence, uint32_t minIntervalMs, uint32_t preferredAccuracyMeters, uint32_t preferredTimeMs) override; Return<sp<V1_0::IAGnssRil>> getExtensionAGnssRil() override; Return<sp<V1_0::IGnssGeofencing>> getExtensionGnssGeofencing() override; Return<sp<V1_0::IAGnss>> getExtensionAGnss() override; Return<sp<V1_0::IGnssNi>> getExtensionGnssNi() override; Return<sp<V1_0::IGnssMeasurement>> getExtensionGnssMeasurement() override; Return<sp<V1_0::IGnssNavigationMessage>> getExtensionGnssNavigationMessage() override; Return<sp<V1_0::IGnssXtra>> getExtensionXtra() override; Return<sp<V1_0::IGnssConfiguration>> getExtensionGnssConfiguration() override; Return<sp<V1_0::IGnssDebug>> getExtensionGnssDebug() override; Return<sp<V1_0::IGnssBatching>> getExtensionGnssBatching() override; // Methods from V1_1::IGnss follow. Return<bool> setCallback_1_1(const sp<V1_1::IGnssCallback>& callback) override; Return<bool> setPositionMode_1_1(V1_0::IGnss::GnssPositionMode mode, V1_0::IGnss::GnssPositionRecurrence recurrence, uint32_t minIntervalMs, uint32_t preferredAccuracyMeters, uint32_t preferredTimeMs, bool lowPowerMode) override; Return<sp<V1_1::IGnssConfiguration>> getExtensionGnssConfiguration_1_1() override; Return<sp<V1_1::IGnssMeasurement>> getExtensionGnssMeasurement_1_1() override; Return<bool> injectBestLocation(const V1_0::GnssLocation& location) override; // Methods from V2_0::IGnss follow. Return<bool> setCallback_2_0(const sp<V2_0::IGnssCallback>& callback) override; Return<sp<V2_0::IGnssConfiguration>> getExtensionGnssConfiguration_2_0() override; Return<sp<V2_0::IGnssDebug>> getExtensionGnssDebug_2_0() override; Return<sp<V2_0::IAGnss>> getExtensionAGnss_2_0() override; Return<sp<V2_0::IAGnssRil>> getExtensionAGnssRil_2_0() override; Return<sp<V2_0::IGnssMeasurement>> getExtensionGnssMeasurement_2_0() override; Return<sp<measurement_corrections::V1_0::IMeasurementCorrections>> getExtensionMeasurementCorrections() override; Return<sp<visibility_control::V1_0::IGnssVisibilityControl>> getExtensionVisibilityControl() override; Return<sp<V2_0::IGnssBatching>> getExtensionGnssBatching_2_0() override; Return<bool> injectBestLocation_2_0(const V2_0::GnssLocation& location) override; // Methods from V2_1::IGnss follow. Return<bool> setCallback_2_1(const sp<V2_1::IGnssCallback>& callback) override; Return<sp<V2_1::IGnssMeasurement>> getExtensionGnssMeasurement_2_1() override; Return<sp<V2_1::IGnssConfiguration>> getExtensionGnssConfiguration_2_1() override; Return<sp<measurement_corrections::V1_1::IMeasurementCorrections>> getExtensionMeasurementCorrections_1_1() override; Return<sp<V2_1::IGnssAntennaInfo>> getExtensionGnssAntennaInfo() override; private: std::unique_ptr<V2_0::GnssLocation> getLocationFromHW(); void reportLocation(const V2_0::GnssLocation&) const; void reportLocation(const V1_0::GnssLocation&) const; void reportSvStatus(const hidl_vec<GnssSvInfo>&) const; static sp<V2_1::IGnssCallback> sGnssCallback_2_1; static sp<V2_0::IGnssCallback> sGnssCallback_2_0; static sp<V1_1::IGnssCallback> sGnssCallback_1_1; static sp<V1_0::IGnssCallback> sGnssCallback_1_0; std::atomic<long> mMinIntervalMs; sp<GnssConfiguration> mGnssConfiguration; std::atomic<bool> mIsActive; std::atomic<bool> mHardwareModeOn; std::atomic<int> mGnssFd; std::thread mThread; mutable std::mutex mMutex; hidl_vec<GnssSvInfo> filterBlacklistedSatellitesV2_1(hidl_vec<GnssSvInfo> gnssSvInfoList); }; } // namespace implementation } // namespace V2_1 } // namespace gnss } // namespace hardware } // namespace android gnss/2.1/default/service.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -18,17 +18,17 @@ #include <hidl/HidlSupport.h> #include <hidl/HidlTransportSupport.h> #include "Gnss.h" #include "v2_1/GnssTemplate.h" using ::android::OK; using ::android::sp; using ::android::hardware::configureRpcThreadpool; using ::android::hardware::joinRpcThreadpool; using ::android::hardware::gnss::common::implementation::GnssTemplate; using ::android::hardware::gnss::V2_1::IGnss; using ::android::hardware::gnss::V2_1::implementation::Gnss; int main(int /* argc */, char* /* argv */[]) { sp<IGnss> gnss = new Gnss(); sp<IGnss> gnss = new GnssTemplate<IGnss>(); configureRpcThreadpool(1, true /* will join */); if (gnss->registerAsService() != OK) { ALOGE("Could not register gnss 2.1 service."); Loading Loading
compatibility_matrices/compatibility_matrix.current.xml +1 −0 Original line number Diff line number Diff line Loading @@ -203,6 +203,7 @@ <hal format="hidl" optional="true"> <name>android.hardware.gnss</name> <version>2.0-1</version> <version>3.0</version> <interface> <name>IGnss</name> <instance>default</instance> Loading
gnss/2.1/Android.bp +3 −2 Original line number Diff line number Diff line Loading @@ -12,13 +12,13 @@ hidl_interface { "IGnssAntennaInfo.hal", "IGnssAntennaInfoCallback.hal", "IGnssCallback.hal", "IGnssConfiguration.hal", "IGnssMeasurement.hal", "IGnssMeasurementCallback.hal", "IGnssConfiguration.hal", ], interfaces: [ "android.hardware.gnss.measurement_corrections@1.1", "android.hardware.gnss.measurement_corrections@1.0", "android.hardware.gnss.measurement_corrections@1.1", "android.hardware.gnss.visibility_control@1.0", "android.hardware.gnss@1.0", "android.hardware.gnss@1.1", Loading @@ -26,4 +26,5 @@ hidl_interface { "android.hidl.base@1.0", ], gen_java: true, gen_java_constants: true, }
gnss/2.1/default/Android.bp +0 −6 Original line number Diff line number Diff line Loading @@ -21,12 +21,6 @@ cc_binary { vendor: true, vintf_fragments: ["android.hardware.gnss@2.1-service.xml"], srcs: [ "Gnss.cpp", "GnssAntennaInfo.cpp", "GnssDebug.cpp", "GnssMeasurement.cpp", "GnssMeasurementCorrections.cpp", "GnssConfiguration.cpp", "service.cpp", ], shared_libs: [ Loading
gnss/2.1/default/Gnss.hdeleted 100644 → 0 +0 −128 Original line number Diff line number Diff line /* * Copyright (C) 2019 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. */ #pragma once #include <android/hardware/gnss/2.1/IGnss.h> #include <hidl/MQDescriptor.h> #include <hidl/Status.h> #include <atomic> #include <mutex> #include <thread> #include "GnssAntennaInfo.h" #include "GnssConfiguration.h" #include "NmeaFixInfo.h" namespace android { namespace hardware { namespace gnss { namespace V2_1 { using GnssSvInfo = IGnssCallback::GnssSvInfo; using ::android::hardware::gnss::common::NmeaFixInfo; namespace implementation { constexpr int INPUT_BUFFER_SIZE = 128; constexpr char CMD_GET_LOCATION[] = "CMD_GET_LOCATION"; constexpr char GNSS_PATH[] = "/dev/gnss0"; struct Gnss : public IGnss { Gnss(); ~Gnss(); // Methods from V1_0::IGnss follow. Return<bool> setCallback(const sp<V1_0::IGnssCallback>& callback) override; Return<bool> start() override; Return<bool> stop() override; Return<void> cleanup() override; Return<bool> injectTime(int64_t timeMs, int64_t timeReferenceMs, int32_t uncertaintyMs) override; Return<bool> injectLocation(double latitudeDegrees, double longitudeDegrees, float accuracyMeters) override; Return<void> deleteAidingData(V1_0::IGnss::GnssAidingData aidingDataFlags) override; Return<bool> setPositionMode(V1_0::IGnss::GnssPositionMode mode, V1_0::IGnss::GnssPositionRecurrence recurrence, uint32_t minIntervalMs, uint32_t preferredAccuracyMeters, uint32_t preferredTimeMs) override; Return<sp<V1_0::IAGnssRil>> getExtensionAGnssRil() override; Return<sp<V1_0::IGnssGeofencing>> getExtensionGnssGeofencing() override; Return<sp<V1_0::IAGnss>> getExtensionAGnss() override; Return<sp<V1_0::IGnssNi>> getExtensionGnssNi() override; Return<sp<V1_0::IGnssMeasurement>> getExtensionGnssMeasurement() override; Return<sp<V1_0::IGnssNavigationMessage>> getExtensionGnssNavigationMessage() override; Return<sp<V1_0::IGnssXtra>> getExtensionXtra() override; Return<sp<V1_0::IGnssConfiguration>> getExtensionGnssConfiguration() override; Return<sp<V1_0::IGnssDebug>> getExtensionGnssDebug() override; Return<sp<V1_0::IGnssBatching>> getExtensionGnssBatching() override; // Methods from V1_1::IGnss follow. Return<bool> setCallback_1_1(const sp<V1_1::IGnssCallback>& callback) override; Return<bool> setPositionMode_1_1(V1_0::IGnss::GnssPositionMode mode, V1_0::IGnss::GnssPositionRecurrence recurrence, uint32_t minIntervalMs, uint32_t preferredAccuracyMeters, uint32_t preferredTimeMs, bool lowPowerMode) override; Return<sp<V1_1::IGnssConfiguration>> getExtensionGnssConfiguration_1_1() override; Return<sp<V1_1::IGnssMeasurement>> getExtensionGnssMeasurement_1_1() override; Return<bool> injectBestLocation(const V1_0::GnssLocation& location) override; // Methods from V2_0::IGnss follow. Return<bool> setCallback_2_0(const sp<V2_0::IGnssCallback>& callback) override; Return<sp<V2_0::IGnssConfiguration>> getExtensionGnssConfiguration_2_0() override; Return<sp<V2_0::IGnssDebug>> getExtensionGnssDebug_2_0() override; Return<sp<V2_0::IAGnss>> getExtensionAGnss_2_0() override; Return<sp<V2_0::IAGnssRil>> getExtensionAGnssRil_2_0() override; Return<sp<V2_0::IGnssMeasurement>> getExtensionGnssMeasurement_2_0() override; Return<sp<measurement_corrections::V1_0::IMeasurementCorrections>> getExtensionMeasurementCorrections() override; Return<sp<visibility_control::V1_0::IGnssVisibilityControl>> getExtensionVisibilityControl() override; Return<sp<V2_0::IGnssBatching>> getExtensionGnssBatching_2_0() override; Return<bool> injectBestLocation_2_0(const V2_0::GnssLocation& location) override; // Methods from V2_1::IGnss follow. Return<bool> setCallback_2_1(const sp<V2_1::IGnssCallback>& callback) override; Return<sp<V2_1::IGnssMeasurement>> getExtensionGnssMeasurement_2_1() override; Return<sp<V2_1::IGnssConfiguration>> getExtensionGnssConfiguration_2_1() override; Return<sp<measurement_corrections::V1_1::IMeasurementCorrections>> getExtensionMeasurementCorrections_1_1() override; Return<sp<V2_1::IGnssAntennaInfo>> getExtensionGnssAntennaInfo() override; private: std::unique_ptr<V2_0::GnssLocation> getLocationFromHW(); void reportLocation(const V2_0::GnssLocation&) const; void reportLocation(const V1_0::GnssLocation&) const; void reportSvStatus(const hidl_vec<GnssSvInfo>&) const; static sp<V2_1::IGnssCallback> sGnssCallback_2_1; static sp<V2_0::IGnssCallback> sGnssCallback_2_0; static sp<V1_1::IGnssCallback> sGnssCallback_1_1; static sp<V1_0::IGnssCallback> sGnssCallback_1_0; std::atomic<long> mMinIntervalMs; sp<GnssConfiguration> mGnssConfiguration; std::atomic<bool> mIsActive; std::atomic<bool> mHardwareModeOn; std::atomic<int> mGnssFd; std::thread mThread; mutable std::mutex mMutex; hidl_vec<GnssSvInfo> filterBlacklistedSatellitesV2_1(hidl_vec<GnssSvInfo> gnssSvInfoList); }; } // namespace implementation } // namespace V2_1 } // namespace gnss } // namespace hardware } // namespace android
gnss/2.1/default/service.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -18,17 +18,17 @@ #include <hidl/HidlSupport.h> #include <hidl/HidlTransportSupport.h> #include "Gnss.h" #include "v2_1/GnssTemplate.h" using ::android::OK; using ::android::sp; using ::android::hardware::configureRpcThreadpool; using ::android::hardware::joinRpcThreadpool; using ::android::hardware::gnss::common::implementation::GnssTemplate; using ::android::hardware::gnss::V2_1::IGnss; using ::android::hardware::gnss::V2_1::implementation::Gnss; int main(int /* argc */, char* /* argv */[]) { sp<IGnss> gnss = new Gnss(); sp<IGnss> gnss = new GnssTemplate<IGnss>(); configureRpcThreadpool(1, true /* will join */); if (gnss->registerAsService() != OK) { ALOGE("Could not register gnss 2.1 service."); Loading