其实道理也很简单,BLE蓝牙是先连接,后配对,所以在连接超时的这一段时间里面
主机是可以读取从机的特征值信息的,但是如果为从机的特征值加密以后,则配对不成功
便无法读取从机的特征值信息;
那么如何为特征值加密呢?
特别简单,在simple_gatt_profile.c文件中的的Profile Attributes - Table表中稍微修改一下即可,例如:
// Characteristic Value 1
{
{ ATT_BT_UUID_SIZE, simpleProfilechar1UUID },
GATT_PERMIT_READ | GATT_PERMIT_WRITE,
0,
&simpleProfileChar1
},
修改成:
// Characteristic Value 1
{
{ ATT_BT_UUID_SIZE, simpleProfilechar1UUID },
GATT_PERMIT_AUTHEN_READ | GATT_PERMIT_AUTHEN_WRITE,
0,
&simpleProfileChar1
},
在gatt.h文件中有下面的宏定义
#define GATT_PERMIT_AUTHEN_READ 0x04 //!< Read requires Authentication
#define GATT_PERMIT_AUTHEN_WRITE 0x08 //!< Write requires Authentication
|