2024-02-21 06:39 AM
Hi,
I have a device that is integrated with BlueNRG-LP chip for BLE communication. The client side is an app implemented in python on windows 10. After connection is established, data starts to be transmitted from the BlueNRG-LP to the computer, however, the app on the computer always receive duplicated first data packet. All other data packets after the first data packet can be received normally. On the BlueNRG-LP side, aci_gatt_srv_notify uses indication. the program on the BlueNRG-LP side will retransmit a data packet: 1) if aci_gatt_srv_notify returns non-zero that means aci_gatt_srv_notify was not successful or 2). if the BlueNRG-LP did not receive the acknowledgement from the computer app that suppose to indicate the data packet was not received by the computer successfully.
Monitoring via data packet capture tool, I can see the app on the computer did receive the first data packet twice, and each time it sent back acknowledgement. On the BlueNRG-LP side, it was proved that the acknowledgement sent back by the computer on the first data packet was not received by the BlueNRG-LP, which is why BlueNRG-LP retransmitted the first data packet, and therefore the app on the computer always receives duplicated first data packet.
I am wondering why BlueNRG-LP is not able to receive the first acknowledgement sent by the client application? Is there any solution to fix it?
Thanks,
Oliver