<?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>nRF8001, ACK missing with indicate property</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/2948/nrf8001-ack-missing-with-indicate-property</link><description>When sending data on a pipe with ACK (indicate), the acknowledgement seems to get lost if the device gets disconnected right after having sent that data. Is that a normal behaviour? How can I know if the data has been transmitted successfully? 
 The</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 02 Jul 2014 06:48:23 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/2948/nrf8001-ack-missing-with-indicate-property" /><item><title>RE: nRF8001, ACK missing with indicate property</title><link>https://devzone.nordicsemi.com/thread/11194?ContentTypeID=1</link><pubDate>Wed, 02 Jul 2014 06:48:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:94ee69f1-4547-4673-99e0-26498a893bcb</guid><dc:creator>David</dc:creator><description>&lt;p&gt;Can&amp;#39;t comment your answer (too many characters). See my answer below...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF8001, ACK missing with indicate property</title><link>https://devzone.nordicsemi.com/thread/11195?ContentTypeID=1</link><pubDate>Mon, 30 Jun 2014 15:41:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:652e144f-2ad6-42a7-9d6c-41edde749cfc</guid><dc:creator>David</dc:creator><description>&lt;p&gt;Thank you for this answer. The idea looks good, but unfortunately I can not confirm what you are suggesting :-/&lt;/p&gt;
&lt;p&gt;When sending data on a pipe with ACK, I always get the DataACKEvent right after the DataCreditEvent at the next connection interval following the data transmission. Even when using a pipe without ACK, the DataCreditEvent occurs at the next connection interval. This is easy to see, you only need to set the connection interval to 2 seconds.&lt;/p&gt;
&lt;p&gt;Is there some other configuration that could influence this behaviour? I would really like to use the radio level acknowledgement as you suggested, but for now there is no difference. Even when using the DataCreditEvent as a confirmation for successful transmission, I still get duplicate packets...&lt;/p&gt;
&lt;p&gt;I cannot discard the duplicate packets on the peer side, because there is a possibility to send several identical packets which are all valid. I have no time-code or other counter which would allow me to tell that the received data is a re-transmission and not a new data packet.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF8001, ACK missing with indicate property</title><link>https://devzone.nordicsemi.com/thread/11193?ContentTypeID=1</link><pubDate>Mon, 30 Jun 2014 14:38:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e110098f-9bf7-4962-8a85-c4163cef116c</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;The BLE link ensures that every packet that is transmitted is acknowledged at the radio level. This is true only when the BLE link is present. i.e connected. If the link is disconnected you cannot get acknowledgements. This is provided by the BLE link without any application intervention.
The BLE link level ack or radio level ack is provided by the ACI Data Credit Event.&lt;/p&gt;
&lt;p&gt;When using a Pipe with Ack, you get an additional acknowledgement for the Indicate, however the BLE link needs to be up, so if the link disconnects after sending the data but before receving the application level ack, you application will not get the ack for the Pipe.
However you do get the radio level ack for the data that you sent on the Pipe with Ack as the ACI Data credit event. This can be used to ensure that you do not re-transmit the packet on the next connection.&lt;/p&gt;
&lt;p&gt;As an alternative you may choose to discard the duplicate packet that you received on the peer, when your application on the device re-transmits the packet.&lt;/p&gt;
&lt;p&gt;=
Please accept the answer if this has helped.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>