From 7008558facd9da78f85373c29b0c72b04d188368 Mon Sep 17 00:00:00 2001 From: Daniel Agar <daniel@agar.ca> Date: Sat, 19 Jan 2019 13:02:53 -0500 Subject: [PATCH] drivers/distance_sensor replace std::vector usage with px4::Array --- src/drivers/distance_sensor/CMakeLists.txt | 6 +++--- src/drivers/distance_sensor/hc_sr04/hc_sr04.cpp | 10 +++++----- src/drivers/distance_sensor/mb12xx/mb12xx.cpp | 8 ++------ src/drivers/distance_sensor/sf1xx/sf1xx.cpp | 1 - src/drivers/distance_sensor/srf02/srf02.cpp | 8 ++------ src/drivers/distance_sensor/ulanding/ulanding.cpp | 1 - 6 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/drivers/distance_sensor/CMakeLists.txt b/src/drivers/distance_sensor/CMakeLists.txt index e6d2e316ab..eade835ccc 100644 --- a/src/drivers/distance_sensor/CMakeLists.txt +++ b/src/drivers/distance_sensor/CMakeLists.txt @@ -31,16 +31,16 @@ # ############################################################################ +add_subdirectory(cm8jl65) #add_subdirectory(hc_sr04) # not currently supported +add_subdirectory(leddar_one) add_subdirectory(ll40ls) add_subdirectory(mb12xx) +add_subdirectory(pga460) add_subdirectory(sf0x) add_subdirectory(sf1xx) add_subdirectory(srf02) add_subdirectory(teraranger) add_subdirectory(tfmini) add_subdirectory(ulanding) -add_subdirectory(leddar_one) add_subdirectory(vl53lxx) -add_subdirectory(pga460) -add_subdirectory(cm8jl65) diff --git a/src/drivers/distance_sensor/hc_sr04/hc_sr04.cpp b/src/drivers/distance_sensor/hc_sr04/hc_sr04.cpp index 60d9d15a9d..8e806ff6f1 100644 --- a/src/drivers/distance_sensor/hc_sr04/hc_sr04.cpp +++ b/src/drivers/distance_sensor/hc_sr04/hc_sr04.cpp @@ -41,6 +41,7 @@ #include <px4_workqueue.h> #include <drivers/device/device.h> #include <px4_defines.h> +#include <containers/Array.hpp> #include <sys/types.h> #include <stdint.h> @@ -54,7 +55,6 @@ #include <stdio.h> #include <math.h> #include <unistd.h> -#include <vector> #include <perf/perf_counter.h> #include <systemlib/err.h> @@ -86,7 +86,7 @@ class HC_SR04 : public cdev::CDev { public: - HC_SR04(unsigned sonars = 6); + HC_SR04(); virtual ~HC_SR04(); virtual int init(); @@ -123,9 +123,9 @@ private: int _cycling_rate; /* */ uint8_t _index_counter; /* temporary sonar i2c address */ - std::vector<float> + px4::Array<float, 6> _latest_sonar_measurements; /* vector to store latest sonar measurements in before writing to report */ - unsigned _sonars; + unsigned _sonars{6}; struct GPIOConfig { uint32_t trig_port; uint32_t echo_port; @@ -200,7 +200,7 @@ const HC_SR04::GPIOConfig HC_SR04::_gpio_tab[] = { extern "C" __EXPORT int hc_sr04_main(int argc, char *argv[]); static int sonar_isr(int irq, void *context); -HC_SR04::HC_SR04(unsigned sonars) : +HC_SR04::HC_SR04() : CDev(SR04_DEVICE_PATH, 0), _min_distance(SR04_MIN_DISTANCE), _max_distance(SR04_MAX_DISTANCE), diff --git a/src/drivers/distance_sensor/mb12xx/mb12xx.cpp b/src/drivers/distance_sensor/mb12xx/mb12xx.cpp index f1d5ceaef6..7001ab7d3a 100644 --- a/src/drivers/distance_sensor/mb12xx/mb12xx.cpp +++ b/src/drivers/distance_sensor/mb12xx/mb12xx.cpp @@ -42,6 +42,7 @@ #include <px4_config.h> #include <px4_getopt.h> #include <px4_workqueue.h> +#include <containers/Array.hpp> #include <drivers/device/i2c.h> @@ -56,7 +57,6 @@ #include <stdio.h> #include <math.h> #include <unistd.h> -#include <vector> #include <perf/perf_counter.h> @@ -131,10 +131,7 @@ private: uint8_t _cycle_counter; /* counter in cycle to change i2c adresses */ int _cycling_rate; /* */ uint8_t _index_counter; /* temporary sonar i2c address */ - std::vector<uint8_t> addr_ind; /* temp sonar i2c address vector */ - std::vector<float> - _latest_sonar_measurements; /* vector to store latest sonar measurements in before writing to report */ - + px4::Array<uint8_t, MB12XX_MAX_RANGEFINDERS> addr_ind; /* temp sonar i2c address vector */ /** * Test whether the device supported by the driver is present at a @@ -277,7 +274,6 @@ MB12XX::init() if (ret2 == 0) { /* sonar is present -> store address_index in array */ addr_ind.push_back(_index_counter); PX4_DEBUG("sonar added"); - _latest_sonar_measurements.push_back(200); } } diff --git a/src/drivers/distance_sensor/sf1xx/sf1xx.cpp b/src/drivers/distance_sensor/sf1xx/sf1xx.cpp index de9791e12e..2d5ae43446 100644 --- a/src/drivers/distance_sensor/sf1xx/sf1xx.cpp +++ b/src/drivers/distance_sensor/sf1xx/sf1xx.cpp @@ -60,7 +60,6 @@ #include <stdio.h> #include <math.h> #include <unistd.h> -#include <vector> #include <perf/perf_counter.h> diff --git a/src/drivers/distance_sensor/srf02/srf02.cpp b/src/drivers/distance_sensor/srf02/srf02.cpp index 4a64e43d56..71231d9e00 100644 --- a/src/drivers/distance_sensor/srf02/srf02.cpp +++ b/src/drivers/distance_sensor/srf02/srf02.cpp @@ -41,6 +41,7 @@ #include <px4_defines.h> #include <px4_getopt.h> #include <px4_workqueue.h> +#include <containers/Array.hpp> #include <drivers/device/i2c.h> @@ -55,7 +56,6 @@ #include <stdio.h> #include <math.h> #include <unistd.h> -#include <vector> #include <perf/perf_counter.h> @@ -131,10 +131,7 @@ private: uint8_t _cycle_counter; /* counter in cycle to change i2c adresses */ int _cycling_rate; /* */ uint8_t _index_counter; /* temporary sonar i2c address */ - std::vector<uint8_t> addr_ind; /* temp sonar i2c address vector */ - std::vector<float> - _latest_sonar_measurements; /* vector to store latest sonar measurements in before writing to report */ - + px4::Array<uint8_t, MB12XX_MAX_RANGEFINDERS> addr_ind; /* temp sonar i2c address vector */ /** * Test whether the device supported by the driver is present at a @@ -277,7 +274,6 @@ SRF02::init() if (ret2 == 0) { /* sonar is present -> store address_index in array */ addr_ind.push_back(_index_counter); PX4_DEBUG("sonar added"); - _latest_sonar_measurements.push_back(200); } } diff --git a/src/drivers/distance_sensor/ulanding/ulanding.cpp b/src/drivers/distance_sensor/ulanding/ulanding.cpp index 7e88c4b6f3..f357aa9143 100644 --- a/src/drivers/distance_sensor/ulanding/ulanding.cpp +++ b/src/drivers/distance_sensor/ulanding/ulanding.cpp @@ -55,7 +55,6 @@ #include <stdio.h> #include <math.h> #include <unistd.h> -#include <vector> #include <perf/perf_counter.h> #include <systemlib/err.h> #include <drivers/device/ringbuffer.h> -- GitLab