Added new macros for installISR and applied where possible.

This commit is contained in:
Serban Waltter 2018-01-19 13:12:50 +02:00 committed by Stefan Andritoiu
parent 7ab1e52327
commit 1895004cf5
20 changed files with 111 additions and 144 deletions

View File

@ -10,6 +10,56 @@
} }
%enddef %enddef
/* Define GETTER in the appropiate .i file with the getter function name
*/
%define JAVA_ADD_INSTALLISR_GPIO(UPM_Classname)
%extend UPM_Classname {
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->GETTER;
swg_gpioIntr->dir(mraa::DIR_IN);
swg_gpioIntr->isr(level, runnable);
}
}
%enddef
/* Define INTERRUPT in the appropiate .i file with the interrupt type
*/
%define JAVA_ADD_INSTALLISR_INTERRUPT(UPM_Classname)
%extend UPM_Classname {
void installISR(INTERRUPT intr, int gpio,
mraa::Edge level, jobject runnable)
{
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
}
}
%enddef
%define JAVA_ADD_INSTALLISR_EDGE(UPM_Classname)
%extend UPM_Classname {
void installISR(mraa::Edge level, jobject runnable)
{
$self->installISR(level, mraa_java_isr_callback, runnable);
}
}
%enddef
%define JAVA_ADD_INSTALLISR_PIN(UPM_Classname)
%extend UPM_Classname {
void installISR(int pin, jobject runnable)
{
$self->installISR(pin, mraa_java_isr_callback, runnable);
}
}
%enddef
/* Macro for adding JNI loadLibrary dependency /* Macro for adding JNI loadLibrary dependency
usage: JAVA_JNI_LOADLIBRARY(javaupm_rhusb) usage: JAVA_JNI_LOADLIBRARY(javaupm_rhusb)
*/ */

View File

