From ce1ae3fcb7f78ca0c0c620f276f8c5f9312ec0f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Tue, 5 Nov 2019 15:11:02 +0100 Subject: [PATCH] batt_smbus: exit/continue correctly when no device is on the bus --- src/drivers/batt_smbus/batt_smbus.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/drivers/batt_smbus/batt_smbus.cpp b/src/drivers/batt_smbus/batt_smbus.cpp index a6211c5961..0879622e5b 100644 --- a/src/drivers/batt_smbus/batt_smbus.cpp +++ b/src/drivers/batt_smbus/batt_smbus.cpp @@ -122,16 +122,17 @@ int BATT_SMBUS::task_spawn(int argc, char *argv[]) SMBus *interface = new SMBus(smbus_bus_options[i].busnum, BATT_SMBUS_ADDR); BATT_SMBUS *dev = new BATT_SMBUS(interface, smbus_bus_options[i].devpath); - // Successful read of device type, we've found our battery - _object.store(dev); - _task_id = task_id_is_work_queue; - int result = dev->get_startup_info(); if (result != PX4_OK) { - return PX4_ERROR; + delete dev; + continue; } + // Successful read of device type, we've found our battery + _object.store(dev); + _task_id = task_id_is_work_queue; + dev->ScheduleOnInterval(BATT_SMBUS_MEASUREMENT_INTERVAL_US); return PX4_OK;