Everyware Software Framework Developer's Hub

Everyware Software Framework (ESF) is an enterprise-ready IoT Edge Framework distributed and supported by Eurotech. Based on Eclipse Kura, the open source Java/OSGi middleware for IoT gateways, ESF adds provisioning, advanced security, remote access, diagnostics monitoring. It supports ready-to-use field protocols (including Modbus, OPC-UA, S7), MQTT connectivity, and a web-based visual data flow programming to acquire data from the field, process it at the edge, and publish it to IoT Cloud Platforms. ESF features full remote device management through its integration with Everyware Cloud, Eurotech’s IoT Integration Platform.

Get Started

A Driver encapsulates the communication protocol and its configuration parameters.

The Driver API abstracts the specificities of the end Fieldbus protocols providing a clean and easy to use set of calls that can be used to develop end-applications.

Using the Driver APIs, an application can simply use the connect and disconnect methods to open or close the connection with the Field device. Furthermore, the read and write methods allow exchanging​ data with the Field device.

A Driver instance can be associated with an Asset to abstract even more the low-level specificities and allow an easy and portable development of the Java applications that need to interact with sensors, actuators, and PLCs.

The Asset will use the Driver's protocol-specific channel descriptor to compose the Asset Channel description.

Driver Configuration

Generally, a Driver instance is a configurable component which parameters can be updated in the Drivers and Assets section of the ESF Administrative User Interface.

Supported Field Protocols and Availability

Drivers will be provided as add-ons available in the Eclipse IoT Marketplace.

Currently, supported drivers are:

Driver-Specific Optimizations

The Driver API provides a simple method to read a list of Channel Records:

public void read(List<ChannelRecord> records) throws ConnectionException;

Typically, since the records to read do not change until the Asset configuration is changed by the user, a Driver can perform some optimisations to efficiently read the requested records at once. For example, a Modbus driver can read a range of holding registers using a single request.

Since these operations are costly, the ESF API adds methods to ask the driver to prepare reading a given list of records and execute the prepared read:

 public PreparedRead prepareRead(List<ChannelRecord> records);

Invocation of the preparedRead method will result in a PreparedRead instance returned.

On a PreparedRead, the execute method will perform the optimized read request.

Drivers