Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "IoT/Commons"

< IoT
(Bluetooth Low-Energy (BLE))
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
Many Eclipse IoT projects implement somewhat similar functionalities in terms of integration with underlying hardware, communication with endpoints over popular IoT protocols, etc.
 
Many Eclipse IoT projects implement somewhat similar functionalities in terms of integration with underlying hardware, communication with endpoints over popular IoT protocols, etc.
  
This page aims at listing how Eclipse IoT projects currently implement, or are looking at implementing, some common features. It should be used as a reference for all Eclipse IoT projects before starting to re-implement something already  
+
This page aims at listing how Eclipse IoT projects currently implement, or are looking at implementing, some common features. It should be used as a reference for all Eclipse IoT projects before starting to re-implement something that is already available from another project.
  
 +
= For Java developers =
  
= Bluetooth LE =
+
== Bluetooth Low-Energy (BLE) ==
  
== Status ==
+
{| border="1" cellpadding="5" cellspacing="0"
 +
|'''Name'''
 +
|BLE API + implementation for Java
 +
|-
 +
|'''Origin'''
 +
|Kura
 +
|-
 +
|'''Description'''
 +
|Kura is providing a Bluetooth LE API implemented using gatttool command line utility.
 +
|-
 +
|'''Location'''
 +
|Source code: https://github.com/eclipse/kura/tree/develop/kura/org.eclipse.kura.linux.bluetooth<br>
 +
Binaries: <code>org.eclipse.kura.linux.bluetooth</code> and <code>org.eclipse.kura.api</code>, in [https://repo.eclipse.org/content/repositories/kura-releases Kura's Nexus repo]
 +
|-
 +
|'''Dependencies'''
 +
|TBD: describe the requirements regarding gatttool and/or point to existing documentation
 +
|-
 +
|'''Relevant CQs'''
 +
|None.
 +
|-
 +
|'''Maturity'''
 +
|Mature – Released in Kura 1.2
 +
|}
  
Kura is providing a Bluetooth LE API implemented using gatttool command line utility which will ship with 
+
== USB ==
[https://projects.eclipse.org/projects/iot.kura/releases/1.2.0 Kura 1.2 release].
+
  
* [API https://github.com/eclipse/kura/tree/develop/kura/org.eclipse.kura.api/src/main/java/org/eclipse/kura/bluetooth]
+
{| border="1" cellpadding="5" cellspacing="0"
* [Implementation https://github.com/eclipse/kura/tree/develop/kura/org.eclipse.kura.linux.bluetooth/src/main/java/org/eclipse/kura/linux/bluetooth]
+
|'''Name'''
 +
|USB API + implementation for Java
 +
|-
 +
|'''Origin'''
 +
|3rd party library ([http://usb4java.org/ usb4java]) + OSGi-wrapping in Kura
 +
|-
 +
|'''Description'''
 +
|A set of OSGi bundles based on usb4java (a Java library around libusb 1.0) to provide developers with access to USB APIs.  
 +
|-
 +
|'''Location'''
 +
|TBD
 +
|-
 +
|'''Dependencies'''
 +
|TBD
 +
|-
 +
|'''Relevant CQs'''
 +
|{{cq|9734}}<br>{{cq|9738}}<br>{{cq|9739}}<br>{{cq|9927}}
 +
|-
 +
|'''Maturity'''
 +
|TBD
 +
|}
  
See also discussion on iot-wg mailing list: https://dev.eclipse.org/mhonarc/lists/iot-wg/msg00460.html
+
== EnOcean ==
  
== Actions ==
+
{| border="1" cellpadding="5" cellspacing="0"
 +
|'''Name'''
 +
|OSGi EnOcean Base Driver
 +
|-
 +
|'''Origin'''
 +
|Eclipse SmartHome
 +
|-
 +
|'''Description'''
 +
|The OSGi EnOcean Base Driver enables applications running on an OSGi software platform to discover and control EnOcean devices. EnOcean is a radio protocol used in Smart Home and Building markets.
 +
|-
 +
|'''Location'''
 +
|Source code: https://github.com/eclipse/smarthome/tree/master/protocols/enocean<br>
 +
|-
 +
|'''Dependencies'''
 +
|TBD
 +
|-
 +
|'''Relevant CQs'''
 +
|None
 +
|-
 +
|'''Maturity'''
 +
|TBD
 +
|}
  
Should BLE be isolated in a bundle with no/minimal dependency on Kura?
+
= Work in progress =
  
= Bluetooth 2.1 =
+
Below is a list of some "commons" that may have been solved/implemented by projects already, or will need to be, but that still need proper documenting.
  
== Status ==
+
* Zigbee stack in Java
 
+
** What is OM2M doing?
No support for Bluetooth 2.1 in Eclipse IoT projects at the moment.
+
* Serial port manipulation in Java
 
+
** RX/TX is causing licence issues
== Actions ==
+
** Kura is using SODA DK (see https://github.com/eclipse/kura/tree/develop/target-platform/org.eclipse.soda.dk.comm)
 
+
* Bluetooth 2.1
Kura is looking at having a javax.bluetooth implementation over BlueZ 5 D-BUS interface.
+
** Kura is looking at having a javax.bluetooth implementation over BlueZ 5 D-BUS interface.
 
+
== Status / Actions ==
+
 
+
Bluetooth 2.1 not available in Eclipse IoT projects at the moment.
+
 
+
= USB =
+
 
+
== Status ==
+
 
+
Kura uses javax.usb which is causing issues on Linux. It is based on usbfs which is not supported since kernel version 2.6
+
 
+
== Actions ==
+
 
+
A replacement would be usb4java http://usb4java.org/ but it is licensed under LGPL. ==> Benjamin contacted usb4java author to discuss a possible relicensing.
+
 
+
= Serial port =
+
 
+
== Status ==
+
 
+
* RX/TX is causing license issues.
+
* SODA DK is aging
+
 
+
== Status / Actions ==
+
 
+
* Kura is using SODA DK (see https://github.com/eclipse/kura/tree/develop/target-platform/org.eclipse.soda.dk.comm)
+
* What are others projects doing for serial?
+
* Should we look at the CDT serial native interface? (see [http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/tree/native/org.eclipse.cdt.native.serial?id=a170ca1895605df9de797fb95115d03fe27ae9af 1] and [http://cdtdoug.ca/?p=661 2]
+
 
+
= Zigbee =
+
 
+
== Status ==
+
 
+
Support for Zigbee in OM2M???
+
 
+
== Actions ==
+
 
+
* Kura is looking at ZB4OSGI APIs. See http://zb4osgi.aaloa.org/
+
 
+
= Enocean =
+
 
+
== Status  ==
+
 
+
Within Eclipse SmartHome there is the reference implementation available for OSGi RfC199 (EnOcean Base Driver): https://github.com/eclipse/smarthome/tree/master/protocols/enocean
+
This can be effectively build on its own and does not have any dependencies to other parts of Eclipse SmartHome. It shares the governance, versioning and release management, but can easily be reused by others.
+
 
+
== Actions ==
+
 
+
* Add to this wiki page a procedure to actually consume the enocean bundle? i.e. indicate p2 or maven repo info, etc.
+

Latest revision as of 05:57, 13 August 2015

Many Eclipse IoT projects implement somewhat similar functionalities in terms of integration with underlying hardware, communication with endpoints over popular IoT protocols, etc.

This page aims at listing how Eclipse IoT projects currently implement, or are looking at implementing, some common features. It should be used as a reference for all Eclipse IoT projects before starting to re-implement something that is already available from another project.

For Java developers

Bluetooth Low-Energy (BLE)

Name BLE API + implementation for Java
Origin Kura
Description Kura is providing a Bluetooth LE API implemented using gatttool command line utility.
Location Source code: https://github.com/eclipse/kura/tree/develop/kura/org.eclipse.kura.linux.bluetooth

Binaries: org.eclipse.kura.linux.bluetooth and org.eclipse.kura.api, in Kura's Nexus repo

Dependencies TBD: describe the requirements regarding gatttool and/or point to existing documentation
Relevant CQs None.
Maturity Mature – Released in Kura 1.2

USB

Name USB API + implementation for Java
Origin 3rd party library (usb4java) + OSGi-wrapping in Kura
Description A set of OSGi bundles based on usb4java (a Java library around libusb 1.0) to provide developers with access to USB APIs.
Location TBD
Dependencies TBD
Relevant CQs CQ 9734
CQ 9738
CQ 9739
CQ 9927
Maturity TBD

EnOcean

Name OSGi EnOcean Base Driver
Origin Eclipse SmartHome
Description The OSGi EnOcean Base Driver enables applications running on an OSGi software platform to discover and control EnOcean devices. EnOcean is a radio protocol used in Smart Home and Building markets.
Location Source code: https://github.com/eclipse/smarthome/tree/master/protocols/enocean
Dependencies TBD
Relevant CQs None
Maturity TBD

Work in progress

Below is a list of some "commons" that may have been solved/implemented by projects already, or will need to be, but that still need proper documenting.

Back to the top