You may be receiving a packet received acknowledgment but it may not have fully completed all the required packet delivery acknowledgements from the end device. Simply waiting for a small amount of time may be the only solution.
In case you like overload on information, here it is.
When transmitting BT data or data/voice packets an
unnumbered ARQ (Automatic Repeat Request) scheme is
used. Such packets are retransmitted until an
acknowledgement of successful reception is received, or a
timeout occurs. The acknowledgement (either positive or
negative) is piggy-backed onto the header of the return
packet. A missing acknowledgement (e.g. the return packet
was lost) is treated as a negative acknowledgement
In case of master-to-slave transmission, the return packet is
sent in the subsequent time slot. When the slave transmits
the return packet is received the next time the master
addresses the slave.
In order to distinguish the cases when a packet was
successfully received, but the acknowledgement was lost
and successful acknowledgement, a 1-bit sequencing
number is used. If a packet it resent, the sequence number
is held; this way the recipient will detect duplicate packets.
If the receive buffer fills up, a Bluetooth device may stop
the transmission by resetting the FLOW field in the return
packet. This xxx8220;stopxxx8221; signal does not affect control packets. If
the return packet is not received, a xxx8220;goxxx8221; signal is assumed.
__________________
Z10 on BES
Z10 on BIS
|