...
Registration can also occur when a registration request is received from the server (the sync INFO topic “register” command).
Once authenticated, the HW sends Gumband registration event to the Cloud Server and Exhibit Server at the topic: <hardware_id>/registration
Registration events should be logged on the server side
Registration events have an initial JSON message body identifying the device and the total number of peripherals, followed by individual registration messages for each property of every peripheral. Outline below:
...
Command | Text | Description |
host | xxx.xxx.xxx.xxx:xxxx | Exhibit server host IP and Port |
reboot | - | Reboot the Gumband Hardware |
register | - | Request the hardware to register with the Cloud Server (current functionality of the “sync” SYNC topic) |
get | - | Request the hardware to publish all of it’s current property values |
firmware | - | Enter Device Firmware Update (DFU) mode on Gumband Hardware using the existing Cloud MQTT socket |
firmware_socket | - | Enter Device Firmware Update (DFU) mode on Gumband Hardware using a dedicated TCP socket on port 23 (this only works if that port is not already connected) |
control | true/false | Set to true to enable debug mode whereby peripheral control messages can be sent from the Cloud |
identify | - | Blink the on board LED to identify this hardware device |
error | (see below table) | Allows Gumband server to send error codes to the hardware |
...
Controllable exhibit events are structured as "settable" properties
The Exhibit Broker should be subscribed to every property exposed in the capabilities registration
<hardware_id>/{peripheralName}/{propertyName}
Writing to properties
For every "settable" property, gumband hardware is subscribed to:
<hardware_id>/{peripheralName}/{propertyName}/set
Reading /Polling from properties
For every property the gumband hardware is subscribed to:
<hardware_id>/{peripheralName}/{propertyName}/get
Note that : this callback is intended to initiate a publish to the associated property but ultimately this is handled in user code so implementation is not guaranteed.
The Exhibit Broker should be subscribed to every property exposed in the capabilities registration
<hardware_id>/{peripheralName}/{propertyName}See more SDK-Hardware Interface Notes
...
Dynamic Hardware ID
Note: This is a suggested method to address a potential issue - this is not currently implemented
...