bmi055 name separate accel and gyro perf counters properly

This commit is contained in:
Daniel Agar 2018-07-07 11:05:26 -04:00 committed by Lorenz Meier
parent b6399dbdf0
commit cd07e756b9
6 changed files with 37 additions and 26 deletions

View File

@ -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;
};

View File

@ -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);
}

View File

@ -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;

View File

@ -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);
}

View File

@ -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;

View File

@ -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)
{