mirror of
https://github.com/eclipse/upm.git
synced 2025-03-24 01:10:22 +03:00
java: added callback functionality
Signed-off-by: Stefan Andritoiu <stefan.andritoiu@intel.com> Signed-off-by: Andrei Vasiliu <andrei.vasiliu@intel.com> Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
parent
3e59323abb
commit
323905a215
23
src/IsrCallback.h
Normal file
23
src/IsrCallback.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
class IsrCallback
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~IsrCallback()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
virtual void run()
|
||||||
|
{ /* empty, overloaded in Java*/
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static void generic_callback_isr (void* data)
|
||||||
|
{
|
||||||
|
IsrCallback* callback = (IsrCallback*) data;
|
||||||
|
callback->run();
|
||||||
|
}
|
||||||
|
#endif
|
@ -26,7 +26,14 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
#undef SWIGJAVA
|
||||||
#include <mraa/gpio.hpp>
|
#include <mraa/gpio.hpp>
|
||||||
|
#define SWIGJAVA
|
||||||
|
#else
|
||||||
|
#include <mraa/gpio.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <mraa/aio.hpp>
|
#include <mraa/aio.hpp>
|
||||||
|
|
||||||
#define AD8232_DEFAULT_AREF 3.3
|
#define AD8232_DEFAULT_AREF 3.3
|
||||||
|
@ -25,7 +25,15 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <mraa/spi.hpp>
|
#include <mraa/spi.hpp>
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
#undef SWIGJAVA
|
||||||
#include <mraa/gpio.hpp>
|
#include <mraa/gpio.hpp>
|
||||||
|
#define SWIGJAVA
|
||||||
|
#else
|
||||||
|
#include <mraa/gpio.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "lcd.h"
|
#include "lcd.h"
|
||||||
#include "ssd.h"
|
#include "ssd.h"
|
||||||
|
|
||||||
|
@ -7,24 +7,15 @@
|
|||||||
%apply unsigned char[] {uint8_t *};
|
%apply unsigned char[] {uint8_t *};
|
||||||
%apply uint8_t *OUTPUT { uint8_t *data };
|
%apply uint8_t *OUTPUT { uint8_t *data };
|
||||||
|
|
||||||
%include "ssd.h"
|
|
||||||
%{
|
|
||||||
#include "ssd.h"
|
|
||||||
%}
|
|
||||||
|
|
||||||
%include "lcd.h"
|
%include "lcd.h"
|
||||||
%{
|
%{
|
||||||
#include "lcd.h"
|
#include "lcd.h"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%include "jhd1313m1.h"
|
%include "ssd.h"
|
||||||
%{
|
%{
|
||||||
#include "jhd1313m1.h"
|
#include "ssd.h"
|
||||||
%}
|
|
||||||
|
|
||||||
%include "lcm1602.h"
|
|
||||||
%{
|
|
||||||
#include "lcm1602.h"
|
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%include "ssd1327.h"
|
%include "ssd1327.h"
|
||||||
@ -37,13 +28,24 @@
|
|||||||
#include "ssd1308.h"
|
#include "ssd1308.h"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%include "sainsmartks.h"
|
|
||||||
%{
|
|
||||||
#include "sainsmartks.h"
|
|
||||||
%}
|
|
||||||
|
|
||||||
%include "eboled.h"
|
%include "eboled.h"
|
||||||
%{
|
%{
|
||||||
#include "eboled.h"
|
#include "eboled.h"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
%include "lcm1602.h"
|
||||||
|
%{
|
||||||
|
#include "lcm1602.h"
|
||||||
|
%}
|
||||||
|
|
||||||
|
%include "jhd1313m1.h"
|
||||||
|
%{
|
||||||
|
#include "jhd1313m1.h"
|
||||||
|
%}
|
||||||
|
|
||||||
|
%include "sainsmartks.h"
|
||||||
|
%{
|
||||||
|
#include "sainsmartks.h"
|
||||||
|
%}
|
||||||
|
|
||||||
|
|
||||||
|
@ -34,7 +34,16 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <mraa/i2c.hpp>
|
#include <mraa/i2c.hpp>
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
#undef SWIGJAVA
|
||||||
#include <mraa/gpio.hpp>
|
#include <mraa/gpio.hpp>
|
||||||
|
#define SWIGJAVA
|
||||||
|
#else
|
||||||
|
#include <mraa/gpio.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#include "lcd.h"
|
#include "lcd.h"
|
||||||
|
|
||||||
namespace upm
|
namespace upm
|
||||||
|
@ -4,10 +4,15 @@
|
|||||||
%include "typemaps.i"
|
%include "typemaps.i"
|
||||||
%include "arrays_java.i";
|
%include "arrays_java.i";
|
||||||
|
|
||||||
|
%feature("director") IsrCallback;
|
||||||
|
|
||||||
|
%ignore generic_callback_isr;
|
||||||
|
%include "../IsrCallback.h"
|
||||||
|
|
||||||
|
%apply int {mraa::Edge};
|
||||||
%apply float *INOUT { float *x, float *y, float *z };
|
%apply float *INOUT { float *x, float *y, float *z };
|
||||||
%apply unsigned char[] {uint8_t *buf};
|
%apply unsigned char[] {uint8_t *buf};
|
||||||
|
|
||||||
%include "lsm9ds0.h"
|
|
||||||
%{
|
%{
|
||||||
#include "lsm9ds0.h"
|
#include "lsm9ds0.h"
|
||||||
%}
|
%}
|
||||||
|
@ -699,6 +699,15 @@ uint8_t LSM9DS0::getInterruptGen2Src()
|
|||||||
return readReg(DEV_XM, REG_INT_GEN_2_SRC);
|
return readReg(DEV_XM, REG_INT_GEN_2_SRC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
|
||||||
|
IsrCallback *cb)
|
||||||
|
{
|
||||||
|
installISR(intr, gpio, level, generic_callback_isr, cb);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
|
@ -25,7 +25,19 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <mraa/i2c.hpp>
|
#include <mraa/i2c.hpp>
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
#undef SWIGJAVA
|
||||||
#include <mraa/gpio.hpp>
|
#include <mraa/gpio.hpp>
|
||||||
|
#define SWIGJAVA
|
||||||
|
#else
|
||||||
|
#include <mraa/gpio.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
#include "../IsrCallback.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define LSM9DS0_I2C_BUS 1
|
#define LSM9DS0_I2C_BUS 1
|
||||||
#define LSM9DS0_DEFAULT_XM_ADDR 0x1d
|
#define LSM9DS0_DEFAULT_XM_ADDR 0x1d
|
||||||
@ -1382,6 +1394,10 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
uint8_t getInterruptGen2Src();
|
uint8_t getInterruptGen2Src();
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
|
||||||
|
IsrCallback *cb);
|
||||||
|
#else
|
||||||
/**
|
/**
|
||||||
* install an interrupt handler.
|
* install an interrupt handler.
|
||||||
*
|
*
|
||||||
@ -1396,7 +1412,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
|
||||||
*
|
*
|
||||||
@ -1431,6 +1447,11 @@ namespace upm {
|
|||||||
private:
|
private:
|
||||||
// OR'd with a register, this enables register autoincrement mode,
|
// OR'd with a register, this enables register autoincrement mode,
|
||||||
// which we need.
|
// which we need.
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level,
|
||||||
|
void (*isr)(void *), void *arg);
|
||||||
|
#endif
|
||||||
|
|
||||||
static const uint8_t m_autoIncrementMode = 0x80;
|
static const uint8_t m_autoIncrementMode = 0x80;
|
||||||
|
|
||||||
mraa::I2c m_i2cG;
|
mraa::I2c m_i2cG;
|
||||||
|
@ -25,7 +25,14 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <mraa/i2c.hpp>
|
#include <mraa/i2c.hpp>
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
#undef SWIGJAVA
|
||||||
#include <mraa/gpio.hpp>
|
#include <mraa/gpio.hpp>
|
||||||
|
#define SWIGJAVA
|
||||||
|
#else
|
||||||
|
#include <mraa/gpio.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
#define MPU60X0_I2C_BUS 0
|
#define MPU60X0_I2C_BUS 0
|
||||||
#define MPU60X0_DEFAULT_I2C_ADDR 0x68
|
#define MPU60X0_DEFAULT_I2C_ADDR 0x68
|
||||||
|
@ -32,7 +32,15 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <mraa/i2c.hpp>
|
#include <mraa/i2c.hpp>
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
#undef SWIGJAVA
|
||||||
#include <mraa/gpio.hpp>
|
#include <mraa/gpio.hpp>
|
||||||
|
#define SWIGJAVA
|
||||||
|
#else
|
||||||
|
#include <mraa/gpio.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define PN532_I2C_BUS 0
|
#define PN532_I2C_BUS 0
|
||||||
#define PN532_DEFAULT_I2C_ADDR (0x48 >> 1)
|
#define PN532_DEFAULT_I2C_ADDR (0x48 >> 1)
|
||||||
|
@ -27,7 +27,15 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
#undef SWIGJAVA
|
||||||
#include <mraa/gpio.hpp>
|
#include <mraa/gpio.hpp>
|
||||||
|
#define SWIGJAVA
|
||||||
|
#else
|
||||||
|
#include <mraa/gpio.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <mraa/pwm.hpp>
|
#include <mraa/pwm.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
%module javaupm_rpr220
|
%module javaupm_rpr220
|
||||||
%include "../upm.i"
|
%include "../upm.i"
|
||||||
|
|
||||||
|
|
||||||
|
%feature("director") IsrCallback;
|
||||||
|
|
||||||
|
%ignore generic_callback_isr;
|
||||||
|
%include "../IsrCallback.h"
|
||||||
|
|
||||||
%{
|
%{
|
||||||
#include "rpr220.h"
|
#include "rpr220.h"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%include "rpr220.h"
|
%include "rpr220.h"
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
#include "rpr220.h"
|
#include "rpr220.h"
|
||||||
|
|
||||||
|
|
||||||
using namespace upm;
|
using namespace upm;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -55,6 +56,13 @@ bool RPR220::blackDetected()
|
|||||||
return (mraa_gpio_read(m_gpio) ? true : false);
|
return (mraa_gpio_read(m_gpio) ? true : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
void RPR220::installISR(IsrCallback *cb)
|
||||||
|
{
|
||||||
|
installISR(generic_callback_isr, cb);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void RPR220::installISR(void (*isr)(void *), void *arg)
|
void RPR220::installISR(void (*isr)(void *), void *arg)
|
||||||
{
|
{
|
||||||
if (m_isrInstalled)
|
if (m_isrInstalled)
|
||||||
|
@ -26,6 +26,10 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <mraa/gpio.h>
|
#include <mraa/gpio.h>
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
#include "../IsrCallback.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace upm {
|
namespace upm {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -83,6 +87,9 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
bool blackDetected();
|
bool blackDetected();
|
||||||
|
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
void installISR(IsrCallback *cb);
|
||||||
|
#else
|
||||||
/**
|
/**
|
||||||
* Installs an ISR to be called when
|
* Installs an ISR to be called when
|
||||||
* black is detected
|
* black is detected
|
||||||
@ -92,6 +99,7 @@ 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
|
||||||
@ -100,6 +108,9 @@ namespace upm {
|
|||||||
void uninstallISR();
|
void uninstallISR();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
#ifdef SWIGJAVA
|
||||||
|
void installISR(void (*isr)(void *), void *arg);
|
||||||
|
#endif
|
||||||
bool m_isrInstalled;
|
bool m_isrInstalled;
|
||||||
mraa_gpio_context m_gpio;
|
mraa_gpio_context m_gpio;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user