From 2ba5e9645ad416a479a453bf6c36480463c8e7b4 Mon Sep 17 00:00:00 2001 From: Zebulon Date: Wed, 20 Jul 2022 08:05:14 +0800 Subject: [PATCH] tfmini_i2c: add Kconfig --- src/drivers/distance_sensor/Kconfig | 1 + .../distance_sensor/tfmini_i2c/Kconfig | 5 ++++ .../distance_sensor/tfmini_i2c/tfmini_i2c.cpp | 30 ++++--------------- .../distance_sensor/tfmini_i2c/tfmini_i2c.hpp | 6 ++-- 4 files changed, 13 insertions(+), 29 deletions(-) create mode 100644 src/drivers/distance_sensor/tfmini_i2c/Kconfig diff --git a/src/drivers/distance_sensor/Kconfig b/src/drivers/distance_sensor/Kconfig index 3bbc73ee57..d967c67386 100644 --- a/src/drivers/distance_sensor/Kconfig +++ b/src/drivers/distance_sensor/Kconfig @@ -18,6 +18,7 @@ menu "Distance sensors" select DRIVERS_DISTANCE_SENSOR_VL53L0X select DRIVERS_DISTANCE_SENSOR_VL53L1X select DRIVERS_DISTANCE_SENSOR_GY_US42 + select DRIVERS_DISTANCE_SENSOR_TFMINI_I2C ---help--- Enable default set of distance sensor drivers diff --git a/src/drivers/distance_sensor/tfmini_i2c/Kconfig b/src/drivers/distance_sensor/tfmini_i2c/Kconfig new file mode 100644 index 0000000000..87241748a2 --- /dev/null +++ b/src/drivers/distance_sensor/tfmini_i2c/Kconfig @@ -0,0 +1,5 @@ +menuconfig DRIVERS_DISTANCE_SENSOR_TFMINI_I2C + bool "tfmini_i2c" + default n + ---help--- + Enable support for tfmini_i2c diff --git a/src/drivers/distance_sensor/tfmini_i2c/tfmini_i2c.cpp b/src/drivers/distance_sensor/tfmini_i2c/tfmini_i2c.cpp index 9a04b9f8ad..5e220d06c2 100644 --- a/src/drivers/distance_sensor/tfmini_i2c/tfmini_i2c.cpp +++ b/src/drivers/distance_sensor/tfmini_i2c/tfmini_i2c.cpp @@ -52,10 +52,10 @@ using namespace time_literals; -TFMINI_I2C::TFMINI_I2C(I2CSPIBusOption bus_option, const int bus, int bus_frequency, int address) : - I2C(DRV_DIST_DEVTYPE_TFMINI_I2C, MODULE_NAME, bus, address, bus_frequency), +TFMINI_I2C::TFMINI_I2C(const I2CSPIDriverConfig &config) : + I2C(config), ModuleParams(nullptr), - I2CSPIDriver(MODULE_NAME, px4::device_bus_to_wq(get_device_id()), bus_option, bus, address) + I2CSPIDriver(config) { set_device_type(DRV_DIST_DEVTYPE_TFMINI_I2C); _measure_interval = TFMINI_I2C_MEASURE_INTERVAL; @@ -117,7 +117,7 @@ TFMINI_I2C::init() sensor_param_value[_sensor_count].max_range = getTFi2cParam(index,TF_PARAM_MAXD); sensor_param_value[_sensor_count].min_range = getTFi2cParam(index,TF_PARAM_MIND); int set_ret = set_param(); - printf("tf[%i]: address 0x%02x ,rototion %d, max:%d, min:%d, set param:%d\n", _sensor_count, \ + printf("tf[%i]: address 0x%02x ,rototion %d, max:%ld, min:%ld, set param:%d\n", _sensor_count, \ get_device_address(), \ sensor_param_value[_sensor_count].rotations, \ sensor_param_value[_sensor_count].max_range, \ @@ -359,26 +359,6 @@ TFMINI_I2C::custom_method(const BusCLIArguments &cli) set_address(cli.i2c_address); } -I2CSPIDriverBase *TFMINI_I2C::instantiate(const BusCLIArguments &cli, const BusInstanceIterator &iterator, - int runtime_instance) -{ - TFMINI_I2C *instance = new TFMINI_I2C(iterator.configuredBusOption(), iterator.bus(), cli.bus_frequency, cli.i2c_address); - - if (instance == nullptr) { - PX4_ERR("alloc failed"); - return nullptr; - } - - if (instance->init() != PX4_OK) { - delete instance; - return nullptr; - } - - instance->start(); - return instance; -} - - void TFMINI_I2C::print_usage() { @@ -386,7 +366,7 @@ TFMINI_I2C::print_usage() PRINT_MODULE_USAGE_SUBCATEGORY("distance_sensor"); PRINT_MODULE_USAGE_COMMAND("start"); PRINT_MODULE_USAGE_PARAMS_I2C_SPI_DRIVER(true, false); - PRINT_MODULE_USAGE_PARAMS_I2C_ADDRESS(0x16); + // PRINT_MODULE_USAGE_PARAMS_I2C_ADDRESS(0x16); PRINT_MODULE_USAGE_COMMAND("set_address"); PRINT_MODULE_USAGE_PARAMS_I2C_ADDRESS(0x16); PRINT_MODULE_USAGE_DEFAULT_COMMANDS(); diff --git a/src/drivers/distance_sensor/tfmini_i2c/tfmini_i2c.hpp b/src/drivers/distance_sensor/tfmini_i2c/tfmini_i2c.hpp index d6ab67926b..c21554acc1 100644 --- a/src/drivers/distance_sensor/tfmini_i2c/tfmini_i2c.hpp +++ b/src/drivers/distance_sensor/tfmini_i2c/tfmini_i2c.hpp @@ -73,14 +73,12 @@ class TFMINI_I2C : public device::I2C, public ModuleParams, public I2CSPIDriver { public: - TFMINI_I2C(I2CSPIBusOption bus_option, const int bus, int bus_frequency, int address); + TFMINI_I2C(const I2CSPIDriverConfig &config); virtual ~TFMINI_I2C(); - static I2CSPIDriverBase *instantiate(const BusCLIArguments &cli, const BusInstanceIterator &iterator, - int runtime_instance); static void print_usage(); - virtual int init() override; + int init() override; /** * Diagnostics - print some basic information about the driver.