From 46973652d4df84caa57da83434e08c2fbfd81ce2 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 29 Jan 2025 17:20:44 +1100 Subject: [PATCH] AP_HAL_ESP32: add get_device_ptr to HAL I2CDevice API --- libraries/AP_HAL_ESP32/I2CDevice.cpp | 15 +++++++-------- libraries/AP_HAL_ESP32/I2CDevice.h | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/libraries/AP_HAL_ESP32/I2CDevice.cpp b/libraries/AP_HAL_ESP32/I2CDevice.cpp index e2bcc9071ec81..1d31619a43713 100644 --- a/libraries/AP_HAL_ESP32/I2CDevice.cpp +++ b/libraries/AP_HAL_ESP32/I2CDevice.cpp @@ -150,17 +150,16 @@ bool I2CDevice::adjust_periodic_callback(AP_HAL::Device::PeriodicHandle h, uint3 return bus.adjust_timer(h, period_usec); } -AP_HAL::OwnPtr -I2CDeviceManager::get_device(uint8_t bus, uint8_t address, - uint32_t bus_clock, - bool use_smbus, - uint32_t timeout_ms) +AP_HAL::I2CDevice * +I2CDeviceManager::get_device_ptr(uint8_t bus, uint8_t address, + uint32_t bus_clock, + bool use_smbus, + uint32_t timeout_ms) { if (bus >= ARRAY_SIZE(i2c_bus_desc)) { - return AP_HAL::OwnPtr(nullptr); + return nullptr; } - auto dev = AP_HAL::OwnPtr(NEW_NOTHROW I2CDevice(bus, address, bus_clock, use_smbus, timeout_ms)); - return dev; + return NEW_NOTHROW I2CDevice(bus, address, bus_clock, use_smbus, timeout_ms); } /* diff --git a/libraries/AP_HAL_ESP32/I2CDevice.h b/libraries/AP_HAL_ESP32/I2CDevice.h index 099de86d33bfe..3119f18d709f5 100644 --- a/libraries/AP_HAL_ESP32/I2CDevice.h +++ b/libraries/AP_HAL_ESP32/I2CDevice.h @@ -124,7 +124,7 @@ class I2CDeviceManager : public AP_HAL::I2CDeviceManager return static_cast(i2c_mgr); } - AP_HAL::OwnPtr get_device(uint8_t bus, uint8_t address, + AP_HAL::I2CDevice *get_device_ptr(uint8_t bus, uint8_t address, uint32_t bus_clock=400000, bool use_smbus = false, uint32_t timeout_ms=4) override;