v0.3 - Updates to new ThingSet spec
Major update to support new ThingSet v0.3 specification: https://libre.solar/thingset/
- Data objects are now structured in a tree and called nodes. This allows more flexible structuring of the data and is better aligned to other JSON-based APIs.
- The previous concept of categories is replaced with a more powerful concept of parent nodes. These can still be named like previous categories ("conf", "output", etc.) and will keep the commands the same as before.
- Function names aligned with CoAP and HTTP: GET, FETCH, PATCH instead of read, write, etc..
- Functions are not distinguished by their payload anymore (nothing / array / map), but by a text-based or binary identifier as the first byte. Text mode has now '?', '=', '!', '+', '-' instead of just '!'.
- Authentication handled via callback and normal "executable" node instead of dedicated functions in ThingSet library. This allows the user to implement any sort of authentication mechanism, not necessarily via the protocol. (e.g. if the user presses a button on the device)
- Executable nodes can have parameters and don't have to be "void". This is implemented via child nodes of the executable node.
- Coding style improvements and more Doxygen comments
See commit history for more details.