diff --git a/uwb/aidl/aidl_api/android.hardware.uwb/current/android/hardware/uwb/IUwbChip.aidl b/uwb/aidl/aidl_api/android.hardware.uwb/current/android/hardware/uwb/IUwbChip.aidl index c4cb47b07b..c7708f1e93 100644 --- a/uwb/aidl/aidl_api/android.hardware.uwb/current/android/hardware/uwb/IUwbChip.aidl +++ b/uwb/aidl/aidl_api/android.hardware.uwb/current/android/hardware/uwb/IUwbChip.aidl @@ -40,6 +40,7 @@ interface IUwbChip { void open(in android.hardware.uwb.IUwbClientCallback clientCallback); void close(); void coreInit(); + void sessionInit(int sessionId); int getSupportedAndroidUciVersion(); long getSupportedAndroidCapabilities(); int sendUciMessage(in byte[] data); diff --git a/uwb/aidl/android/hardware/uwb/IUwbChip.aidl b/uwb/aidl/android/hardware/uwb/IUwbChip.aidl index 0c986116aa..f2bb0f114f 100644 --- a/uwb/aidl/android/hardware/uwb/IUwbChip.aidl +++ b/uwb/aidl/android/hardware/uwb/IUwbChip.aidl @@ -49,6 +49,14 @@ interface IUwbChip { */ void coreInit(); + /** + * Perform any necessary UWB session initializations. + * This must be invoked by the framework at the beginging of every new ranging session. + * + * @param sessionId Session identifier as defined in the UCI specification. + */ + void sessionInit(int sessionId); + /** * Supported version of vendor UCI specification. * diff --git a/uwb/aidl/default/uwb_chip.cpp b/uwb/aidl/default/uwb_chip.cpp index 10dbdb6e5b..a5a3f4a123 100644 --- a/uwb/aidl/default/uwb_chip.cpp +++ b/uwb/aidl/default/uwb_chip.cpp @@ -51,6 +51,10 @@ UwbChip::~UwbChip() {} return ndk::ScopedAStatus::ok(); } +::ndk::ScopedAStatus UwbChip::sessionInit(int /* sessionId */) { + return ndk::ScopedAStatus::ok(); +} + ::ndk::ScopedAStatus UwbChip::getSupportedAndroidUciVersion(int32_t* version) { *version = kAndroidUciVersion; return ndk::ScopedAStatus::ok(); diff --git a/uwb/aidl/default/uwb_chip.h b/uwb/aidl/default/uwb_chip.h index ca97120b3a..46cecd4739 100644 --- a/uwb/aidl/default/uwb_chip.h +++ b/uwb/aidl/default/uwb_chip.h @@ -37,6 +37,7 @@ class UwbChip : public BnUwbChip { ::ndk::ScopedAStatus open(const std::shared_ptr& clientCallback) override; ::ndk::ScopedAStatus close() override; ::ndk::ScopedAStatus coreInit() override; + ::ndk::ScopedAStatus sessionInit(int sesionId) override; ::ndk::ScopedAStatus getSupportedAndroidUciVersion(int32_t* version) override; ::ndk::ScopedAStatus getSupportedAndroidCapabilities(int64_t* capabilities) override; ::ndk::ScopedAStatus sendUciMessage(const std::vector& data, diff --git a/uwb/aidl/vts/VtsHalUwbTargetTest.cpp b/uwb/aidl/vts/VtsHalUwbTargetTest.cpp index 3820c0fc1d..1da4432e47 100644 --- a/uwb/aidl/vts/VtsHalUwbTargetTest.cpp +++ b/uwb/aidl/vts/VtsHalUwbTargetTest.cpp @@ -166,6 +166,11 @@ TEST_P(UwbAidl, ChipCoreInit) { EXPECT_TRUE(iuwb_chip->coreInit().isOk()); } +TEST_P(UwbAidl, ChipSessionInit) { + const auto iuwb_chip = getAnyChipAndOpen(); + EXPECT_TRUE(iuwb_chip->sessionInit(0).isOk()); +} + TEST_P(UwbAidl, ChipGetSupportedAndroidUciVersion) { const auto iuwb_chip = getAnyChipAndOpen(); EXPECT_TRUE(iuwb_chip->coreInit().isOk());