This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF51 UAart Example data loss over bluetooth interface

In looking at the nRF51 UART Example I'm wondering about data loss over the Bluetooth interface.

When bytes are sent to the host, is there a re-transmission mechanism somewhere that insures the bytes actually reach the host? I understand why flow control is needed on the actual UART hardware but what insures that the data actually makes it over the wireless connection without loss? Is there a way for the client to know if it needs to resend some of it's queued data or is the example just send and hope for the best?

Parents
  • Hi, all packets transmitted over a BLE link will be retried infinitely until link loss, all packets are protected by a CRC on the link layer. This is fully handled by the softdevice.

    However on link loss (BLE_GAP_EVT_DISCONNECTED event) the last packet(s) that was in process of being sent might be lost. The application can on next connection establishment (BLE_GAP_EVT_CONNECTED event) do some handshaking on application layer to inquire where data should proceed.

  • Thanks for the explanation. It would seem that if guaranteed delivery of all data is required, some sort of application buffer needs to be maintained along with an acknowledged receipt to retire the leading portion of the buffered data. Sort of like TCP/IP.

Reply Children
No Data
Related