@ -30,21 +30,9 @@
%include "bma220.hpp" %include "bma220.hpp"
%extend upm::BMA220 { %define GETTER get_gpioIntr();
void installISR(int gpio, mraa::Edge level, jobject runnable) %enddef
{ JAVA_ADD_INSTALLISR_GPIO(upm::BMA220)
// 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 *); %ignore installISR(int, mraa::Edge, void *, void *);

View File

@ -30,14 +30,9 @@ import java.lang.Float;
%ignore installISR (BMA250E_INTERRUPT_PINS_T, int, mraa::Edge , void *, void *); %ignore installISR (BMA250E_INTERRUPT_PINS_T, int, mraa::Edge , void *, void *);
%extend upm::BMA250E { %define INTERRUPT BMA250E_INTERRUPT_PINS_T
void installISR(BMA250E_INTERRUPT_PINS_T intr, int gpio, %enddef
mraa::Edge level, jobject runnable) JAVA_ADD_INSTALLISR_INTERRUPT(upm::BMA250E)
{
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
}
}
JAVA_JNI_LOADLIBRARY(javaupm_bma250e) JAVA_JNI_LOADLIBRARY(javaupm_bma250e)

View File

@ -30,12 +30,8 @@ import java.lang.Float;
%ignore installISR (BMG160_INTERRUPT_PINS_T , int mraa::Edge , void *, void *); %ignore installISR (BMG160_INTERRUPT_PINS_T , int mraa::Edge , void *, void *);
%extend upm::BMG160 { %define INTERRUPT BMG160_INTERRUPT_PINS_T
void installISR(BMG160_INTERRUPT_PINS_T intr, int gpio, %enddef
mraa::Edge level, jobject runnable) JAVA_ADD_INSTALLISR_INTERRUPT(upm::BMG160)
{
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
}
}
JAVA_JNI_LOADLIBRARY(javaupm_bmg160) JAVA_JNI_LOADLIBRARY(javaupm_bmg160)

View File

@ -29,13 +29,8 @@ import java.lang.Float;
%ignore installISR (BMM150_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *); %ignore installISR (BMM150_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *);
%extend upm::BMM150 { %define INTERRUPT BMM150_INTERRUPT_PINS_T
void installISR(BMM150_INTERRUPT_PINS_T intr, int gpio, %enddef
mraa::Edge level, JAVA_ADD_INSTALLISR_INTERRUPT(upm::BMM150)
jobject runnable)
{
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
}
}
JAVA_JNI_LOADLIBRARY(javaupm_bmm150) JAVA_JNI_LOADLIBRARY(javaupm_bmm150)

View File

@ -11,11 +11,6 @@
#%ignore #%ignore
%extend upm::Button { JAVA_ADD_INSTALLISR_EDGE(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

@ -49,12 +49,8 @@
#include "grovetemp.hpp" #include "grovetemp.hpp"
%} %}
%extend upm::GroveButton { JAVA_ADD_INSTALLISR_EDGE(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

@ -9,5 +9,5 @@
%include javaupm_iPressureSensor.i %include javaupm_iPressureSensor.i
%include javaupm_iTemperatureSensor.i %include javaupm_iTemperatureSensor.i
%include _upm.i
JAVA_JNI_LOADLIBRARY(javaupm_interfaces) JAVA_JNI_LOADLIBRARY(javaupm_interfaces)

View File

@ -15,13 +15,8 @@
#%ignore installISR(LIS2DS12_INTERRUPT_PINS_T , int , mraa::Edge, void *, void *); #%ignore installISR(LIS2DS12_INTERRUPT_PINS_T , int , mraa::Edge, void *, void *);
%extend upm::LIS2DS12 { %define INTERRUPT LIS2DS12_INTERRUPT_PINS_T
void installISR(LIS2DS12_INTERRUPT_PINS_T intr, int gpio, %enddef
mraa::Edge level, jobject runnable) JAVA_ADD_INSTALLISR_INTERRUPT(upm::LIS2DS12)
{
$self->installISR(intr, gpio, level, mraa_java_isr_callback,
runnable);
}
}
JAVA_JNI_LOADLIBRARY(javaupm_lis2ds12) JAVA_JNI_LOADLIBRARY(javaupm_lis2ds12)

View File

@ -5,10 +5,18 @@
%ignore getAccelerometer(float *, float *, float *); %ignore getAccelerometer(float *, float *, float *);
%include "lis3dh_defs.h"
%include "lis3dh.hpp"
%{ %{
#include "lis3dh.hpp" #include "lis3dh.hpp"
#include "lis3dh_defs.h"
%} %}
%include "lis3dh_defs.h"
%include "lis3dh.hpp"
%ignore installISR(LIS3DH_INTERRUPT_PINS_T , int , mraa::Edge , void *, void* );
%define INTERRUPT LIS3DH_INTERRUPT_PINS_T
%enddef
JAVA_ADD_INSTALLISR_INTERRUPT(upm::LIS3DH)
JAVA_JNI_LOADLIBRARY(javaupm_lis3dh) JAVA_JNI_LOADLIBRARY(javaupm_lis3dh)

View File

@ -329,13 +329,6 @@ class LIS3DH
*/ */
uint8_t getStatusAux(); uint8_t getStatusAux();
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
void
installISR(LIS3DH_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
* *
@ -354,7 +347,6 @@ class LIS3DH
mraa::Edge level, mraa::Edge level,
void (*isr)(void*), void (*isr)(void*),
void* arg); void* arg);
#endif
/** /**
* Uninstall a previously installed interrupt handler * Uninstall a previously installed interrupt handler
@ -372,13 +364,5 @@ class LIS3DH
LIS3DH(const LIS3DH&) = delete; LIS3DH(const LIS3DH&) = delete;
LIS3DH& operator=(const LIS3DH&) = delete; LIS3DH& operator=(const LIS3DH&) = delete;
// Adding a private function definition for Java bindings
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
void installISR(LIS3DH_INTERRUPT_PINS_T intr,
int gpio,
mraa::Edge level,
void (*isr)(void*),
void* arg);
#endif
}; };
} }

View File

@ -31,13 +31,8 @@ import java.lang.Float;
%ignore installISR(LSM303AGR_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *); %ignore installISR(LSM303AGR_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *);
%extend upm::LSM303AGR { %define INTERRUPT LSM303AGR_INTERRUPT_PINS_T
void installISR(LSM303AGR_INTERRUPT_PINS_T intr, int gpio, %enddef
mraa::Edge level, JAVA_ADD_INSTALLISR_INTERRUPT(upm::LSM303AGR)
jobject runnable)
{
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
}
}
JAVA_JNI_LOADLIBRARY(javaupm_lsm303agr) JAVA_JNI_LOADLIBRARY(javaupm_lsm303agr)

View File

@ -15,13 +15,8 @@
%ignore installISR(LSM6DS3H_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *); %ignore installISR(LSM6DS3H_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *);
%extend upm::LSM6DS3H { %define INTERRUPT LSM6DS3H_INTERRUPT_PINS_T
void installISR(LSM6DS3H_INTERRUPT_PINS_T intr, int gpio, %enddef
mraa::Edge level, jobject runnable) JAVA_ADD_INSTALLISR_INTERRUPT(upm::LSM6DS3H)
{
$self->installISR(intr, gpio, level, mraa_java_isr_callback,
runnable);
}
}
JAVA_JNI_LOADLIBRARY(javaupm_lsm6ds3h) JAVA_JNI_LOADLIBRARY(javaupm_lsm6ds3h)

View File

@ -16,13 +16,7 @@
%ignore installISR(LSM6DSL_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *); %ignore installISR(LSM6DSL_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *);
%extend upm::LSM6DSL { %define INTERRUPT LSM6DSL_INTERRUPT_PINS_T
void installISR(LSM6DSL_INTERRUPT_PINS_T intr, int gpio, %enddef
mraa::Edge level, jobject runnable) JAVA_ADD_INSTALLISR_INTERRUPT(upm::LSM6DSL)
{
$self->installISR(intr, gpio, level, mraa_java_isr_callback,
runnable);
}
}
JAVA_JNI_LOADLIBRARY(javaupm_lsm6dsl) JAVA_JNI_LOADLIBRARY(javaupm_lsm6dsl)

View File

@ -14,12 +14,5 @@
%ignore installISR(int pin, void *, void *); %ignore installISR(int pin, void *, void *);
JAVA_ADD_INSTALLISR_PIN(upm::MCP2515)
%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

@ -35,13 +35,18 @@
JCALL4(SetIntArrayRegion, jenv, $result, 0, 3, (const signed int*)$1); JCALL4(SetIntArrayRegion, jenv, $result, 0, 3, (const signed int*)$1);
} }
%ignore getRawValues(int *, int *, int *); %ignore getRawValues(int *, int *, int *);
%ignore getAcceleration(float *, float *, float *); %ignore getAcceleration(float *, float *, float *);
%include "mma7660_regs.h"
%include "mma7660.hpp"
%{ %{
#include "mma7660.hpp" #include "mma7660.hpp"
#include "mma7660_regs.h"
%} %}
%include "mma7660_regs.h"
%include "mma7660.hpp"
%ignore installISR(int , void *, void *);
JAVA_ADD_INSTALLISR_PIN(upm::MMA7660)
JAVA_JNI_LOADLIBRARY(javaupm_mma7660) JAVA_JNI_LOADLIBRARY(javaupm_mma7660)

View File

@ -225,12 +225,7 @@ namespace upm {
getRawValues(&values[0], &values[1], &values[2]); getRawValues(&values[0], &values[1], &values[2]);
return values; return values;
} }
#endif
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
@ -241,7 +236,6 @@ 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 // defined(SWIGJAVA) || defined(JAVACALLBACK)
protected: protected:
mma7660_context m_mma7660; mma7660_context m_mma7660;
@ -251,9 +245,5 @@ namespace upm {
MMA7660(const MMA7660&) = delete; MMA7660(const MMA7660&) = delete;
MMA7660 &operator=(const MMA7660&) = delete; MMA7660 &operator=(const MMA7660&) = delete;
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
void installISR(int pin, void (*isr)(void *), void *arg);
#endif
}; };
} }

View File

@ -35,19 +35,8 @@
%ignore installISR(int , mraa::Edge , void *, void *); %ignore installISR(int , mraa::Edge , void *, void *);
%extend upm::MPU60X0 { %define GETTER get_gpioIRQ()
void installISR(int gpio, mraa::Edge level, %enddef
jobject runnable) JAVA_ADD_INSTALLISR_GPIO(upm::MPU60X0)
{
// 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

@ -13,11 +13,6 @@
#%ignore installISR(mraa::Edge , void *, void *) #%ignore installISR(mraa::Edge , void *, void *)
%extend upm::TTP223 { JAVA_ADD_INSTALLISR_EDGE(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

@ -1,3 +1,12 @@
%module javaupm_utilities %module javaupm_utilities
JAVA_JNI_LOADLIBRARY(javaupm_utilities) %pragma(java) jniclasscode=%{
static {
try {
System.loadLibrary("javaupm_utilities");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load. \n" + e);
System.exit(1);
}
}
%}