From 1d085362d9a46b827b701c11ba58452df200cfaf Mon Sep 17 00:00:00 2001 From: Mihai Tudor Panu Date: Mon, 1 Feb 2016 15:10:04 -0800 Subject: [PATCH] kxcjk1013: updated iio calls to match API and disabled Java ISR ISR support for Java bindings needs iio.c Runnable implementation in MRAA. Might be possible to leverage working implementation for GPIO. Signed-off-by: Mihai Tudor Panu --- src/kxcjk1013/javaupm_kxcjk1013.i | 20 +++++++++++++------- src/kxcjk1013/kxcjk1013.cxx | 20 ++++++-------------- src/kxcjk1013/kxcjk1013.h | 26 +++++++++----------------- 3 files changed, 28 insertions(+), 38 deletions(-) diff --git a/src/kxcjk1013/javaupm_kxcjk1013.i b/src/kxcjk1013/javaupm_kxcjk1013.i index 48dea5af..1c5e88f0 100755 --- a/src/kxcjk1013/javaupm_kxcjk1013.i +++ b/src/kxcjk1013/javaupm_kxcjk1013.i @@ -1,14 +1,20 @@ %module javaupm_kxcjk1013 %include "../upm.i" -%include "stdint.i" -%include "typemaps.i" - -%feature("director") IsrCallback; - -%ignore generic_callback_isr; -%include "../IsrCallback.h" %{ #include "kxcjk1013.h" %} %include "kxcjk1013.h" + +%ignore installISR(void (*isr)(char*), void* arg); + +%pragma(java) jniclasscode=%{ + static { + try { + System.loadLibrary("javaupm_kxcjk1013"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. \n" + e); + System.exit(1); + } + } +%} diff --git a/src/kxcjk1013/kxcjk1013.cxx b/src/kxcjk1013/kxcjk1013.cxx index 19ce1366..0eafbb7b 100644 --- a/src/kxcjk1013/kxcjk1013.cxx +++ b/src/kxcjk1013/kxcjk1013.cxx @@ -61,14 +61,6 @@ KXCJK1013::~KXCJK1013() // mraa_iio_stop(m_iio); } -#ifdef JAVACALLBACK -void -KXCJK1013::installISR(IsrCallback* cb) -{ - installISR(generic_callback_isr, cb); -} -#endif - void KXCJK1013::installISR(void (*isr)(char*), void* arg) { @@ -132,9 +124,9 @@ KXCJK1013::getChannelValue(unsigned char* input, mraa_iio_channel* chan) bool KXCJK1013::enableBuffer(int length) { - mraa_iio_write_integer(m_iio, "buffer/length", length); + mraa_iio_write_int(m_iio, "buffer/length", length); // enable must be last step, else will have error in writing above config - mraa_iio_write_integer(m_iio, "buffer/enable", 1); + mraa_iio_write_int(m_iio, "buffer/enable", 1); return true; } @@ -142,7 +134,7 @@ KXCJK1013::enableBuffer(int length) bool KXCJK1013::disableBuffer() { - mraa_iio_write_integer(m_iio, "buffer/enable", 0); + mraa_iio_write_int(m_iio, "buffer/enable", 0); return true; } @@ -170,9 +162,9 @@ KXCJK1013::enable3AxisChannel() sprintf(trigger, "kxcjk1013-hr-dev%d", m_iio_device_num); mraa_iio_write_string(m_iio, "trigger/current_trigger", trigger); - mraa_iio_write_integer(m_iio, "scan_elements/in_accel_x_en", 1); - mraa_iio_write_integer(m_iio, "scan_elements/in_accel_y_en", 1); - mraa_iio_write_integer(m_iio, "scan_elements/in_accel_z_en", 1); + mraa_iio_write_int(m_iio, "scan_elements/in_accel_x_en", 1); + mraa_iio_write_int(m_iio, "scan_elements/in_accel_y_en", 1); + mraa_iio_write_int(m_iio, "scan_elements/in_accel_z_en", 1); // need update channel data size after enable mraa_iio_update_channels(m_iio); diff --git a/src/kxcjk1013/kxcjk1013.h b/src/kxcjk1013/kxcjk1013.h index 63205870..0a2f2ab0 100644 --- a/src/kxcjk1013/kxcjk1013.h +++ b/src/kxcjk1013/kxcjk1013.h @@ -26,10 +26,6 @@ #include #include -#if defined(SWIGJAVA) || defined(JAVACALLBACK) -#include "../IsrCallback.h" -#endif - namespace upm { /** @@ -67,20 +63,16 @@ class KXCJK1013 * KXCJK1013 destructor */ ~KXCJK1013(); -/** - * Installs an interrupt service routine (ISR) to be called when - * an interrupt occurs - * - * @param interrupt channel - * @param fptr Pointer to a function to be called on interrupt - * @param arg Pointer to an object to be supplied as an - * argument to the ISR. - */ -#if defined(SWIGJAVA) || defined(JAVACALLBACK) - void installISR(IsrCallback* cb); -#else + /** + * Installs an interrupt service routine (ISR) to be called when + * an interrupt occurs + * + * @param interrupt channel + * @param fptr Pointer to a function to be called on interrupt + * @param arg Pointer to an object to be supplied as an + * argument to the ISR. + */ void installISR(void (*isr)(char*), void* arg); -#endif /** * Extract the channel value based on channel type * @param input Channel data