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

@@ -4,6 +4,7 @@ upm_mixed_module_init (NAME bmm150
C_SRC bmm150.c
CPP_HDR bmm150.hpp
CPP_SRC bmm150.cxx
IFACE_HDR iMagnetometer.hpp
FTI_SRC bmm150_fti.c
CPP_WRAPS_C
REQUIRES mraa utilities-c)

View File

@@ -96,9 +96,10 @@ void BMM150::getMagnetometer(float *x, float *y, float *z)
std::vector<float> BMM150::getMagnetometer()
{
update();
float v[3];
getMagnetometer(&v[0], &v[1], &v[2]);
bmm150_get_magnetometer(m_bmm150, &v[0], &v[1], &v[2]);
return std::vector<float>(v, v+3);
}

View File

@@ -31,6 +31,8 @@
#include <mraa/gpio.hpp>
#include "bmm150.h"
#include <interfaces/iMagnetometer.hpp>
namespace upm {
/**
@@ -73,7 +75,7 @@ namespace upm {
* @snippet bmm150.cxx Interesting
*/
class BMM150 {
class BMM150: virtual public iMagnetometer {
public:
/**
* BMM150 constructor.

View File

@@ -1,25 +1,25 @@
#ifdef SWIGPYTHON
%module (package="upm") bmi160
#endif
%import "interfaces/interfaces.i"
%include "../common_top.i"
/* BEGIN Java syntax ------------------------------------------------------- */
#ifdef SWIGJAVA
%include "../upm_javastdvector.i"
%ignore getMagnetometer(float *, float *, float *);
%typemap(javaimports) SWIGTYPE %{
import upm_interfaces.*;
import java.util.AbstractList;
import java.lang.Float;
%}
%ignore getMagnetometer(float *, float *, float *);
%typemap(javaout) SWIGTYPE {
return new $&javaclassname($jnicall, true);
}
%typemap(javaout) std::vector<float> {
return (AbstractList<Float>)(new $&javaclassname($jnicall, true));
}
%typemap(jstype) std::vector<float> "AbstractList<Float>"
%template(floatVector) std::vector<float>;
%ignore installISR (BMM150_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *);