...
Sequence | Source | Message | Destination |
1 | Gumband Hardware | Subscribe Authenticate | Cloud Server |
2 | Cloud Server | Authenticate | Gumband Hardware |
3 | Gumband Hardware | Authenticate | Cloud Server |
4 | Cloud Server | Authenticate response | Gumband Hardware |
5 | Gumband Hardware | Subscribe SYNC | Cloud Server |
6 | Gumband Hardware | Subscribe INFO | Cloud Server |
7 | Gumband Hardware | Subscribe all peripheral topics1 | Cloud Server |
8 | Gumband Hardware | Publish REGISTRATION | Cloud Server |
9 | Cloud Server | Publish exhibit HOST to INFO2 | Gumband Hardware |
10 | Cloud Server | Publish Debug status | Gumband Hardware |
11 | Gumband Hardware | Start Exhibit Registration3 | Exhibit Server |
12 | Gumband Hardware | Heartbeat (Every 16s) | Cloud Server |
Note:
For Debug only
Should be implemented on every connection but only required if the hardware does not already have a saved exhibit server address or if the address has changed
If the hardware already holds an exhibit address this will happen in parallel with the master connection
Exhibit Registration
Sequence | Source | Message | Destination |
1 | Gumband Hardware | Subscribe Authenticate | Exhibit Server |
2 | Exhibit Server | Authenticate | Gumband Hardware |
3 | Gumband Hardware | Authenticate | Exhibit Server |
4 | Exhibit Server | Authenticate response | Gumband Hardware |
5 | Gumband Hardware | Subscribe all peripheral topics | Exhibit Server |
6 | Gumband Hardware | Heartbeat (Every 16s) | Exhibit Server |
...
Controllable exhibit events are structured as "settable" properties
Writing to properties
...
For every "settable" property, gumband hardware is subscribed to:
<hardware_id>/{peripheralName}/{propertyName}/set
Reading/Polling 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}
...
Dynamic Hardware ID
Note: This is a suggested method to address a potential issue - this is not currently implemented
...