<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/11793/nrf51-uaart-example-data-loss-over-bluetooth-interface</link><description>In looking at the nRF51 UART Example I&amp;#39;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</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 10 Feb 2016 15:38:06 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/11793/nrf51-uaart-example-data-loss-over-bluetooth-interface" /><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44597?ContentTypeID=1</link><pubDate>Wed, 10 Feb 2016 15:38:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ae0fe617-72cf-431d-be7f-9ca4fd05156a</guid><dc:creator>GlennEngel</dc:creator><description>&lt;p&gt;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.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44596?ContentTypeID=1</link><pubDate>Wed, 10 Feb 2016 09:14:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:99f7ba7c-3681-4a8a-9822-ee36a7484539</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;While you are in a connection yes, however when you disconnect no, this is because when you transmit the packet over BLE, it&amp;#39;s not until next connection interval that the peripheral know if the packet was received or not.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44595?ContentTypeID=1</link><pubDate>Wed, 10 Feb 2016 08:59:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:84a48634-37aa-4a57-8773-3e7fc9117cb7</guid><dc:creator>awneil</dc:creator><description>&lt;p&gt;Is there no indication or feedback from the SoftDevice as to which packets were (or were not) successfully transferred end-to-end?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44594?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2016 17:25:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:90238c78-bad7-41fd-8c9b-a0e730ada0c5</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Updated the answer to reflect this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44593?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2016 13:49:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:18fc78bc-822f-4124-9d4c-f3928eb4141e</guid><dc:creator>awneil</dc:creator><description>&lt;p&gt;The fact that the application can&amp;#39;t rely upon data not being lost during a disconnection means that it just can&amp;#39;t rely upon data not being lost at all!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44589?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2016 11:58:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:40b3f279-360a-47c6-b3f8-7d3a0947f3e6</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;It depends on how you look at it, while in a connection all data is reliable, they are sent in the order they are written and application doesn&amp;#39;t need to take any steps to ensure data is successfully transmitted. Once you are disconnected that of course stops.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44592?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2016 11:52:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f6a27547-57c8-4f8b-a2d5-6ba77f4b5ca7</guid><dc:creator>awneil</dc:creator><description>&lt;p&gt;So the answer to the original question, &lt;em&gt;&amp;quot;Is there a way for the client to know if it needs to resend some of it&amp;#39;s queued data&amp;quot;&lt;/em&gt;, is: &amp;quot;&lt;strong&gt;NO&lt;/strong&gt;&amp;quot;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44591?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2016 11:39:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0457ac72-4ce3-410a-b81a-0ba0296b0324</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;If it&amp;#39;s important for the application to continue from the exact place where the BLE_GAP_EVT_DISCONNECTED occured, then you can in the application have some handshaking with the central after BLE_GAP_EVT_CONNECTED to enquire where data should proceed.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44590?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2016 11:23:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ff7398db-5c79-40b1-86f9-df08b3c5fbb6</guid><dc:creator>awneil</dc:creator><description>&lt;p&gt;Yes - but how would the application know if there were outstanding packets that  have not completed the transfer?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44586?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2016 10:30:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1cc34938-43b8-4902-ab38-e48ce3714411</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;On link loss the softdevice will provide a BLE_GAP_EVT_DISCONNECTED event to the application. How you want to handle this is entirely up to the application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44585?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2016 09:48:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0c1f0f17-8c98-4ca7-9776-3437ee034d6d</guid><dc:creator>awneil</dc:creator><description>&lt;p&gt;So how would the application know that it had happened, in order to be able to handle it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44588?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2016 09:08:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:117714a4-b6ea-4a60-8649-19f02145678d</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Yes, that must be handled by the application in some way.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44587?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2016 09:04:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2b779259-5c75-4d86-b717-6ba4ab4c245a</guid><dc:creator>awneil</dc:creator><description>&lt;p&gt;So, at the point of link loss, there may be some packets that have not completed the transfer - surely that &lt;strong&gt;is&lt;/strong&gt; something that the application needs to consider?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF51 UAart Example data loss over bluetooth interface</title><link>https://devzone.nordicsemi.com/thread/44584?ContentTypeID=1</link><pubDate>Tue, 09 Feb 2016 08:49:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:232aabcd-7539-454b-99e1-45560489a6ac</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>