SensIDL
The SensIDL (Sensor Interface Description Language) development framework targets sensor developers as well as developers of IT-systems connected to these sensors and processing the collected data. It is an open source development framework based on a model-driven software development (MDSD) approach supporting the sensor developers in specifying and implementing the communication interfaces.
The SensIDL framework consists of several building blocks as illustrated in the figure above:
- SensIDL Language
The SensIDL language is a dedicated domain specific language (DSL) acting as an interface description language (IDL) for specifying the data provided by a smart sensor. Dedicated graphical and textual editors based on the Eclipse Modelling Framework [3] allow an easy and intuitive specification of sensor interfaces. - SensIDL Communication Framework
The communication framework provides basic communication functionalities like marshaling, message handling, etc. through a generic API. It abstratcs communication technology specific details. Such a separation into generic framework code and application specifically generated code is a frequently used pattern in MDSD frameworks. - SensIDL Code Generators
The SensIDL code generators take the interface description based on the SensIDL language as input to automatically generate a sensor- or rather interface-specific API on top of the generic communication framework. Providing a very specific and type safe API reduces the risk of implementation errors resulting in different data interpretations or parsing. Since the generators can be used to generate the sensor-side code as well as the client-side code, the SensIDL does not only ease the sensor implementation but also the implementation of client code to access the sensor data. - Reference Demonstrator
The SensIDL reference demonstrator is not only a demonstrator of project results. It rather is the basis to derive the code generators using a manual implementation of the demonstrator showcase. For this reason, it is a showcase representative for Smart Home applications as well as industrial production scenarios.
- Integrated Toolchain
Although the SensIDL framework consists of several building blocks, we aim on providing an smoothly integrateted tool. We selected the ecplise plattform as a basis for implementing and integrating the SensIDL tool chain. With the ecplise modeling framework (EMF) and XText, the eclipse modeling project provides extensive support for the implementation of DSLs and corresponding editors. Furthermore, Xtend is a powerful basis to implement code generators.