aboutsummaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-07-16 08:47:49 +0200
committerLorenz Meier <lm@inf.ethz.ch>2014-07-16 08:47:49 +0200
commitf162a3e8d406e52d42ad84ea80ca6678577b9263 (patch)
tree67220909ed92367fc3f8c651cebaa8e607782743 /src/drivers
parent8107205b9ede8d9d36feffb50e116bb8e4dda78a (diff)
downloadpx4-firmware-f162a3e8d406e52d42ad84ea80ca6678577b9263.tar.gz
px4-firmware-f162a3e8d406e52d42ad84ea80ca6678577b9263.tar.bz2
px4-firmware-f162a3e8d406e52d42ad84ea80ca6678577b9263.zip
LSM303D: Ensure init and constructors
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/lsm303d/lsm303d.cpp13
-rw-r--r--src/drivers/lsm303d/module.mk2
2 files changed, 15 insertions, 0 deletions
diff --git a/src/drivers/lsm303d/lsm303d.cpp b/src/drivers/lsm303d/lsm303d.cpp
index d70bff69a..84ec18f28 100644
--- a/src/drivers/lsm303d/lsm303d.cpp
+++ b/src/drivers/lsm303d/lsm303d.cpp
@@ -461,6 +461,10 @@ private:
* @return OK if the value can be supported.
*/
int mag_set_samplerate(unsigned frequency);
+
+ /* this class cannot be copied */
+ LSM303D(const LSM303D&);
+ LSM303D operator=(const LSM303D&);
};
/**
@@ -490,20 +494,28 @@ private:
void measure();
void measure_trampoline(void *arg);
+
+ /* this class does not allow copying due to ptr data members */
+ LSM303D_mag(const LSM303D_mag&);
+ LSM303D_mag operator=(const LSM303D_mag&);
};
LSM303D::LSM303D(int bus, const char* path, spi_dev_e device, enum Rotation rotation) :
SPI("LSM303D", path, bus, device, SPIDEV_MODE3, 11*1000*1000 /* will be rounded to 10.4 MHz, within safety margins for LSM303D */),
_mag(new LSM303D_mag(this)),
+ _accel_call{},
+ _mag_call{},
_call_accel_interval(0),
_call_mag_interval(0),
_accel_reports(nullptr),
_mag_reports(nullptr),
+ _accel_scale{},
_accel_range_m_s2(0.0f),
_accel_range_scale(0.0f),
_accel_samplerate(0),
_accel_onchip_filter_bandwith(0),
+ _mag_scale{},
_mag_range_ga(0.0f),
_mag_range_scale(0.0f),
_mag_samplerate(0),
@@ -524,6 +536,7 @@ LSM303D::LSM303D(int bus, const char* path, spi_dev_e device, enum Rotation rota
_reg7_expected(0),
_accel_log_fd(-1),
_accel_logging_enabled(false),
+ _last_extreme_us(0),
_last_log_us(0),
_last_log_sync_us(0),
_last_log_reg_us(0),
diff --git a/src/drivers/lsm303d/module.mk b/src/drivers/lsm303d/module.mk
index 6e9c22799..b4f3974f4 100644
--- a/src/drivers/lsm303d/module.mk
+++ b/src/drivers/lsm303d/module.mk
@@ -6,3 +6,5 @@ MODULE_COMMAND = lsm303d
SRCS = lsm303d.cpp
MODULE_STACKSIZE = 1200
+
+EXTRACXXFLAGS = -Weffc++