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
(Created page with "Many Eclipse IoT projects implement somewhat similar functionalities in terms of integration with underlying hardware, communication with endpoints over popular IoT protocols,...")
 
(Bluetooth Low-Energy (BLE))
 
(11 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) ==
  
Kura is providing a Bluetooth LE API implemented using gatttool command line utility.
+
{| border="1" cellpadding="5" cellspacing="0"
* [API https://github.com/eclipse/kura/tree/develop/kura/org.eclipse.kura.api/src/main/java/org/eclipse/kura/bluetooth]
+
|'''Name'''
* [Implementation https://github.com/eclipse/kura/tree/develop/kura/org.eclipse.kura.linux.bluetooth/src/main/java/org/eclipse/kura/linux/bluetooth]
+
|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
 +
|}
  
See also discussion on iot-wg mailing list: https://dev.eclipse.org/mhonarc/lists/iot-wg/msg00460.html
+
== USB ==
  
== Status ==
+
{| border="1" cellpadding="5" cellspacing="0"
 +
|'''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
 +
|}
  
[https://projects.eclipse.org/projects/iot.kura/releases/1.2.0 Kura 1.2 release] will ship with BLE support.
+
== EnOcean ==
  
Should BLE be isolated in a bundle with no/minimal dependency on Kura?
+
{| 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
 +
|}
  
= Bluetooth 2.1 =
+
= Work in progress =
  
Kura is looking at having a javax.bluetooth implementation over BlueZ 5 D-BUS interface.
+
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.
  
= USB =
+
* Zigbee stack in Java
 
+
** What is OM2M doing?
Kura uses javax.usb which is causing issues on Linux. It is based on usbfs which is not supported since kernel version 2.6
+
* Serial port manipulation in Java
A replacement would be usb4java http://usb4java.org/ but it is licensed under LGPL.
+
** RX/TX is causing licence issues
 
+
** Kura is using SODA DK (see https://github.com/eclipse/kura/tree/develop/target-platform/org.eclipse.soda.dk.comm)
== Status ==
+
* Bluetooth 2.1
 
+
** Kura is looking at having a javax.bluetooth implementation over BlueZ 5 D-BUS interface.
Benjamin contacted usb4java author to discuss a possible relicensing.
+
 
+
= Serial port =
+
 
+
RX/TX is causing license issues.
+
Is the serial native interface from CDT a viable alternative? (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 =
+
 
+
As of May 2015, Kura is looking at ZB4OSGI APIs. See http://zb4osgi.aaloa.org/
+

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