Bluetooth: ATT: Handle Indications
This adds the callback necessary to parse Indication PDU generating proper Confirm response: > ACL Data RX: Handle 3585 flags 0x02 dlen 8 ATT: Handle Value Indication (0x1d) len 3 Handle: 0x0014 Data: 00 < ACL Data TX: Handle 3585 flags 0x00 dlen 5 ATT: Handle Value Confirmation (0x1e) len 0 Change-Id: I277c1776f32cc05a55ffad7aa483ff1857c9fb9f Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
parent
b5e8ecf12e
commit
d87d1878b4
1 changed files with 22 additions and 0 deletions
|
@ -1349,6 +1349,26 @@ static uint8_t att_notify(struct bt_conn *conn, struct bt_buf *buf)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static uint8_t att_indicate(struct bt_conn *conn, struct bt_buf *buf)
|
||||
{
|
||||
uint16_t handle;
|
||||
|
||||
handle = bt_buf_pull_le16(buf);
|
||||
|
||||
BT_DBG("handle 0x%04x\n", handle);
|
||||
|
||||
bt_gatt_notification(conn, handle, buf->data, buf->len);
|
||||
|
||||
buf = bt_att_create_pdu(conn, BT_ATT_OP_CONFIRM, 0);
|
||||
if (!buf) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
bt_l2cap_send(conn, BT_L2CAP_CID_ATT, buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct {
|
||||
uint8_t op;
|
||||
uint8_t (*func)(struct bt_conn *conn, struct bt_buf *buf);
|
||||
|
@ -1398,6 +1418,8 @@ static const struct {
|
|||
{ BT_ATT_OP_EXEC_WRITE_RSP, att_handle_exec_write_rsp, 0 },
|
||||
{ BT_ATT_OP_NOTIFY, att_notify,
|
||||
sizeof(struct bt_att_notify) },
|
||||
{ BT_ATT_OP_INDICATE, att_indicate,
|
||||
sizeof(struct bt_att_indicate) },
|
||||
{ BT_ATT_OP_WRITE_CMD, att_write_cmd,
|
||||
sizeof(struct bt_att_write_cmd) },
|
||||
{ BT_ATT_OP_SIGNED_WRITE_CMD, att_signed_write_cmd,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue