A high level software interface

DINGO-IoT provides you with a high level open platform to develop your own IoT APPs or other software.

Only a lack of imagination can stop you. And if it does, we are here to help!

OVERVIEW

The GO-IoT software stack is intended to give developers high-level programming power for their IoT applications. There's no need to  bother with programming bits and bytes at sensor/device level. We've already done it for them by implementing the DINGO Peripheral Manager and BACnet/IoT.

Please read about the DINGO software stack here...,  before continuing.

The DINGO software stack is all developed in C++ and POCO. Full support is included for the KDevelop RAD environment. We chose this environment to get the smallest footprint and fastest code possible, without losing development-speed.
However developers may choose any other programming environment they want. This is because DINGO software stack is provided with a REST web-service interface (based on BACnet/WS rules), giving the developer total freedom to use whichever dev. environment best suits them.

The BACnet IoT server and client software stack was open-sourced in 2017.

USING REST WEB SERVICES

The DINGO software stack provides full Restful Web Services based on BACnet/WS rules, not only for the BACnet part, but also for the APP-manager, Peripheral Manager and other modules of the software stack.
Key features are:

  • CRUD operations via simple POST-, GET-, PUT- and DELETE-requests.
  • Supports Change Of Value (COV) subscriptions by web socket push notifications.
  • Supports XML and JSON for structured data.
  • Supports plain text for primitive data.
  • Runs under HTTP and HTTPS.
  • Contains authorization - OAuth 2.0

APP DEVELOPMENT

DINGO software stack has a powerful environment to manage APPs. APP parameters can be fully detailed in the DINGO SQLite database. By defining the parameters correctly, those can be viewed and set in DINGO MANAGER or "your manager".
How and when APPs are executed is also configurable via BACnet Scheduling objects.
In addition  APPs can be accessed from BACnet via BACnet Program objects. Allowing other BACnet devices from any vendor to communicate easily with the APP.

Additionally APPs can be configured to be a 'source' to BACnet objects. For example an APP that retrieves weather forcast data from the Internet, can be a source to Analog Input Temperature and Analog Input Rain BACnet objects.

CONTRIBUTE TO BACNET/IOT

We chose BACnet as we couldn't find any other standard that's as well and fully defined in terms of device-to-device communication, both at the Application-layer AND the Network-layer. Furthermore BACnet is an ongoing definition and is widely accepted by the industry.

DINGO BACnet/IOT is a brand new implementation of the BACnet standard.  The BACnet standard is huge. Our implementation today only uses a small part of it. However we continue to add BACnet objects and services by definition as needed. To speed up the process, we've decided to open source our BACnet/IoT so third parties can contribute to the development or add their own proprietary objects and services.

A community is being built around this development.

Read more about BACnet/IoT here...

OTHER PLATFORMS

Although the upper layer of DINGO software stack is based on BACnet, it doesn't prevent development based on other standards or proprietary software not related to BACnet. The BACnet part can easily be "turned off".
DINGO BACKBONE is basically a powerful Linux computer (can also be "Windows 10 IoT" if equipped with the DINGO Raspberry Pi editions of the Computer Board). 
As a result, developers can create whatever software they want within the restrictions of the operating system.
In that case the DINGO Peripheral Manager library is very useful to access peripherals (sensors and actuators) at a semi-high level. Which is much easier than having to develop against GPIOs, GPIO Interrupts, I2C, Modbus and other low-level hardware and buses.
In that case DINGO MANAGER can still be used to configure peripherals, saviing a lot of development work.
 
For more information about DINGO IoT bus support here... 
For more information about DINGO MANAGER here...