1 of 1 people found this helpful
Hello EyGe_3183606 ,
As per the BLE specification, BLE Data packets sent through BLE notification are not acknowledged in the application layer. When you use notifications, there will not be any acknowledgment in the application layer, but there will be acknowledgment in the link layer. This means that when the peer sends the packets, the next packet will not be sent unless the sender receives an acknowledgement at the link layer. This ensures that there are no missing packets.
For acknowledgement, you can use Indication instead of Notification. For indication, the sender will call the API CyBle_GattsIndication() api and at the GATT Client's end CYBLE_EVT_GATTC_HANDLE_VALUE_IND event will be received. The client should respond back to the server when the data is received by calling an API CyBle_GattcConfirmation(). This function call results in CYBLE_EVT_GATTS_HANDLE_VALUE_CNF event at the GATT Server's end.