cc2541,使用的是 SimpleBLEPeripheral 工程改写的,本来服务里有5个特征值,前面4个都是可以直接读或者写的,为什么第五个特征值需要配对后才能读?而且我自己新添加了一个特征值6,也是需要输入配对密码后才能读写,在新添加特征值时候,我把特征值5和6的一些设置和其他的几个比较,,没有发现什么不同的;为什么5和6就需要配对才可以??是有其它地方有特别设置吗? ?求解
tim yuan:
我是按照附件中的步骤添加的,以下是附件
admin admin1:
配对跟读写profile应该没有直接的关系。
tim yuan:
回复 admin admin1:
admsadm 你可以说的详细点吗?我使用的是SimpleBLEPeripheral 这个示例工程,然后用手机app连接,手机使用的是iphone4s,装的app是appstore中下的 LightBlue。前面3个特征值都可以直接多或者写,第4个属性是通知,第5个读的时候app会弹出对话框要求输入密码配对。你的意思是说这是手机app的问题?但是我用安卓的相关app试了也是同样的需要配对
shaokai Lin:
回复 tim yuan:
检查下是否是特征值的访问属性被你修改了。
特征值的访问属性有:可读、可写、认证可访问。。。
admin admin1:
回复 tim yuan:
tim yuan,
第五个profile的属性能贴出来看看吗
tim yuan:
回复 admin admin1:
// Simple Profile Characteristic 5 Propertiesstatic uint8 simpleProfileChar5Props = GATT_PROP_READ;
下面这个数组里面:
static gattAttribute_t simpleProfileAttrTbl[SERVAPP_NUM_ATTR_SUPPORTED]
// Characteristic 5 Declaration { { ATT_BT_UUID_SIZE, characterUUID }, GATT_PERMIT_READ, 0, &simpleProfileChar5Props },
// Characteristic Value 5{ { ATT_BT_UUID_SIZE, simpleProfilechar5UUID }, GATT_PERMIT_AUTHEN_READ, 0, simpleProfileChar5 }, // Characteristic 5 User Description { { ATT_BT_UUID_SIZE, charUserDescUUID }, GATT_PERMIT_READ, 0, simpleProfileChar5UserDesp },
这些都是 SimpleBLEPeripheral 工程里面的,没有改过,只知道第一行里表示特征值时只读的属性
数组表里面的三项中,第一项表示特征值可见,后面两个就不知道是什么意思了
tim yuan:
回复 shaokai Lin:
谢谢 shaokai Lin ,我粗心了,
还有一个问题,使用ios的light blue去连接没有问题,但是使用安卓的BLE Scanner app去连接,会连上一下然后立即就断开了,手机这边不退出,2541再次开启广播才能够连接上。
推测是手机这边扫描请求和连接请求连续发送,会导致连接上就马上断开(可能是因为时间间隔还是什么?);而第二次连接,只是发送了连接请求,所以连接上了。
不知道这个推测是不是正确的,如果是,应该到哪一部分去找问题?
2541这边还是SimpleBLEPeripheral 这个工程改的
shaokai Lin:
回复 tim yuan:
《BLE Scanner app》是你自己写的应用程序吗?
可以尝试再Peripheral端打印出实际的连接间隔