Flex driver support for multiple device types and protocol versions #154
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Sharing this to discuss the design, not with an intention of this getting merged.
The protocol is described at https://github.com/dividat/sensitronics-firmware/pull/3
Play implementation PR - https://github.com/dividat/diviapps/pull/2478
Some important decisions taken:
DRIVER_PROTOCOL_VERSIONis prepended to the WebSocket messages (note that we do not need encapsulation, since the WebSocket protocol ensures proper framing).S(start) command on connection to the device.Handshake protocol ideas I considered, but did not implement (at least for now):
Minor things:
slices.Concat😛--protocol-versionto replay-flex to be able to replay old recordings