19#ifndef DETERMINISTICESPASYNCWEBSERVER_BLE_GATT_H
20#define DETERMINISTICESPASYNCWEBSERVER_BLE_GATT_H
26#if DETWS_ENABLE_BLE_GATT
31 static constexpr uint8_t ATT_OP_ERROR_RSP = 0x01;
32 static constexpr uint8_t ATT_OP_READ_REQ = 0x0A;
33 static constexpr uint8_t ATT_OP_READ_RSP = 0x0B;
34 static constexpr uint8_t ATT_OP_WRITE_REQ = 0x12;
35 static constexpr uint8_t ATT_OP_WRITE_RSP = 0x13;
36 static constexpr uint8_t ATT_OP_HANDLE_VALUE_NTF = 0x1B;
42 static constexpr uint8_t GATT_PROP_READ = 0x02;
43 static constexpr uint8_t GATT_PROP_WRITE_NR = 0x04;
44 static constexpr uint8_t GATT_PROP_WRITE = 0x08;
45 static constexpr uint8_t GATT_PROP_NOTIFY = 0x10;
46 static constexpr uint8_t GATT_PROP_INDICATE = 0x20;
50size_t att_read_req(uint16_t handle, uint8_t *out,
size_t cap);
53size_t att_read_rsp(
const uint8_t *val,
size_t vlen, uint8_t *out,
size_t cap);
56size_t att_write_req(uint16_t handle,
const uint8_t *val,
size_t vlen, uint8_t *out,
size_t cap);
59size_t att_notify(uint16_t handle,
const uint8_t *val,
size_t vlen, uint8_t *out,
size_t cap);
62size_t att_error_rsp(uint8_t req_op, uint16_t handle, uint8_t error, uint8_t *out,
size_t cap);
76bool att_parse(
const uint8_t *pdu,
size_t len, AttPdu *out);
90size_t gatt_char_json(
const GattChar *chars,
size_t n,
char *out,
size_t cap);
User-facing configuration for DeterministicESPAsyncWebServer.