SDK:4.3版本。开发环境:CCS。协议版本:ble5stack。
根据ble5_simple_peripheral_cc2640r2lp_app修改的程序,作为单连接的从机设备,使用手机在发现服务的过程中出现了发现服务失败的问题,请协助分析一下
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
SDK:4.3版本。开发环境:CCS。协议版本:ble5stack。
根据ble5_simple_peripheral_cc2640r2lp_app修改的程序,作为单连接的从机设备,使用手机在发现服务的过程中出现了发现服务失败的问题,请协助分析一下
这是对方设置的问题,看下面解释:
Attribute permissions,Attribute的权限属性,权限属性不会直接在空口包中体现,而是隐含在ATT命令的操作结果中。假设一个attribute read属性设为open(即读操作不需要任何权限),那么client去读这个attribute时server将直接返回attribute的值;如果这个attribute read属性设为authentication(即需要配对才能访问),如果client没有与server配对而直接去访问这个attribute,那么server会返回一个错误码:告诉client你的权限不够,此时client会对server发起配对请求,以满足这个attribute的读属性要求,从而在第二次读操作时server将把相应的数据返回给client。目前主要有如下四种权限属性:
Open,直接可以读或者写
No Access,禁止读或者写
Authentication,需要配对才能读或者写,由于配对有多种类型,因此authentication又衍生多种子类型,比如带不带MITM,有没有LESC
Authorization,跟open一样,不过server返回attribute的值之前需要应用先授权,也就是说应用可以在回调函数里面去修改读或者写的原始值。
Signed,签名后才能读或者写,这个用得比较少。
我们也查看了蓝牙手册Core_V5.0,看到有这个错误,但是并没有看见详细的说明,针对这个资源不足的问题,有如下疑问:
1.Insufficient Resource资源不足这个错误是如何产生的?资源不足具体指的是什么,是芯片的flash、RAM不足或者是对方手机的资源不足?是否有对这个问题详细的解释说明。
2.若确认是资源不足的问题,那么为什么只存在于某些特定的手机型号,目前测试来看主要是华为手机存在此问题,并且当华为手机连接出现不能获取服务列表的时候,不断电的情况下别的手机仍然可以正常连接获取服务,不会出现此问题。