Loading system/gd/hal/ranging_hal.h +6 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,12 @@ namespace bluetooth { namespace hal { enum RangingHalVersion { V_UNKNOWN = 0, V_1 = 1, V_2 = 2, }; struct VendorSpecificCharacteristic { std::array<uint8_t, 16> characteristicUuid_; std::vector<uint8_t> value_; Loading system/gd/hal/ranging_hal_android.cc +17 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,8 @@ class RangingHalAndroid : public RangingHal { public: bool IsBound() override { return bluetooth_channel_sounding_ != nullptr; } RangingHalVersion GetRangingHalVersion() { return hal_ver_; } void RegisterCallback(RangingHalCallback* callback) { ranging_hal_callback_ = callback; } std::vector<VendorSpecificCharacteristic> GetVendorSpecificCharacteristics() override { Loading Loading @@ -248,6 +250,17 @@ public: protected: void ListDependencies(ModuleList* /*list*/) const {} RangingHalVersion get_ranging_hal_version() { int ver = 0; auto aidl_ret = bluetooth_channel_sounding_->getInterfaceVersion(&ver); if (aidl_ret.isOk()) { log::info("ranging HAL version - {}", ver); return static_cast<RangingHalVersion>(ver); } log::warn("ranging HAL version is not available."); return RangingHalVersion::V_UNKNOWN; } void Start() override { std::string instance = std::string() + IBluetoothChannelSounding::descriptor + "/default"; log::info("AServiceManager_isDeclared {}", AServiceManager_isDeclared(instance.c_str())); Loading @@ -255,6 +268,9 @@ protected: ::ndk::SpAIBinder binder(AServiceManager_waitForService(instance.c_str())); bluetooth_channel_sounding_ = IBluetoothChannelSounding::fromBinder(binder); log::info("Bind IBluetoothChannelSounding {}", IsBound() ? "Success" : "Fail"); if (bluetooth_channel_sounding_ != nullptr) { hal_ver_ = get_ranging_hal_version(); } } } Loading @@ -267,6 +283,7 @@ private: RangingHalCallback* ranging_hal_callback_; std::unordered_map<uint16_t, std::shared_ptr<BluetoothChannelSoundingSessionTracker>> session_trackers_; RangingHalVersion hal_ver_; }; const ModuleFactory RangingHal::Factory = ModuleFactory([]() { return new RangingHalAndroid(); }); Loading system/gd/hal/ranging_hal_host.cc +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ namespace hal { class RangingHalHost : public RangingHal { public: bool IsBound() override { return false; } RangingHalVersion GetRangingHalVersion() { return V_UNKNOWN; } void RegisterCallback(RangingHalCallback* /* callback */) override {} std::vector<VendorSpecificCharacteristic> GetVendorSpecificCharacteristics() override { std::vector<VendorSpecificCharacteristic> vendor_specific_characteristics = {}; Loading Loading
system/gd/hal/ranging_hal.h +6 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,12 @@ namespace bluetooth { namespace hal { enum RangingHalVersion { V_UNKNOWN = 0, V_1 = 1, V_2 = 2, }; struct VendorSpecificCharacteristic { std::array<uint8_t, 16> characteristicUuid_; std::vector<uint8_t> value_; Loading
system/gd/hal/ranging_hal_android.cc +17 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,8 @@ class RangingHalAndroid : public RangingHal { public: bool IsBound() override { return bluetooth_channel_sounding_ != nullptr; } RangingHalVersion GetRangingHalVersion() { return hal_ver_; } void RegisterCallback(RangingHalCallback* callback) { ranging_hal_callback_ = callback; } std::vector<VendorSpecificCharacteristic> GetVendorSpecificCharacteristics() override { Loading Loading @@ -248,6 +250,17 @@ public: protected: void ListDependencies(ModuleList* /*list*/) const {} RangingHalVersion get_ranging_hal_version() { int ver = 0; auto aidl_ret = bluetooth_channel_sounding_->getInterfaceVersion(&ver); if (aidl_ret.isOk()) { log::info("ranging HAL version - {}", ver); return static_cast<RangingHalVersion>(ver); } log::warn("ranging HAL version is not available."); return RangingHalVersion::V_UNKNOWN; } void Start() override { std::string instance = std::string() + IBluetoothChannelSounding::descriptor + "/default"; log::info("AServiceManager_isDeclared {}", AServiceManager_isDeclared(instance.c_str())); Loading @@ -255,6 +268,9 @@ protected: ::ndk::SpAIBinder binder(AServiceManager_waitForService(instance.c_str())); bluetooth_channel_sounding_ = IBluetoothChannelSounding::fromBinder(binder); log::info("Bind IBluetoothChannelSounding {}", IsBound() ? "Success" : "Fail"); if (bluetooth_channel_sounding_ != nullptr) { hal_ver_ = get_ranging_hal_version(); } } } Loading @@ -267,6 +283,7 @@ private: RangingHalCallback* ranging_hal_callback_; std::unordered_map<uint16_t, std::shared_ptr<BluetoothChannelSoundingSessionTracker>> session_trackers_; RangingHalVersion hal_ver_; }; const ModuleFactory RangingHal::Factory = ModuleFactory([]() { return new RangingHalAndroid(); }); Loading
system/gd/hal/ranging_hal_host.cc +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ namespace hal { class RangingHalHost : public RangingHal { public: bool IsBound() override { return false; } RangingHalVersion GetRangingHalVersion() { return V_UNKNOWN; } void RegisterCallback(RangingHalCallback* /* callback */) override {} std::vector<VendorSpecificCharacteristic> GetVendorSpecificCharacteristics() override { std::vector<VendorSpecificCharacteristic> vendor_specific_characteristics = {}; Loading