Telink TLSR8232 BLE SDK Developer Handbook
AN-19112700-E1
108
Ver.1.0.0
As specified in BLE Spec, Slave won’t regard data indication as success until Master
confirms the data, and the next indicate data won’t be sent until the previous data
indication is successful.
When Link Layer is in Conn state, generally data will be successfully pushed into bottom-
layer software FIFO by invoking this API; however, some special cases may result in
invoking failure,
and the return value “ble_sts_t” will indicate the corresponding error
reason.
When this API is invoked in APP layer, i
t’s recommended to check whether the return
value is “BLE_SUCCESS”. If the return value is not “BLE_SUCCESS”, a delay is needed
to re-push the data.
The return values are shown as below:
ble_sts_t
Value
ERR reason
BLE_SUCCESS
0
HCI_ERR_CONN_NOT_ESTABLISH
0x3E
Link Layer is in None
Conn state.
SMP_EER_PAIRING_IS_GOING_ON
0x8F
Data cannot be sent
during pairing phase.
HCI_ERR_CONTROLLER_TX_FIFO_NOT_ENOUG
H
0x3A
Tasks with mass data
are being executed,
software Tx
FIFO
is not
enough.
ATT_ERR_PREVIOUS_INDICATE_DATA_HAS_NO
T_CONFIRMED
0x6B
The previous indicate
data has not been
confirmed by Master.
3.4.3.12 Handle Value Confirmation
Please refer to
Core_v5.0
(Vol 3/Part F/3.4.7.3
) for details about “Handle Value
Confirmation
”.
Whe
never the API “bls_att_pushIndicateData” is called by APP layer to send an indicate
data to Master, Master will respond with
“Confirmation” to confirm the data, then Slave
can continue to send the next indicate data.
Figure 3-45 Handle Value Confirmation in BLE Spec
As shown above, “Confirmation” is not specific to indicate data of certain handle, and the
same “Confirmation” will be responded irrespective of handle.