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 <mihai.tudor.panu@intel.com>
This commit is contained in:
Mihai Tudor Panu 2016-02-01 15:10:04 -08:00
parent 3504dc7246
commit 1d085362d9
3 changed files with 28 additions and 38 deletions

View File

@ -1,14 +1,20 @@
%module javaupm_kxcjk1013 %module javaupm_kxcjk1013
%include "../upm.i" %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"
%} %}
%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);
}
}
%}

View File

@ -61,14 +61,6 @@ KXCJK1013::~KXCJK1013()
// mraa_iio_stop(m_iio); // mraa_iio_stop(m_iio);
} }
#ifdef JAVACALLBACK
void
KXCJK1013::installISR(IsrCallback* cb)
{
installISR(generic_callback_isr, cb);
}
#endif
void void
KXCJK1013::installISR(void (*isr)(char*), void* arg) KXCJK1013::installISR(void (*isr)(char*), void* arg)
{ {
@ -132,9 +124,9 @@ KXCJK1013::getChannelValue(unsigned char* input, mraa_iio_channel* chan)
bool bool
KXCJK1013::enableBuffer(int length) 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 // 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; return true;
} }
@ -142,7 +134,7 @@ KXCJK1013::enableBuffer(int length)
bool bool
KXCJK1013::disableBuffer() KXCJK1013::disableBuffer()
{ {
mraa_iio_write_integer(m_iio, "buffer/enable", 0); mraa_iio_write_int(m_iio, "buffer/enable", 0);
return true; return true;
} }
@ -170,9 +162,9 @@ KXCJK1013::enable3AxisChannel()
sprintf(trigger, "kxcjk1013-hr-dev%d", m_iio_device_num); sprintf(trigger, "kxcjk1013-hr-dev%d", m_iio_device_num);
mraa_iio_write_string(m_iio, "trigger/current_trigger", trigger); 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_int(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_int(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_z_en", 1);
// need update channel data size after enable // need update channel data size after enable
mraa_iio_update_channels(m_iio); mraa_iio_update_channels(m_iio);

View File

@ -26,10 +26,6 @@
#include <string> #include <string>
#include <mraa/iio.h> #include <mraa/iio.h>
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
#include "../IsrCallback.h"
#endif
namespace upm namespace upm
{ {
/** /**
@ -67,20 +63,16 @@ class KXCJK1013
* KXCJK1013 destructor * KXCJK1013 destructor
*/ */
~KXCJK1013(); ~KXCJK1013();
/** /**
* 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
* *
* @param interrupt channel * @param interrupt channel
* @param fptr Pointer to a function to be called on interrupt * @param fptr Pointer to a function to be called on interrupt
* @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(IsrCallback* cb);
#else
void installISR(void (*isr)(char*), void* arg); void installISR(void (*isr)(char*), void* arg);
#endif
/** /**
* Extract the channel value based on channel type * Extract the channel value based on channel type
* @param input Channel data * @param input Channel data