AP_HAL_ESP32: add get_device_ptr to HAL I2CDevice API

This commit is contained in:
Peter Barker 2025-01-29 17:20:44 +11:00 committed by Peter Barker
parent d5922b2cf1
commit 46973652d4
2 changed files with 8 additions and 9 deletions

View File

@ -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<AP_HAL::I2CDevice>
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<AP_HAL::I2CDevice>(nullptr);
return nullptr;
}
auto dev = AP_HAL::OwnPtr<AP_HAL::I2CDevice>(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);
}
/*

View File

@ -124,7 +124,7 @@ public:
return static_cast<I2CDeviceManager*>(i2c_mgr);
}
AP_HAL::OwnPtr<AP_HAL::I2CDevice> 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;