mirror of
https://github.com/eclipse/upm.git
synced 2025-07-01 01:11:10 +03:00
SWIG_JAVA: C++ Interfaces to Java interfaces, Modified one Java Example
This commit translates C++ interfaces to Java interfaces, previously C++ Interfaces implemented java classes. * Added java swig interface files for all C++ interfaces to simplify swig javaupm_iADC.i javaupm_iCO2Sensor.i javaupm_iHumiditySensor.i javaupm_iLightController.i javaupm_iLightSensor.i javaupm_iModuleStatus.i javaupm_interfaces.i javaupm_iPressureSensor.i javaupm_iTemperatureSensor.i <example Usage> %include"../interfaces/javaupm_iADC.i" * Modified swig interface files for few sensors that implements interfaces ads1x15 bmp280 bmpx8x ds1808lc hlg150h lp8860 max44009 ms5611 si1132 si7005 t6713 * Removed few methods that were mentioned Protected and made them public, so that menthods can be overridden * Made IModuleStatus virtual to avoid ambiguity in multiple inheritance For example class A {}; class B : public A {}; class C : public A {}; class D : public B, public C {}; This can be solved as class A {}; class B : virtual public A {}; class C : virtual public A {}; class D : public B, public C {}; * Modified java interface files to support multiple swig versions * Modified javaupm interface file to support standard auto load library code * Fixed autoloadlibrary tests for interfaces * Created one interface example separately <BME280_InterfaceExample.java>, <example Usage> BME280_InterfaceExample.java since we cann't define swig versions inside java example file. So, instaed added swig versions in Cmake. <example Usage> if (SWIG_VERSION VERSION_GREATER 3.0.8) add_example_with_path(BME280_InterfaceExample bmp280 bmp280) endif() Signed-off-by: sisinty sasmita patra <sisinty.s.patra@intel.com>
This commit is contained in:

committed by
Sasmita Patra

