mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-11-08 13:32:48 +00:00
fix(nimble): Add option to disable IEEE and UDI Characteristic in DIS
This commit is contained in:
@@ -54,7 +54,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);
|
||||
@@ -131,12 +133,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 */
|
||||
@@ -145,12 +149,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 */
|
||||
},
|
||||
@@ -188,7 +194,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)
|
||||
@@ -303,10 +312,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) {
|
||||
@@ -315,6 +328,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