WISE-PaaS 2.0 EI-Agent

From ESS-WIKI
Revision as of 04:39, 17 May 2017 by Scott68.chang (talk | contribs) (Add Architecture)
Jump to: navigation, search

EI-Agent – a software development framework to communicate between device and IoT/EI-PaaS Server.

Advantech provides a software development framework to communicate and exchange information between a device and IoT/EI-PaaS Server, called a EI-Agent framework.
The EI-Agent framework provides a rich set of user-friendly, intelligent and integrated interfaces, which speeds development, enhances security and makes agent application easier and simpler to communicate with IoT/EI-PaaS Server.
The framework has three benefits:

  • Standardization - The communication protocol is based on the MQTT protocol to communicate and exchange data with WISE-PaaS/RMM Server. The IoT sensor data report format is following the IPSO Spec. in JSON format.
  • Portability - Whole framework is written in C language and follow the ANSI C Standard, that C compilers are available for most systems and are often the first compiler provided for a new system.
  • Scalability - The WISE Agent Framework is functional partitioning into discrete scalable, reusable modules, and plug & playable. 


Architecture

The EI-Agent Framework is extracted from WISEAgent Framework for severial purpose:

  • Lightweight: Extract and implement common handshake protocol to communicate with WISE-PaaS 2.0 Server.
  • Various Communication Protocol: Extract the Communication Part as a WISEConnector Module. In WISEConnector we can implement various portocol, such as: MQTT, AMPQ, Web Socket, HTTP, to support different communication protocol.

EI-Agent.png

EI-Agent Handshake Protocol

Denfine the MQTT publish/subscribe topics and payload data JSON format.

EI-Agent Sample Client

  • Sample Client - Simple client application example.


EI-Agent Sample Handler

  • ModbusSample - only support Modbus-TCP and Modbus-RTU.

ModbusSample is one of handlers in EI-Agent framework and is used to collect devices’ data based on Modbus TCP or RTU protocol.
The library used in ModbusSample is libmodbus, which is a 3rd party free library to send/receive data according to the Modbus protocol.
This library is written in C and supports RTU (serial) and TCP (Ethernet) communication. The license of libmodbus is LGPL v2.1v.

Source Code