java: fix Java return types in ADXL355

Signed-off-by: Petre <petre.p.eftime@intel.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
Petre 2015-08-26 18:27:48 +03:00 committed by Mihai Tudor Panu
parent 2455938691
commit 4f30959a43
4 changed files with 67 additions and 0 deletions

View File

@ -72,6 +72,15 @@ void ADXL335::values(int *xVal, int *yVal, int *zVal)
*zVal = mraa_aio_read(m_aioZ);
}
#ifdef SWIGJAVA
int *ADXL335::values()
{
int *v = new int[3];
values(&v[0], &v[1], &v[2]);
return v;
}
#endif
void ADXL335::acceleration(float *xAccel, float *yAccel, float *zAccel)
{
int x, y, z;
@ -87,6 +96,15 @@ void ADXL335::acceleration(float *xAccel, float *yAccel, float *zAccel)
*zAccel = (zVolts - m_zeroZ) / ADXL335_SENSITIVITY;
}
#ifdef SWIGJAVA
float *ADXL335::acceleration()
{
float *v = new float[3];
acceleration(&v[0], &v[1], &v[2]);
return v;
}
#endif
void ADXL335::calibrate()
{
// make sure the sensor is still before running calibration.

View File

@ -105,6 +105,15 @@ namespace upm {
*/
void values(int *xVal, int *yVal, int *zVal);
#ifdef SWIGJAVA
/**
* Gets the analog values for the 3 axes
*
* @return Array containing value of X, Y, Z axes
*/
int *values();
#endif
/**
* Gets the acceleration along all 3 axes
*
@ -114,6 +123,15 @@ namespace upm {
*/
void acceleration(float *xAccel, float *yAccel, float *zAccel);
#ifdef SWIGJAVA
/**
* Gets the acceleration along all 3 axes
*
* @return Array containing acceleration on X, Y, Z axes
*/
float *acceleration();
#endif
/**
* While the sensor is still, measures the X-axis, Y-axis, and Z-axis
* values and uses those values as the zero values.

View File

@ -10,4 +10,34 @@
#include "adxl335.h"
%}
%typemap(jni) float* "jfloatArray"
%typemap(jstype) float* "float[]"
%typemap(jtype) float* "float[]"
%typemap(javaout) float* {
return $jnicall;
}
%typemap(out) float *acceleration {
$result = JCALL1(NewFloatArray, jenv, 3);
JCALL4(SetFloatArrayRegion, jenv, $result, 0, 3, $1);
}
%typemap(jni) int* "jintArray"
%typemap(jstype) int* "int[]"
%typemap(jtype) int* "int[]"
%typemap(javaout) int* {
return $jnicall;
}
%typemap(out) int *values {
$result = JCALL1(NewIntArray, jenv, 3);
JCALL4(SetIntArrayRegion, jenv, $result, 0, 3, (const signed int*)$1);
delete [] $1;
}
%ignore values(int *, int *, int *);
%ignore acceleration(float *, float *, float *);
%include "adxl335.h"

View File

@ -9,6 +9,7 @@
%apply int { speed_t };
%apply int { mraa_result_t };
%apply int { mraa::Result };
#endif
#if (SWIG_JAVASCRIPT_V8)