提示未从iOS应用程序注册

3个帖子/ 0个新帖子
最后发表
eli.iser
离线
最后看到:6年3个月前
加入:2014-04-13 07:54
提示未从iOS应用程序注册

我们使用的是带有128位uuid的SDK 3.0.6,作为外围设备。在初始化方面,我们的概要文件与sample_128概要文件几乎相同。

有一个带有WRITE的特性和一个带有INDICATE的特性。出于测试目的,写入WRITE特征的所有内容都通过指示特征得到指示。

当连接一个iOS中心应用程序时,该应用程序通过指示特征发送数据并期望一个回显,它未能订阅指示特征。当使用相同的iOS中央应用与MAC OSX外围模拟器,连接,订阅和指示echo都工作正常。

使用BLE嗅探器比较BLE消息,有两个主要区别:
1.当中心对“ATT特性声明0x2803”执行“Read by type request”时,工作的OSX模拟器返回“020800052A”作为“按类型响应读取”中的值,而不工作的DA14580返回“220800052“。
2.有一块消息,中央发现周边的特点(使用“阅读类型请求”),还有一块消息“找到信息请求/响应”(返回“客户特点配置0 x2902”)和“写请求/响应”一样的处理在“查找信息请求”,价值0200。在运行的OSX模拟器中,发现消息块的特征是之前“查找信息”块,而在不工作的DA14580中它是例如,首先会出现“查找信息”块,然后才会出现特征发现(游戏邦注:这导致iOS应用试图注册一个它还没有发现的特征)。

这两个差异使我们相信,订阅发生错误是因为0x2803上“read by type”的响应发生了更改。假设响应的第3个字节与常规特征(1字节访问标志,2字节句柄)相同,工作标志仅为“read”,而非工作标志为“read”和“indicate”。如何从0x2803 (ATT_DECL_CHARACTERISTIC) UUID的代码中控制这一点?

我们已经开始了这个项目与旧的评估工具包,运行SDK 2.2.5。在那里,一切似乎都运转正常。然而,我们不再有旧的HW,新的HW在尝试运行旧的SDK时失败。关于这一点,SDK 2.2.5和3.0.6之间会有一些变化吗?我们需要对新SDK的代码做一些小修改,但没有涉及特征定义。

我们也尝试使用16位UUID的指示特征,并得到了一个不同的错误在iOS - CBATTErrprAttributeNotFound。

RvA
离线
最后看到:2个月2周以前
工作人员
加入:2014-02-07 14:10
嗨,伊菜,

嗨,伊菜,

通常,按类型读取请求和查找信息请求由BLE核心栈内部处理,因此通过正确的数据库初始化,这两个命令应该能够向主机返回正确的信息。

你能提供概要文件的数据库初始化代码吗?然后我们可以分析并尝试重现您遇到的问题。

我会直接和你联系。

最好的问候,

RvA

RvA
离线
最后看到:2个月2周以前
工作人员
加入:2014-02-07 14:10
问题已经解决了。

问题已经解决了。