java: Use Runnables instead of IsrCallbacks in Java

Signed-off-by: Petre Eftime <petre.p.eftime@intel.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
Petre Eftime
2015-12-23 17:47:26 +02:00
committed by Mihai Tudor Panu
parent e1c66c351a
commit 2cd043c2a1
35 changed files with 96 additions and 162 deletions

View File

@ -1,15 +1,10 @@
%module(directors="1") javaupm_lsm9ds0
%module javaupm_lsm9ds0
%include "../upm.i"
%include "cpointer.i"
%include "typemaps.i"
%include "arrays_java.i";
%include "../java_buffer.i"
%feature("director") IsrCallback;
SWIG_DIRECTOR_OWNED(IsrCallback)
%ignore generic_callback_isr;
%include "../IsrCallback.h"
%apply int {mraa::Edge};
%apply float *INOUT { float *x, float *y, float *z };
@ -58,4 +53,4 @@ SWIG_DIRECTOR_OWNED(IsrCallback)
System.exit(1);
}
}
%}
%}

View File

@ -741,14 +741,21 @@ uint8_t LSM9DS0::getInterruptGen2Src()
return readReg(DEV_XM, REG_INT_GEN_2_SRC);
}
#ifdef SWIGJAVA
#if defined(SWIGJAVA) || defined (JAVACALLBACK)
void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
IsrCallback *cb)
jobject runnable)
{
installISR(intr, gpio, level, generic_callback_isr, cb);
}
#endif
// 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)
{
@ -761,6 +768,7 @@ void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
getPin(intr)->dir(mraa::DIR_IN);
getPin(intr)->isr(level, isr, arg);
}
#endif
void LSM9DS0::uninstallISR(INTERRUPT_PINS_T intr)
{

View File

@ -29,10 +29,6 @@
#include <mraa/gpio.hpp>
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
#include "../IsrCallback.h"
#endif
#define LSM9DS0_I2C_BUS 1
#define LSM9DS0_DEFAULT_XM_ADDR 0x1d
#define LSM9DS0_DEFAULT_GYRO_ADDR 0x6b
@ -1413,7 +1409,7 @@ namespace upm {
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
IsrCallback *cb);
jobject runnable);
#else
/**
* install an interrupt handler.
@ -1464,11 +1460,6 @@ namespace upm {
private:
// OR'd with a register, this enables register autoincrement mode,
// which we need.
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
void (*isr)(void *), void *arg);
#endif
static const uint8_t m_autoIncrementMode = 0x80;
mraa::I2c m_i2cG;