From b5310066d4301bac068201f8e18b51571afb98e2 Mon Sep 17 00:00:00 2001 From: Aaqib Ismail Date: Thu, 14 Sep 2023 15:46:59 -0700 Subject: [PATCH 1/3] Make 2.0-libproto-native visible to sdv_ivi_cf Bug: 291278377 Test: m Change-Id: I4eba410eef0b410299bde34265b0392114e33d7b --- automotive/vehicle/proto/Android.bp | 1 + 1 file changed, 1 insertion(+) diff --git a/automotive/vehicle/proto/Android.bp b/automotive/vehicle/proto/Android.bp index 683f1281c4..7b98540013 100644 --- a/automotive/vehicle/proto/Android.bp +++ b/automotive/vehicle/proto/Android.bp @@ -27,6 +27,7 @@ cc_library_static { visibility: [ "//hardware/interfaces/automotive/vehicle:__subpackages__", "//device/generic/car/emulator:__subpackages__", + "//device/google/sdv/sdv_ivi_cf:__subpackages__", ], vendor: true, host_supported: true, From 7d483bc65630555b606cb74fc42b188d414b1ea0 Mon Sep 17 00:00:00 2001 From: Aaqib Ismail Date: Thu, 14 Sep 2023 15:48:22 -0700 Subject: [PATCH 2/3] Move VHAL config dirs to protected Bug: 291278377 Test: m Change-Id: I3c67e0b9398e7891bcfecddac5169fb76536cc25 --- .../fake_impl/hardware/include/FakeVehicleHardware.h | 7 +++++-- .../fake_impl/hardware/src/FakeVehicleHardware.cpp | 12 ++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h index c3ebd3b3bc..af1bb1d16d 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h @@ -99,12 +99,17 @@ class FakeVehicleHardware : public IVehicleHardware { const std::shared_ptr mValuePool; const std::shared_ptr mServerSidePropStore; + const std::string mDefaultConfigDir; + const std::string mOverrideConfigDir; + ValueResultType getValue( const aidl::android::hardware::automotive::vehicle::VehiclePropValue& value) const; VhalResult setValue( const aidl::android::hardware::automotive::vehicle::VehiclePropValue& value); + bool UseOverrideConfigDir(); + private: // Expose private methods to unit test. friend class FakeVehicleHardwareTestHelper; @@ -156,8 +161,6 @@ class FakeVehicleHardware : public IVehicleHardware { aidl::android::hardware::automotive::vehicle::SetValueRequest> mPendingSetValueRequests; - const std::string mDefaultConfigDir; - const std::string mOverrideConfigDir; const bool mForceOverride; bool mAddExtraTestVendorConfigs; diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp index 661438516d..3e67450161 100644 --- a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp +++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp @@ -240,6 +240,8 @@ FakeVehicleHardware::FakeVehicleHardware(std::string defaultConfigDir, std::string overrideConfigDir, bool forceOverride) : mValuePool(std::make_unique()), mServerSidePropStore(new VehiclePropertyStore(mValuePool)), + mDefaultConfigDir(defaultConfigDir), + mOverrideConfigDir(overrideConfigDir), mFakeObd2Frame(new obd2frame::FakeObd2Frame(mServerSidePropStore)), mFakeUserHal(new FakeUserHal(mValuePool)), mRecurrentTimer(new RecurrentTimer()), @@ -247,8 +249,6 @@ FakeVehicleHardware::FakeVehicleHardware(std::string defaultConfigDir, [this](const VehiclePropValue& value) { eventFromVehicleBus(value); })), mPendingGetValueRequests(this), mPendingSetValueRequests(this), - mDefaultConfigDir(defaultConfigDir), - mOverrideConfigDir(overrideConfigDir), mForceOverride(forceOverride) { init(); } @@ -259,11 +259,15 @@ FakeVehicleHardware::~FakeVehicleHardware() { mGeneratorHub.reset(); } +bool FakeVehicleHardware::UseOverrideConfigDir() { + return mForceOverride || + android::base::GetBoolProperty(OVERRIDE_PROPERTY, /*default_value=*/false); +} + std::unordered_map FakeVehicleHardware::loadConfigDeclarations() { std::unordered_map configsByPropId; loadPropConfigsFromDir(mDefaultConfigDir, &configsByPropId); - if (mForceOverride || - android::base::GetBoolProperty(OVERRIDE_PROPERTY, /*default_value=*/false)) { + if (UseOverrideConfigDir()) { loadPropConfigsFromDir(mOverrideConfigDir, &configsByPropId); } return configsByPropId; From 514c23cad5133166d615df602be11f17ecac8f29 Mon Sep 17 00:00:00 2001 From: Aaqib Ismail Date: Tue, 19 Sep 2023 17:55:01 -0700 Subject: [PATCH 3/3] Make event callback accessible to child classes Bug: 291278377 Test: m Change-Id: Idb667aa847ba566713068a47b12dc849ffcf96cc --- automotive/vehicle/aidl/impl/grpc/GRPCVehicleHardware.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/automotive/vehicle/aidl/impl/grpc/GRPCVehicleHardware.h b/automotive/vehicle/aidl/impl/grpc/GRPCVehicleHardware.h index e740da7e5c..ddd620ea2e 100644 --- a/automotive/vehicle/aidl/impl/grpc/GRPCVehicleHardware.h +++ b/automotive/vehicle/aidl/impl/grpc/GRPCVehicleHardware.h @@ -82,6 +82,10 @@ class GRPCVehicleHardware : public IVehicleHardware { bool waitForConnected(std::chrono::milliseconds waitTime); + protected: + std::shared_mutex mCallbackMutex; + std::unique_ptr mOnPropChange; + private: void ValuePollingLoop(); @@ -90,8 +94,6 @@ class GRPCVehicleHardware : public IVehicleHardware { std::unique_ptr mGrpcStub; std::thread mValuePollingThread; - std::shared_mutex mCallbackMutex; - std::unique_ptr mOnPropChange; std::unique_ptr mOnSetErr; std::mutex mShutdownMutex;