The Software Development Kit SDK for BAOS Binary Services v2 is a C++ client implementation of the KNX BAOS Binary Protocol 2.x via TCP/IP. It can be used for a rapid development of native applications for KNX control which are using the KNX BAOS IP Interfaces.

Compared to BAOS SDK v1 the new version has a smaller footprint and does not require external libraries. Currently the version 2 is limited to BAOS IP protocol and can be used for KNX IP BAOS devices or the KNX Stack for Linux – kTux.

For public use we provide a binary version for different platforms. If you require alternative solutions please contact our sales team.

Characteristics

  • Written in modern C++ 17
  • Usable on Linux desktop and Arm-based platforms (like Raspberry Pi)
  • Minimal external dependencies

What is BAOS ?

It is an acronym for (B)us (A)ccess and (O)bject (S)erver.

The ObjectServer is a software component, which abstracts the connection to the KNX bus. It offers defined “objects” to the client software. These objects are the server properties (called “items”), KNX datapoints (also known as “communication objects” or as “group objects”) and KNX configuration parameters.

Furthermore there are multiple ways to access the BAOS devices and the object server within. This SDK focuses on the BAOS binary protocol.

This proprietary protocol, developed by Weinzierl Engineering GmbH is encapsuled in different transport protocols like FT1.2 or a variation of the KNXnet/Ip protocol.

Three object types exist in the BAOS protocol.

Serveritems

Provide information about the BAOS device itself, like serial number.

Datapoint objects

Represent KNX group objects and optionally a description string for them.

Parameter bytes

A block of generic bytes written during an ETS download, which then can be retrieved during runtime.

Why do we need it?

Creating a complete KNX device requires a deep understanding of the KNX standard, a certified KNX stack and also certification of the device itself and its database. Since the KNX standard is very versatile and supports a wide variety of scenarios, it also has a fairly steep learning curve.

To facilitate the connection to KNX and to relieve this burden, the BAOS products were developed.

Our company provides the ready to use and KNX certified BAOS devices and if required, customization of the ETS database.

A second point is the effort required to stay up to date. Since KNX is a de-centralized system, no central controller stores the current state of the installation.

So to get the latest values a devices has to be present on the bus at all times reading along any group objects related communication. Though the speed of up to 50 telegrams per second at KNX TP is not that much compared to the giga or mega bits/s of ethernet, it may be a challenge to ensure processing all those telegrams. The BAOS devices relieve you of this task. Only when the client needs the current value of a datapoint, it is necessary to load it from the BAOS device. No real time reading along on the client side is required.

Further reading

Interested? Then download the package for your platform above and start with the README.md file or the detailed documentation under docs/doxygen_html/index.html.