mirror of
https://github.com/eclipse/upm.git
synced 2025-03-15 04:57:30 +03:00
SWIG: Added documentation to _upm.i
Includes documentation on the macros provided as well as a top-level description of the file. Signed-off-by: Noel Eck <noel.eck@intel.com>
This commit is contained in:
parent
d06e632f3b
commit
d49ab2ac95
113
src/_upm.i
113
src/_upm.i
@ -1,77 +1,110 @@
|
|||||||
/* Macro for adding JAVA run
|
/*
|
||||||
usage: JAVA_ADD_INSTALLISR(javaupm_a110x)
|
* This file provides additional non-wrapper code functionality for use
|
||||||
|
* throughout the UPM repository. This file is intended to be %imported
|
||||||
|
* from the top-level upm.i (not directly by UPM libraries).
|
||||||
|
*
|
||||||
|
* No wrapper code will be generated from importing this .i file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Macro for adding JAVA installISR w/runnable.
|
||||||
|
UPM_Classname - UPM class name w/namespace.
|
||||||
|
|
||||||
|
example usage: JAVA_ADD_INSTALLISR(upm::A110x)
|
||||||
*/
|
*/
|
||||||
%define JAVA_ADD_INSTALLISR(UPM_Classname)
|
%define JAVA_ADD_INSTALLISR(UPM_Classname)
|
||||||
%extend UPM_Classname {
|
%extend UPM_Classname {
|
||||||
void installISR(jobject runnable)
|
void installISR(jobject runnable)
|
||||||
{
|
{
|
||||||
$self->installISR(mraa_java_isr_callback, runnable);
|
$self->installISR(mraa_java_isr_callback, runnable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
/* Define GETTER in the appropiate .i file with the getter function name
|
/* Macro for adding JAVA installISR w/runnable for a GPIO
|
||||||
|
UPM_Classname - UPM class name w/namespace.
|
||||||
|
|
||||||
|
example usage: JAVA_ADD_INSTALLISR_GPIO(upm::A110x)
|
||||||
|
|
||||||
|
Requires: Define GETTER in the appropiate .i file with the getter
|
||||||
|
function name.
|
||||||
*/
|
*/
|
||||||
%define JAVA_ADD_INSTALLISR_GPIO(UPM_Classname)
|
%define JAVA_ADD_INSTALLISR_GPIO(UPM_Classname)
|
||||||
%extend UPM_Classname {
|
%extend UPM_Classname {
|
||||||
void installISR(int gpio, mraa::Edge level, jobject runnable)
|
void installISR(int gpio, mraa::Edge level, jobject runnable)
|
||||||
{
|
{
|
||||||
// delete any existing ISR and GPIO context
|
/* delete any existing ISR and GPIO context */
|
||||||
$self->uninstallISR();
|
$self->uninstallISR();
|
||||||
|
|
||||||
// create gpio context
|
/* create gpio context */
|
||||||
mraa::Gpio* swg_gpioIntr = $self->GETTER;
|
mraa::Gpio* swg_gpioIntr = $self->GETTER;
|
||||||
|
|
||||||
swg_gpioIntr->dir(mraa::DIR_IN);
|
swg_gpioIntr->dir(mraa::DIR_IN);
|
||||||
swg_gpioIntr->isr(level, runnable);
|
swg_gpioIntr->isr(level, runnable);
|
||||||
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
/* Define INTERRUPT in the appropiate .i file with the interrupt type
|
/* Macro for adding JAVA installISR for GPIO interrupt w/runnable.
|
||||||
|
UPM_Classname - UPM class name w/namespace.
|
||||||
|
|
||||||
|
example usage: JAVA_ADD_INSTALLISR_INTERRUPT(upm::A110x)
|
||||||
|
|
||||||
|
Requires: Define INTERRUPT in the appropiate .i file with the
|
||||||
|
interrupt type.
|
||||||
*/
|
*/
|
||||||
%define JAVA_ADD_INSTALLISR_INTERRUPT(UPM_Classname)
|
%define JAVA_ADD_INSTALLISR_INTERRUPT(UPM_Classname)
|
||||||
%extend UPM_Classname {
|
%extend UPM_Classname {
|
||||||
void installISR(INTERRUPT intr, int gpio,
|
void installISR(INTERRUPT intr, int gpio,
|
||||||
mraa::Edge level, jobject runnable)
|
mraa::Edge level, jobject runnable)
|
||||||
{
|
{
|
||||||
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
|
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
|
/* Macro for adding JAVA installISR for mraa::Edge w/runnable.
|
||||||
|
UPM_Classname - UPM class name w/namespace.
|
||||||
|
|
||||||
|
example usage: JAVA_ADD_INSTALLISR_EDGE(upm::A110x)
|
||||||
|
*/
|
||||||
%define JAVA_ADD_INSTALLISR_EDGE(UPM_Classname)
|
%define JAVA_ADD_INSTALLISR_EDGE(UPM_Classname)
|
||||||
%extend UPM_Classname {
|
%extend UPM_Classname {
|
||||||
void installISR(mraa::Edge level, jobject runnable)
|
void installISR(mraa::Edge level, jobject runnable)
|
||||||
{
|
{
|
||||||
$self->installISR(level, mraa_java_isr_callback, runnable);
|
$self->installISR(level, mraa_java_isr_callback, runnable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
|
/* Macro for adding JAVA installISR for pin w/runnable.
|
||||||
|
UPM_Classname - UPM class name w/namespace.
|
||||||
|
|
||||||
|
example usage: JAVA_ADD_INSTALLISR_PIN(upm::A110x)
|
||||||
|
*/
|
||||||
%define JAVA_ADD_INSTALLISR_PIN(UPM_Classname)
|
%define JAVA_ADD_INSTALLISR_PIN(UPM_Classname)
|
||||||
%extend UPM_Classname {
|
%extend UPM_Classname {
|
||||||
void installISR(int pin, jobject runnable)
|
void installISR(int pin, jobject runnable)
|
||||||
{
|
{
|
||||||
$self->installISR(pin, mraa_java_isr_callback, runnable);
|
$self->installISR(pin, mraa_java_isr_callback, runnable);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
/* Macro for adding JNI loadLibrary dependency
|
/* Macro for adding JNI loadLibrary dependency.
|
||||||
usage: JAVA_JNI_LOADLIBRARY(javaupm_rhusb)
|
MyModuleName: Target UPM JAVA package.
|
||||||
|
|
||||||
|
example usage: JAVA_JNI_LOADLIBRARY(javaupm_rhusb)
|
||||||
*/
|
*/
|
||||||
%define JAVA_JNI_LOADLIBRARY(MyModuleName)
|
%define JAVA_JNI_LOADLIBRARY(MyModuleName)
|
||||||
%pragma(java) jniclasscode=%{
|
%pragma(java) jniclasscode=%{
|
||||||
static {
|
static {
|
||||||
try {
|
try {
|
||||||
System.loadLibrary("MyModuleName");
|
System.loadLibrary("MyModuleName");
|
||||||
} catch (UnsatisfiedLinkError e) {
|
} catch (UnsatisfiedLinkError e) {
|
||||||
System.err.println("Native code library (MyModuleName) failed to load. \n" + e);
|
System.err.println("Native code library (MyModuleName) failed to load. \n" + e);
|
||||||
System.exit(1);
|
System.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%}
|
%}
|
||||||
%enddef
|
%enddef
|
||||||
|
Loading…
x
Reference in New Issue
Block a user