From cd07e756b9963252eb6e99fd93b78f14565367b8 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Sat, 7 Jul 2018 11:05:26 -0400 Subject: [PATCH] bmi055 name separate accel and gyro perf counters properly --- src/drivers/imu/bmi055/BMI055.hpp | 8 +------- src/drivers/imu/bmi055/BMI055_accel.cpp | 12 +++++++++++- src/drivers/imu/bmi055/BMI055_accel.hpp | 8 +++++++- src/drivers/imu/bmi055/BMI055_gyro.cpp | 12 +++++++++++- src/drivers/imu/bmi055/BMI055_gyro.hpp | 8 +++++++- src/drivers/imu/bmi055/bmi055_main.cpp | 15 --------------- 6 files changed, 37 insertions(+), 26 deletions(-) diff --git a/src/drivers/imu/bmi055/BMI055.hpp b/src/drivers/imu/bmi055/BMI055.hpp index 30839d6f0d..7808d43e41 100644 --- a/src/drivers/imu/bmi055/BMI055.hpp +++ b/src/drivers/imu/bmi055/BMI055.hpp @@ -63,12 +63,6 @@ protected: unsigned _dlpf_freq; - perf_counter_t _sample_perf; - perf_counter_t _bad_transfers; - perf_counter_t _bad_registers; - perf_counter_t _reset_retries; - perf_counter_t _duplicates; - uint8_t _register_wait; uint64_t _reset_wait; @@ -102,7 +96,7 @@ public: BMI055(const char *name, const char *devname, int bus, uint32_t device, enum spi_mode_e mode, uint32_t frequency, enum Rotation rotation); - virtual ~BMI055(); + virtual ~BMI055() = default; }; diff --git a/src/drivers/imu/bmi055/BMI055_accel.cpp b/src/drivers/imu/bmi055/BMI055_accel.cpp index d479346141..c7989a190a 100644 --- a/src/drivers/imu/bmi055/BMI055_accel.cpp +++ b/src/drivers/imu/bmi055/BMI055_accel.cpp @@ -48,6 +48,12 @@ const uint8_t BMI055_accel::_checked_registers[BMI055_ACCEL_NUM_CHECKED_REGISTER BMI055_accel::BMI055_accel(int bus, const char *path_accel, uint32_t device, enum Rotation rotation) : BMI055("BMI055_ACCEL", path_accel, bus, device, SPIDEV_MODE3, BMI055_BUS_SPEED, rotation), + _sample_perf(perf_alloc(PC_ELAPSED, "bmi055_accel_read")), + _bad_transfers(perf_alloc(PC_COUNT, "bmi055_accel_bad_transfers")), + _bad_registers(perf_alloc(PC_COUNT, "bmi055_accel_bad_registers")), + _reset_retries(perf_alloc(PC_COUNT, "bmi055_accel_reset_retries")), + _duplicates(perf_alloc(PC_COUNT, "bmi055_accel_duplicates")), + _accel_reads(perf_alloc(PC_COUNT, "bmi055_accel_read")), _accel_reports(nullptr), _accel_scale{}, _accel_range_scale(0.0f), @@ -56,7 +62,6 @@ BMI055_accel::BMI055_accel(int bus, const char *path_accel, uint32_t device, enu _accel_orb_class_instance(-1), _accel_class_instance(-1), _accel_sample_rate(BMI055_ACCEL_DEFAULT_RATE), - _accel_reads(perf_alloc(PC_COUNT, "bmi055_accel_read")), _accel_filter_x(BMI055_ACCEL_DEFAULT_RATE, BMI055_ACCEL_DEFAULT_DRIVER_FILTER_FREQ), _accel_filter_y(BMI055_ACCEL_DEFAULT_RATE, BMI055_ACCEL_DEFAULT_DRIVER_FILTER_FREQ), _accel_filter_z(BMI055_ACCEL_DEFAULT_RATE, BMI055_ACCEL_DEFAULT_DRIVER_FILTER_FREQ), @@ -92,6 +97,11 @@ BMI055_accel::~BMI055_accel() } /* delete the perf counter */ + perf_free(_sample_perf); + perf_free(_bad_transfers); + perf_free(_bad_registers); + perf_free(_reset_retries); + perf_free(_duplicates); perf_free(_accel_reads); } diff --git a/src/drivers/imu/bmi055/BMI055_accel.hpp b/src/drivers/imu/bmi055/BMI055_accel.hpp index 709cf3783c..5d2b1085c5 100644 --- a/src/drivers/imu/bmi055/BMI055_accel.hpp +++ b/src/drivers/imu/bmi055/BMI055_accel.hpp @@ -175,6 +175,13 @@ protected: private: + perf_counter_t _sample_perf; + perf_counter_t _bad_transfers; + perf_counter_t _bad_registers; + perf_counter_t _reset_retries; + perf_counter_t _duplicates; + perf_counter_t _accel_reads; + ringbuffer::RingBuffer *_accel_reports; struct accel_calibration_s _accel_scale; @@ -186,7 +193,6 @@ private: int _accel_class_instance; float _accel_sample_rate; - perf_counter_t _accel_reads; math::LowPassFilter2p _accel_filter_x; math::LowPassFilter2p _accel_filter_y; diff --git a/src/drivers/imu/bmi055/BMI055_gyro.cpp b/src/drivers/imu/bmi055/BMI055_gyro.cpp index 90ab85d75b..d03a6d5b39 100644 --- a/src/drivers/imu/bmi055/BMI055_gyro.cpp +++ b/src/drivers/imu/bmi055/BMI055_gyro.cpp @@ -49,6 +49,12 @@ const uint8_t BMI055_gyro::_checked_registers[BMI055_GYRO_NUM_CHECKED_REGISTERS] BMI055_gyro::BMI055_gyro(int bus, const char *path_gyro, uint32_t device, enum Rotation rotation) : BMI055("BMI055_GYRO", path_gyro, bus, device, SPIDEV_MODE3, BMI055_BUS_SPEED, rotation), + _sample_perf(perf_alloc(PC_ELAPSED, "bmi055_gyro_read")), + _bad_transfers(perf_alloc(PC_COUNT, "bmi055_gyro_bad_transfers")), + _bad_registers(perf_alloc(PC_COUNT, "bmi055_gyro_bad_registers")), + _reset_retries(perf_alloc(PC_COUNT, "bmi055_gyro_reset_retries")), + _duplicates(perf_alloc(PC_COUNT, "bmi055_gyro_duplicates")), + _gyro_reads(perf_alloc(PC_COUNT, "bmi055_gyro_read")), _gyro_reports(nullptr), _gyro_scale{}, _gyro_range_scale(0.0f), @@ -57,7 +63,6 @@ BMI055_gyro::BMI055_gyro(int bus, const char *path_gyro, uint32_t device, enum R _gyro_orb_class_instance(-1), _gyro_class_instance(-1), _gyro_sample_rate(BMI055_GYRO_DEFAULT_RATE), - _gyro_reads(perf_alloc(PC_COUNT, "bmi055_gyro_read")), _gyro_filter_x(BMI055_GYRO_DEFAULT_RATE, BMI055_GYRO_DEFAULT_DRIVER_FILTER_FREQ), _gyro_filter_y(BMI055_GYRO_DEFAULT_RATE, BMI055_GYRO_DEFAULT_DRIVER_FILTER_FREQ), _gyro_filter_z(BMI055_GYRO_DEFAULT_RATE, BMI055_GYRO_DEFAULT_DRIVER_FILTER_FREQ), @@ -92,6 +97,11 @@ BMI055_gyro::~BMI055_gyro() } /* delete the perf counter */ + perf_free(_sample_perf); + perf_free(_bad_transfers); + perf_free(_bad_registers); + perf_free(_reset_retries); + perf_free(_duplicates); perf_free(_gyro_reads); } diff --git a/src/drivers/imu/bmi055/BMI055_gyro.hpp b/src/drivers/imu/bmi055/BMI055_gyro.hpp index d3cd0d98ee..55f9bfdd95 100644 --- a/src/drivers/imu/bmi055/BMI055_gyro.hpp +++ b/src/drivers/imu/bmi055/BMI055_gyro.hpp @@ -167,6 +167,13 @@ protected: private: + perf_counter_t _sample_perf; + perf_counter_t _bad_transfers; + perf_counter_t _bad_registers; + perf_counter_t _reset_retries; + perf_counter_t _duplicates; + perf_counter_t _gyro_reads; + ringbuffer::RingBuffer *_gyro_reports; struct gyro_calibration_s _gyro_scale; @@ -178,7 +185,6 @@ private: int _gyro_class_instance; float _gyro_sample_rate; - perf_counter_t _gyro_reads; math::LowPassFilter2p _gyro_filter_x; math::LowPassFilter2p _gyro_filter_y; diff --git a/src/drivers/imu/bmi055/bmi055_main.cpp b/src/drivers/imu/bmi055/bmi055_main.cpp index 866295a9a6..919bc70552 100644 --- a/src/drivers/imu/bmi055/bmi055_main.cpp +++ b/src/drivers/imu/bmi055/bmi055_main.cpp @@ -459,11 +459,6 @@ BMI055::BMI055(const char *name, const char *devname, int bus, uint32_t device, _call{}, _call_interval(0), _dlpf_freq(0), - _sample_perf(perf_alloc(PC_ELAPSED, "bmi055_read")), - _bad_transfers(perf_alloc(PC_COUNT, "bmi055_bad_transfers")), - _bad_registers(perf_alloc(PC_COUNT, "bmi055_bad_registers")), - _reset_retries(perf_alloc(PC_COUNT, "bmi055_reset_retries")), - _duplicates(perf_alloc(PC_COUNT, "bmi055_duplicates")), _register_wait(0), _reset_wait(0), _rotation(rotation), @@ -471,16 +466,6 @@ BMI055::BMI055(const char *name, const char *devname, int bus, uint32_t device, { } -BMI055::~BMI055() -{ - /* delete the perf counter */ - perf_free(_sample_perf); - perf_free(_bad_transfers); - perf_free(_bad_registers); - perf_free(_reset_retries); - perf_free(_duplicates); -} - uint8_t BMI055::read_reg(unsigned reg) {