mirror of
https://github.com/eclipse/upm.git
synced 2025-07-02 01:41:12 +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
@ -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"
|
||||
*/
|
||||
|
Reference in New Issue
Block a user