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:
Serban Waltter 2018-01-17 14:20:32 +02:00 committed by Noel Eck
parent 2551596309
commit 63b2b33df7
39 changed files with 351 additions and 367 deletions

View File

@ -489,21 +489,7 @@ 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,
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 BMA220::installISR(int gpio, mraa::Edge level,
void (*isr)(void *), void *arg) void (*isr)(void *), void *arg)
{ {
@ -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()
{ {
@ -529,3 +514,7 @@ void BMA220::uninstallISR()
} }
} }
mraa::Gpio* BMA220::get_gpioIntr()
{
return m_gpioIntr;
}

View File

@ -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.
* *
@ -791,7 +789,6 @@ namespace upm {
*/ */
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
@ -799,6 +796,8 @@ namespace upm {
*/ */
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
}; };
} }

View File

@ -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)

View File

@ -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
@ -586,11 +578,5 @@ namespace upm {
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
}; };
} }

View File

@ -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)

View File

@ -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
}; };
} }

View File

@ -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)

View File

@ -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
}; };
} }

View File

@ -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)

View File

@ -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
}; };
} }

View File

@ -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)

View File

@ -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)
{ {

View File

@ -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;

View File

@ -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)

View File

@ -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)
{ {

View File

@ -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;

View File

@ -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)

View File

@ -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)

View File

@ -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
@ -317,11 +308,5 @@ namespace upm {
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
}; };
} }

View File

@ -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)

View File

@ -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
}; };
} }

View File

@ -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)

View File

@ -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
}; };
} }

View File

@ -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)

View File

@ -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
}; };
} }

View File

@ -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)

View File

@ -741,21 +741,7 @@ 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,
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 LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
void (*isr)(void *), void *arg) void (*isr)(void *), void *arg)
{ {
@ -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)
{ {

View File

@ -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.
* *
@ -1434,7 +1431,7 @@ namespace upm {
*/ */
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;
}; };
} }

View File

@ -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)

View File

@ -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
}; };
} }

View File

@ -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)

View File

@ -384,20 +384,7 @@ 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,
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 MPU60X0::installISR(int gpio, mraa::Edge level,
void (*isr)(void *), void *arg) void (*isr)(void *), void *arg)
{ {
@ -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()
{ {
@ -422,3 +409,8 @@ void MPU60X0::uninstallISR()
m_gpioIRQ = 0; m_gpioIRQ = 0;
} }
} }
mraa::Gpio* MPU60X0::get_gpioIRQ()
{
return m_gpioIRQ;
}

View File

@ -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;
}; };
} }

View File

@ -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)

View File

@ -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);
} }

View File

@ -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
}; };
} }

View File

@ -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)

View File

@ -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)
{ {

View File

@ -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;