Before you start

IoT Catalyst Studio offers the user several online designers to easily create IoT drivers. The designers aim to guide the user through an orderly model-driven development methodology.

The development of a new IoT driver in IoT Catalyst involves the following steps:

  • Choice of designer to use
  • Design of the new driver

The choice of the designer strongly depends on the use case.

If you have a modbus device, for example, you can use the modbus designer that allows you to create a driver in a few minutes without the need of writing code. IoT Catalyst offers a lot of designers and natively supports widespread prototyping and educational devices such as the RaspberryPi product family

designers

If the technology of the device you want to integrate is not covered by any of the drivers present in the IoT Catalyst Studio, a "Generic" designer is available that will still allow the user to create an IoT driver quickly and easily.

IoT driver design

The design of a new driver includes:

  • Definition of essential catalog information useful for listing the driver within the IoT Catalyst library.
  • Declaration of the runtime settings
  • Definition of the model
  • Customization of the code generated by IoT Catalyst Studio

The essential catalog informations are: name, description and runtime environment (windows, linux, raspberrypi, etc.)

The Settings are special information that allow you to avoid the hard coding of information realted to an IoT driver that presumably could be changed at runtime (e.g. the communication port, pollling time, etc. ). In this case, the user is invited to declare the settings to make the IoT driver better and more flexible.

The model is the manifest of the IoT driver containing the collection of all its capabilities in terms of data, events, functions, and actions.

IoT Catalyst through its designers helps the user to follow a model-driven design methodology. Defining the model therefore means defining all the data that the driver will produce, the events it will be able to trigger, the functions and actions it will make available to be invoked remotely. Once this is done, IoT Catalyst Studio will generate code for each of the aforementioned elements.

This is the code base that IoT Catalyst will clone every time it is necessary to create a new IoT driver starting from a defined template sending it to a remote execution environment. Using the naming convention of IoT Catalyst the IoT driver template is a Digital Thing and the istance of a Digital Thing is a Container.

This code is usually more than enough to go into production!

IoT driver deploy

To deploy an IoT driver to a running IoT Edge device (an IoT gateway, an industrial PC etc.), IoT Catalyst offers several ways each one available as a 1-click operation.

  • You can save the code in the library to edit it and resume it later;
  • You can download it as a .ZIP archive for further customization and editing;
  • You can save it in the central repository (IoT Catalyst Digital Thing Library), clone from the repo and deploy for immediate execution to an edge that is used for testing and pre-production.

IoT driver customization

If the code generated by IoT Catalyst is not suitable for the purpose, it is possible to extend and modify it at will. The modification may be necessary if the IoT driver you intend to create is very custom, is not supported by IoT Catalyst or if you want to add additional functions.

This customization activity is described in section Customizing Digital Thing Code