The file oc_api.h is the main entry for all server and client related stack functions.An KNX IOT Point API device contains:
- initialization functionality
- Server side Server exposing data points
- Client side Client sending s-mode commands
The Stack implements functionality like:
- the CoAP client and server
- OSCORE security
- .well-known/core discovery
- Table implementation:
- Group object table
- Credential table (e.g. auth/at entries)
- Recipient table
- functionality to handle the s-mode objects & transmission flags.
Therefore an KNX IoT Point API application exist of:
- Code for each specific data points (handling GET/POST)
- own code to talk to hardware
- Device specific (functional specific) callbacks
- main loop
Examples of functional devices :
handling of transmission flags
- Case 1 (write data):
- Received from bus: -st w, any ga
- receiver does: c flags = w -> overwrite object value
- Case 2 (update data):
- Received from bus: -st rp, any ga
- receiver does: c flags = u -> overwrite object value
- Case 3 (inform change):
- sender: updated object value + cflags = t
- Sent: -st w, sending association (1st assigned ga) Note: this will be done when Case 1 & Case 2 have updated a value.
- Case 4 (request & respond):
- sender: c flags = r
- Received from bus: -st r
- Sent: -st rp, sending association (1st assigned ga)
- Case 5 (update at start up):
- sender: c flags = i
- After device restart (power up)
- Sent: -st r, sending association (1st assigned ga)