Added iMagnetometer interface

Signed-off-by: Serban Waltter <serban.waltter@rinftech.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
Serban Waltter
2018-10-02 16:49:48 +03:00
committed by Mihai Tudor Panu
parent aa966946d5
commit f28a6d2561
36 changed files with 173 additions and 39 deletions

View File

@ -2,5 +2,5 @@ set (libname "lsm9ds0")
set (libdescription "Triaxial Gyroscope/accelerometer/magnetometer Sensor")
set (module_src ${libname}.cxx)
set (module_hpp ${libname}.hpp)
set (module_iface iAcceleration.hpp iGyroscope.hpp)
set (module_iface iAcceleration.hpp iGyroscope.hpp iMagnetometer.hpp)
upm_module_init(mraa)

View File

@ -645,8 +645,11 @@ std::vector<float> LSM9DS0::getGyroscope()
std::vector<float> LSM9DS0::getMagnetometer()
{
update();
std::vector<float> v(3);
getMagnetometer(&v[0], &v[1], &v[2]);
v[0] = (m_magX * m_magScale) / 1000.0;
v[1] = (m_magY * m_magScale) / 1000.0;
v[2] = (m_magZ * m_magScale) / 1000.0;
return v;
}

View File

@ -32,6 +32,7 @@
#include <interfaces/iAcceleration.hpp>
#include <interfaces/iGyroscope.hpp>
#include <interfaces/iMagnetometer.hpp>
#define LSM9DS0_I2C_BUS 1
#define LSM9DS0_DEFAULT_XM_ADDR 0x1d
@ -80,7 +81,7 @@ namespace upm {
* @snippet lsm9ds0.cxx Interesting
*/
class LSM9DS0: virtual public iAcceleration, virtual public iGyroscope {
class LSM9DS0: virtual public iAcceleration, virtual public iGyroscope, virtual public iMagnetometer {
public:
// NOTE: reserved registers must not be written into or permanent