The Device SDK simplifies access to the Pub/Sub functionality of the AWS IoT broker via MQTT and provides APIs to interact with Thing Shadows. The SDK has been tested to work with the AWS IoT platform to ensure the best interoperability of a device with the AWS IoT platform. The Device SDK provides functionality to create and maintain a MQTT Connection. It expects to be provided with a Network Connection class that connects and authenticates to AWS IoT using either direct TLS or WebSocket over TLS. This connection is used for any further publish operations. It also allows for subscribing to MQTT topics which will call a configurable callback function when these messages are received on these topics. This SDK implements the specific protocol for Thing Shadows to retrieve, update and delete Thing Shadows adhering to the protocol that is implemented to ensure correct versioning and support for client tokens.
Features
- Designed around the C++11 standard
- This SDK also implements the Jobs protocol to interact with the AWS IoT Jobs service
- Network layer abstracted from the SDK. Can use any TLS library and initialization method
- Support for multiple platforms and compilers. Tested on Linux, Windows (with VS2015) and Mac OS
- Flexibility in picking and choosing functionality, can create Clients which only perform a subset of MQTT operations
- Support for Rapidjson allowing use of complex shadow document structures