diff --git a/examples/java/CMakeLists.txt b/examples/java/CMakeLists.txt index 5670ec73..ad020987 100644 --- a/examples/java/CMakeLists.txt +++ b/examples/java/CMakeLists.txt @@ -76,16 +76,16 @@ add_example(APA102_Example apa102) add_example(Apds9002_Example "apds9002;new_interfaces") add_example(BH1750_Example "bh1750;new_interfaces") add_example(BISS0001_Example "biss0001;new_interfaces") -add_example(BMA250E_Example bma250e) -add_example(BMC150_Example bmx055) +add_example(BMA250E_Example "bma250e;new_interfaces") +add_example(BMC150_Example "bmx055;new_interfaces") add_example(BME280_Example "bmp280;new_interfaces") add_example(BMG160_Example bmg160) -add_example(BMI055_Example bmx055) -add_example(BMI160_Example bmi160) +add_example(BMI055_Example "bmx055;new_interfaces") +add_example(BMI160_Example "bmi160;new_interfaces") add_example(BMM150_Example bmm150) add_example(BMP280_Example "bmp280;new_interfaces") add_example(BMPX8X_Example "bmpx8x;new_interfaces") -add_example(BMX055_Example bmx055) +add_example(BMX055_Example "bmx055;new_interfaces") add_example(BNO055_Example bno055) add_example(Button_Example button) add_example(Button_intr_Example button) @@ -98,7 +98,7 @@ add_example(DFRORP_Example dfrorp) add_example(DS1307_Example ds1307) add_example(ECEZO_Example ecezo) add_example(ECS1030_Example ecs1030) -add_example(EHR_Example "ehr;;new_interfaces") +add_example(EHR_Example "ehr;new_interfaces") add_example(Emg_Example emg) add_example(ENC03R_Example enc03r) add_example(ES08A_Example "servo;interfaces") @@ -131,7 +131,7 @@ add_example(GroveWater_Example grovewater) add_example(GroveWFS_Example grovewfs) add_example(Gsr_Example gsr) add_example(GUVAS12D_Example guvas12d) -add_example(H3LIS331DL_Example h3lis331dl) +add_example(H3LIS331DL_Example "h3lis331dl;new_interfaces") add_example(HCSR04_Example "hcsr04;new_interfaces") add_example(HKA5_Example hka5) add_example(HM11_Example hm11) @@ -152,13 +152,13 @@ add_example(LE910_Example uartat) add_example(LED_Example led) add_example(Light_Example "light;new_interfaces") add_example(LineFinder_Example linefinder) -add_example(LIS2DS12_Example lis2ds12) +add_example(LIS2DS12_Example "lis2ds12;new_interfaces") add_example(LoL_Example lol) -add_example(LSM303AGR_Example lsm303agr) -add_example(LSM303D_Example lsm303d) +add_example(LSM303AGR_Example "lsm303agr;new_interfaces") +add_example(LSM303D_Example "lsm303d;new_interfaces") add_example(LSM303DLH_Example lsm303dlh) -add_example(LSM6DS3H_Example lsm6ds3h) -add_example(LSM6DSL_Example lsm6dsl) +add_example(LSM6DS3H_Example "lsm6ds3h;new_interfaces") +add_example(LSM6DSL_Example "lsm6dsl;new_interfaces") add_example(M24LR64E_Example m24lr64e) add_example(MAX30100_Example max30100) add_example(MAX31855_Example max31855) @@ -172,12 +172,12 @@ add_example(MD_Example md) add_example(MHZ16_Example mhz16) add_example(Microphone_Example mic) add_example(MMA7361_Example mma7361) -add_example(MMA7455_Example mma7455) -add_example(MMA7660_Example mma7660) +add_example(MMA7455_Example "mma7455;new_interfaces") +add_example(MMA7660_Example "mma7660;new_interfaces") add_example(Moisture_Example "moisture;new_interfaces") add_example(MPL3115A2_Example "mpl3115a2;new_interfaces") add_example(MPR121_Example mpr121) -add_example(MPU9150_Example mpu9150) +add_example(MPU9150_Example "mpu9150;new_interfaces") add_example(MQ2_Example gas) add_example(MQ303A_Example mq303a) add_example(MQ5_Example gas) diff --git a/examples/java/H3LIS331DL_Example.java b/examples/java/H3LIS331DL_Example.java index 50089d8b..c38dd750 100644 --- a/examples/java/H3LIS331DL_Example.java +++ b/examples/java/H3LIS331DL_Example.java @@ -41,10 +41,10 @@ public class H3LIS331DL_Example { while(true){ sensor.update(); - upm_h3lis331dl.IntVector val = sensor.getRawXYZ(); + AbstractList val = sensor.getRawXYZ(); System.out.println( "Raw: X: " + val.get(0) + " Y: " + val.get(1) + " Z: " + val.get(2) ); - upm_h3lis331dl.FloatVector accel = sensor.getAcceleration(); + AbstractList accel = sensor.getAcceleration(); System.out.println( "Acceleration: X: " + accel.get(0) + " Y: " + accel.get(1) + " Z: " + accel.get(2) ); Thread.sleep(1000); diff --git a/examples/java/LIS2DS12_Example.java b/examples/java/LIS2DS12_Example.java index b56d307e..e328b3cf 100644 --- a/examples/java/LIS2DS12_Example.java +++ b/examples/java/LIS2DS12_Example.java @@ -22,6 +22,8 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +import java.util.AbstractList; + import upm_lis2ds12.*; public class LIS2DS12_Example @@ -42,7 +44,7 @@ public class LIS2DS12_Example // update our values from the sensor sensor.update(); - floatVector dataA = sensor.getAccelerometer(); + AbstractList dataA = sensor.getAccelerometer(); System.out.println("Accelerometer x: " + dataA.get(0) + " y: " + dataA.get(1) diff --git a/examples/java/LSM6DS3H_Example.java b/examples/java/LSM6DS3H_Example.java index b705cb09..2e86ef55 100644 --- a/examples/java/LSM6DS3H_Example.java +++ b/examples/java/LSM6DS3H_Example.java @@ -22,6 +22,8 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +import java.util.AbstractList; + import upm_lsm6ds3h.*; public class LSM6DS3H_Example @@ -42,7 +44,7 @@ public class LSM6DS3H_Example // update our values from the sensor sensor.update(); - floatVector data = sensor.getAccelerometer(); + AbstractList data = sensor.getAccelerometer(); System.out.println("Accelerometer x: " + data.get(0) + " y: " + data.get(1) diff --git a/examples/java/LSM6DSL_Example.java b/examples/java/LSM6DSL_Example.java index 373c54d8..ab3a32b8 100644 --- a/examples/java/LSM6DSL_Example.java +++ b/examples/java/LSM6DSL_Example.java @@ -22,6 +22,8 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +import java.util.AbstractList; + import upm_lsm6dsl.*; public class LSM6DSL_Example @@ -42,7 +44,7 @@ public class LSM6DSL_Example // update our values from the sensor sensor.update(); - floatVector data = sensor.getAccelerometer(); + AbstractList data = sensor.getAccelerometer(); System.out.println("Accelerometer x: " + data.get(0) + " y: " + data.get(1) diff --git a/examples/java/MMA7455_Example.java b/examples/java/MMA7455_Example.java index b2e9234f..bd0ba7a5 100644 --- a/examples/java/MMA7455_Example.java +++ b/examples/java/MMA7455_Example.java @@ -22,6 +22,8 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +import java.util.AbstractList; + //NOT TESTED!!! public class MMA7455_Example { @@ -30,7 +32,7 @@ public class MMA7455_Example { upm_mma7455.MMA7455 sensor = new upm_mma7455.MMA7455(0); while (true) { - upm_mma7455.ShortVector val = sensor.readData(); + AbstractList val = sensor.readData(); System.out.println("Accelerometer X: " + val.get(0) + ", Y: " + val.get(1) + ", Z: " + val.get(2)); Thread.sleep(1000); diff --git a/examples/java/MMA7660_Example.java b/examples/java/MMA7660_Example.java index 54844129..74a96fbb 100644 --- a/examples/java/MMA7660_Example.java +++ b/examples/java/MMA7660_Example.java @@ -23,6 +23,8 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +import java.util.AbstractList; + import upm_mma7660.MMA7660; public class MMA7660_Example @@ -44,7 +46,7 @@ public class MMA7660_Example while (true) { - upm_mma7660.FloatVector acceleration = accel.getAcceleration(); + AbstractList acceleration = accel.getAcceleration(); System.out.println("Acceleration: x = " + acceleration.get(0) + " y = " diff --git a/examples/java/MPU9150_Example.java b/examples/java/MPU9150_Example.java index 4e5aa7cc..7e44eb3e 100644 --- a/examples/java/MPU9150_Example.java +++ b/examples/java/MPU9150_Example.java @@ -22,6 +22,8 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ + import java.util.AbstractList; + //NOT TESTED!!! public class MPU9150_Example { @@ -43,7 +45,7 @@ public class MPU9150_Example { // System.out.println("Gryoscope: " + "GX: " + gyro[0] + " GY: " + gyro[1] + " GZ: " // + gyro[2]); - upm_mpu9150.FloatVector magn = sensor.getMagnetometer(); + AbstractList magn = sensor.getMagnetometer(); System.out.println("Magnetometer: " + "MX: " + magn.get(0) + " MY: " + magn.get(1) + " MZ: " + magn.get(2)); Thread.sleep(1000); diff --git a/include/interfaces/new_interfaces.i b/include/interfaces/new_interfaces.i index 4c8e2d59..07098d5f 100644 --- a/include/interfaces/new_interfaces.i +++ b/include/interfaces/new_interfaces.i @@ -6,6 +6,39 @@ #ifdef SWIGJAVA %include + %include "typemaps.i" +%{ +#include +%} + + %import "../../src/upm_javastdvector.i" + + %typemap(javaimports) SWIGTYPE %{ +import java.util.AbstractList; +import java.lang.Float; + %} + + /* Using the JAVA class types outside the core package requires + getCPtr to be public, modify that here */ + %typemap(javabody) SWIGTYPE %{ + private long swigCPtr; + protected boolean swigCMemOwn; + public $javaclassname(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + public static long getCPtr($javaclassname obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + %} + + %typemap(javaout) std::vector { + return (AbstractList)(new $&javaclassname($jnicall, true)); + } + %typemap(jstype) std::vector "AbstractList" + + %template(floatVector) std::vector; + %interface_impl (upm::iClock); %interface_impl (upm::iCollision); %interface_impl (upm::iDistance); diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b1ce6047..72876b37 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -263,10 +263,21 @@ function (_get_current_dot_i_file filePrefix varDotIFile) # Set up Java bindings string(APPEND JAVA_TYPEMAPS "%typemap(javaimports) SWIGTYPE %{\n") string(APPEND JAVA_TYPEMAPS "import upm_new_interfaces.*;\n%}") + if (CMAKE_VERSION VERSION_LESS "3.3" ) + list (FIND module_iface "iAcceleration.hpp" _index) + if (${_index} GREATER -1) + set(JAVA_TYPEMAPS "%typemap(javaimports) SWIGTYPE %{\nimport upm_new_interfaces.*;\n\nimport java.util.AbstractList;\nimport java.lang.Float;\n%}\n") + endif() + else() + cmake_policy(SET CMP0057 NEW) + if ("iAcceleration.hpp" IN_LIST module_iface) + set(JAVA_TYPEMAPS "%typemap(javaimports) SWIGTYPE %{\nimport upm_new_interfaces.*;\n\nimport java.util.AbstractList;\nimport java.lang.Float;\n%}\n") + endif() + endif() endif() # Write the interface file configure_file (${PROJECT_SOURCE_DIR}/src/swigme.i.in "${${varDotIFile}}" @ONLY) - endif() + endif () set(${varDotIFile} "${${varDotIFile}}" PARENT_SCOPE) endfunction() diff --git a/src/adxl335/CMakeLists.txt b/src/adxl335/CMakeLists.txt index 20adad74..7d3a0fef 100644 --- a/src/adxl335/CMakeLists.txt +++ b/src/adxl335/CMakeLists.txt @@ -2,4 +2,5 @@ set (libname "adxl335") set (libdescription "Low-power, 3-axis +/- 3 g Accelerometer") set (module_src ${libname}.cxx) set (module_hpp ${libname}.hpp) +set (module_iface iAcceleration.hpp) upm_module_init(mraa) diff --git a/src/adxl335/adxl335.i b/src/adxl335/adxl335.i index 6aa280bc..d41b9c71 100644 --- a/src/adxl335/adxl335.i +++ b/src/adxl335/adxl335.i @@ -1,7 +1,33 @@ +#ifdef SWIGPYTHON +%module (package="upm") adxl335 +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ #ifdef SWIGJAVA + +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +import java.lang.Integer; +%} + +%{ +#include +%} + +%typemap(javaout) std::vector { + return (AbstractList)(new $&javaclassname($jnicall, true)); +} +%typemap(jstype) std::vector "AbstractList" + +%template(intVector) std::vector; + %apply int *OUTPUT { int *xVal, int *yVal, int *zVal }; %apply float *OUTPUT { float *xAccel, float *yAccel, float *zAccel }; @@ -41,6 +67,7 @@ JAVA_JNI_LOADLIBRARY(javaupm_adxl335) /* BEGIN Javascript syntax ------------------------------------------------- */ #ifdef SWIGJAVASCRIPT +%include "../upm_vectortypes.i" %pointer_functions(int, intp); %pointer_functions(float, floatp); #endif @@ -48,6 +75,7 @@ JAVA_JNI_LOADLIBRARY(javaupm_adxl335) /* BEGIN Python syntax ----------------------------------------------------- */ #ifdef SWIGPYTHON +%include "../upm_vectortypes.i" %pointer_functions(int, intp); %pointer_functions(float, floatp); #endif diff --git a/src/adxl345/CMakeLists.txt b/src/adxl345/CMakeLists.txt index e3066786..e62be519 100644 --- a/src/adxl345/CMakeLists.txt +++ b/src/adxl345/CMakeLists.txt @@ -2,4 +2,5 @@ set (libname "adxl345") set (libdescription "3-axis, +/- 2/4/8/16 g Digital Accelerometer") set (module_src ${libname}.cxx) set (module_hpp ${libname}.hpp) +set (module_iface iAcceleration.hpp) upm_module_init(mraa) diff --git a/src/adxl345/adxl345.i b/src/adxl345/adxl345.i index 596ad213..2c84859d 100644 --- a/src/adxl345/adxl345.i +++ b/src/adxl345/adxl345.i @@ -1,3 +1,9 @@ +#ifdef SWIGPYTHON +%module (package="upm") adxl345 +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ @@ -29,6 +35,13 @@ delete [] $1; } +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +%} + JAVA_JNI_LOADLIBRARY(javaupm_adxl345) #endif /* END Java syntax */ @@ -37,6 +50,7 @@ JAVA_JNI_LOADLIBRARY(javaupm_adxl345) #ifdef SWIGJAVASCRIPT %include "../carrays_int16_t.i" %include "../carrays_float.i" +%include "../upm_vectortypes.i" %typemap(out) int16_t * { $result = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int16Array, 0 | 0 ); @@ -54,6 +68,7 @@ JAVA_JNI_LOADLIBRARY(javaupm_adxl345) #ifdef SWIGPYTHON %include "../carrays_int16_t.i" %include "../carrays_float.i" +%include "../upm_vectortypes.i" %typemap(out) int16_t * { $result = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int16Array, 0 | 0 ); diff --git a/src/autobox.i b/src/autobox.i index 8e93006f..06250270 100644 --- a/src/autobox.i +++ b/src/autobox.i @@ -7,6 +7,7 @@ AUTOBOX(float, Float) AUTOBOX(boolean, Boolean) AUTOBOX(signed char, Byte) AUTOBOX(short, Short) +AUTOBOX(unsigned char, Short) AUTOBOX(int, Integer) AUTOBOX(long, Long) AUTOBOX(SWIGTYPE, $typemap(jstype,$1_basetype)) \ No newline at end of file diff --git a/src/bma220/CMakeLists.txt b/src/bma220/CMakeLists.txt index 0946db07..93641302 100644 --- a/src/bma220/CMakeLists.txt +++ b/src/bma220/CMakeLists.txt @@ -2,4 +2,5 @@ set (libname "bma220") set (libdescription "Digital Triaxial Acceleration Sensor") set (module_src ${libname}.cxx) set (module_hpp ${libname}.hpp) +set (module_iface iAcceleration.hpp) upm_module_init(mraa) diff --git a/src/bma220/bma220.i b/src/bma220/bma220.i index d36c6116..d843f17f 100644 --- a/src/bma220/bma220.i +++ b/src/bma220/bma220.i @@ -1,3 +1,9 @@ +#ifdef SWIGPYTHON +%module (package="upm") bma220 +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ @@ -25,6 +31,13 @@ %ignore getAccelerometer(float *, float *, float *); %ignore installISR(int, mraa::Edge, void *, void *); +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +%} + %define GETTER get_gpioIntr(); %enddef diff --git a/src/bma250e/CMakeLists.txt b/src/bma250e/CMakeLists.txt index 8c72bb78..870de648 100644 --- a/src/bma250e/CMakeLists.txt +++ b/src/bma250e/CMakeLists.txt @@ -4,6 +4,7 @@ upm_mixed_module_init (NAME bma250e C_SRC bma250e.c CPP_HDR bma250e.hpp CPP_SRC bma250e.cxx + IFACE_HDR iAcceleration.hpp FTI_SRC bma250e_fti.c CPP_WRAPS_C REQUIRES mraa utilities-c) diff --git a/src/bma250e/bma250e.i b/src/bma250e/bma250e.i index 523ecde0..c66d057f 100644 --- a/src/bma250e/bma250e.i +++ b/src/bma250e/bma250e.i @@ -1,3 +1,9 @@ +#ifdef SWIGPYTHON +%module (package="upm") bma250e +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ @@ -8,6 +14,8 @@ %ignore installISR (BMA250E_INTERRUPT_PINS_T, int, mraa::Edge , void *, void *); %typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + import java.util.AbstractList; import java.lang.Float; %} @@ -15,12 +23,6 @@ import java.lang.Float; %typemap(javaout) upm::BMA250E { return new $&javaclassname($jnicall, true); } -%typemap(javaout) std::vector { - return (AbstractList)(new $&javaclassname($jnicall, true)); -} -%typemap(jstype) std::vector "AbstractList" - -%template(floatVector) std::vector; %define INTERRUPT BMA250E_INTERRUPT_PINS_T %enddef diff --git a/src/bmi160/CMakeLists.txt b/src/bmi160/CMakeLists.txt index 283acfb1..78cfb434 100644 --- a/src/bmi160/CMakeLists.txt +++ b/src/bmi160/CMakeLists.txt @@ -4,6 +4,7 @@ upm_mixed_module_init (NAME bmi160 C_SRC bmi160.c bosch_bmi160.c CPP_HDR bmi160.hpp CPP_SRC bmi160.cxx + IFACE_HDR iAcceleration.hpp # FTI_SRC bmi160_fti.c CPP_WRAPS_C REQUIRES mraa utilities-c) diff --git a/src/bmi160/bmi160.i b/src/bmi160/bmi160.i index 80f747c3..e4c21049 100644 --- a/src/bmi160/bmi160.i +++ b/src/bmi160/bmi160.i @@ -1,3 +1,9 @@ +#ifdef SWIGPYTHON +%module (package="upm") bmi160 +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ @@ -22,18 +28,27 @@ %ignore getGyroscope(float *, float *, float *); %ignore getMagnetometer(float *, float *, float *); +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +%} + JAVA_JNI_LOADLIBRARY(javaupm_bmi160) #endif /* END Java syntax */ /* BEGIN Javascript syntax ------------------------------------------------- */ #ifdef SWIGJAVASCRIPT +%include "../upm_vectortypes.i" %pointer_functions(float, floatp); #endif /* END Javascript syntax */ /* BEGIN Python syntax ----------------------------------------------------- */ #ifdef SWIGPYTHON +%include "../upm_vectortypes.i" %pointer_functions(float, floatp); #endif /* END Python syntax */ diff --git a/src/bmx055/CMakeLists.txt b/src/bmx055/CMakeLists.txt index 8045c452..22137f18 100644 --- a/src/bmx055/CMakeLists.txt +++ b/src/bmx055/CMakeLists.txt @@ -2,4 +2,5 @@ upm_mixed_module_init (NAME bmx055 DESCRIPTION "Bosch IMU Sensor Library" CPP_HDR bmx055.hpp bmc150.hpp bmi055.hpp CPP_SRC bmx055.cxx bmc150.cxx bmi055.cxx + IFACE_HDR iAcceleration.hpp REQUIRES mraa bmg160 bma250e bmm150) diff --git a/src/bmx055/bmx055.i b/src/bmx055/bmx055.i index c71695f9..d107097d 100644 --- a/src/bmx055/bmx055.i +++ b/src/bmx055/bmx055.i @@ -1,3 +1,9 @@ +#ifdef SWIGPYTHON +%module (package="upm") bmx055 +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ @@ -11,20 +17,12 @@ %ignore getGyroscope(float *, float *, float *); %typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + import java.util.AbstractList; import java.lang.Float; %} -%typemap(javaout) SWIGTYPE { - return new $&javaclassname($jnicall, true); -} -%typemap(javaout) std::vector { - return (AbstractList)(new $&javaclassname($jnicall, true)); -} -%typemap(jstype) std::vector "AbstractList" - -%template(floatVector) std::vector; - JAVA_JNI_LOADLIBRARY(javaupm_bmx055) #endif /* END Java syntax */ diff --git a/src/h3lis331dl/CMakeLists.txt b/src/h3lis331dl/CMakeLists.txt index db4c931d..fe30d21a 100644 --- a/src/h3lis331dl/CMakeLists.txt +++ b/src/h3lis331dl/CMakeLists.txt @@ -2,4 +2,5 @@ set (libname "h3lis331dl") set (libdescription "I2C 3-axis Digital Accelerometer (400g)") set (module_src ${libname}.cxx) set (module_hpp ${libname}.hpp) +set (module_iface iAcceleration.hpp) upm_module_init(mraa) diff --git a/src/h3lis331dl/h3lis331dl.i b/src/h3lis331dl/h3lis331dl.i index d0140000..dbcdce0d 100644 --- a/src/h3lis331dl/h3lis331dl.i +++ b/src/h3lis331dl/h3lis331dl.i @@ -1,21 +1,52 @@ +#ifdef SWIGPYTHON +%module (package="upm") h3lis331dl +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ #ifdef SWIGJAVA -%include "std_vector.i" +%{ +#include +%} %apply float *OUTPUT { float *aX, float *aY, float *aZ }; %apply int *OUTPUT { int *x, int *y, int*z }; %ignore i2cContext; -%template(IntVector) std::vector; -%template(FloatVector) std::vector; +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +%} + +%typemap(javaout) std::vector { + return (AbstractList)(new $&javaclassname($jnicall, true)); +} +%typemap(jstype) std::vector "AbstractList" + +%template(intVector) std::vector; JAVA_JNI_LOADLIBRARY(javaupm_h3lis331dl) #endif /* END Java syntax */ +/* BEGIN Javascript syntax ------------------------------------------------- */ +#ifdef SWIGJAVASCRIPT +%include "../upm_vectortypes.i" +#endif +/* END Javascript syntax */ + +/* BEGIN Python syntax ----------------------------------------------------- */ +#ifdef SWIGPYTHON +%include "../upm_vectortypes.i" +#endif +/* END Python syntax */ + /* BEGIN Common SWIG syntax ------------------------------------------------- */ %pointer_functions(int, intp); %pointer_functions(float, floatp); diff --git a/src/lis2ds12/CMakeLists.txt b/src/lis2ds12/CMakeLists.txt index 324e052c..106c7860 100644 --- a/src/lis2ds12/CMakeLists.txt +++ b/src/lis2ds12/CMakeLists.txt @@ -5,5 +5,6 @@ upm_mixed_module_init (NAME lis2ds12 CPP_HDR lis2ds12.hpp CPP_SRC lis2ds12.cxx FTI_SRC lis2ds12_fti.c + IFACE_HDR iAcceleration.hpp CPP_WRAPS_C REQUIRES mraa utilities-c) diff --git a/src/lis2ds12/lis2ds12.i b/src/lis2ds12/lis2ds12.i index 0693f942..34f634d4 100644 --- a/src/lis2ds12/lis2ds12.i +++ b/src/lis2ds12/lis2ds12.i @@ -1,3 +1,9 @@ +#ifdef SWIGPYTHON +%module (package="upm") lis2ds12 +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ @@ -5,6 +11,13 @@ %ignore getAccelerometer(float *, float *, float *); #%ignore installISR(LIS2DS12_INTERRUPT_PINS_T , int , mraa::Edge, void *, void *); +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +%} + %define INTERRUPT LIS2DS12_INTERRUPT_PINS_T %enddef JAVA_ADD_INSTALLISR_INTERRUPT(upm::LIS2DS12) @@ -13,8 +26,19 @@ JAVA_JNI_LOADLIBRARY(javaupm_lis2ds12) #endif /* END Java syntax */ -/* BEGIN Common SWIG syntax ------------------------------------------------- */ +/* BEGIN Javascript syntax ------------------------------------------------- */ +#ifdef SWIGJAVASCRIPT %include "../upm_vectortypes.i" +#endif +/* END Javascript syntax */ + +/* BEGIN Python syntax ----------------------------------------------------- */ +#ifdef SWIGPYTHON +%include "../upm_vectortypes.i" +#endif +/* END Python syntax */ + +/* BEGIN Common SWIG syntax ------------------------------------------------- */ %{ #include "lis2ds12.hpp" %} diff --git a/src/lis3dh/CMakeLists.txt b/src/lis3dh/CMakeLists.txt index 67fac43b..662ee40b 100644 --- a/src/lis3dh/CMakeLists.txt +++ b/src/lis3dh/CMakeLists.txt @@ -5,5 +5,6 @@ upm_mixed_module_init (NAME lis3dh CPP_HDR lis3dh.hpp CPP_SRC lis3dh.cxx FTI_SRC lis3dh_fti.c + IFACE_HDR iAcceleration.hpp CPP_WRAPS_C REQUIRES mraa utilities-c) diff --git a/src/lis3dh/lis3dh.i b/src/lis3dh/lis3dh.i index f1daea89..96d646cc 100644 --- a/src/lis3dh/lis3dh.i +++ b/src/lis3dh/lis3dh.i @@ -1,8 +1,13 @@ +#ifdef SWIGPYTHON +%module (package="upm") lis3dh +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ #ifdef SWIGJAVA -%include "../upm_vectortypes.i" %ignore getAccelerometer(float *, float *, float *); %ignore installISR(LIS3DH_INTERRUPT_PINS_T , int , mraa::Edge , void *, void* ); @@ -10,13 +15,31 @@ %define INTERRUPT LIS3DH_INTERRUPT_PINS_T %enddef +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +%} + JAVA_ADD_INSTALLISR_INTERRUPT(upm::LIS3DH) JAVA_JNI_LOADLIBRARY(javaupm_lis3dh) #endif /* END Java syntax */ -/* BEGIN Common SWIG syntax ------------------------------------------------- */ +/* BEGIN Javascript syntax ------------------------------------------------- */ +#ifdef SWIGJAVASCRIPT %include "../upm_vectortypes.i" +#endif +/* END Javascript syntax */ + +/* BEGIN Python syntax ----------------------------------------------------- */ +#ifdef SWIGPYTHON +%include "../upm_vectortypes.i" +#endif +/* END Python syntax */ + +/* BEGIN Common SWIG syntax ------------------------------------------------- */ %{ #include "lis3dh_defs.h" #include "lis3dh.hpp" diff --git a/src/lsm303agr/CMakeLists.txt b/src/lsm303agr/CMakeLists.txt index 240e3d32..fe3a5496 100644 --- a/src/lsm303agr/CMakeLists.txt +++ b/src/lsm303agr/CMakeLists.txt @@ -5,5 +5,6 @@ upm_mixed_module_init (NAME lsm303agr CPP_HDR lsm303agr.hpp CPP_SRC lsm303agr.cxx FTI_SRC lsm303agr_fti.c + IFACE_HDR iAcceleration.hpp CPP_WRAPS_C REQUIRES mraa utilities-c) diff --git a/src/lsm303agr/lsm303agr.i b/src/lsm303agr/lsm303agr.i index b685bb58..cef48f81 100644 --- a/src/lsm303agr/lsm303agr.i +++ b/src/lsm303agr/lsm303agr.i @@ -1,28 +1,25 @@ +#ifdef SWIGPYTHON +%module (package="upm") lsm303agr +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ #ifdef SWIGJAVA -%include "../upm_javastdvector.i" %ignore getMagnetometer(float *, float *, float *); %ignore getAccelerometer(float *, float *, float *); %ignore installISR(LSM303AGR_INTERRUPT_PINS_T , int , mraa::Edge , void *, void *); %typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + import java.util.AbstractList; import java.lang.Float; %} -%typemap(javaout) SWIGTYPE { - return new $&javaclassname($jnicall, true); -} -%typemap(javaout) std::vector { - return (AbstractList)(new $&javaclassname($jnicall, true)); -} -%typemap(jstype) std::vector "AbstractList" - -%template(floatVector) std::vector; - %define INTERRUPT LSM303AGR_INTERRUPT_PINS_T %enddef diff --git a/src/lsm303d/CMakeLists.txt b/src/lsm303d/CMakeLists.txt index f4347918..1ca486f0 100644 --- a/src/lsm303d/CMakeLists.txt +++ b/src/lsm303d/CMakeLists.txt @@ -4,5 +4,6 @@ upm_mixed_module_init (NAME lsm303d C_SRC lsm303d.c CPP_HDR lsm303d.hpp CPP_SRC lsm303d.cxx + IFACE_HDR iAcceleration.hpp CPP_WRAPS_C REQUIRES mraa utilities-c) diff --git a/src/lsm303d/lsm303d.i b/src/lsm303d/lsm303d.i index ba5c4659..238ed88f 100644 --- a/src/lsm303d/lsm303d.i +++ b/src/lsm303d/lsm303d.i @@ -1,27 +1,24 @@ +#ifdef SWIGPYTHON +%module (package="upm") lsm303d +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ #ifdef SWIGJAVA -%include "../upm_javastdvector.i" %ignore getMagnetometer(float *, float *, float *); %ignore getAccelerometer(float *, float *, float *); %typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + import java.util.AbstractList; import java.lang.Float; %} -%typemap(javaout) SWIGTYPE { - return new $&javaclassname($jnicall, true); -} -%typemap(javaout) std::vector { - return (AbstractList)(new $&javaclassname($jnicall, true)); -} -%typemap(jstype) std::vector "AbstractList" - -%template(floatVector) std::vector; - JAVA_JNI_LOADLIBRARY(javaupm_lsm303d) #endif /* END Java syntax */ diff --git a/src/lsm6ds3h/CMakeLists.txt b/src/lsm6ds3h/CMakeLists.txt index 25b0baaa..aff9bbec 100644 --- a/src/lsm6ds3h/CMakeLists.txt +++ b/src/lsm6ds3h/CMakeLists.txt @@ -5,5 +5,6 @@ upm_mixed_module_init (NAME lsm6ds3h CPP_HDR lsm6ds3h.hpp CPP_SRC lsm6ds3h.cxx FTI_SRC lsm6ds3h_fti.c + IFACE_HDR iAcceleration.hpp CPP_WRAPS_C REQUIRES mraa utilities-c) diff --git a/src/lsm6ds3h/lsm6ds3h.i b/src/lsm6ds3h/lsm6ds3h.i index 263b4a46..ff938a01 100644 --- a/src/lsm6ds3h/lsm6ds3h.i +++ b/src/lsm6ds3h/lsm6ds3h.i @@ -1,8 +1,19 @@ +#ifdef SWIGPYTHON +%module (package="upm") lsm6ds3h +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ #ifdef SWIGJAVA -%include "../upm_vectortypes.i" +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +%} %ignore getAccelerometer(float *, float *, float *); %ignore getGyroscope(float *, float *, float *); @@ -17,8 +28,19 @@ JAVA_JNI_LOADLIBRARY(javaupm_lsm6ds3h) #endif /* END Java syntax */ -/* BEGIN Common SWIG syntax ------------------------------------------------- */ +/* BEGIN Javascript syntax ------------------------------------------------- */ +#ifdef SWIGJAVASCRIPT %include "../upm_vectortypes.i" +#endif +/* END Javascript syntax */ + +/* BEGIN Python syntax ----------------------------------------------------- */ +#ifdef SWIGPYTHON +%include "../upm_vectortypes.i" +#endif +/* END Python syntax */ + +/* BEGIN Common SWIG syntax ------------------------------------------------- */ %{ #include "lsm6ds3h_defs.h" #include "lsm6ds3h.hpp" diff --git a/src/lsm6dsl/CMakeLists.txt b/src/lsm6dsl/CMakeLists.txt index 4fd265c7..f5c85e9a 100644 --- a/src/lsm6dsl/CMakeLists.txt +++ b/src/lsm6dsl/CMakeLists.txt @@ -4,6 +4,7 @@ upm_mixed_module_init (NAME lsm6dsl C_SRC lsm6dsl.c CPP_HDR lsm6dsl.hpp CPP_SRC lsm6dsl.cxx + IFACE_HDR iAcceleration.hpp FTI_SRC lsm6dsl_fti.c CPP_WRAPS_C REQUIRES mraa utilities-c) diff --git a/src/lsm6dsl/lsm6dsl.i b/src/lsm6dsl/lsm6dsl.i index 77c22a93..8dbeb361 100644 --- a/src/lsm6dsl/lsm6dsl.i +++ b/src/lsm6dsl/lsm6dsl.i @@ -1,9 +1,19 @@ +#ifdef SWIGPYTHON +%module (package="upm") lsm6dsl +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ #ifdef SWIGJAVA -%include "../upm_vectortypes.i" +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; +import java.util.AbstractList; +import java.lang.Float; +%} %ignore getAccelerometer(float *, float *, float *); %ignore getGyroscope(float *, float *, float *); @@ -17,8 +27,21 @@ JAVA_JNI_LOADLIBRARY(javaupm_lsm6dsl) #endif /* END Java syntax */ -/* BEGIN Common SWIG syntax ------------------------------------------------- */ +/* BEGIN Javascript syntax ------------------------------------------------- */ +#ifdef SWIGJAVASCRIPT %include "../upm_vectortypes.i" +#endif +/* END Javascript syntax */ + +/* BEGIN Python syntax ----------------------------------------------------- */ +#ifdef SWIGPYTHON +%include "../upm_vectortypes.i" +#endif +/* END Python syntax */ + +/* BEGIN Common SWIG syntax ------------------------------------------------- */ +%include "std_vector.i" +%template(floatVector) std::vector; %{ #include "lsm6dsl_defs.h" #include "lsm6dsl.hpp" diff --git a/src/lsm9ds0/CMakeLists.txt b/src/lsm9ds0/CMakeLists.txt index e28488ee..ff70596f 100644 --- a/src/lsm9ds0/CMakeLists.txt +++ b/src/lsm9ds0/CMakeLists.txt @@ -2,4 +2,5 @@ set (libname "lsm9ds0") set (libdescription "Triaxial Gyroscope/accelerometer/magnetometer Sensor") set (module_src ${libname}.cxx) set (module_hpp ${libname}.hpp) +set (module_iface iAcceleration.hpp) upm_module_init(mraa) diff --git a/src/lsm9ds0/lsm9ds0.i b/src/lsm9ds0/lsm9ds0.i index a6aeaf66..46620fb4 100644 --- a/src/lsm9ds0/lsm9ds0.i +++ b/src/lsm9ds0/lsm9ds0.i @@ -1,3 +1,9 @@ +#ifdef SWIGPYTHON +%module (package="upm") lsm9ds0 +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ @@ -5,6 +11,13 @@ %include "arrays_java.i"; %include "../java_buffer.i" +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +%} + %apply int {mraa::Edge}; %apply float *INOUT { float *x, float *y, float *z }; @@ -51,12 +64,14 @@ JAVA_JNI_LOADLIBRARY(javaupm_lsm9ds0) /* BEGIN Javascript syntax ------------------------------------------------- */ #ifdef SWIGJAVASCRIPT +%include "../upm_vectortypes.i" %pointer_functions(float, floatp); #endif /* END Javascript syntax */ /* BEGIN Python syntax ----------------------------------------------------- */ #ifdef SWIGPYTHON +%include "../upm_vectortypes.i" %pointer_functions(float, floatp); #endif /* END Python syntax */ diff --git a/src/mma7455/CMakeLists.txt b/src/mma7455/CMakeLists.txt index 14e26920..dc4a9a7e 100644 --- a/src/mma7455/CMakeLists.txt +++ b/src/mma7455/CMakeLists.txt @@ -2,4 +2,5 @@ set (libname "mma7455") set (libdescription "Three Axis +/- 2/4/8 g Digital Accelerometer") set (module_src ${libname}.cxx) set (module_hpp ${libname}.hpp) +set (module_iface iAcceleration.hpp) upm_module_init(mraa) diff --git a/src/mma7455/mma7455.i b/src/mma7455/mma7455.i index 5422a748..c5eb9282 100644 --- a/src/mma7455/mma7455.i +++ b/src/mma7455/mma7455.i @@ -1,17 +1,52 @@ +#ifdef SWIGPYTHON +%module (package="upm") mma7455 +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ #ifdef SWIGJAVA %include "arrays_java.i"; %include "../java_buffer.i" -%include "std_vector.i" %apply short *OUTPUT { short * ptrX, short * ptrY, short * ptrZ }; -%template(ShortVector) std::vector; + +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +import java.lang.Short; +%} + +%{ +#include +%} + +%typemap(javaout) std::vector { + return (AbstractList)(new $&javaclassname($jnicall, true)); +} +%typemap(jstype) std::vector "AbstractList" + +%template(shortVector) std::vector; JAVA_JNI_LOADLIBRARY(javaupm_mma7455) #endif /* END Java syntax */ +/* BEGIN Javascript syntax ------------------------------------------------- */ +#ifdef SWIGJAVASCRIPT +%include "../upm_vectortypes.i" +#endif +/* END Javascript syntax */ + +/* BEGIN Python syntax ----------------------------------------------------- */ +#ifdef SWIGPYTHON +%include "../upm_vectortypes.i" +#endif +/* END Python syntax */ + /* BEGIN Common SWIG syntax ------------------------------------------------- */ %{ #include "mma7455.hpp" diff --git a/src/mma7660/CMakeLists.txt b/src/mma7660/CMakeLists.txt index 0285d80d..1bcc1db6 100644 --- a/src/mma7660/CMakeLists.txt +++ b/src/mma7660/CMakeLists.txt @@ -4,6 +4,7 @@ upm_mixed_module_init (NAME mma7660 C_SRC mma7660.c CPP_HDR mma7660.hpp CPP_SRC mma7660.cxx + IFACE_HDR iAcceleration.hpp FTI_SRC mma7660_fti.c CPP_WRAPS_C REQUIRES mraa) diff --git a/src/mma7660/mma7660.i b/src/mma7660/mma7660.i index 1e216213..d4c9b8c0 100644 --- a/src/mma7660/mma7660.i +++ b/src/mma7660/mma7660.i @@ -1,23 +1,57 @@ +#ifdef SWIGPYTHON +%module (package="upm") mma7660 +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ #ifdef SWIGJAVA %include "arrays_java.i"; %include "../java_buffer.i" -%include "std_vector.i" + +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +import java.lang.Integer; +%} + +%{ +#include +%} + +%typemap(javaout) std::vector { + return (AbstractList)(new $&javaclassname($jnicall, true)); +} +%typemap(jstype) std::vector "AbstractList" + +%template(intVector) std::vector; + %apply float *OUTPUT { float *ax, float *ay, float *az }; %apply int *OUTPUT { int *x, int *y, int *z }; %ignore installISR(int , void *, void *); -%template(IntVector) std::vector; -%template(FloatVector) std::vector; - JAVA_ADD_INSTALLISR_PIN(upm::MMA7660) JAVA_JNI_LOADLIBRARY(javaupm_mma7660) #endif /* END Java syntax */ +/* BEGIN Javascript syntax ------------------------------------------------- */ +#ifdef SWIGJAVASCRIPT +%include "../upm_vectortypes.i" +#endif +/* END Javascript syntax */ + +/* BEGIN Python syntax ----------------------------------------------------- */ +#ifdef SWIGPYTHON +%include "../upm_vectortypes.i" +#endif +/* END Python syntax */ + /* BEGIN Common SWIG syntax ------------------------------------------------- */ %pointer_functions(int, intp); %pointer_functions(float, floatp); diff --git a/src/mma8x5x/CMakeLists.txt b/src/mma8x5x/CMakeLists.txt index fdd28e5d..1d01dcfa 100644 --- a/src/mma8x5x/CMakeLists.txt +++ b/src/mma8x5x/CMakeLists.txt @@ -2,4 +2,5 @@ set (libname "mma8x5x") set (libdescription "Tri-axis Accelerometer Sensor") set (module_src ${libname}.cpp) set (module_hpp ${libname}.hpp) +set (module_iface iAcceleration.hpp) upm_module_init(mraa) diff --git a/src/mpu9150/CMakeLists.txt b/src/mpu9150/CMakeLists.txt index 73883445..c80e75c8 100644 --- a/src/mpu9150/CMakeLists.txt +++ b/src/mpu9150/CMakeLists.txt @@ -2,4 +2,5 @@ set (libname "mpu9150") set (libdescription "IMU Sensor Library Based On the Mpu9150") set (module_src ${libname}.cxx ak8975.cxx mpu60x0.cxx mpu9250.cxx) set (module_hpp ${libname}.hpp ak8975.hpp mpu60x0.hpp mpu9250.hpp) +set (module_iface iAcceleration.hpp) upm_module_init(mraa) diff --git a/src/mpu9150/mpu9150.i b/src/mpu9150/mpu9150.i index 557c5dda..d150edd8 100644 --- a/src/mpu9150/mpu9150.i +++ b/src/mpu9150/mpu9150.i @@ -1,3 +1,9 @@ +#ifdef SWIGPYTHON +%module (package="upm") mpu9150 +#endif + +%import "interfaces/new_interfaces.i" + %include "../common_top.i" /* BEGIN Java syntax ------------------------------------------------------- */ @@ -6,7 +12,12 @@ %include "arrays_java.i" %include "../java_buffer.i" -%template(FloatVector) std::vector; +%typemap(javaimports) SWIGTYPE %{ +import upm_new_interfaces.*; + +import java.util.AbstractList; +import java.lang.Float; +%} %apply int {mraa::Edge}; @@ -22,6 +33,7 @@ JAVA_JNI_LOADLIBRARY(javaupm_mpu9150) /* BEGIN Javascript syntax ------------------------------------------------- */ #ifdef SWIGJAVASCRIPT %include "std_vector.i" +%include "../upm_vectortypes.i" %pointer_functions(float, floatp); #endif /* END Javascript syntax */ @@ -29,6 +41,7 @@ JAVA_JNI_LOADLIBRARY(javaupm_mpu9150) /* BEGIN Python syntax ----------------------------------------------------- */ #ifdef SWIGPYTHON %include "std_vector.i" +%include "../upm_vectortypes.i" %pointer_functions(float, floatp); #endif /* END Python syntax */ diff --git a/src/swigme.i.in b/src/swigme.i.in index 15d00fe2..02251321 100644 --- a/src/swigme.i.in +++ b/src/swigme.i.in @@ -1,16 +1,20 @@ /* This SWIG .i file is generated from UPM CMake. If additional functionality * is required, custom .i files can be placed in the library directory. */ +@PYTHON_NEW_INTERFACES@ + +@IMPORT_NEW_INTERFACES@ /* Common SWIG syntax */ %include "../common_top.i" +/* Java-specific SWIG syntax */ +#ifdef SWIGJAVA +@JAVA_TYPEMAPS@ +JAVA_JNI_LOADLIBRARY(javaupm_@libname@) +#endif + %{ @SWIG_HASH_INCLUDES@ %} @SWIG_PERCENT_INCLUDES@ - -/* Java-specific SWIG syntax */ -#ifdef SWIGJAVA -JAVA_JNI_LOADLIBRARY(javaupm_@libname@) -#endif