parent
f8663c90f3
commit
1f18369fbe
@ -1,5 +1,10 @@
|
||||
%module javaupm_ads1x15
|
||||
%include "../upm.i"
|
||||
|
||||
#if SWIG_VERSION >= 0x030009
|
||||
%include"../interfaces/javaupm_iADC.i"
|
||||
#endif
|
||||
|
||||
%include "typemaps.i"
|
||||
|
||||
%{
|
||||
@ -8,14 +13,11 @@
|
||||
#include "ads1115.hpp"
|
||||
%}
|
||||
|
||||
%include "iModuleStatus.hpp"
|
||||
%include "iADC.hpp"
|
||||
%include "ads1x15.hpp"
|
||||
%include "ads1015.hpp"
|
||||
%include "ads1115.hpp"
|
||||
|
||||
|
||||
|
||||
%pragma(java) jniclasscode=%{
|
||||
static {
|
||||
try {
|
||||
|
@ -1,14 +1,22 @@
|
||||
%module javaupm_bmp280
|
||||
%include "../upm.i"
|
||||
|
||||
#if SWIG_VERSION >= 0x030009
|
||||
%include "../interfaces/javaupm_iTemperatureSensor.i"
|
||||
%include "../interfaces/javaupm_iHumiditySensor.i"
|
||||
%include "../interfaces/javaupm_iPressureSensor.i"
|
||||
#else
|
||||
%include "iModuleStatus.hpp"
|
||||
%include "iTemperatureSensor.hpp"
|
||||
%include "iPressureSensor.hpp"
|
||||
%include "iHumiditySensor.hpp"
|
||||
#endif
|
||||
|
||||
%include "cpointer.i"
|
||||
%include "typemaps.i"
|
||||
%include "arrays_java.i";
|
||||
%include "../java_buffer.i"
|
||||
|
||||
%include "iModuleStatus.hpp"
|
||||
%include "iHumiditySensor.hpp"
|
||||
%include "iPressureSensor.hpp"
|
||||
%include "iTemperatureSensor.hpp"
|
||||
%include "bmp280.hpp"
|
||||
%{
|
||||
#include "bmp280.hpp"
|
||||
|
@ -1,6 +1,11 @@
|
||||
%module javaupm_bmpx8x
|
||||
%include "../upm.i"
|
||||
|
||||
#if SWIG_VERSION >= 0x030009
|
||||
%include "../interfaces/javaupm_iTemperatureSensor.i"
|
||||
%include "../interfaces/javaupm_iPressureSensor.i"
|
||||
#endif
|
||||
|
||||
%{
|
||||
#include "bmpx8x.hpp"
|
||||
%}
|
||||
@ -16,4 +21,4 @@
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
%}
|
||||
%}
|
||||
|
@ -26,7 +26,6 @@ DS1808LC::~DS1808LC()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool DS1808LC::isPowered()
|
||||
{
|
||||
return static_cast<bool>(MraaUtils::getGpio(pinPower));
|
||||
|
@ -56,7 +56,6 @@ public:
|
||||
DS1808LC(int gpioPower, int i2cBus);
|
||||
~DS1808LC();
|
||||
|
||||
protected:
|
||||
const char* getModuleName() { return "ds1808lc"; }
|
||||
bool isPowered();
|
||||
void setPowerOn();
|
||||
|
@ -1,5 +1,10 @@
|
||||
%module javaupm_ds1808lc
|
||||
%include "../upm.i"
|
||||
|
||||
#if SWIG_VERSION >= 0x030009
|
||||
%include "../interfaces/javaupm_iLightController.i"
|
||||
#endif
|
||||
|
||||
%include "arrays_java.i";
|
||||
%include "../java_buffer.i"
|
||||
%include "cpointer.i"
|
||||
@ -9,8 +14,6 @@
|
||||
#include "ds1808lc.hpp"
|
||||
%}
|
||||
|
||||
%include "iModuleStatus.hpp"
|
||||
%include "iLightController.hpp"
|
||||
%include "ds1808lc.hpp"
|
||||
|
||||
%pragma(java) jniclasscode=%{
|
||||
|
@ -58,13 +58,12 @@ public:
|
||||
HLG150H(int pinRelay, int pinPWM);
|
||||
~HLG150H();
|
||||
|
||||
protected:
|
||||
virtual int getBrightness();
|
||||
const char* getModuleName() { return "hlg150h"; }
|
||||
void setPowerOn();
|
||||
void setPowerOff();
|
||||
bool isPowered();
|
||||
void setBrightness(int dutyPercent);
|
||||
int getBrightness();
|
||||
|
||||
private:
|
||||
mraa::Result status;
|
||||
|
@ -1,5 +1,10 @@
|
||||
%module javaupm_hlg150h
|
||||
%include "../upm.i"
|
||||
|
||||
#if SWIG_VERSION >= 0x030009
|
||||
%include "../interfaces/javaupm_iLightController.i"
|
||||
#endif
|
||||
|
||||
%include "arrays_java.i";
|
||||
%include "../java_buffer.i"
|
||||
%include "cpointer.i"
|
||||
|
@ -35,7 +35,7 @@ namespace upm
|
||||
* @brief Interface for ADC Sensors
|
||||
*/
|
||||
|
||||
class IADC : public IModuleStatus
|
||||
class IADC : virtual public IModuleStatus
|
||||
{
|
||||
public:
|
||||
virtual unsigned int getResolutionInBits() = 0;
|
||||
|
@ -26,14 +26,13 @@
|
||||
#pragma once
|
||||
#include "iModuleStatus.hpp"
|
||||
|
||||
|
||||
namespace upm
|
||||
{
|
||||
/**
|
||||
* @brief Interface for CO Sensor
|
||||
*/
|
||||
|
||||
class ICO2Sensor : public IModuleStatus
|
||||
class ICO2Sensor : virtual public IModuleStatus
|
||||
{
|
||||
public:
|
||||
virtual uint16_t getPpm() = 0;
|
||||
|
@ -31,7 +31,7 @@ namespace upm
|
||||
* @brief Interface for Humidity Sensors
|
||||
*/
|
||||
|
||||
class IHumiditySensor : public IModuleStatus
|
||||
class IHumiditySensor : virtual public IModuleStatus
|
||||
{
|
||||
public:
|
||||
virtual int getHumidityRelative () = 0;
|
||||
|
@ -41,7 +41,7 @@ namespace upm
|
||||
* @snippet light-controllers.cxx Interesting
|
||||
*/
|
||||
|
||||
class ILightController : public IModuleStatus
|
||||
class ILightController : virtual public IModuleStatus
|
||||
{
|
||||
public:
|
||||
/**
|
||||
|
@ -43,7 +43,7 @@ namespace upm
|
||||
* @snippet light-sensor.cxx Interesting
|
||||
*/
|
||||
|
||||
class ILightSensor : public IModuleStatus
|
||||
class ILightSensor : virtual public IModuleStatus
|
||||
{
|
||||
public:
|
||||
|
||||
|
@ -31,11 +31,11 @@
|
||||
|
||||
namespace upm
|
||||
{
|
||||
/**
|
||||
/*
|
||||
* @brief Interface for Pressue Sensors
|
||||
*/
|
||||
|
||||
class IPressureSensor : public IModuleStatus
|
||||
class IPressureSensor : virtual public IModuleStatus
|
||||
{
|
||||
public:
|
||||
virtual int getPressurePa() = 0;
|
||||
|
@ -31,7 +31,7 @@ namespace upm
|
||||
* @brief Interface for Temperature Sensors
|
||||
*/
|
||||
|
||||
class ITemperatureSensor : public IModuleStatus
|
||||
class ITemperatureSensor : virtual public IModuleStatus
|
||||
{
|
||||
public:
|
||||
virtual int getTemperatureCelsius () = 0;
|
||||
|
6
src/interfaces/javaupm_iADC.i
Normal file
6
src/interfaces/javaupm_iADC.i
Normal file
@ -0,0 +1,6 @@
|
||||
%include <swiginterface.i>
|
||||
%include "javaupm_interfaces.i"
|
||||
%include "javaupm_iModuleStatus.i"
|
||||
%interface_impl(upm::IADC);
|
||||
|
||||
%include "iADC.hpp"
|
6
src/interfaces/javaupm_iCO2Sensor.i
Normal file
6
src/interfaces/javaupm_iCO2Sensor.i
Normal file
@ -0,0 +1,6 @@
|
||||
%include <swiginterface.i>
|
||||
%include "javaupm_interfaces.i"
|
||||
%include "javaupm_iModuleStatus.i"
|
||||
%interface_impl(upm::ICO2Sensor);
|
||||
|
||||
%include "iCO2Sensor.hpp"
|
6
src/interfaces/javaupm_iHumiditySensor.i
Normal file
6
src/interfaces/javaupm_iHumiditySensor.i
Normal file
@ -0,0 +1,6 @@
|
||||
%include <swiginterface.i>
|
||||
%include "javaupm_interfaces.i"
|
||||
%include "javaupm_iModuleStatus.i"
|
||||
%interface_impl(upm::IHumiditySensor);
|
||||
|
||||
%include "iHumiditySensor.hpp"
|
6
src/interfaces/javaupm_iLightController.i
Normal file
6
src/interfaces/javaupm_iLightController.i
Normal file
@ -0,0 +1,6 @@
|
||||
%include <swiginterface.i>
|
||||
%include "javaupm_interfaces.i"
|
||||
%include "javaupm_iModuleStatus.i"
|
||||
%interface_impl(upm::ILightController);
|
||||
|
||||
%include "iLightController.hpp"
|
6
src/interfaces/javaupm_iLightSensor.i
Normal file
6
src/interfaces/javaupm_iLightSensor.i
Normal file
@ -0,0 +1,6 @@
|
||||
%include <swiginterface.i>
|
||||
%include "javaupm_interfaces.i"
|
||||
%include "javaupm_iModuleStatus.i"
|
||||
%interface_impl(upm::ILightSensor);
|
||||
|
||||
%include "iLightSensor.hpp"
|
5
src/interfaces/javaupm_iModuleStatus.i
Normal file
5
src/interfaces/javaupm_iModuleStatus.i
Normal file
@ -0,0 +1,5 @@
|
||||
%include <swiginterface.i>
|
||||
|
||||
%interface_impl(upm::IModuleStatus);
|
||||
|
||||
%include "iModuleStatus.hpp"
|
6
src/interfaces/javaupm_iPressureSensor.i
Normal file
6
src/interfaces/javaupm_iPressureSensor.i
Normal file
@ -0,0 +1,6 @@
|
||||
%include <swiginterface.i>
|
||||
%include "javaupm_interfaces.i"
|
||||
%include "javaupm_iModuleStatus.i"
|
||||
%interface_impl(upm::IPressureSensor);
|
||||
|
||||
%include "iPressureSensor.hpp"
|
6
src/interfaces/javaupm_iTemperatureSensor.i
Normal file
6
src/interfaces/javaupm_iTemperatureSensor.i
Normal file
@ -0,0 +1,6 @@
|
||||
%include <swiginterface.i>
|
||||
%include "javaupm_interfaces.i"
|
||||
%include "javaupm_iModuleStatus.i"
|
||||
%interface_impl(upm::ITemperatureSensor);
|
||||
|
||||
%include "iTemperatureSensor.hpp"
|
@ -1,19 +1,4 @@
|
||||
%module(directors="1") javaupm_interfaces
|
||||
|
||||
%feature("director") IModuleStatus;
|
||||
%feature("director") ILightSensor;
|
||||
%feature("director") ILightController;
|
||||
|
||||
|
||||
%{
|
||||
#include "iModuleStatus.hpp"
|
||||
#include "iLightSensor.hpp"
|
||||
#include "iLightController.hpp"
|
||||
%}
|
||||
|
||||
%include "iModuleStatus.hpp"
|
||||
%include "iLightSensor.hpp"
|
||||
%include "iLightController.hpp"
|
||||
%module javaupm_interfaces
|
||||
|
||||
%pragma(java) jniclasscode=%{
|
||||
static {
|
||||
|
@ -1,26 +0,0 @@
|
||||
%module(directors="1") javaupm_light_sensor
|
||||
|
||||
%{
|
||||
#include "iLightSensor.hpp"
|
||||
%}
|
||||
|
||||
/*
|
||||
%include "../iModuleStatus.hpp"
|
||||
*/
|
||||
%include "iLightSensor.hpp"
|
||||
|
||||
%feature("director") IModuleStatus;
|
||||
%feature("director") ILightSensor;
|
||||
|
||||
%include "iLightSensor.hpp"
|
||||
|
||||
%pragma(java) jniclasscode=%{
|
||||
static {
|
||||
try {
|
||||
System.loadLibrary("javaupm_light_sensor");
|
||||
} catch (UnsatisfiedLinkError e) {
|
||||
System.err.println("Native code library failed to load. \n" + e);
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
%}
|
@ -1,4 +1,5 @@
|
||||
%module jsupm_interfaces
|
||||
/*
|
||||
%include "../upm.i"
|
||||
|
||||
%{
|
||||
@ -9,3 +10,4 @@
|
||||
%include "iModuleStatus.hpp"
|
||||
%include "iLightSensor.hpp"
|
||||
%include "iLightController.hpp"
|
||||
*/
|
||||
|
@ -1,4 +1,5 @@
|
||||
%module pyupm_interfaces
|
||||
/*
|
||||
%include "../upm.i"
|
||||
// Include doxygen-generated documentation
|
||||
%include "pyupm_doxy2swig.i"
|
||||
@ -13,3 +14,4 @@
|
||||
%include "iModuleStatus.hpp"
|
||||
%include "iLightSensor.hpp"
|
||||
%include "iLightController.hpp"
|
||||
*/
|
||||
|
@ -1,4 +1,9 @@
|
||||
%module javaupm_lp8860
|
||||
|
||||
#if SWIG_VERSION >= 0x030009
|
||||
%include "../interfaces/javaupm_iLightController.i"
|
||||
#endif
|
||||
|
||||
%include "../upm.i"
|
||||
|
||||
%{
|
||||
|
@ -56,7 +56,7 @@ class LP8860 : public upm::ILightController
|
||||
public:
|
||||
LP8860(int gpioPower, int i2cBus);
|
||||
~LP8860();
|
||||
const char* getModuleName() { return "lp8860"; }
|
||||
virtual const char* getModuleName() { return "lp8860"; }
|
||||
bool isPowered();
|
||||
void setPowerOn();
|
||||
void setPowerOff();
|
||||
|
@ -1,5 +1,10 @@
|
||||
%module javaupm_max44009
|
||||
%include "../upm.i"
|
||||
|
||||
#if SWIG_VERSION >= 0x030009
|
||||
%include "../interfaces/javaupm_iLightSensor.i"
|
||||
#endif
|
||||
|
||||
%include "arrays_java.i";
|
||||
%include "../java_buffer.i"
|
||||
%include "cpointer.i"
|
||||
|
@ -131,7 +131,7 @@ class MAX44009 : public ILightSensor {
|
||||
*/
|
||||
double getVisibleLux();
|
||||
|
||||
const char* getModuleName() { return "max44009"; }
|
||||
virtual const char* getModuleName() { return "max44009"; }
|
||||
|
||||
private:
|
||||
mraa::Result reset();
|
||||
|
@ -1,6 +1,11 @@
|
||||
%module javaupm_ms5611
|
||||
%include "../upm.i"
|
||||
|
||||
#if SWIG_VERSION >= 0x030009
|
||||
%include "../interfaces/javaupm_iTemperatureSensor.i"
|
||||
%include "../interfaces/javaupm_iPressureSensor.i"
|
||||
#endif
|
||||
|
||||
%{
|
||||
#include "ms5611.hpp"
|
||||
%}
|
||||
|
@ -68,7 +68,7 @@ public:
|
||||
|
||||
MS5611(int i2cBus = 0, int address = MS5611_ADDRESS);
|
||||
~MS5611();
|
||||
const char* getModuleName() { return "ms5611"; }
|
||||
virtual const char* getModuleName() { return "ms5611"; }
|
||||
void setOverSampling(OsrMode osrMode);
|
||||
int getTemperatureCelsius();
|
||||
int getPressurePa();
|
||||
|
@ -1,6 +1,9 @@
|
||||
%module(directors="1") javaupm_si1132
|
||||
%include "../upm.i"
|
||||
%include "../interfaces/javaupm_interfaces.i"
|
||||
|
||||
#if SWIG_VERSION >= 0x030009
|
||||
%include "../interfaces/javaupm_iLightSensor.i"
|
||||
#endif
|
||||
|
||||
%pragma(java) jniclasscode=%{
|
||||
static {
|
||||
|
@ -80,7 +80,7 @@ class SI1132 : public ILightSensor {
|
||||
*/
|
||||
double getVisibleLux();
|
||||
|
||||
const char* getModuleName() { return "si1132"; }
|
||||
virtual const char* getModuleName() { return "si1132"; }
|
||||
|
||||
private:
|
||||
mraa::Result reset();
|
||||
|
@ -1,5 +1,11 @@
|
||||
%module javaupm_si7005
|
||||
%include "../upm.i"
|
||||
|
||||
#if SWIG_VERSION >= 0x030009
|
||||
%include "../interfaces/javaupm_iTemperatureSensor.i"
|
||||
%include "../interfaces/javaupm_iHumiditySensor.i"
|
||||
#endif
|
||||
|
||||
%include "arrays_java.i";
|
||||
%include "../java_buffer.i"
|
||||
%include "cpointer.i"
|
||||
|
@ -32,7 +32,6 @@
|
||||
#define SI7005_ADDRESS ( 0x40 )
|
||||
#define SI7005_NOT_FOUND ( 0x00 )
|
||||
|
||||
|
||||
namespace upm {
|
||||
|
||||
/**
|
||||
@ -99,7 +98,7 @@ class SI7005 : public ITemperatureSensor, public IHumiditySensor {
|
||||
/**
|
||||
* Returns sensor module name
|
||||
*/
|
||||
const char* getModuleName() { return "si7005"; }
|
||||
virtual const char* getModuleName() { return "si7005"; }
|
||||
|
||||
/**
|
||||
* Detects the sensor to ensure it is connected as required.
|
||||
|
@ -1,5 +1,10 @@
|
||||
%module javaupm_t6713
|
||||
%include "../upm.i"
|
||||
|
||||
#if SWIG_VERSION >= 0x030009
|
||||
%include "../interfaces/javaupm_iCO2Sensor.i"
|
||||
#endif
|
||||
|
||||
%include "arrays_java.i";
|
||||
%include "../java_buffer.i"
|
||||
%include "cpointer.i"
|
||||
|
@ -65,11 +65,6 @@ T6713::~T6713()
|
||||
delete i2c;
|
||||
}
|
||||
|
||||
const char* T6713::getModuleName()
|
||||
{
|
||||
return "t6713";
|
||||
}
|
||||
|
||||
uint16_t T6713::getFirmwareRevision()
|
||||
{
|
||||
return(getSensorData(T6713_COMMAND_GET_FIRMWARE_REVISION));
|
||||
|
@ -125,7 +125,7 @@ class T6713 : public ICO2Sensor {
|
||||
/**
|
||||
* Returns sensor module name
|
||||
*/
|
||||
const char* getModuleName();
|
||||
virtual const char* getModuleName() { return "t6713"; }
|
||||
|
||||
/**
|
||||
* Get relative humidity measurement.
|
||||
|
Reference in New Issue
Block a user