Improve GATT Serial Transport message handling#15
Open
janklabacka wants to merge 1 commit intojacobrosenthal:masterfrom
Open
Improve GATT Serial Transport message handling#15janklabacka wants to merge 1 commit intojacobrosenthal:masterfrom
janklabacka wants to merge 1 commit intojacobrosenthal:masterfrom
Conversation
lib/Bean.js - Bean.prototype.send - CRC part of GST buffer (gstBuffer) - gstBuffer sliced to 19-byte chunks (->gstChunk[]) - the chunks then sent via SERIAL_UUID BLE characteristics
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
BLE characteristics transport mechanism limits message length to max 20 bytes. This, in combination with GATT Serial Transport message format of BLE Bean, provides sufficient space for max. 15 characters in one single serial message (in an non-fragmented GST buffer, as implemented by the current algorithm). Attempts to transport longer messages not only fail (as expected), but such malformed messages also appear to trigger bugs in the Bean firmware (so that, ultimately, an affected Bean needs to be cold-restarted).
The modification updates algorithm to the desired state: message payload is split to 19-byte chunks, which are then sent in a sequence as defined by the Bean GST protocol specification.
lib/Bean.js - Bean.prototype.send