mirror of
https://github.com/eclipse/upm.git
synced 2025-03-15 04:57:30 +03:00
Moved SWIG code from C++ files (hpp and cxx) to SWIG interface files (.i). Added getter/setter methods for classes with protected or private vars.
This commit is contained in:
parent
2ac22463f6
commit
7ab1e52327
@ -42,7 +42,7 @@ BMA220::BMA220(int bus, uint8_t addr) :
|
|||||||
m_accelX = 0.0;
|
m_accelX = 0.0;
|
||||||
m_accelY = 0.0;
|
m_accelY = 0.0;
|
||||||
m_accelZ = 0.0;
|
m_accelZ = 0.0;
|
||||||
|
|
||||||
m_accelScale = 0.0;
|
m_accelScale = 0.0;
|
||||||
|
|
||||||
mraa::Result rv;
|
mraa::Result rv;
|
||||||
@ -59,7 +59,7 @@ BMA220::BMA220(int bus, uint8_t addr) :
|
|||||||
// set scaling rate
|
// set scaling rate
|
||||||
if (!setAccelerometerScale(FSL_RANGE_2G))
|
if (!setAccelerometerScale(FSL_RANGE_2G))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to set accel scale");
|
": Unable to set accel scale");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -107,8 +107,8 @@ bool BMA220::writeReg(uint8_t reg, uint8_t val)
|
|||||||
throw std::runtime_error(std::string(__FUNCTION__) +
|
throw std::runtime_error(std::string(__FUNCTION__) +
|
||||||
": I2c.writeReg() failed");
|
": I2c.writeReg() failed");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,11 +126,11 @@ bool BMA220::setAccelerometerScale(FSL_RANGE_T scale)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// store scaling factor
|
// store scaling factor
|
||||||
|
|
||||||
switch (scale)
|
switch (scale)
|
||||||
{
|
{
|
||||||
case FSL_RANGE_2G:
|
case FSL_RANGE_2G:
|
||||||
m_accelScale = 16.0;
|
m_accelScale = 16.0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FSL_RANGE_4G:
|
case FSL_RANGE_4G:
|
||||||
@ -147,7 +147,7 @@ bool BMA220::setAccelerometerScale(FSL_RANGE_T scale)
|
|||||||
|
|
||||||
default: // should never occur, but...
|
default: // should never occur, but...
|
||||||
m_accelScale = 0.0; // set a safe, though incorrect value
|
m_accelScale = 0.0; // set a safe, though incorrect value
|
||||||
throw std::logic_error(string(__FUNCTION__) +
|
throw std::logic_error(string(__FUNCTION__) +
|
||||||
": internal error, unsupported scale");
|
": internal error, unsupported scale");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -193,7 +193,7 @@ bool BMA220::setFilterConfig(FILTER_CONFIG_T filter)
|
|||||||
reg &= ~(_FILTER_CONFIG_FILTER_MASK << _FILTER_CONFIG_FILTER_SHIFT);
|
reg &= ~(_FILTER_CONFIG_FILTER_MASK << _FILTER_CONFIG_FILTER_SHIFT);
|
||||||
|
|
||||||
reg |= (filter << _FILTER_CONFIG_FILTER_SHIFT);
|
reg |= (filter << _FILTER_CONFIG_FILTER_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_FILTER_CONFIG, reg);
|
return writeReg(REG_FILTER_CONFIG, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -205,7 +205,7 @@ bool BMA220::setSerialHighBW(bool high)
|
|||||||
reg |= FILTER_CONFIG_SERIAL_HIGH_BW;
|
reg |= FILTER_CONFIG_SERIAL_HIGH_BW;
|
||||||
else
|
else
|
||||||
reg &= ~FILTER_CONFIG_SERIAL_HIGH_BW;
|
reg &= ~FILTER_CONFIG_SERIAL_HIGH_BW;
|
||||||
|
|
||||||
return writeReg(REG_FILTER_CONFIG, reg);
|
return writeReg(REG_FILTER_CONFIG, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -260,7 +260,7 @@ bool BMA220::setSleepDuration(SLEEP_DUR_T dur)
|
|||||||
reg &= ~(_ENABLE_CONFIG3_SLEEP_DUR_MASK << _ENABLE_CONFIG3_SLEEP_DUR_SHIFT);
|
reg &= ~(_ENABLE_CONFIG3_SLEEP_DUR_MASK << _ENABLE_CONFIG3_SLEEP_DUR_SHIFT);
|
||||||
|
|
||||||
reg |= (dur << _ENABLE_CONFIG3_SLEEP_DUR_SHIFT);
|
reg |= (dur << _ENABLE_CONFIG3_SLEEP_DUR_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_ENABLE_CONFIG3, reg);
|
return writeReg(REG_ENABLE_CONFIG3, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -273,7 +273,7 @@ bool BMA220::setLowGThreshold(uint8_t thresh)
|
|||||||
reg &= ~(_THRESHOLD_LOW_MASK << _THRESHOLD_LOW_SHIFT);
|
reg &= ~(_THRESHOLD_LOW_MASK << _THRESHOLD_LOW_SHIFT);
|
||||||
|
|
||||||
reg |= (thresh << _THRESHOLD_LOW_SHIFT);
|
reg |= (thresh << _THRESHOLD_LOW_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_THRESHOLD, reg);
|
return writeReg(REG_THRESHOLD, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -286,7 +286,7 @@ bool BMA220::setHighGThreshold(uint8_t thresh)
|
|||||||
reg &= ~(_THRESHOLD_HIGH_MASK << _THRESHOLD_HIGH_SHIFT);
|
reg &= ~(_THRESHOLD_HIGH_MASK << _THRESHOLD_HIGH_SHIFT);
|
||||||
|
|
||||||
reg |= (thresh << _THRESHOLD_HIGH_SHIFT);
|
reg |= (thresh << _THRESHOLD_HIGH_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_THRESHOLD, reg);
|
return writeReg(REG_THRESHOLD, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -299,7 +299,7 @@ bool BMA220::setLowGHysteresis(uint8_t hyst)
|
|||||||
reg &= ~(_L_HYST_DUR_LOW_HY_MASK << _L_HYST_DUR_LOW_HY_SHIFT);
|
reg &= ~(_L_HYST_DUR_LOW_HY_MASK << _L_HYST_DUR_LOW_HY_SHIFT);
|
||||||
|
|
||||||
reg |= (hyst << _L_HYST_DUR_LOW_HY_SHIFT);
|
reg |= (hyst << _L_HYST_DUR_LOW_HY_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_L_HYST_DUR, reg);
|
return writeReg(REG_L_HYST_DUR, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -312,7 +312,7 @@ bool BMA220::setLowGDuration(uint8_t dur)
|
|||||||
reg &= ~(_L_HYST_DUR_LOW_DUR_MASK << _L_HYST_DUR_LOW_DUR_SHIFT);
|
reg &= ~(_L_HYST_DUR_LOW_DUR_MASK << _L_HYST_DUR_LOW_DUR_SHIFT);
|
||||||
|
|
||||||
reg |= (dur << _L_HYST_DUR_LOW_DUR_SHIFT);
|
reg |= (dur << _L_HYST_DUR_LOW_DUR_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_L_HYST_DUR, reg);
|
return writeReg(REG_L_HYST_DUR, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -325,7 +325,7 @@ bool BMA220::setHighGHysteresis(uint8_t hyst)
|
|||||||
reg &= ~(_H_HYST_DUR_HIGH_HY_MASK << _H_HYST_DUR_HIGH_HY_SHIFT);
|
reg &= ~(_H_HYST_DUR_HIGH_HY_MASK << _H_HYST_DUR_HIGH_HY_SHIFT);
|
||||||
|
|
||||||
reg |= (hyst << _H_HYST_DUR_HIGH_HY_SHIFT);
|
reg |= (hyst << _H_HYST_DUR_HIGH_HY_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_H_HYST_DUR, reg);
|
return writeReg(REG_H_HYST_DUR, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -338,7 +338,7 @@ bool BMA220::setHighGDuration(uint8_t dur)
|
|||||||
reg &= ~(_H_HYST_DUR_HIGH_DUR_MASK << _H_HYST_DUR_HIGH_DUR_SHIFT);
|
reg &= ~(_H_HYST_DUR_HIGH_DUR_MASK << _H_HYST_DUR_HIGH_DUR_SHIFT);
|
||||||
|
|
||||||
reg |= (dur << _H_HYST_DUR_HIGH_DUR_SHIFT);
|
reg |= (dur << _H_HYST_DUR_HIGH_DUR_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_H_HYST_DUR, reg);
|
return writeReg(REG_H_HYST_DUR, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -351,7 +351,7 @@ bool BMA220::setTapDuration(uint8_t dur)
|
|||||||
reg &= ~(_TAP_CONFIG_DUR_MASK << _TAP_CONFIG_DUR_SHIFT);
|
reg &= ~(_TAP_CONFIG_DUR_MASK << _TAP_CONFIG_DUR_SHIFT);
|
||||||
|
|
||||||
reg |= (dur << _TAP_CONFIG_DUR_SHIFT);
|
reg |= (dur << _TAP_CONFIG_DUR_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_TAP_CONFIG, reg);
|
return writeReg(REG_TAP_CONFIG, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,7 +364,7 @@ bool BMA220::setTapThreshold(uint8_t thresh)
|
|||||||
reg &= ~(_TAP_CONFIG_THRESH_MASK << _TAP_CONFIG_THRESH_SHIFT);
|
reg &= ~(_TAP_CONFIG_THRESH_MASK << _TAP_CONFIG_THRESH_SHIFT);
|
||||||
|
|
||||||
reg |= (thresh << _TAP_CONFIG_THRESH_SHIFT);
|
reg |= (thresh << _TAP_CONFIG_THRESH_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_TAP_CONFIG, reg);
|
return writeReg(REG_TAP_CONFIG, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,7 +389,7 @@ bool BMA220::setSlopeDuration(uint8_t dur)
|
|||||||
reg &= ~(_SLOPE_CONFIG_DUR_MASK << _SLOPE_CONFIG_DUR_SHIFT);
|
reg &= ~(_SLOPE_CONFIG_DUR_MASK << _SLOPE_CONFIG_DUR_SHIFT);
|
||||||
|
|
||||||
reg |= (dur << _SLOPE_CONFIG_DUR_SHIFT);
|
reg |= (dur << _SLOPE_CONFIG_DUR_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_SLOPE_CONFIG, reg);
|
return writeReg(REG_SLOPE_CONFIG, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -402,7 +402,7 @@ bool BMA220::setSlopeThreshold(uint8_t thresh)
|
|||||||
reg &= ~(_SLOPE_CONFIG_THRESH_MASK << _SLOPE_CONFIG_THRESH_SHIFT);
|
reg &= ~(_SLOPE_CONFIG_THRESH_MASK << _SLOPE_CONFIG_THRESH_SHIFT);
|
||||||
|
|
||||||
reg |= (thresh << _SLOPE_CONFIG_THRESH_SHIFT);
|
reg |= (thresh << _SLOPE_CONFIG_THRESH_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_SLOPE_CONFIG, reg);
|
return writeReg(REG_SLOPE_CONFIG, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -474,7 +474,7 @@ bool BMA220::setInterruptLatch(CONFIG2_LAT_T lat)
|
|||||||
reg &= ~(_ENABLE_CONFIG2_LAT_INT_MASK << _ENABLE_CONFIG2_LAT_INT_SHIFT);
|
reg &= ~(_ENABLE_CONFIG2_LAT_INT_MASK << _ENABLE_CONFIG2_LAT_INT_SHIFT);
|
||||||
|
|
||||||
reg |= (lat << _ENABLE_CONFIG2_LAT_INT_SHIFT);
|
reg |= (lat << _ENABLE_CONFIG2_LAT_INT_SHIFT);
|
||||||
|
|
||||||
return writeReg(REG_ENABLE_CONFIG2, reg);
|
return writeReg(REG_ENABLE_CONFIG2, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -489,22 +489,8 @@ bool BMA220::resetInterrupts()
|
|||||||
return writeReg(REG_ENABLE_CONFIG2, reg);
|
return writeReg(REG_ENABLE_CONFIG2, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || (JAVACALLBACK)
|
|
||||||
void BMA220::installISR(int gpio, mraa::Edge level,
|
void BMA220::installISR(int gpio, mraa::Edge level,
|
||||||
jobject runnable)
|
|
||||||
{
|
|
||||||
// delete any existing ISR and GPIO context
|
|
||||||
uninstallISR();
|
|
||||||
|
|
||||||
// create gpio context
|
|
||||||
m_gpioIntr = new mraa::Gpio(gpio);
|
|
||||||
|
|
||||||
m_gpioIntr->dir(mraa::DIR_IN);
|
|
||||||
m_gpioIntr->isr(level, runnable);
|
|
||||||
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
void BMA220::installISR(int gpio, mraa::Edge level,
|
|
||||||
void (*isr)(void *), void *arg)
|
void (*isr)(void *), void *arg)
|
||||||
{
|
{
|
||||||
// delete any existing ISR and GPIO context
|
// delete any existing ISR and GPIO context
|
||||||
@ -516,7 +502,6 @@ void BMA220::installISR(int gpio, mraa::Edge level,
|
|||||||
m_gpioIntr->dir(mraa::DIR_IN);
|
m_gpioIntr->dir(mraa::DIR_IN);
|
||||||
m_gpioIntr->isr(level, isr, arg);
|
m_gpioIntr->isr(level, isr, arg);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void BMA220::uninstallISR()
|
void BMA220::uninstallISR()
|
||||||
{
|
{
|
||||||
@ -524,8 +509,12 @@ void BMA220::uninstallISR()
|
|||||||
{
|
{
|
||||||
m_gpioIntr->isrExit();
|
m_gpioIntr->isrExit();
|
||||||
delete m_gpioIntr;
|
delete m_gpioIntr;
|
||||||
|
|
||||||
m_gpioIntr = 0;
|
m_gpioIntr = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mraa::Gpio* BMA220::get_gpioIntr()
|
||||||
|
{
|
||||||
|
return m_gpioIntr;
|
||||||
|
}
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
#define BMA220_DEFAULT_ADDR 0x0a
|
#define BMA220_DEFAULT_ADDR 0x0a
|
||||||
|
|
||||||
namespace upm {
|
namespace upm {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief BMA220 Accelerometer library
|
* @brief BMA220 Accelerometer library
|
||||||
* @defgroup bma220 libupm-bma220
|
* @defgroup bma220 libupm-bma220
|
||||||
@ -115,7 +115,7 @@ namespace upm {
|
|||||||
REG_SUSPEND = 0x30,
|
REG_SUSPEND = 0x30,
|
||||||
REG_SOFTRESET = 0x32
|
REG_SOFTRESET = 0x32
|
||||||
} REG_T;
|
} REG_T;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* REG_H_HYST_DUR bits
|
* REG_H_HYST_DUR bits
|
||||||
@ -271,7 +271,7 @@ namespace upm {
|
|||||||
|
|
||||||
INT_STATUS1_ORIENT_INT = 0x80 // orient intr was generated
|
INT_STATUS1_ORIENT_INT = 0x80 // orient intr was generated
|
||||||
} INT_STATUS1_BITS_T;
|
} INT_STATUS1_BITS_T;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* INT_STATUS1_ORIENT values
|
* INT_STATUS1_ORIENT values
|
||||||
*
|
*
|
||||||
@ -485,7 +485,7 @@ namespace upm {
|
|||||||
* BMA220 Destructor
|
* BMA220 Destructor
|
||||||
*/
|
*/
|
||||||
~BMA220();
|
~BMA220();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* update the accelerometer values
|
* update the accelerometer values
|
||||||
*/
|
*/
|
||||||
@ -776,9 +776,7 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
bool resetInterrupts();
|
bool resetInterrupts();
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(int gpio, mraa::Edge level, jobject runnable);
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* install an interrupt handler.
|
* install an interrupt handler.
|
||||||
*
|
*
|
||||||
@ -789,16 +787,17 @@ namespace upm {
|
|||||||
* @param isr the interrupt handler, accepting a void * argument
|
* @param isr the interrupt handler, accepting a void * argument
|
||||||
* @param arg the argument to pass the the interrupt handler
|
* @param arg the argument to pass the the interrupt handler
|
||||||
*/
|
*/
|
||||||
void installISR(int gpio, mraa::Edge level,
|
void installISR(int gpio, mraa::Edge level,
|
||||||
void (*isr)(void *), void *arg);
|
void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* uninstall a previously installed interrupt handler
|
* uninstall a previously installed interrupt handler
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void uninstallISR();
|
void uninstallISR();
|
||||||
|
|
||||||
|
mraa::Gpio* get_gpioIntr();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
mraa::I2c m_i2c;
|
mraa::I2c m_i2c;
|
||||||
mraa::Gpio *m_gpioIntr;
|
mraa::Gpio *m_gpioIntr;
|
||||||
@ -821,13 +820,6 @@ namespace upm {
|
|||||||
* update the accelerometer values
|
* update the accelerometer values
|
||||||
*/
|
*/
|
||||||
void updateAccelerometer();
|
void updateAccelerometer();
|
||||||
// Adding a private function definition for java bindings
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(int gpio, mraa::Edge level,
|
|
||||||
void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,4 +30,22 @@
|
|||||||
|
|
||||||
%include "bma220.hpp"
|
%include "bma220.hpp"
|
||||||
|
|
||||||
|
%extend upm::BMA220 {
|
||||||
|
void installISR(int gpio, mraa::Edge level, jobject runnable)
|
||||||
|
{
|
||||||
|
// delete any existing ISR and GPIO context
|
||||||
|
$self->uninstallISR();
|
||||||
|
|
||||||
|
// create gpio context
|
||||||
|
mraa::Gpio* swg_gpioIntr = $self->get_gpioIntr();
|
||||||
|
|
||||||
|
swg_gpioIntr->dir(mraa::DIR_IN);
|
||||||
|
swg_gpioIntr->isr(level, runnable);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
%ignore installISR(int, mraa::Edge, void *, void *);
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_bma220)
|
JAVA_JNI_LOADLIBRARY(javaupm_bma220)
|
||||||
|
@ -518,14 +518,7 @@ namespace upm {
|
|||||||
void setLowPowerMode2();
|
void setLowPowerMode2();
|
||||||
|
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
/**
|
||||||
void installISR(BMA250E_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level, jobject runnable)
|
|
||||||
{
|
|
||||||
installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
/**
|
|
||||||
* install an interrupt handler.
|
* install an interrupt handler.
|
||||||
*
|
*
|
||||||
* @param intr One of the BMA250E_INTERRUPT_PINS_T values
|
* @param intr One of the BMA250E_INTERRUPT_PINS_T values
|
||||||
@ -541,7 +534,6 @@ namespace upm {
|
|||||||
void installISR(BMA250E_INTERRUPT_PINS_T intr, int gpio,
|
void installISR(BMA250E_INTERRUPT_PINS_T intr, int gpio,
|
||||||
mraa::Edge level,
|
mraa::Edge level,
|
||||||
void (*isr)(void *), void *arg);
|
void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* uninstall a previously installed interrupt handler
|
* uninstall a previously installed interrupt handler
|
||||||
@ -585,12 +577,6 @@ namespace upm {
|
|||||||
/* Disable implicit copy and assignment operators */
|
/* Disable implicit copy and assignment operators */
|
||||||
BMA250E(const BMA250E&) = delete;
|
BMA250E(const BMA250E&) = delete;
|
||||||
BMA250E &operator=(const BMA250E&) = delete;
|
BMA250E &operator=(const BMA250E&) = delete;
|
||||||
|
|
||||||
// Adding a private function definition for java bindings
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(BMA250E_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level,
|
|
||||||
void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -20,10 +20,24 @@ import java.lang.Float;
|
|||||||
|
|
||||||
%template(floatVector) std::vector<float>;
|
%template(floatVector) std::vector<float>;
|
||||||
|
|
||||||
%include "bma250e_defs.h"
|
|
||||||
%include "bma250e.hpp"
|
|
||||||
%{
|
%{
|
||||||
#include "bma250e.hpp"
|
#include "bma250e.hpp"
|
||||||
|
#include "bma250e_defs.h"
|
||||||
%}
|
%}
|
||||||
|
%include "bma250e_defs.h"
|
||||||
|
%include "bma250e.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
%ignore installISR (BMA250E_INTERRUPT_PINS_T, int, mraa::Edge , void *, void *);
|
||||||
|
|
||||||
|
%extend upm::BMA250E {
|
||||||
|
void installISR(BMA250E_INTERRUPT_PINS_T intr, int gpio,
|
||||||
|
mraa::Edge level, jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_bma250e)
|
JAVA_JNI_LOADLIBRARY(javaupm_bma250e)
|
||||||
|
@ -415,13 +415,6 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
void enableOutputFiltering(bool filter);
|
void enableOutputFiltering(bool filter);
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(BMG160_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level, jobject runnable)
|
|
||||||
{
|
|
||||||
installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* install an interrupt handler.
|
* install an interrupt handler.
|
||||||
*
|
*
|
||||||
@ -439,7 +432,6 @@ namespace upm {
|
|||||||
void installISR(BMG160_INTERRUPT_PINS_T intr, int gpio,
|
void installISR(BMG160_INTERRUPT_PINS_T intr, int gpio,
|
||||||
mraa::Edge level,
|
mraa::Edge level,
|
||||||
void (*isr)(void *), void *arg);
|
void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* uninstall a previously installed interrupt handler
|
* uninstall a previously installed interrupt handler
|
||||||
@ -484,11 +476,5 @@ namespace upm {
|
|||||||
BMG160(const BMG160&) = delete;
|
BMG160(const BMG160&) = delete;
|
||||||
BMG160 &operator=(const BMG160&) = delete;
|
BMG160 &operator=(const BMG160&) = delete;
|
||||||
|
|
||||||
// needs to be private for SWIG Java builds
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(BMG160_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level,
|
|
||||||
void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -20,10 +20,22 @@ import java.lang.Float;
|
|||||||
|
|
||||||
%template(floatVector) std::vector<float>;
|
%template(floatVector) std::vector<float>;
|
||||||
|
|
||||||
%include "bmg160_defs.h"
|
|
||||||
%include "bmg160.hpp"
|
|
||||||
%{
|
%{
|
||||||
#include "bmg160.hpp"
|
#include "bmg160.hpp"
|
||||||
|
#include "bmg160_defs.h"
|
||||||
%}
|
%}
|
||||||
|
%include "bmg160_defs.h"
|
||||||
|
%include "bmg160.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
%ignore installISR (BMG160_INTERRUPT_PINS_T , int mraa::Edge , void *, void *);
|
||||||
|
|
||||||
|
%extend upm::BMG160 {
|
||||||
|
void installISR(BMG160_INTERRUPT_PINS_T intr, int gpio,
|
||||||
|
mraa::Edge level, jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_bmg160)
|
JAVA_JNI_LOADLIBRARY(javaupm_bmg160)
|
||||||
|
@ -281,14 +281,6 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
void setRepetitionsZ(uint8_t reps);
|
void setRepetitionsZ(uint8_t reps);
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(BMM150_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level,
|
|
||||||
jobject runnable)
|
|
||||||
{
|
|
||||||
installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* Install an interrupt handler.
|
* Install an interrupt handler.
|
||||||
*
|
*
|
||||||
@ -305,7 +297,6 @@ namespace upm {
|
|||||||
void installISR(BMM150_INTERRUPT_PINS_T intr, int gpio,
|
void installISR(BMM150_INTERRUPT_PINS_T intr, int gpio,
|
||||||
mraa::Edge level,
|
mraa::Edge level,
|
||||||
void (*isr)(void *), void *arg);
|
void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uninstall a previously installed interrupt handler.
|
* Uninstall a previously installed interrupt handler.
|
||||||
@ -350,11 +341,5 @@ namespace upm {
|
|||||||
BMM150(const BMM150&) = delete;
|
BMM150(const BMM150&) = delete;
|
||||||
BMM150 &operator=(const BMM150&) = delete;
|
BMM150 &operator=(const BMM150&) = delete;
|
||||||
|
|
||||||
// Adding a private function definition for java bindings
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(BMM150_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level,
|
|
||||||
void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -20,10 +20,22 @@ import java.lang.Float;
|
|||||||
|
|
||||||
%template(floatVector) std::vector<float>;
|
%template(floatVector) std::vector<float>;
|
||||||
|
|
||||||
%include "bmm150_defs.h"
|
|
||||||
%include "bmm150.hpp"
|
|
||||||
%{
|
%{
|
||||||
#include "bmm150.hpp"
|
#include "bmm150.hpp"
|
||||||
|
#include "bmm150_defs.h"
|
||||||
%}
|
%}
|
||||||
|
%include "bmm150_defs.h"
|
||||||
|
%include "bmm150.hpp"
|
||||||
|
|
||||||
|
%ignore installISR (BMM150_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *);
|
||||||
|
|
||||||
|
%extend upm::BMM150 {
|
||||||
|
void installISR(BMM150_INTERRUPT_PINS_T intr, int gpio,
|
||||||
|
mraa::Edge level,
|
||||||
|
jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_bmm150)
|
JAVA_JNI_LOADLIBRARY(javaupm_bmm150)
|
||||||
|
@ -622,12 +622,6 @@ namespace upm {
|
|||||||
BNO055_SYS_ERR_T getSystemError();
|
BNO055_SYS_ERR_T getSystemError();
|
||||||
|
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(int gpio, mraa_gpio_edge_t level, jobject runnable)
|
|
||||||
{
|
|
||||||
installISR(gpio, level, mraa_java_isr_callback, runnable);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* install an interrupt handler.
|
* install an interrupt handler.
|
||||||
*
|
*
|
||||||
@ -641,7 +635,6 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
void installISR(int gpio, mraa_gpio_edge_t level,
|
void installISR(int gpio, mraa_gpio_edge_t level,
|
||||||
void (*isr)(void *), void *arg);
|
void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* uninstall a previously installed interrupt handler
|
* uninstall a previously installed interrupt handler
|
||||||
@ -707,10 +700,5 @@ namespace upm {
|
|||||||
BNO055(const BNO055&) = delete;
|
BNO055(const BNO055&) = delete;
|
||||||
BNO055 &operator=(const BNO055&) = delete;
|
BNO055 &operator=(const BNO055&) = delete;
|
||||||
|
|
||||||
// Adding a private function definition for java bindings
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(int gpio, mraa_gpio_edge_t level,
|
|
||||||
void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -18,10 +18,20 @@
|
|||||||
%template(byteVector) std::vector<uint8_t>;
|
%template(byteVector) std::vector<uint8_t>;
|
||||||
%template(intVector) std::vector<int>;
|
%template(intVector) std::vector<int>;
|
||||||
|
|
||||||
%include "bno055_regs.h"
|
|
||||||
%include "bno055.hpp"
|
|
||||||
%{
|
%{
|
||||||
#include "bno055.hpp"
|
#include "bno055.hpp"
|
||||||
|
#include "bno055_regs.h"
|
||||||
%}
|
%}
|
||||||
|
%include "bno055_regs.h"
|
||||||
|
%include "bno055.hpp"
|
||||||
|
|
||||||
|
%ignore installISR(int , mraa::Edge , void *, void *);
|
||||||
|
|
||||||
|
%extend upm::BNO055 {
|
||||||
|
void installISR(int gpio, mraa_gpio_edge_t level, jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(gpio, level, mraa_java_isr_callback, runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_bno055)
|
JAVA_JNI_LOADLIBRARY(javaupm_bno055)
|
||||||
|
@ -59,12 +59,12 @@ int Button::value()
|
|||||||
return mraa_gpio_read(m_gpio);
|
return mraa_gpio_read(m_gpio);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef JAVACALLBACK
|
/*#ifdef JAVACALLBACK
|
||||||
void Button::installISR(mraa::Edge level, jobject runnable)
|
void Button::installISR(mraa::Edge level, jobject runnable)
|
||||||
{
|
{
|
||||||
installISR(level, mraa_java_isr_callback, runnable);
|
installISR(level, mraa_java_isr_callback, runnable);
|
||||||
}
|
}
|
||||||
#endif
|
#endif*/
|
||||||
|
|
||||||
void Button::installISR(mraa::Edge level, void (*isr)(void *), void *arg)
|
void Button::installISR(mraa::Edge level, void (*isr)(void *), void *arg)
|
||||||
{
|
{
|
||||||
|
@ -87,11 +87,11 @@ class Button{
|
|||||||
* @param arg Pointer to an object to be supplied as an
|
* @param arg Pointer to an object to be supplied as an
|
||||||
* argument to the ISR.
|
* argument to the ISR.
|
||||||
*/
|
*/
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
/*#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
||||||
void installISR(mraa::Edge level, jobject runnable);
|
void installISR(mraa::Edge level, jobject runnable);
|
||||||
#else
|
#else*/
|
||||||
void installISR(mraa::Edge level, void (*isr)(void *), void *arg);
|
void installISR(mraa::Edge level, void (*isr)(void *), void *arg);
|
||||||
#endif
|
//#endif
|
||||||
/**
|
/**
|
||||||
* Uninstalls the previously installed ISR
|
* Uninstalls the previously installed ISR
|
||||||
*
|
*
|
||||||
@ -99,9 +99,6 @@ class Button{
|
|||||||
void uninstallISR();
|
void uninstallISR();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(mraa::Edge level, void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
bool m_isrInstalled;
|
bool m_isrInstalled;
|
||||||
std::string m_name;
|
std::string m_name;
|
||||||
mraa_gpio_context m_gpio;
|
mraa_gpio_context m_gpio;
|
||||||
|
@ -9,4 +9,13 @@
|
|||||||
|
|
||||||
%include "button.hpp"
|
%include "button.hpp"
|
||||||
|
|
||||||
|
#%ignore
|
||||||
|
|
||||||
|
%extend upm::Button {
|
||||||
|
void installISR(mraa::Edge level, jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(level, mraa_java_isr_callback, runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_button)
|
JAVA_JNI_LOADLIBRARY(javaupm_button)
|
||||||
|
@ -58,12 +58,12 @@ int GroveButton::value()
|
|||||||
return mraa_gpio_read(m_gpio);
|
return mraa_gpio_read(m_gpio);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef JAVACALLBACK
|
/*#ifdef JAVACALLBACK
|
||||||
void GroveButton::installISR(mraa::Edge level, jobject runnable)
|
void GroveButton::installISR(mraa::Edge level, jobject runnable)
|
||||||
{
|
{
|
||||||
installISR(level, mraa_java_isr_callback, runnable);
|
installISR(level, mraa_java_isr_callback, runnable);
|
||||||
}
|
}
|
||||||
#endif
|
#endif*/
|
||||||
|
|
||||||
void GroveButton::installISR(mraa::Edge level, void (*isr)(void *), void *arg)
|
void GroveButton::installISR(mraa::Edge level, void (*isr)(void *), void *arg)
|
||||||
{
|
{
|
||||||
|
@ -84,11 +84,11 @@ class GroveButton: public Grove {
|
|||||||
* @param arg Pointer to an object to be supplied as an
|
* @param arg Pointer to an object to be supplied as an
|
||||||
* argument to the ISR.
|
* argument to the ISR.
|
||||||
*/
|
*/
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
//#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
||||||
void installISR(mraa::Edge level, jobject runnable);
|
// void installISR(mraa::Edge level, jobject runnable);
|
||||||
#else
|
//#else
|
||||||
void installISR(mraa::Edge level, void (*isr)(void *), void *arg);
|
void installISR(mraa::Edge level, void (*isr)(void *), void *arg);
|
||||||
#endif
|
//#endif
|
||||||
/**
|
/**
|
||||||
* Uninstalls the previously installed ISR
|
* Uninstalls the previously installed ISR
|
||||||
*
|
*
|
||||||
@ -96,9 +96,6 @@ class GroveButton: public Grove {
|
|||||||
void uninstallISR();
|
void uninstallISR();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(mraa::Edge level, void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
bool m_isrInstalled;
|
bool m_isrInstalled;
|
||||||
std::string m_name;
|
std::string m_name;
|
||||||
mraa_gpio_context m_gpio;
|
mraa_gpio_context m_gpio;
|
||||||
|
@ -49,4 +49,12 @@
|
|||||||
#include "grovetemp.hpp"
|
#include "grovetemp.hpp"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
%extend upm::GroveButton {
|
||||||
|
void installISR(mraa::Edge level, jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(level, mraa_java_isr_callback, runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_grove)
|
JAVA_JNI_LOADLIBRARY(javaupm_grove)
|
||||||
|
@ -5,10 +5,23 @@
|
|||||||
|
|
||||||
%ignore getAccelerometer(float *, float *, float *);
|
%ignore getAccelerometer(float *, float *, float *);
|
||||||
|
|
||||||
%include "lis2ds12_defs.h"
|
|
||||||
%include "lis2ds12.hpp"
|
|
||||||
%{
|
%{
|
||||||
#include "lis2ds12.hpp"
|
#include "lis2ds12.hpp"
|
||||||
|
#include "lis2ds12_defs.h"
|
||||||
%}
|
%}
|
||||||
|
%include "lis2ds12_defs.h"
|
||||||
|
%include "lis2ds12.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
#%ignore installISR(LIS2DS12_INTERRUPT_PINS_T , int , mraa::Edge, void *, void *);
|
||||||
|
|
||||||
|
%extend upm::LIS2DS12 {
|
||||||
|
void installISR(LIS2DS12_INTERRUPT_PINS_T intr, int gpio,
|
||||||
|
mraa::Edge level, jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(intr, gpio, level, mraa_java_isr_callback,
|
||||||
|
runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_lis2ds12)
|
JAVA_JNI_LOADLIBRARY(javaupm_lis2ds12)
|
||||||
|
@ -247,14 +247,6 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
uint8_t getStatus();
|
uint8_t getStatus();
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(LIS2DS12_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level, jobject runnable)
|
|
||||||
{
|
|
||||||
installISR(intr, gpio, level, mraa_java_isr_callback,
|
|
||||||
runnable);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* install an interrupt handler
|
* install an interrupt handler
|
||||||
*
|
*
|
||||||
@ -271,7 +263,6 @@ namespace upm {
|
|||||||
void installISR(LIS2DS12_INTERRUPT_PINS_T intr, int gpio,
|
void installISR(LIS2DS12_INTERRUPT_PINS_T intr, int gpio,
|
||||||
mraa::Edge level,
|
mraa::Edge level,
|
||||||
void (*isr)(void *), void *arg);
|
void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* uninstall a previously installed interrupt handler
|
* uninstall a previously installed interrupt handler
|
||||||
@ -316,12 +307,6 @@ namespace upm {
|
|||||||
/* Disable implicit copy and assignment operators */
|
/* Disable implicit copy and assignment operators */
|
||||||
LIS2DS12(const LIS2DS12&) = delete;
|
LIS2DS12(const LIS2DS12&) = delete;
|
||||||
LIS2DS12 &operator=(const LIS2DS12&) = delete;
|
LIS2DS12 &operator=(const LIS2DS12&) = delete;
|
||||||
|
|
||||||
// Adding a private function definition for java bindings
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(LIS2DS12_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level,
|
|
||||||
void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -21,10 +21,23 @@ import java.lang.Float;
|
|||||||
|
|
||||||
%template(floatVector) std::vector<float>;
|
%template(floatVector) std::vector<float>;
|
||||||
|
|
||||||
%include "lsm303agr_defs.h"
|
|
||||||
%include "lsm303agr.hpp"
|
|
||||||
%{
|
%{
|
||||||
#include "lsm303agr.hpp"
|
#include "lsm303agr.hpp"
|
||||||
|
#include "lsm303agr_defs.h"
|
||||||
%}
|
%}
|
||||||
|
%include "lsm303agr_defs.h"
|
||||||
|
%include "lsm303agr.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
%ignore installISR(LSM303AGR_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *);
|
||||||
|
|
||||||
|
%extend upm::LSM303AGR {
|
||||||
|
void installISR(LSM303AGR_INTERRUPT_PINS_T intr, int gpio,
|
||||||
|
mraa::Edge level,
|
||||||
|
jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_lsm303agr)
|
JAVA_JNI_LOADLIBRARY(javaupm_lsm303agr)
|
||||||
|
@ -303,14 +303,6 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
uint8_t getMagnetometerIntSrc();
|
uint8_t getMagnetometerIntSrc();
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(LSM303AGR_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level,
|
|
||||||
jobject runnable)
|
|
||||||
{
|
|
||||||
installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* Install an interrupt handler
|
* Install an interrupt handler
|
||||||
*
|
*
|
||||||
@ -327,7 +319,6 @@ namespace upm {
|
|||||||
void installISR(LSM303AGR_INTERRUPT_PINS_T intr, int gpio,
|
void installISR(LSM303AGR_INTERRUPT_PINS_T intr, int gpio,
|
||||||
mraa::Edge level,
|
mraa::Edge level,
|
||||||
void (*isr)(void *), void *arg);
|
void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uninstall a previously installed interrupt handler
|
* Uninstall a previously installed interrupt handler
|
||||||
@ -373,11 +364,5 @@ namespace upm {
|
|||||||
LSM303AGR(const LSM303AGR&) = delete;
|
LSM303AGR(const LSM303AGR&) = delete;
|
||||||
LSM303AGR &operator=(const LSM303AGR&) = delete;
|
LSM303AGR &operator=(const LSM303AGR&) = delete;
|
||||||
|
|
||||||
// Adding a private function definition for java bindings
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(LSM303AGR_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level,
|
|
||||||
void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,22 @@
|
|||||||
%ignore getAccelerometer(float *, float *, float *);
|
%ignore getAccelerometer(float *, float *, float *);
|
||||||
%ignore getGyroscope(float *, float *, float *);
|
%ignore getGyroscope(float *, float *, float *);
|
||||||
|
|
||||||
%include "lsm6ds3h_defs.h"
|
|
||||||
%include "lsm6ds3h.hpp"
|
|
||||||
%{
|
%{
|
||||||
#include "lsm6ds3h.hpp"
|
#include "lsm6ds3h.hpp"
|
||||||
|
#include "lsm6ds3h_defs.h"
|
||||||
%}
|
%}
|
||||||
|
%include "lsm6ds3h_defs.h"
|
||||||
|
%include "lsm6ds3h.hpp"
|
||||||
|
|
||||||
|
%ignore installISR(LSM6DS3H_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *);
|
||||||
|
|
||||||
|
%extend upm::LSM6DS3H {
|
||||||
|
void installISR(LSM6DS3H_INTERRUPT_PINS_T intr, int gpio,
|
||||||
|
mraa::Edge level, jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(intr, gpio, level, mraa_java_isr_callback,
|
||||||
|
runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_lsm6ds3h)
|
JAVA_JNI_LOADLIBRARY(javaupm_lsm6ds3h)
|
||||||
|
@ -261,14 +261,6 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
uint8_t getStatus();
|
uint8_t getStatus();
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(LSM6DS3H_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level, jobject runnable)
|
|
||||||
{
|
|
||||||
installISR(intr, gpio, level, mraa_java_isr_callback,
|
|
||||||
runnable);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* install an interrupt handler
|
* install an interrupt handler
|
||||||
*
|
*
|
||||||
@ -285,7 +277,6 @@ namespace upm {
|
|||||||
void installISR(LSM6DS3H_INTERRUPT_PINS_T intr, int gpio,
|
void installISR(LSM6DS3H_INTERRUPT_PINS_T intr, int gpio,
|
||||||
mraa::Edge level,
|
mraa::Edge level,
|
||||||
void (*isr)(void *), void *arg);
|
void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* uninstall a previously installed interrupt handler
|
* uninstall a previously installed interrupt handler
|
||||||
@ -330,11 +321,5 @@ namespace upm {
|
|||||||
LSM6DS3H(const LSM6DS3H&) = delete;
|
LSM6DS3H(const LSM6DS3H&) = delete;
|
||||||
LSM6DS3H &operator=(const LSM6DS3H&) = delete;
|
LSM6DS3H &operator=(const LSM6DS3H&) = delete;
|
||||||
|
|
||||||
// Adding a private function definition for java bindings
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(LSM6DS3H_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level,
|
|
||||||
void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,23 @@
|
|||||||
%ignore getAccelerometer(float *, float *, float *);
|
%ignore getAccelerometer(float *, float *, float *);
|
||||||
%ignore getGyroscope(float *, float *, float *);
|
%ignore getGyroscope(float *, float *, float *);
|
||||||
|
|
||||||
%include "lsm6dsl_defs.h"
|
|
||||||
%include "lsm6dsl.hpp"
|
|
||||||
%{
|
%{
|
||||||
#include "lsm6dsl.hpp"
|
#include "lsm6dsl.hpp"
|
||||||
|
#include "lsm6dsl_defs.h"
|
||||||
%}
|
%}
|
||||||
|
%include "lsm6dsl_defs.h"
|
||||||
|
%include "lsm6dsl.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
%ignore installISR(LSM6DSL_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *);
|
||||||
|
|
||||||
|
%extend upm::LSM6DSL {
|
||||||
|
void installISR(LSM6DSL_INTERRUPT_PINS_T intr, int gpio,
|
||||||
|
mraa::Edge level, jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(intr, gpio, level, mraa_java_isr_callback,
|
||||||
|
runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_lsm6dsl)
|
JAVA_JNI_LOADLIBRARY(javaupm_lsm6dsl)
|
||||||
|
@ -277,15 +277,6 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
void setAccelerometerOffsets(int x, int y, int z, bool weight);
|
void setAccelerometerOffsets(int x, int y, int z, bool weight);
|
||||||
|
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(LSM6DSL_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level, jobject runnable)
|
|
||||||
{
|
|
||||||
installISR(intr, gpio, level, mraa_java_isr_callback,
|
|
||||||
runnable);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* install an interrupt handler
|
* install an interrupt handler
|
||||||
*
|
*
|
||||||
@ -302,7 +293,6 @@ namespace upm {
|
|||||||
void installISR(LSM6DSL_INTERRUPT_PINS_T intr, int gpio,
|
void installISR(LSM6DSL_INTERRUPT_PINS_T intr, int gpio,
|
||||||
mraa::Edge level,
|
mraa::Edge level,
|
||||||
void (*isr)(void *), void *arg);
|
void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* uninstall a previously installed interrupt handler
|
* uninstall a previously installed interrupt handler
|
||||||
@ -347,11 +337,5 @@ namespace upm {
|
|||||||
LSM6DSL(const LSM6DSL&) = delete;
|
LSM6DSL(const LSM6DSL&) = delete;
|
||||||
LSM6DSL &operator=(const LSM6DSL&) = delete;
|
LSM6DSL &operator=(const LSM6DSL&) = delete;
|
||||||
|
|
||||||
// Adding a private function definition for java bindings
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(LSM6DSL_INTERRUPT_PINS_T intr, int gpio,
|
|
||||||
mraa::Edge level,
|
|
||||||
void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,24 @@
|
|||||||
#include "lsm9ds0.hpp"
|
#include "lsm9ds0.hpp"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
%ignore installISR(LSM6DSL_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *);
|
||||||
|
|
||||||
|
%extend upm::LSM9DS0 {
|
||||||
|
installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
|
||||||
|
jobject runnable)
|
||||||
|
{
|
||||||
|
// delete any existing ISR and GPIO context
|
||||||
|
$self->uninstallISR(intr);
|
||||||
|
|
||||||
|
// greate gpio context
|
||||||
|
getPin(intr) = new mraa::Gpio(gpio);
|
||||||
|
|
||||||
|
getPin(intr)->dir(mraa::DIR_IN);
|
||||||
|
getPin(intr)->isr(level, runnable);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
%include "lsm9ds0.hpp"
|
%include "lsm9ds0.hpp"
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_lsm9ds0)
|
JAVA_JNI_LOADLIBRARY(javaupm_lsm9ds0)
|
||||||
|
@ -43,15 +43,15 @@ LSM9DS0::LSM9DS0(int bus, bool raw, uint8_t gAddress, uint8_t xmAddress) :
|
|||||||
m_accelX = 0.0;
|
m_accelX = 0.0;
|
||||||
m_accelY = 0.0;
|
m_accelY = 0.0;
|
||||||
m_accelZ = 0.0;
|
m_accelZ = 0.0;
|
||||||
|
|
||||||
m_gyroX = 0.0;
|
m_gyroX = 0.0;
|
||||||
m_gyroY = 0.0;
|
m_gyroY = 0.0;
|
||||||
m_gyroZ = 0.0;
|
m_gyroZ = 0.0;
|
||||||
|
|
||||||
m_magX = 0.0;
|
m_magX = 0.0;
|
||||||
m_magY = 0.0;
|
m_magY = 0.0;
|
||||||
m_magZ = 0.0;
|
m_magZ = 0.0;
|
||||||
|
|
||||||
m_temp = 0.0;
|
m_temp = 0.0;
|
||||||
|
|
||||||
m_accelScale = 0.0;
|
m_accelScale = 0.0;
|
||||||
@ -68,7 +68,7 @@ LSM9DS0::LSM9DS0(int bus, bool raw, uint8_t gAddress, uint8_t xmAddress) :
|
|||||||
|
|
||||||
if ( (rv = m_i2cXM.address(m_xmAddr)) != mraa::SUCCESS)
|
if ( (rv = m_i2cXM.address(m_xmAddr)) != mraa::SUCCESS)
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Could not initialize XM i2c address");
|
": Could not initialize XM i2c address");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -89,24 +89,24 @@ bool LSM9DS0::init()
|
|||||||
// power up
|
// power up
|
||||||
if (!setGyroscopePowerDown(false))
|
if (!setGyroscopePowerDown(false))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to wake up gyro");
|
": Unable to wake up gyro");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// enable all axes
|
// enable all axes
|
||||||
if (!setGyroscopeEnableAxes(CTRL_REG1_G_YEN |CTRL_REG1_G_XEN |
|
if (!setGyroscopeEnableAxes(CTRL_REG1_G_YEN |CTRL_REG1_G_XEN |
|
||||||
CTRL_REG1_G_ZEN))
|
CTRL_REG1_G_ZEN))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to enable gyro axes");
|
": Unable to enable gyro axes");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set gyro ODR
|
// set gyro ODR
|
||||||
if (!setGyroscopeODR(G_ODR_95_25))
|
if (!setGyroscopeODR(G_ODR_95_25))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to set gyro ODR");
|
": Unable to set gyro ODR");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -114,7 +114,7 @@ bool LSM9DS0::init()
|
|||||||
// set gyro scale
|
// set gyro scale
|
||||||
if (!setGyroscopeScale(G_FS_245))
|
if (!setGyroscopeScale(G_FS_245))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to set gyro scale");
|
": Unable to set gyro scale");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -124,7 +124,7 @@ bool LSM9DS0::init()
|
|||||||
// power up and set ODR
|
// power up and set ODR
|
||||||
if (!setAccelerometerODR(XM_AODR_100))
|
if (!setAccelerometerODR(XM_AODR_100))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to set accel ODR");
|
": Unable to set accel ODR");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -133,35 +133,35 @@ bool LSM9DS0::init()
|
|||||||
if (!setAccelerometerEnableAxes(CTRL_REG1_XM_AXEN |CTRL_REG1_XM_AYEN |
|
if (!setAccelerometerEnableAxes(CTRL_REG1_XM_AXEN |CTRL_REG1_XM_AYEN |
|
||||||
CTRL_REG1_XM_AZEN))
|
CTRL_REG1_XM_AZEN))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to enable accel axes");
|
": Unable to enable accel axes");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set scaling rate
|
// set scaling rate
|
||||||
if (!setAccelerometerScale(XM_AFS_2))
|
if (!setAccelerometerScale(XM_AFS_2))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to set accel scale");
|
": Unable to set accel scale");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// temperature sensor
|
// temperature sensor
|
||||||
|
|
||||||
// enable the temperature sensor
|
// enable the temperature sensor
|
||||||
if (!enableTemperatureSensor(true))
|
if (!enableTemperatureSensor(true))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to enable temp sensor");
|
": Unable to enable temp sensor");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Init the magnetometer
|
// Init the magnetometer
|
||||||
|
|
||||||
// set mode (this also powers it up if not XM_MD_POWERDOWN)
|
// set mode (this also powers it up if not XM_MD_POWERDOWN)
|
||||||
if (!setMagnetometerMode(XM_MD_CONTINUOUS))
|
if (!setMagnetometerMode(XM_MD_CONTINUOUS))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to set mag scale");
|
": Unable to set mag scale");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -169,7 +169,7 @@ bool LSM9DS0::init()
|
|||||||
// turn LPM off
|
// turn LPM off
|
||||||
if (!setMagnetometerLPM(false))
|
if (!setMagnetometerLPM(false))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to disable mag LPM");
|
": Unable to disable mag LPM");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -177,23 +177,23 @@ bool LSM9DS0::init()
|
|||||||
// set resolution
|
// set resolution
|
||||||
if (!setMagnetometerResolution(XM_RES_LOW))
|
if (!setMagnetometerResolution(XM_RES_LOW))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to set mag res");
|
": Unable to set mag res");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set ODR
|
// set ODR
|
||||||
if (!setMagnetometerODR(XM_ODR_12_5))
|
if (!setMagnetometerODR(XM_ODR_12_5))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to set mag ODR");
|
": Unable to set mag ODR");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set scale
|
// set scale
|
||||||
if (!setMagnetometerScale(XM_MFS_2))
|
if (!setMagnetometerScale(XM_MFS_2))
|
||||||
{
|
{
|
||||||
throw std::runtime_error(string(__FUNCTION__) +
|
throw std::runtime_error(string(__FUNCTION__) +
|
||||||
": Unable to set mag scale");
|
": Unable to set mag scale");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -293,7 +293,7 @@ uint8_t LSM9DS0::readReg(DEVICE_T dev, uint8_t reg)
|
|||||||
case DEV_GYRO: device = &m_i2cG; break;
|
case DEV_GYRO: device = &m_i2cG; break;
|
||||||
case DEV_XM: device = &m_i2cXM; break;
|
case DEV_XM: device = &m_i2cXM; break;
|
||||||
default:
|
default:
|
||||||
throw std::logic_error(string(__FUNCTION__) +
|
throw std::logic_error(string(__FUNCTION__) +
|
||||||
": Internal error, invalid device specified");
|
": Internal error, invalid device specified");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -310,7 +310,7 @@ void LSM9DS0::readRegs(DEVICE_T dev, uint8_t reg, uint8_t *buffer, int len)
|
|||||||
case DEV_GYRO: device = &m_i2cG; break;
|
case DEV_GYRO: device = &m_i2cG; break;
|
||||||
case DEV_XM: device = &m_i2cXM; break;
|
case DEV_XM: device = &m_i2cXM; break;
|
||||||
default:
|
default:
|
||||||
throw std::logic_error(string(__FUNCTION__) +
|
throw std::logic_error(string(__FUNCTION__) +
|
||||||
": Internal error, invalid device specified");
|
": Internal error, invalid device specified");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -329,7 +329,7 @@ bool LSM9DS0::writeReg(DEVICE_T dev, uint8_t reg, uint8_t val)
|
|||||||
case DEV_GYRO: device = &m_i2cG; break;
|
case DEV_GYRO: device = &m_i2cG; break;
|
||||||
case DEV_XM: device = &m_i2cXM; break;
|
case DEV_XM: device = &m_i2cXM; break;
|
||||||
default:
|
default:
|
||||||
throw std::logic_error(string(__FUNCTION__) +
|
throw std::logic_error(string(__FUNCTION__) +
|
||||||
": Internal error, invalid device specified");
|
": Internal error, invalid device specified");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -340,8 +340,8 @@ bool LSM9DS0::writeReg(DEVICE_T dev, uint8_t reg, uint8_t val)
|
|||||||
throw std::runtime_error(std::string(__FUNCTION__) +
|
throw std::runtime_error(std::string(__FUNCTION__) +
|
||||||
": I2c.writeReg() failed");
|
": I2c.writeReg() failed");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -380,7 +380,7 @@ bool LSM9DS0::setGyroscopeODR(G_ODR_T odr)
|
|||||||
reg &= ~(_CTRL_REG1_G_ODR_MASK << _CTRL_REG1_G_ODR_SHIFT);
|
reg &= ~(_CTRL_REG1_G_ODR_MASK << _CTRL_REG1_G_ODR_SHIFT);
|
||||||
|
|
||||||
reg |= (odr << _CTRL_REG1_G_ODR_SHIFT);
|
reg |= (odr << _CTRL_REG1_G_ODR_SHIFT);
|
||||||
|
|
||||||
return writeReg(DEV_GYRO, REG_CTRL_REG1_G, reg);
|
return writeReg(DEV_GYRO, REG_CTRL_REG1_G, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -415,7 +415,7 @@ bool LSM9DS0::setGyroscopeScale(G_FS_T scale)
|
|||||||
|
|
||||||
default: // should never occur, but...
|
default: // should never occur, but...
|
||||||
m_gyroScale = 0.0; // set a safe, though incorrect value
|
m_gyroScale = 0.0; // set a safe, though incorrect value
|
||||||
throw std::logic_error(string(__FUNCTION__) +
|
throw std::logic_error(string(__FUNCTION__) +
|
||||||
": internal error, unsupported scale");
|
": internal error, unsupported scale");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -446,7 +446,7 @@ bool LSM9DS0::setAccelerometerODR(XM_AODR_T odr)
|
|||||||
reg &= ~(_CTRL_REG1_XM_AODR_MASK << _CTRL_REG1_XM_AODR_SHIFT);
|
reg &= ~(_CTRL_REG1_XM_AODR_MASK << _CTRL_REG1_XM_AODR_SHIFT);
|
||||||
|
|
||||||
reg |= (odr << _CTRL_REG1_XM_AODR_SHIFT);
|
reg |= (odr << _CTRL_REG1_XM_AODR_SHIFT);
|
||||||
|
|
||||||
return writeReg(DEV_XM, REG_CTRL_REG1_XM, reg);
|
return writeReg(DEV_XM, REG_CTRL_REG1_XM, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -464,11 +464,11 @@ bool LSM9DS0::setAccelerometerScale(XM_AFS_T scale)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// store scaling factor
|
// store scaling factor
|
||||||
|
|
||||||
switch (scale)
|
switch (scale)
|
||||||
{
|
{
|
||||||
case XM_AFS_2:
|
case XM_AFS_2:
|
||||||
m_accelScale = 0.061;
|
m_accelScale = 0.061;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case XM_AFS_4:
|
case XM_AFS_4:
|
||||||
@ -489,7 +489,7 @@ bool LSM9DS0::setAccelerometerScale(XM_AFS_T scale)
|
|||||||
|
|
||||||
default: // should never occur, but...
|
default: // should never occur, but...
|
||||||
m_accelScale = 0.0; // set a safe, though incorrect value
|
m_accelScale = 0.0; // set a safe, though incorrect value
|
||||||
throw std::logic_error(string(__FUNCTION__) +
|
throw std::logic_error(string(__FUNCTION__) +
|
||||||
": internal error, unsupported scale");
|
": internal error, unsupported scale");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -504,7 +504,7 @@ bool LSM9DS0::setMagnetometerResolution(XM_RES_T res)
|
|||||||
reg &= ~(_CTRL_REG5_XM_RES_MASK << _CTRL_REG5_XM_RES_SHIFT);
|
reg &= ~(_CTRL_REG5_XM_RES_MASK << _CTRL_REG5_XM_RES_SHIFT);
|
||||||
|
|
||||||
reg |= (res << _CTRL_REG5_XM_RES_SHIFT);
|
reg |= (res << _CTRL_REG5_XM_RES_SHIFT);
|
||||||
|
|
||||||
return writeReg(DEV_XM, REG_CTRL_REG5_XM, reg);
|
return writeReg(DEV_XM, REG_CTRL_REG5_XM, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -515,7 +515,7 @@ bool LSM9DS0::setMagnetometerODR(XM_ODR_T odr)
|
|||||||
reg &= ~(_CTRL_REG5_XM_ODR_MASK << _CTRL_REG5_XM_ODR_SHIFT);
|
reg &= ~(_CTRL_REG5_XM_ODR_MASK << _CTRL_REG5_XM_ODR_SHIFT);
|
||||||
|
|
||||||
reg |= (odr << _CTRL_REG5_XM_ODR_SHIFT);
|
reg |= (odr << _CTRL_REG5_XM_ODR_SHIFT);
|
||||||
|
|
||||||
return writeReg(DEV_XM, REG_CTRL_REG5_XM, reg);
|
return writeReg(DEV_XM, REG_CTRL_REG5_XM, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -526,7 +526,7 @@ bool LSM9DS0::setMagnetometerMode(XM_MD_T mode)
|
|||||||
reg &= ~(_CTRL_REG7_XM_MD_MASK << _CTRL_REG7_XM_MD_SHIFT);
|
reg &= ~(_CTRL_REG7_XM_MD_MASK << _CTRL_REG7_XM_MD_SHIFT);
|
||||||
|
|
||||||
reg |= (mode << _CTRL_REG7_XM_MD_SHIFT);
|
reg |= (mode << _CTRL_REG7_XM_MD_SHIFT);
|
||||||
|
|
||||||
return writeReg(DEV_XM, REG_CTRL_REG7_XM, reg);
|
return writeReg(DEV_XM, REG_CTRL_REG7_XM, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -538,7 +538,7 @@ bool LSM9DS0::setMagnetometerLPM(bool enable)
|
|||||||
reg |= CTRL_REG7_XM_MLP;
|
reg |= CTRL_REG7_XM_MLP;
|
||||||
else
|
else
|
||||||
reg &= ~CTRL_REG7_XM_MLP;
|
reg &= ~CTRL_REG7_XM_MLP;
|
||||||
|
|
||||||
return writeReg(DEV_XM, REG_CTRL_REG7_XM, reg);
|
return writeReg(DEV_XM, REG_CTRL_REG7_XM, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -556,7 +556,7 @@ bool LSM9DS0::setMagnetometerScale(XM_MFS_T scale)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// store scaling factor
|
// store scaling factor
|
||||||
|
|
||||||
switch (scale)
|
switch (scale)
|
||||||
{
|
{
|
||||||
case XM_MFS_2:
|
case XM_MFS_2:
|
||||||
@ -577,7 +577,7 @@ bool LSM9DS0::setMagnetometerScale(XM_MFS_T scale)
|
|||||||
|
|
||||||
default: // should never occur, but...
|
default: // should never occur, but...
|
||||||
m_magScale = 0.0; // set a safe, though incorrect value
|
m_magScale = 0.0; // set a safe, though incorrect value
|
||||||
throw std::logic_error(string(__FUNCTION__) +
|
throw std::logic_error(string(__FUNCTION__) +
|
||||||
": internal error, unsupported scale");
|
": internal error, unsupported scale");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -741,22 +741,8 @@ uint8_t LSM9DS0::getInterruptGen2Src()
|
|||||||
return readReg(DEV_XM, REG_INT_GEN_2_SRC);
|
return readReg(DEV_XM, REG_INT_GEN_2_SRC);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined (JAVACALLBACK)
|
|
||||||
void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
|
void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
|
||||||
jobject runnable)
|
|
||||||
{
|
|
||||||
// delete any existing ISR and GPIO context
|
|
||||||
uninstallISR(intr);
|
|
||||||
|
|
||||||
// greate gpio context
|
|
||||||
getPin(intr) = new mraa::Gpio(gpio);
|
|
||||||
|
|
||||||
getPin(intr)->dir(mraa::DIR_IN);
|
|
||||||
getPin(intr)->isr(level, runnable);
|
|
||||||
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
|
|
||||||
void (*isr)(void *), void *arg)
|
void (*isr)(void *), void *arg)
|
||||||
{
|
{
|
||||||
// delete any existing ISR and GPIO context
|
// delete any existing ISR and GPIO context
|
||||||
@ -768,7 +754,7 @@ void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
|
|||||||
getPin(intr)->dir(mraa::DIR_IN);
|
getPin(intr)->dir(mraa::DIR_IN);
|
||||||
getPin(intr)->isr(level, isr, arg);
|
getPin(intr)->isr(level, isr, arg);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void LSM9DS0::uninstallISR(INTERRUPT_PINS_T intr)
|
void LSM9DS0::uninstallISR(INTERRUPT_PINS_T intr)
|
||||||
{
|
{
|
||||||
@ -776,7 +762,7 @@ void LSM9DS0::uninstallISR(INTERRUPT_PINS_T intr)
|
|||||||
{
|
{
|
||||||
getPin(intr)->isrExit();
|
getPin(intr)->isrExit();
|
||||||
delete getPin(intr);
|
delete getPin(intr);
|
||||||
|
|
||||||
getPin(intr) = 0;
|
getPin(intr) = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
#define LSM9DS0_DEFAULT_GYRO_ADDR 0x6b
|
#define LSM9DS0_DEFAULT_GYRO_ADDR 0x6b
|
||||||
|
|
||||||
namespace upm {
|
namespace upm {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief LSM9DS0 accelerometer library
|
* @brief LSM9DS0 accelerometer library
|
||||||
* @defgroup lsm9ds0 libupm-lsm9ds0
|
* @defgroup lsm9ds0 libupm-lsm9ds0
|
||||||
@ -50,7 +50,7 @@ namespace upm {
|
|||||||
* @con i2c gpio
|
* @con i2c gpio
|
||||||
* @web https://www.sparkfun.com/products/13033
|
* @web https://www.sparkfun.com/products/13033
|
||||||
*
|
*
|
||||||
* @brief API for the LSM9DS0 3-axis Gyroscope, Accelerometer,
|
* @brief API for the LSM9DS0 3-axis Gyroscope, Accelerometer,
|
||||||
* and Magnetometer
|
* and Magnetometer
|
||||||
*
|
*
|
||||||
* The LSM9DS0 is a system-in-package featuring a 3D digital linear
|
* The LSM9DS0 is a system-in-package featuring a 3D digital linear
|
||||||
@ -109,13 +109,13 @@ namespace upm {
|
|||||||
|
|
||||||
REG_STATUS_REG_G = 0x27,
|
REG_STATUS_REG_G = 0x27,
|
||||||
|
|
||||||
REG_OUT_X_L_G = 0x28, // gyro output, X axis, LSB
|
REG_OUT_X_L_G = 0x28, // gyro output, X axis, LSB
|
||||||
REG_OUT_X_H_G = 0x29, // gyro output, X axis, MSB
|
REG_OUT_X_H_G = 0x29, // gyro output, X axis, MSB
|
||||||
REG_OUT_Y_L_G = 0x2a,
|
REG_OUT_Y_L_G = 0x2a,
|
||||||
REG_OUT_Y_H_G = 0x2b,
|
REG_OUT_Y_H_G = 0x2b,
|
||||||
REG_OUT_Z_L_G = 0x2c,
|
REG_OUT_Z_L_G = 0x2c,
|
||||||
REG_OUT_Z_H_G = 0x2d,
|
REG_OUT_Z_H_G = 0x2d,
|
||||||
|
|
||||||
REG_FIFO_CTRL_REG_G = 0x2e,
|
REG_FIFO_CTRL_REG_G = 0x2e,
|
||||||
REG_FIFO_SRC_REG_G = 0x2f,
|
REG_FIFO_SRC_REG_G = 0x2f,
|
||||||
|
|
||||||
@ -133,14 +133,14 @@ namespace upm {
|
|||||||
// on how to use this register
|
// on how to use this register
|
||||||
REG_INT1_DURATION_G = 0x38
|
REG_INT1_DURATION_G = 0x38
|
||||||
} REG_G_T;
|
} REG_G_T;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gyro CTRL_REG1_G bits
|
* Gyro CTRL_REG1_G bits
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
CTRL_REG1_G_YEN = 0x01, // Y enable, odd ordering...
|
CTRL_REG1_G_YEN = 0x01, // Y enable, odd ordering...
|
||||||
CTRL_REG1_G_XEN = 0x02,
|
CTRL_REG1_G_XEN = 0x02,
|
||||||
CTRL_REG1_G_ZEN = 0x04,
|
CTRL_REG1_G_ZEN = 0x04,
|
||||||
CTRL_REG1_G_PD = 0x08, // power down (0)
|
CTRL_REG1_G_PD = 0x08, // power down (0)
|
||||||
|
|
||||||
CTRL_REG1_G_BW0 = 0x10, // bandwidth
|
CTRL_REG1_G_BW0 = 0x10, // bandwidth
|
||||||
@ -328,7 +328,7 @@ namespace upm {
|
|||||||
CTRL_REG5_G_BOOT = 0x80 // reboot memory content
|
CTRL_REG5_G_BOOT = 0x80 // reboot memory content
|
||||||
} CTRL_REG5_G_BITS_T;
|
} CTRL_REG5_G_BITS_T;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CRTL_REG5_G_OUTSEL and INT1SEL values. See Figure 18 in the
|
* CRTL_REG5_G_OUTSEL and INT1SEL values. See Figure 18 in the
|
||||||
* datasheet.
|
* datasheet.
|
||||||
@ -366,7 +366,7 @@ namespace upm {
|
|||||||
FIFO_CTRL_REG_G_WTM4 = 0x10,
|
FIFO_CTRL_REG_G_WTM4 = 0x10,
|
||||||
_FIFO_CTRL_REG_G_WTM_MASK = 31,
|
_FIFO_CTRL_REG_G_WTM_MASK = 31,
|
||||||
_FIFO_CTRL_REG_G_WTM_SHIFT = 0,
|
_FIFO_CTRL_REG_G_WTM_SHIFT = 0,
|
||||||
|
|
||||||
FIFO_CTRL_REG_G_FM0 = 0x20, // FIFO mode config
|
FIFO_CTRL_REG_G_FM0 = 0x20, // FIFO mode config
|
||||||
FIFO_CTRL_REG_G_FM1 = 0x40,
|
FIFO_CTRL_REG_G_FM1 = 0x40,
|
||||||
FIFO_CTRL_REG_G_FM2 = 0x80,
|
FIFO_CTRL_REG_G_FM2 = 0x80,
|
||||||
@ -524,7 +524,7 @@ namespace upm {
|
|||||||
REG_TIME_LIMIT = 0x3b,
|
REG_TIME_LIMIT = 0x3b,
|
||||||
REG_TIME_LATENCY = 0x3c,
|
REG_TIME_LATENCY = 0x3c,
|
||||||
REG_TIME_WINDOW = 0x3d,
|
REG_TIME_WINDOW = 0x3d,
|
||||||
|
|
||||||
REG_ACT_THS = 0x3e,
|
REG_ACT_THS = 0x3e,
|
||||||
REG_ACT_DUR = 0x3f
|
REG_ACT_DUR = 0x3f
|
||||||
} REG_XM_T;
|
} REG_XM_T;
|
||||||
@ -552,7 +552,7 @@ namespace upm {
|
|||||||
INT_CTRL_REG_M_4D = 0x02,
|
INT_CTRL_REG_M_4D = 0x02,
|
||||||
INT_CTRL_REG_M_IEL = 0x04, // latch intr request
|
INT_CTRL_REG_M_IEL = 0x04, // latch intr request
|
||||||
INT_CTRL_REG_M_IEA = 0x08,
|
INT_CTRL_REG_M_IEA = 0x08,
|
||||||
INT_CTRL_REG_M_PP_OD = 0x10, // push-pull/open drian
|
INT_CTRL_REG_M_PP_OD = 0x10, // push-pull/open drian
|
||||||
INT_CTRL_REG_M_ZMIEN = 0x20, // Z mag axis interrupt recognition
|
INT_CTRL_REG_M_ZMIEN = 0x20, // Z mag axis interrupt recognition
|
||||||
INT_CTRL_REG_M_YMIEN = 0x40,
|
INT_CTRL_REG_M_YMIEN = 0x40,
|
||||||
INT_CTRL_REG_M_XMIEN = 0x80
|
INT_CTRL_REG_M_XMIEN = 0x80
|
||||||
@ -600,7 +600,7 @@ namespace upm {
|
|||||||
CTRL_REG1_XM_BDU = 0x04, // block data update
|
CTRL_REG1_XM_BDU = 0x04, // block data update
|
||||||
|
|
||||||
CTRL_REG1_XM_AODR0 = 0x10, // accelerometer output data rate
|
CTRL_REG1_XM_AODR0 = 0x10, // accelerometer output data rate
|
||||||
CTRL_REG1_XM_AODR1 = 0x20,
|
CTRL_REG1_XM_AODR1 = 0x20,
|
||||||
CTRL_REG1_XM_AODR2 = 0x40,
|
CTRL_REG1_XM_AODR2 = 0x40,
|
||||||
CTRL_REG1_XM_AODR3 = 0x80,
|
CTRL_REG1_XM_AODR3 = 0x80,
|
||||||
_CTRL_REG1_XM_AODR_MASK = 15,
|
_CTRL_REG1_XM_AODR_MASK = 15,
|
||||||
@ -624,7 +624,7 @@ namespace upm {
|
|||||||
XM_AODR_1000 = 10
|
XM_AODR_1000 = 10
|
||||||
// 11-15 unused
|
// 11-15 unused
|
||||||
} XM_AODR_T;
|
} XM_AODR_T;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CTRL_REG2_XM bits
|
* CTRL_REG2_XM bits
|
||||||
*/
|
*/
|
||||||
@ -740,7 +740,7 @@ namespace upm {
|
|||||||
XM_ODR_25 = 3,
|
XM_ODR_25 = 3,
|
||||||
XM_ODR_50 = 4,
|
XM_ODR_50 = 4,
|
||||||
XM_ODR_100 = 5
|
XM_ODR_100 = 5
|
||||||
|
|
||||||
// 6, 7 reserved
|
// 6, 7 reserved
|
||||||
} XM_ODR_T;
|
} XM_ODR_T;
|
||||||
|
|
||||||
@ -749,9 +749,9 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
XM_RES_LOW = 0, // low resolution
|
XM_RES_LOW = 0, // low resolution
|
||||||
|
|
||||||
// 1, 2 reserved
|
// 1, 2 reserved
|
||||||
|
|
||||||
XM_RES_HIGH = 3,
|
XM_RES_HIGH = 3,
|
||||||
} XM_RES_T;
|
} XM_RES_T;
|
||||||
|
|
||||||
@ -850,7 +850,7 @@ namespace upm {
|
|||||||
FIFO_CTRL_REG_FTH4 = 0x10,
|
FIFO_CTRL_REG_FTH4 = 0x10,
|
||||||
_FIFO_CTRL_REG_FTH_MASK = 31,
|
_FIFO_CTRL_REG_FTH_MASK = 31,
|
||||||
_FIFO_CTRL_REG_FTH_SHIFT = 0,
|
_FIFO_CTRL_REG_FTH_SHIFT = 0,
|
||||||
|
|
||||||
FIFO_CTRL_REG_FM0 = 0x20, // FIFO mode config
|
FIFO_CTRL_REG_FM0 = 0x20, // FIFO mode config
|
||||||
FIFO_CTRL_REG_FM1 = 0x40,
|
FIFO_CTRL_REG_FM1 = 0x40,
|
||||||
FIFO_CTRL_REG_FM2 = 0x80,
|
FIFO_CTRL_REG_FM2 = 0x80,
|
||||||
@ -970,7 +970,7 @@ namespace upm {
|
|||||||
CLICK_CONFIG_ZD = 0x20
|
CLICK_CONFIG_ZD = 0x20
|
||||||
// 0x40, 0x80 reserved
|
// 0x40, 0x80 reserved
|
||||||
} CLICK_CONFIG_BITS_T;
|
} CLICK_CONFIG_BITS_T;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CLICK_SRC bits
|
* CLICK_SRC bits
|
||||||
*
|
*
|
||||||
@ -1072,7 +1072,7 @@ namespace upm {
|
|||||||
* LSM9DS0 Destructor
|
* LSM9DS0 Destructor
|
||||||
*/
|
*/
|
||||||
~LSM9DS0();
|
~LSM9DS0();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set up initial values and start operation
|
* set up initial values and start operation
|
||||||
*
|
*
|
||||||
@ -1416,10 +1416,7 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
uint8_t getInterruptGen2Src();
|
uint8_t getInterruptGen2Src();
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
|
|
||||||
jobject runnable);
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* install an interrupt handler.
|
* install an interrupt handler.
|
||||||
*
|
*
|
||||||
@ -1432,9 +1429,9 @@ namespace upm {
|
|||||||
* @param isr the interrupt handler, accepting a void * argument
|
* @param isr the interrupt handler, accepting a void * argument
|
||||||
* @param arg the argument to pass the the interrupt handler
|
* @param arg the argument to pass the the interrupt handler
|
||||||
*/
|
*/
|
||||||
void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
|
void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
|
||||||
void (*isr)(void *), void *arg);
|
void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
/**
|
/**
|
||||||
* uninstall a previously installed interrupt handler
|
* uninstall a previously installed interrupt handler
|
||||||
*
|
*
|
||||||
@ -1486,5 +1483,3 @@ namespace upm {
|
|||||||
mraa::Gpio *m_gpioXM_GEN2;
|
mraa::Gpio *m_gpioXM_GEN2;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,11 +5,21 @@
|
|||||||
%include "../java_buffer.i"
|
%include "../java_buffer.i"
|
||||||
%include "std_string.i"
|
%include "std_string.i"
|
||||||
|
|
||||||
%include "mcp2515_regs.h"
|
|
||||||
%include "mcp2515.hpp"
|
|
||||||
%{
|
%{
|
||||||
#include "mcp2515.hpp"
|
#include "mcp2515.hpp"
|
||||||
|
#include "mcp2515_regs.h"
|
||||||
%}
|
%}
|
||||||
|
%include "mcp2515_regs.h"
|
||||||
|
%include "mcp2515.hpp"
|
||||||
|
|
||||||
|
%ignore installISR(int pin, void *, void *);
|
||||||
|
|
||||||
|
|
||||||
|
%extend upm::MCP2515 {
|
||||||
|
void installISR(int pin, jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(pin, mraa_java_isr_callback, runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_mcp2515)
|
JAVA_JNI_LOADLIBRARY(javaupm_mcp2515)
|
||||||
|
@ -324,12 +324,7 @@ namespace upm {
|
|||||||
return std::string((char *)m_message.pkt.data, m_message.len);
|
return std::string((char *)m_message.pkt.data, m_message.len);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(int pin, jobject runnable)
|
|
||||||
{
|
|
||||||
installISR(pin, mraa_java_isr_callback, runnable);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* Installs an interrupt service routine (ISR) to be called when
|
* Installs an interrupt service routine (ISR) to be called when
|
||||||
* an interrupt occurs.
|
* an interrupt occurs.
|
||||||
@ -340,7 +335,7 @@ namespace upm {
|
|||||||
* argument to the ISR.
|
* argument to the ISR.
|
||||||
*/
|
*/
|
||||||
void installISR(int pin, void (*isr)(void *), void *arg);
|
void installISR(int pin, void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uninstalls the previously installed ISR
|
* Uninstalls the previously installed ISR
|
||||||
@ -518,9 +513,5 @@ namespace upm {
|
|||||||
/* Disable implicit copy and assignment operators */
|
/* Disable implicit copy and assignment operators */
|
||||||
MCP2515(const MCP2515&) = delete;
|
MCP2515(const MCP2515&) = delete;
|
||||||
MCP2515 &operator=(const MCP2515&) = delete;
|
MCP2515 &operator=(const MCP2515&) = delete;
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(int pin, void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -33,4 +33,21 @@
|
|||||||
%include "mpu60x0.hpp"
|
%include "mpu60x0.hpp"
|
||||||
%include "mpu9150.hpp"
|
%include "mpu9150.hpp"
|
||||||
|
|
||||||
|
%ignore installISR(int , mraa::Edge , void *, void *);
|
||||||
|
|
||||||
|
%extend upm::MPU60X0 {
|
||||||
|
void installISR(int gpio, mraa::Edge level,
|
||||||
|
jobject runnable)
|
||||||
|
{
|
||||||
|
// delete any existing ISR and GPIO context
|
||||||
|
$self->uninstallISR();
|
||||||
|
|
||||||
|
// greate gpio context
|
||||||
|
mraa::Gpio* swg_gpioIRQ = $self->get_gpioIRQ();
|
||||||
|
|
||||||
|
swg_gpioIRQ->dir(mraa::DIR_IN);
|
||||||
|
swg_gpioIRQ->isr(level, runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_mpu9150)
|
JAVA_JNI_LOADLIBRARY(javaupm_mpu9150)
|
||||||
|
@ -40,11 +40,11 @@ MPU60X0::MPU60X0(int bus, uint8_t address) :
|
|||||||
m_accelX = 0.0;
|
m_accelX = 0.0;
|
||||||
m_accelY = 0.0;
|
m_accelY = 0.0;
|
||||||
m_accelZ = 0.0;
|
m_accelZ = 0.0;
|
||||||
|
|
||||||
m_gyroX = 0.0;
|
m_gyroX = 0.0;
|
||||||
m_gyroY = 0.0;
|
m_gyroY = 0.0;
|
||||||
m_gyroZ = 0.0;
|
m_gyroZ = 0.0;
|
||||||
|
|
||||||
m_temp = 0.0;
|
m_temp = 0.0;
|
||||||
|
|
||||||
m_accelScale = 1.0;
|
m_accelScale = 1.0;
|
||||||
@ -154,8 +154,8 @@ bool MPU60X0::writeReg(uint8_t reg, uint8_t val)
|
|||||||
throw std::runtime_error(std::string(__FUNCTION__) +
|
throw std::runtime_error(std::string(__FUNCTION__) +
|
||||||
": I2c.writeReg() failed");
|
": I2c.writeReg() failed");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,7 +217,7 @@ bool MPU60X0::setGyroscopeScale(FS_SEL_T scale)
|
|||||||
|
|
||||||
default: // should never occur, but...
|
default: // should never occur, but...
|
||||||
m_gyroScale = 1.0; // set a safe, though incorrect value
|
m_gyroScale = 1.0; // set a safe, though incorrect value
|
||||||
throw std::logic_error(string(__FUNCTION__) +
|
throw std::logic_error(string(__FUNCTION__) +
|
||||||
": internal error, unsupported scale");
|
": internal error, unsupported scale");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -239,7 +239,7 @@ bool MPU60X0::setAccelerometerScale(AFS_SEL_T scale)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// store scaling factor
|
// store scaling factor
|
||||||
|
|
||||||
switch (scale)
|
switch (scale)
|
||||||
{
|
{
|
||||||
case AFS_2:
|
case AFS_2:
|
||||||
@ -260,7 +260,7 @@ bool MPU60X0::setAccelerometerScale(AFS_SEL_T scale)
|
|||||||
|
|
||||||
default: // should never occur, but...
|
default: // should never occur, but...
|
||||||
m_accelScale = 1.0; // set a safe, though incorrect value
|
m_accelScale = 1.0; // set a safe, though incorrect value
|
||||||
throw std::logic_error(string(__FUNCTION__) +
|
throw std::logic_error(string(__FUNCTION__) +
|
||||||
": internal error, unsupported scale");
|
": internal error, unsupported scale");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -384,21 +384,8 @@ uint8_t MPU60X0::getInterruptPinConfig()
|
|||||||
return readReg(REG_INT_PIN_CFG);
|
return readReg(REG_INT_PIN_CFG);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void MPU60X0::installISR(int gpio, mraa::Edge level,
|
void MPU60X0::installISR(int gpio, mraa::Edge level,
|
||||||
jobject runnable)
|
|
||||||
{
|
|
||||||
// delete any existing ISR and GPIO context
|
|
||||||
uninstallISR();
|
|
||||||
|
|
||||||
// greate gpio context
|
|
||||||
m_gpioIRQ = new mraa::Gpio(gpio);
|
|
||||||
|
|
||||||
m_gpioIRQ->dir(mraa::DIR_IN);
|
|
||||||
m_gpioIRQ->isr(level, runnable);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
void MPU60X0::installISR(int gpio, mraa::Edge level,
|
|
||||||
void (*isr)(void *), void *arg)
|
void (*isr)(void *), void *arg)
|
||||||
{
|
{
|
||||||
// delete any existing ISR and GPIO context
|
// delete any existing ISR and GPIO context
|
||||||
@ -410,7 +397,7 @@ void MPU60X0::installISR(int gpio, mraa::Edge level,
|
|||||||
m_gpioIRQ->dir(mraa::DIR_IN);
|
m_gpioIRQ->dir(mraa::DIR_IN);
|
||||||
m_gpioIRQ->isr(level, isr, arg);
|
m_gpioIRQ->isr(level, isr, arg);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void MPU60X0::uninstallISR()
|
void MPU60X0::uninstallISR()
|
||||||
{
|
{
|
||||||
@ -418,7 +405,12 @@ void MPU60X0::uninstallISR()
|
|||||||
{
|
{
|
||||||
m_gpioIRQ->isrExit();
|
m_gpioIRQ->isrExit();
|
||||||
delete m_gpioIRQ;
|
delete m_gpioIRQ;
|
||||||
|
|
||||||
m_gpioIRQ = 0;
|
m_gpioIRQ = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mraa::Gpio* MPU60X0::get_gpioIRQ()
|
||||||
|
{
|
||||||
|
return m_gpioIRQ;
|
||||||
|
}
|
||||||
|
@ -901,11 +901,8 @@ namespace upm {
|
|||||||
* @param isr the interrupt handler, accepting a void * argument
|
* @param isr the interrupt handler, accepting a void * argument
|
||||||
* @param arg the argument to pass the the interrupt handler
|
* @param arg the argument to pass the the interrupt handler
|
||||||
*/
|
*/
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(int gpio, mraa::Edge level, jobject runnable);
|
|
||||||
#else
|
|
||||||
void installISR(int gpio, mraa::Edge level, void (*isr)(void *), void *arg);
|
void installISR(int gpio, mraa::Edge level, void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* uninstall a previously installed interrupt handler
|
* uninstall a previously installed interrupt handler
|
||||||
@ -913,6 +910,8 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
void uninstallISR();
|
void uninstallISR();
|
||||||
|
|
||||||
|
mraa::Gpio* get_gpioIRQ();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// uncompensated accelerometer and gyroscope values
|
// uncompensated accelerometer and gyroscope values
|
||||||
float m_accelX;
|
float m_accelX;
|
||||||
@ -942,5 +941,3 @@ namespace upm {
|
|||||||
mraa::Gpio *m_gpioIRQ;
|
mraa::Gpio *m_gpioIRQ;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,3 +8,5 @@
|
|||||||
%include "rpr220.hpp"
|
%include "rpr220.hpp"
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_rpr220)
|
JAVA_JNI_LOADLIBRARY(javaupm_rpr220)
|
||||||
|
|
||||||
|
JAVA_ADD_INSTALLISR(upm::RPR220)
|
||||||
|
@ -49,12 +49,7 @@ bool RPR220::blackDetected()
|
|||||||
return rpr220_black_detected(m_rpr220);
|
return rpr220_black_detected(m_rpr220);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef JAVACALLBACK
|
|
||||||
void RPR220::installISR(jobject runnable)
|
|
||||||
{
|
|
||||||
installISR(mraa_java_isr_callback, runnable);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void RPR220::installISR(void (*isr)(void *), void *arg)
|
void RPR220::installISR(void (*isr)(void *), void *arg)
|
||||||
{
|
{
|
||||||
@ -65,4 +60,3 @@ void RPR220::uninstallISR()
|
|||||||
{
|
{
|
||||||
rpr220_uninstall_isr(m_rpr220);
|
rpr220_uninstall_isr(m_rpr220);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,9 +83,7 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
bool blackDetected();
|
bool blackDetected();
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(jobject runnable);
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* Installs an ISR to be called when
|
* Installs an ISR to be called when
|
||||||
* black is detected
|
* black is detected
|
||||||
@ -95,7 +93,6 @@ namespace upm {
|
|||||||
* argument to the ISR.
|
* argument to the ISR.
|
||||||
*/
|
*/
|
||||||
void installISR(void (*isr)(void *), void *arg);
|
void installISR(void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uninstalls the previously installed ISR
|
* Uninstalls the previously installed ISR
|
||||||
@ -110,10 +107,5 @@ namespace upm {
|
|||||||
|
|
||||||
rpr220_context m_rpr220;
|
rpr220_context m_rpr220;
|
||||||
|
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,4 +11,13 @@
|
|||||||
|
|
||||||
%include "ttp223.hpp"
|
%include "ttp223.hpp"
|
||||||
|
|
||||||
|
#%ignore installISR(mraa::Edge , void *, void *)
|
||||||
|
|
||||||
|
%extend upm::TTP223 {
|
||||||
|
void installISR(mraa::Edge level, jobject runnable)
|
||||||
|
{
|
||||||
|
$self->installISR(level, mraa_java_isr_callback, runnable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
JAVA_JNI_LOADLIBRARY(javaupm_ttp223)
|
JAVA_JNI_LOADLIBRARY(javaupm_ttp223)
|
||||||
|
@ -31,7 +31,7 @@ using namespace upm;
|
|||||||
|
|
||||||
TTP223::TTP223(unsigned int pin) {
|
TTP223::TTP223(unsigned int pin) {
|
||||||
// initialize gpio input
|
// initialize gpio input
|
||||||
if ( !(m_gpio = mraa_gpio_init(pin)) )
|
if ( !(m_gpio = mraa_gpio_init(pin)) )
|
||||||
{
|
{
|
||||||
throw std::invalid_argument(std::string(__FUNCTION__) +
|
throw std::invalid_argument(std::string(__FUNCTION__) +
|
||||||
": mraa_gpio_init() failed, invalid pin?");
|
": mraa_gpio_init() failed, invalid pin?");
|
||||||
@ -59,12 +59,6 @@ bool TTP223::isPressed() {
|
|||||||
return this->value() == 1;
|
return this->value() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef JAVACALLBACK
|
|
||||||
void TTP223::installISR(mraa::Edge level, jobject runnable)
|
|
||||||
{
|
|
||||||
installISR(level, mraa_java_isr_callback, runnable);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void TTP223::installISR(mraa::Edge level, void (*isr)(void *), void *arg)
|
void TTP223::installISR(mraa::Edge level, void (*isr)(void *), void *arg)
|
||||||
{
|
{
|
||||||
|
@ -43,10 +43,10 @@ namespace upm {
|
|||||||
* @con gpio
|
* @con gpio
|
||||||
*
|
*
|
||||||
* @brief API for the TTP223 Touch Sensor
|
* @brief API for the TTP223 Touch Sensor
|
||||||
*
|
*
|
||||||
* This touch sensor detects when a finger is near the metallic pad
|
* This touch sensor detects when a finger is near the metallic pad
|
||||||
* by the change in capacitance. It can replace a more traditional push
|
* by the change in capacitance. It can replace a more traditional push
|
||||||
* button. The touch sensor can still function when placed under a
|
* button. The touch sensor can still function when placed under a
|
||||||
* non-metallic surface like glass or plastic.
|
* non-metallic surface like glass or plastic.
|
||||||
*
|
*
|
||||||
* @image html ttp223.jpg
|
* @image html ttp223.jpg
|
||||||
@ -95,11 +95,8 @@ class TTP223 {
|
|||||||
* @param arg Pointer to an object to be supplied as an
|
* @param arg Pointer to an object to be supplied as an
|
||||||
* argument to the ISR.
|
* argument to the ISR.
|
||||||
*/
|
*/
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(mraa::Edge level, jobject runnable);
|
|
||||||
#else
|
|
||||||
void installISR(mraa::Edge level, void (*isr)(void *), void *arg);
|
void installISR(mraa::Edge level, void (*isr)(void *), void *arg);
|
||||||
#endif
|
|
||||||
/**
|
/**
|
||||||
* Uninstalls the previously installed ISR
|
* Uninstalls the previously installed ISR
|
||||||
*
|
*
|
||||||
@ -107,9 +104,6 @@ class TTP223 {
|
|||||||
void uninstallISR();
|
void uninstallISR();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
|
||||||
void installISR(mraa::Edge level, void (*isr)(void *), void *arg);
|
|
||||||
#endif
|
|
||||||
std::string m_name; //!< name of this sensor
|
std::string m_name; //!< name of this sensor
|
||||||
mraa_gpio_context m_gpio; //!< GPIO pin
|
mraa_gpio_context m_gpio; //!< GPIO pin
|
||||||
bool m_isrInstalled;
|
bool m_isrInstalled;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user