Skip to content

Improve GATT Serial Transport message handling#15

Open
janklabacka wants to merge 1 commit intojacobrosenthal:masterfrom
janklabacka:improve_gst
Open

Improve GATT Serial Transport message handling#15
janklabacka wants to merge 1 commit intojacobrosenthal:masterfrom
janklabacka:improve_gst

Conversation

@janklabacka
Copy link
Copy Markdown

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

  • CRC part of GST buffer (gstBuffer)
  • gstBuffer sliced to 19-byte chunks (->gstChunk[])
  • the chunks then sent via SERIAL_UUID BLE characteristics

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant