UIC.NET Home - CDE-GMA/UIC.net-mono.c-sharp GitHub Wiki
Universal IoT Connector .NET reference implementation
The SGeT UIC.NET Reference Implementation is meant to simplify the way of creating connected appliances with embedded systems. Such an appliance consists of different parts, mainly:
- Sensors and Actors which control the environment on site
- an Embedded Systems as the local brain that controls the local installation including different responsibilities such as
- Hardware Driver and Interfaces access
- Operating System
- Communication with other Systems and more Import with the IP-driven Internet Universe
- Local UI
- etc.
- Connectivity
- Device- and Data-Management as part of a backend/ IoT system
- Application Server
- Web Portals and Apps
All parts need to interact with each other in order to build a successful solution. To master the complexity of such a solution is one of the main challenges for many companies. The SGeT UIC.NET Reference Implementation provides you a hands on approach to standardize the solution architecture from a embedded system perspective.
To master this challenge the SGeT STD.04 standardization group published the Universal IoT Connector (UIC) standard. At the core this standard is a pure interface description which define the structure and the information flow of a smart connected solution from an embedded system perspective. The focus was set on openness and exchangeability of all layers in the solution stack. The main building blocks are defined by the following interfaces:
-
UniversalIotConnector: is the local brain and orchestrates the measure from EDMs based on the project configuration and pushes the data to communication agent
-
Embedded Driver Module (EDM): an Embedded Driver Module is an easy way of adding a certain function or feature to a solution based on the UIC Framework. For invalid provided parameters, an ArgumentException should be thrown since an EDM can't do any "repairs". The EDM is responsible to manage the necessary resources and expose the information to the UniversalIotConnector. The main capabilities of an EDMs are to handle datapoint and attribute measures (sensors and settings) and to execute commands
-
CommunicationAgent: translates the measures from the EDMs (datapoint and attribute values) and forwards the data to a server, a cloud or any other foreign system. In the other direction it revceives commands from the outside world and notifies the UniversalIotConnector about the incomming commands
-
UicProject: defines the setup of a concrete emebedded systems. Therefore it ressembels the datapoints and attributes from the different EDMs and adds some meta information to influence the run time behavior ot the whole solution. The project consists mainly of:
- ProjectKey - a key to identify a single project
- Name
- Attributes[] - the attributes to read and push to the communication agent
- DatapointTasks[] - the datapoints to monitor and push to the communication agent
-
ProjectAgent: is responsible to load a project on startup and provide to the UniversalIotConnector. The project may be locally read from disk or loaded from a remote configuration server.