From fe9254c0049bde258437718fdef53ed622aea977 Mon Sep 17 00:00:00 2001 From: Stefan Andritoiu Date: Wed, 5 Apr 2017 18:36:43 +0300 Subject: [PATCH] java: Created a general interface that is no longer included in each package and updated examples Signed-off-by: Bogdan Ichim Signed-off-by: Stefan Andritoiu --- examples/java/BME280_InterfaceExample.java | 1 + examples/java/CMakeLists.txt | 23 ++++++++++++++++----- src/CMakeLists.txt | 13 ++++++++++-- src/ads1x15/javaupm_ads1x15.i | 10 +++++---- src/bmp280/javaupm_bmp280.i | 19 ++++++++++++----- src/bmpx8x/javaupm_bmpx8x.i | 8 +++++-- src/ds1808lc/javaupm_ds1808lc.i | 6 +++++- src/hlg150h/javaupm_hlg150h.i | 10 ++++++--- src/interfaces/javaupm_iADC.i | 3 +++ src/interfaces/javaupm_iCO2Sensor.i | 4 ++++ src/interfaces/javaupm_iHumiditySensor.i | 3 +++ src/interfaces/javaupm_iLightController.i | 3 +++ src/interfaces/javaupm_iLightSensor.i | 3 +++ src/interfaces/javaupm_iModuleStatus.i | 3 +++ src/interfaces/javaupm_iPressureSensor.i | 3 +++ src/interfaces/javaupm_iTemperatureSensor.i | 3 +++ src/interfaces/javaupm_interfaces.i | 10 +++++++++ src/lp8860/javaupm_lp8860.i | 6 +++++- src/max44009/javaupm_max44009.i | 10 ++++++--- src/ms5611/javaupm_ms5611.i | 8 +++++-- src/ms5611/ms5611.hpp | 2 +- src/si1132/javaupm_si1132.i | 16 ++++++-------- src/si7005/javaupm_si7005.i | 12 +++++++---- src/t6713/javaupm_t6713.i | 6 +++++- 24 files changed, 141 insertions(+), 44 deletions(-) diff --git a/examples/java/BME280_InterfaceExample.java b/examples/java/BME280_InterfaceExample.java index 0fbf9f26..62125c88 100644 --- a/examples/java/BME280_InterfaceExample.java +++ b/examples/java/BME280_InterfaceExample.java @@ -24,6 +24,7 @@ */ import upm_bmp280.*; +import upm_interfaces.*; public class BME280_InterfaceExample { diff --git a/examples/java/CMakeLists.txt b/examples/java/CMakeLists.txt index a6cf79a9..777cceb2 100644 --- a/examples/java/CMakeLists.txt +++ b/examples/java/CMakeLists.txt @@ -17,13 +17,26 @@ macro(add_example_with_path example_name jar_path jar_name) add_dependencies(${example_name} javaupm_${jar_name}) endmacro() +macro(add_example_multiple_jars example_name example_jar_name jar_name_list) + set(example_src "${example_name}.java") + + set(list_of_jars "") + foreach(jar_name ${jar_name_list}) + set(example_jar "${CMAKE_CURRENT_BINARY_DIR}/../../src/${jar_name}/upm_${jar_name}.jar") + list(APPEND list_of_jars ${example_jar}) + endforeach() + + add_jar(${example_name} SOURCES ${example_src} INCLUDE_JARS ${list_of_jars}) + add_dependencies(${example_name} javaupm_${example_jar_name}) +endmacro() + add_example(A110X_intrSample a110x) add_example(A110XSample a110x) add_example(ADC121C021Sample adc121c021) add_example(Adxl345Sample adxl345) add_example(Apds9002 apds9002) add_example(BISS0001Sample biss0001) -add_example(BMPX8XSample bmpx8x) +add_example_multiple_jars(BMPX8XSample bmpx8x "bmpx8x;interfaces") add_example(BuzzerSample buzzer) add_example(CJQ4435Sample cjq4435) add_example(DS1307Sample ds1307) @@ -150,7 +163,7 @@ endif() if (JPEG_FOUND) add_example(VCAP_Example vcap) endif() -add_example(BMP280_Example bmp280) +add_example_multiple_jars(BMP280_Example bmp280 "bmp280;interfaces") add_example(BNO055_Example bno055) add_example(BMX055_Example bmx055) add_example(NMEAGPS_Example nmea_gps) @@ -165,7 +178,7 @@ add_example(ECEZO_Example ecezo) add_example(IMS_Example ims) add_example(MB704X_Example mb704x) add_example(MCP2515_Example mcp2515) -add_example(Ads1015Sample ads1x15) +add_example_multiple_jars(Ads1015Sample ads1x15 "ads1x15;interfaces") add_example(MAX30100_Example max30100) add_example(Ads1115Sample ads1x15) add_example(SensorTemplateSample sensortemplate) @@ -182,10 +195,10 @@ add_example_with_path(Lcm1602_i2cSample lcm1602 lcm1602) add_example_with_path(Lcm1602_parallelSample lcm1602 lcm1602) add_example_with_path(SSD1308_oledSample lcd i2clcd) add_example_with_path(SSD1327_oledSample lcd i2clcd) -add_example_with_path(BME280_Example bmp280 bmp280) +add_example_multiple_jars(BME280_Example bmp280 "bmp280;interfaces") if(SWIG_VERSION VERSION_GREATER 3.0.8) - add_example_with_path(BME280_InterfaceExample bmp280 bmp280) + add_example_multiple_jars(BME280_InterfaceExample bmp280 "bmp280;interfaces") endif() add_example_with_path(BMC150_Example bmx055 bmx055) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 539ca749..9d23a1fe 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -431,8 +431,13 @@ macro(upm_swig_java) # See issue #518 # TODO: Fix this somehow swig_add_module (javaupm_${libname} java javaupm_${libname}.i ${module_src}) + + # If the C++ target depends on C++ interfaces, make the JAVA target + # depend on the JAVA interfaces + if ("${_c_cxx_dependency_list}" MATCHES interfaces) + add_dependencies(javaupm_${libname} javaupm_interfaces) + endif () swig_link_libraries (javaupm_${libname} ${MRAAJAVA_LIBRARY} ${JAVA_LIBRARIES} ${libname}) - add_dependencies(javaupm_${libname} ${libname}) target_include_directories ( ${SWIG_MODULE_javaupm_${libname}_REAL_NAME} PUBLIC "${JAVA_INCLUDE_DIRS}" @@ -472,7 +477,8 @@ macro(upm_swig_java) POST_BUILD COMMAND cmake -E echo "Compiling java.." COMMAND cmake -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/upm_${libname} - COMMAND ${JAVAC} *.java -d ${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${JAVAC} *.java -d ${CMAKE_CURRENT_BINARY_DIR} -cp ${CMAKE_BINARY_DIR}/src/interfaces/upm_interfaces.jar:. + COMMAND cmake -E echo "Creating jar" COMMAND ${JAR} cvf upm_${libname}.jar upm_${libname} ) @@ -668,6 +674,9 @@ endfunction (UPM_MIXED_MODULE_INIT) function(upm_module_init) set (basename ${libname}) + # Save off ARGN as target dependency list for use in any macros below + set (_c_cxx_dependency_list ${ARGN}) + # If this is a C library, handle different collateral naming if (IS_C_LIBRARY) set (libname ${libname}-c) diff --git a/src/ads1x15/javaupm_ads1x15.i b/src/ads1x15/javaupm_ads1x15.i index fe409bb0..3e83c564 100644 --- a/src/ads1x15/javaupm_ads1x15.i +++ b/src/ads1x15/javaupm_ads1x15.i @@ -1,17 +1,19 @@ %module javaupm_ads1x15 %include "../upm.i" - -%include "../interfaces/javaupm_iADC.i" - %include "typemaps.i" +%import "../interfaces/javaupm_iADC.i" + +%typemap(javaimports) SWIGTYPE %{ +import upm_interfaces.*; +%} + %{ #include "ads1x15.hpp" #include "ads1015.hpp" #include "ads1115.hpp" %} -%include "iADC.hpp" %include "ads1x15.hpp" %include "ads1015.hpp" %include "ads1115.hpp" diff --git a/src/bmp280/javaupm_bmp280.i b/src/bmp280/javaupm_bmp280.i index a1922f3e..a4fb6dce 100644 --- a/src/bmp280/javaupm_bmp280.i +++ b/src/bmp280/javaupm_bmp280.i @@ -1,9 +1,19 @@ %module javaupm_bmp280 -%include "../upm.i" -%include "../interfaces/javaupm_iTemperatureSensor.i" -%include "../interfaces/javaupm_iHumiditySensor.i" -%include "../interfaces/javaupm_iPressureSensor.i" +%import "../interfaces/javaupm_iTemperatureSensor.i" +%import "../interfaces/javaupm_iHumiditySensor.i" +%import "../interfaces/javaupm_iPressureSensor.i" + + +%include "../upm.i" +%include "cpointer.i" +%include "typemaps.i" +%include "arrays_java.i"; +%include "../java_buffer.i" + +%typemap(javaimports) SWIGTYPE %{ + import upm_interfaces.*; +%} %include "bmp280_regs.h" %include "bmp280.hpp" @@ -16,7 +26,6 @@ #include "bme280.hpp" %} - %pragma(java) jniclasscode=%{ static { try { diff --git a/src/bmpx8x/javaupm_bmpx8x.i b/src/bmpx8x/javaupm_bmpx8x.i index fd4f5bd8..d17819f2 100644 --- a/src/bmpx8x/javaupm_bmpx8x.i +++ b/src/bmpx8x/javaupm_bmpx8x.i @@ -1,8 +1,12 @@ %module javaupm_bmpx8x %include "../upm.i" -%include "../interfaces/javaupm_iTemperatureSensor.i" -%include "../interfaces/javaupm_iPressureSensor.i" +%import "../interfaces/javaupm_iTemperatureSensor.i" +%import "../interfaces/javaupm_iPressureSensor.i" + +%typemap(javaimports) SWIGTYPE %{ +import upm_interfaces.*; +%} %{ #include "bmpx8x.hpp" diff --git a/src/ds1808lc/javaupm_ds1808lc.i b/src/ds1808lc/javaupm_ds1808lc.i index 2031bc37..c0a0ca79 100644 --- a/src/ds1808lc/javaupm_ds1808lc.i +++ b/src/ds1808lc/javaupm_ds1808lc.i @@ -1,7 +1,11 @@ %module javaupm_ds1808lc %include "../upm.i" -%include "../interfaces/javaupm_iLightController.i" +%import "../interfaces/javaupm_iLightController.i" + +%typemap(javaimports) SWIGTYPE %{ +import upm_interfaces.*; +%} %include "arrays_java.i"; %include "../java_buffer.i" diff --git a/src/hlg150h/javaupm_hlg150h.i b/src/hlg150h/javaupm_hlg150h.i index 0abbfaa4..d0904464 100644 --- a/src/hlg150h/javaupm_hlg150h.i +++ b/src/hlg150h/javaupm_hlg150h.i @@ -1,13 +1,17 @@ %module javaupm_hlg150h + %include "../upm.i" - -%include "../interfaces/javaupm_iLightController.i" - %include "arrays_java.i"; %include "../java_buffer.i" %include "cpointer.i" %include "typemaps.i" +%import "../interfaces/javaupm_iLightController.i" + +%typemap(javaimports) SWIGTYPE %{ +import upm_interfaces.*; +%} + %{ #include "hlg150h.hpp" %} diff --git a/src/interfaces/javaupm_iADC.i b/src/interfaces/javaupm_iADC.i index d48b8913..843f7f83 100644 --- a/src/interfaces/javaupm_iADC.i +++ b/src/interfaces/javaupm_iADC.i @@ -7,3 +7,6 @@ %include "javaupm_iModuleStatus.i" %include "iADC.hpp" +%{ + #include "iADC.hpp" +%} \ No newline at end of file diff --git a/src/interfaces/javaupm_iCO2Sensor.i b/src/interfaces/javaupm_iCO2Sensor.i index d6e56212..61e95968 100644 --- a/src/interfaces/javaupm_iCO2Sensor.i +++ b/src/interfaces/javaupm_iCO2Sensor.i @@ -3,7 +3,11 @@ %interface_impl(upm::ICO2Sensor); #endif +%include "stdint.i" %include "javaupm_interfaces.i" %include "javaupm_iModuleStatus.i" %include "iCO2Sensor.hpp" +%{ + #include "iCO2Sensor.hpp" +%} \ No newline at end of file diff --git a/src/interfaces/javaupm_iHumiditySensor.i b/src/interfaces/javaupm_iHumiditySensor.i index 3c73c68b..4514ae6f 100644 --- a/src/interfaces/javaupm_iHumiditySensor.i +++ b/src/interfaces/javaupm_iHumiditySensor.i @@ -7,3 +7,6 @@ %include "javaupm_iModuleStatus.i" %include "iHumiditySensor.hpp" +%{ + #include "iHumiditySensor.hpp" +%} \ No newline at end of file diff --git a/src/interfaces/javaupm_iLightController.i b/src/interfaces/javaupm_iLightController.i index 12cdae75..fe3206c8 100644 --- a/src/interfaces/javaupm_iLightController.i +++ b/src/interfaces/javaupm_iLightController.i @@ -7,3 +7,6 @@ %include "javaupm_iModuleStatus.i" %include "iLightController.hpp" +%{ + #include "iLightController.hpp" +%} \ No newline at end of file diff --git a/src/interfaces/javaupm_iLightSensor.i b/src/interfaces/javaupm_iLightSensor.i index 3bae25fe..72456a3a 100644 --- a/src/interfaces/javaupm_iLightSensor.i +++ b/src/interfaces/javaupm_iLightSensor.i @@ -7,3 +7,6 @@ %include "javaupm_iModuleStatus.i" %include "iLightSensor.hpp" +%{ + #include "iLightSensor.hpp" +%} \ No newline at end of file diff --git a/src/interfaces/javaupm_iModuleStatus.i b/src/interfaces/javaupm_iModuleStatus.i index f56f152a..133c7aac 100644 --- a/src/interfaces/javaupm_iModuleStatus.i +++ b/src/interfaces/javaupm_iModuleStatus.i @@ -4,3 +4,6 @@ #endif %include "iModuleStatus.hpp" +%{ + #include "iModuleStatus.hpp" +%} diff --git a/src/interfaces/javaupm_iPressureSensor.i b/src/interfaces/javaupm_iPressureSensor.i index 00cde052..acb37b23 100644 --- a/src/interfaces/javaupm_iPressureSensor.i +++ b/src/interfaces/javaupm_iPressureSensor.i @@ -7,3 +7,6 @@ %include "javaupm_iModuleStatus.i" %include "iPressureSensor.hpp" +%{ + #include "iPressureSensor.hpp" +%} \ No newline at end of file diff --git a/src/interfaces/javaupm_iTemperatureSensor.i b/src/interfaces/javaupm_iTemperatureSensor.i index 3d2442df..699df32b 100644 --- a/src/interfaces/javaupm_iTemperatureSensor.i +++ b/src/interfaces/javaupm_iTemperatureSensor.i @@ -7,3 +7,6 @@ %include "javaupm_iModuleStatus.i" %include "iTemperatureSensor.hpp" +%{ + #include "iTemperatureSensor.hpp" +%} \ No newline at end of file diff --git a/src/interfaces/javaupm_interfaces.i b/src/interfaces/javaupm_interfaces.i index 93f4d973..cd582af7 100644 --- a/src/interfaces/javaupm_interfaces.i +++ b/src/interfaces/javaupm_interfaces.i @@ -1,5 +1,15 @@ %module javaupm_interfaces +%include javaupm_iModuleStatus.i +%include javaupm_iADC.i +%include javaupm_iCO2Sensor.i +%include javaupm_iHumiditySensor.i +%include javaupm_iLightController.i +%include javaupm_iLightSensor.i +%include javaupm_iPressureSensor.i +%include javaupm_iTemperatureSensor.i + + %pragma(java) jniclasscode=%{ static { try { diff --git a/src/lp8860/javaupm_lp8860.i b/src/lp8860/javaupm_lp8860.i index 32e1f654..7e21393a 100644 --- a/src/lp8860/javaupm_lp8860.i +++ b/src/lp8860/javaupm_lp8860.i @@ -1,9 +1,13 @@ %module javaupm_lp8860 -%include "../interfaces/javaupm_iLightController.i" +%import "../interfaces/javaupm_iLightController.i" %include "../upm.i" +%typemap(javaimports) SWIGTYPE %{ +import upm_interfaces.*; +%} + %{ #include "lp8860.hpp" %} diff --git a/src/max44009/javaupm_max44009.i b/src/max44009/javaupm_max44009.i index 08275933..cc788a96 100644 --- a/src/max44009/javaupm_max44009.i +++ b/src/max44009/javaupm_max44009.i @@ -1,13 +1,17 @@ %module javaupm_max44009 + %include "../upm.i" - -%include "../interfaces/javaupm_iLightSensor.i" - %include "arrays_java.i"; %include "../java_buffer.i" %include "cpointer.i" %include "typemaps.i" +%import "../interfaces/javaupm_iLightSensor.i" + +%typemap(javaimports) SWIGTYPE %{ +import upm_interfaces.*; +%} + %{ #include "max44009.hpp" %} diff --git a/src/ms5611/javaupm_ms5611.i b/src/ms5611/javaupm_ms5611.i index b2878d6b..3ef03e02 100644 --- a/src/ms5611/javaupm_ms5611.i +++ b/src/ms5611/javaupm_ms5611.i @@ -1,8 +1,12 @@ %module javaupm_ms5611 %include "../upm.i" -%include "../interfaces/javaupm_iTemperatureSensor.i" -%include "../interfaces/javaupm_iPressureSensor.i" +%import "../interfaces/javaupm_iTemperatureSensor.i" +%import "../interfaces/javaupm_iPressureSensor.i" + +%typemap(javaimports) SWIGTYPE %{ +import upm_interfaces.*; +%} %{ #include "ms5611.hpp" diff --git a/src/ms5611/ms5611.hpp b/src/ms5611/ms5611.hpp index b3f667b4..95eee3b3 100644 --- a/src/ms5611/ms5611.hpp +++ b/src/ms5611/ms5611.hpp @@ -58,7 +58,7 @@ namespace upm * @snippet ms5611.cxx Interesting */ -class MS5611 : public IPressureSensor, ITemperatureSensor +class MS5611 : public IPressureSensor, public ITemperatureSensor { public: enum OsrMode diff --git a/src/si1132/javaupm_si1132.i b/src/si1132/javaupm_si1132.i index 01d17138..8f5c41e5 100644 --- a/src/si1132/javaupm_si1132.i +++ b/src/si1132/javaupm_si1132.i @@ -6,7 +6,11 @@ %include "../upm.i" -%include "../interfaces/javaupm_iLightSensor.i" +%import "../interfaces/javaupm_iLightSensor.i" + +%typemap(javaimports) SWIGTYPE %{ +import upm_interfaces.*; +%} %pragma(java) jniclasscode=%{ static { @@ -19,17 +23,9 @@ } %} +%include "si1132.hpp" %{ #include "si1132.hpp" %} -/* -%include "../iModuleStatus.hpp" -%include "../iLightSensor.hpp" - -%feature("director") IModuleStatus; -%feature("director") ILightSensor; -*/ - -%include "si1132.hpp" diff --git a/src/si7005/javaupm_si7005.i b/src/si7005/javaupm_si7005.i index eec60aa2..88e40c27 100644 --- a/src/si7005/javaupm_si7005.i +++ b/src/si7005/javaupm_si7005.i @@ -1,14 +1,18 @@ %module javaupm_si7005 + %include "../upm.i" - -%include "../interfaces/javaupm_iTemperatureSensor.i" -%include "../interfaces/javaupm_iHumiditySensor.i" - %include "arrays_java.i"; %include "../java_buffer.i" %include "cpointer.i" %include "typemaps.i" +%import "../interfaces/javaupm_iTemperatureSensor.i" +%import "../interfaces/javaupm_iHumiditySensor.i" + +%typemap(javaimports) SWIGTYPE %{ +import upm_interfaces.*; +%} + %{ #include "si7005.hpp" %} diff --git a/src/t6713/javaupm_t6713.i b/src/t6713/javaupm_t6713.i index 7c2844d8..70c3a470 100644 --- a/src/t6713/javaupm_t6713.i +++ b/src/t6713/javaupm_t6713.i @@ -1,13 +1,17 @@ %module javaupm_t6713 %include "../upm.i" -%include "../interfaces/javaupm_iCO2Sensor.i" +%import "../interfaces/javaupm_iCO2Sensor.i" %include "arrays_java.i"; %include "../java_buffer.i" %include "cpointer.i" %include "typemaps.i" +%typemap(javaimports) SWIGTYPE %{ +import upm_interfaces.*; +%} + %{ #include "t6713.hpp" %}