mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-08-12 13:07:57 +00:00
fix(nimble): Add option to disable IEEE and UDI Characteristic in DIS
This commit is contained in:
@@ -55,7 +55,9 @@ struct ble_svc_dis_data _ble_svc_dis_data = {
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_SOFTWARE_REVISION_READ_PERM) >= 0) || \
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_MANUFACTURER_NAME_READ_PERM) >= 0) || \
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_SYSTEM_ID_READ_PERM) >= 0) || \
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_PNP_ID_READ_PERM) >= 0)
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_PNP_ID_READ_PERM) >= 0) || \
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_IEEE_READ_PERM) >= 0) || \
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_UDI_READ_PERM) >= 0)
|
||||
static int
|
||||
ble_svc_dis_access(uint16_t conn_handle, uint16_t attr_handle,
|
||||
struct ble_gatt_access_ctxt *ctxt, void *arg);
|
||||
@@ -132,12 +134,14 @@ static const struct ble_gatt_chr_def dis_characteristics[] = {
|
||||
.flags = BLE_GATT_CHR_F_READ | MYNEWT_VAL(BLE_SVC_DIS_SYSTEM_ID_READ_PERM),
|
||||
},
|
||||
#endif
|
||||
#if (MYNEWT_VAL(BLE_SVC_DIS_IEEE_READ_PERM) >= 0)
|
||||
{
|
||||
/*** Characteristic: IEEE 11073-20601 Regulatory Certification Data List */
|
||||
.uuid = &uuid_chr_ieee_cert.u,
|
||||
.access_cb = ble_svc_dis_access,
|
||||
.flags = BLE_GATT_CHR_F_READ,
|
||||
.flags = BLE_GATT_CHR_F_READ | MYNEWT_VAL(BLE_SVC_DIS_IEEE_READ_PERM),
|
||||
},
|
||||
#endif
|
||||
#if (MYNEWT_VAL(BLE_SVC_DIS_PNP_ID_READ_PERM) >= 0)
|
||||
{
|
||||
/*** Characteristic: PNP Id */
|
||||
@@ -146,12 +150,14 @@ static const struct ble_gatt_chr_def dis_characteristics[] = {
|
||||
.flags = BLE_GATT_CHR_F_READ | MYNEWT_VAL(BLE_SVC_DIS_PNP_ID_READ_PERM),
|
||||
},
|
||||
#endif
|
||||
#if (MYNEWT_VAL(BLE_SVC_DIS_UDI_READ_PERM) >= 0)
|
||||
{
|
||||
/*** Characteristic: UDI for Medical Devices */
|
||||
.uuid = &uuid_chr_udi.u,
|
||||
.access_cb = ble_svc_dis_access,
|
||||
.flags = BLE_GATT_CHR_F_READ,
|
||||
.flags = BLE_GATT_CHR_F_READ | MYNEWT_VAL(BLE_SVC_DIS_UDI_READ_PERM),
|
||||
},
|
||||
#endif
|
||||
{
|
||||
0, /* Terminator: No more characteristics in this service */
|
||||
},
|
||||
@@ -190,7 +196,10 @@ const struct ble_gatt_svc_def ble_svc_dis_include_def[] = {
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_FIRMWARE_REVISION_READ_PERM) >= 0) || \
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_SOFTWARE_REVISION_READ_PERM) >= 0) || \
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_MANUFACTURER_NAME_READ_PERM) >= 0) || \
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_SYSTEM_ID_READ_PERM) >= 0)
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_SYSTEM_ID_READ_PERM) >= 0) || \
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_PNP_ID_READ_PERM) >= 0) || \
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_IEEE_READ_PERM) >= 0) || \
|
||||
(MYNEWT_VAL(BLE_SVC_DIS_UDI_READ_PERM) >= 0)
|
||||
static int
|
||||
ble_svc_dis_access(uint16_t conn_handle, uint16_t attr_handle,
|
||||
struct ble_gatt_access_ctxt *ctxt, void *arg)
|
||||
@@ -305,10 +314,14 @@ ble_svc_dis_access(uint16_t conn_handle, uint16_t attr_handle,
|
||||
return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (MYNEWT_VAL(BLE_SVC_DIS_IEEE_READ_PERM) >= 0)
|
||||
case BLE_SVC_DIS_CHR_UUID16_IEEE_REG_CERT_LIST:
|
||||
info = ble_svc_dis_data.ieee;
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if (MYNEWT_VAL(BLE_SVC_DIS_UDI_READ_PERM) >= 0)
|
||||
case BLE_SVC_DIS_CHR_UUID16_UDI:
|
||||
info = ble_svc_dis_data.udi;
|
||||
if (info == NULL) {
|
||||
@@ -317,6 +330,7 @@ ble_svc_dis_access(uint16_t conn_handle, uint16_t attr_handle,
|
||||
return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
return BLE_ATT_ERR_UNLIKELY;
|
||||
|
||||
Reference in New Issue
Block a user