2525#include <logging/log.h>
2626LOG_MODULE_REGISTER (hrs );
2727
28+
29+ #define GATT_PERM_READ_MASK (BT_GATT_PERM_READ | \
30+ BT_GATT_PERM_READ_ENCRYPT | \
31+ BT_GATT_PERM_READ_AUTHEN)
32+ #define GATT_PERM_WRITE_MASK (BT_GATT_PERM_WRITE | \
33+ BT_GATT_PERM_WRITE_ENCRYPT | \
34+ BT_GATT_PERM_WRITE_AUTHEN)
35+
36+ #ifndef CONFIG_BT_HRS_DEFAULT_PERM_RW_AUTHEN
37+ #define CONFIG_BT_HRS_DEFAULT_PERM_RW_AUTHEN 0
38+ #endif
39+ #ifndef CONFIG_BT_HRS_DEFAULT_PERM_RW_ENCRYPT
40+ #define CONFIG_BT_HRS_DEFAULT_PERM_RW_ENCRYPT 0
41+ #endif
42+ #ifndef CONFIG_BT_HRS_DEFAULT_PERM_RW
43+ #define CONFIG_BT_HRS_DEFAULT_PERM_RW 0
44+ #endif
45+
46+ #define HRS_GATT_PERM_DEFAULT ( \
47+ CONFIG_BT_HRS_DEFAULT_PERM_RW_AUTHEN ? \
48+ (BT_GATT_PERM_READ_AUTHEN | BT_GATT_PERM_WRITE_AUTHEN) : \
49+ CONFIG_BT_HRS_DEFAULT_PERM_RW_ENCRYPT ? \
50+ (BT_GATT_PERM_READ_ENCRYPT | BT_GATT_PERM_WRITE_ENCRYPT) : \
51+ (BT_GATT_PERM_READ | BT_GATT_PERM_WRITE)) \
52+
2853static uint8_t hrs_blsc ;
2954
3055static void hrmc_ccc_cfg_changed (const struct bt_gatt_attr * attr , uint16_t value )
@@ -49,11 +74,13 @@ BT_GATT_SERVICE_DEFINE(hrs_svc,
4974 BT_GATT_CHARACTERISTIC (BT_UUID_HRS_MEASUREMENT , BT_GATT_CHRC_NOTIFY ,
5075 BT_GATT_PERM_NONE , NULL , NULL , NULL ),
5176 BT_GATT_CCC (hrmc_ccc_cfg_changed ,
52- BT_GATT_PERM_READ | BT_GATT_PERM_WRITE ),
77+ HRS_GATT_PERM_DEFAULT ),
5378 BT_GATT_CHARACTERISTIC (BT_UUID_HRS_BODY_SENSOR , BT_GATT_CHRC_READ ,
54- BT_GATT_PERM_READ , read_blsc , NULL , NULL ),
79+ HRS_GATT_PERM_DEFAULT & GATT_PERM_READ_MASK ,
80+ read_blsc , NULL , NULL ),
5581 BT_GATT_CHARACTERISTIC (BT_UUID_HRS_CONTROL_POINT , BT_GATT_CHRC_WRITE ,
56- BT_GATT_PERM_NONE , NULL , NULL , NULL ),
82+ HRS_GATT_PERM_DEFAULT & GATT_PERM_WRITE_MASK ,
83+ NULL , NULL , NULL ),
5784);
5885
5986static int hrs_init (const struct device * dev )
0 commit comments