首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >蓝色缓存ATT值,以及如何清除缓存?

蓝色缓存ATT值,以及如何清除缓存?
EN

Stack Overflow用户
提问于 2014-02-26 00:08:09
回答 1查看 1.2K关注 0票数 2

我正试图为一个OSX上的蓝牙LE bug找到任何解决办法。特别是,我想知道OSX在读取蓝牙电子关贸总协定表时出了什么问题。因此,我在PacketLogger来自XCode的硬件IO工具中查看PacketLogger来自XCode的硬件IO工具数据包。

当我使用蓝牙资源管理器连接到蓝牙LE设备时,我希望看到组类型请求(uuid=0x2800 primary,startingHandle=0x0001,endingHandle=0xffff)读取3.4.4.9个uuid=0x2800来发现主要服务(或Find Request(uuid=0x2800,Value :uuid=0x2803)),然后再看到3.4.4.1 由Type (uuid=0x2803特性)读取以发现特征。这就是我从iPhone (使用CC2540)嗅探数据包时所看到的。

但是在OSX上,我在PacketLogger (以及连接后的CC2540)中看到的唯一的CC2540请求是:

  1. 由Request(attributeType=0x2803,startingHandle=0x001a,endingHandle=0x001a类型读取的)
  2. 按类型请求读取(attributeType=0x2802,startingHandle=0x0001,endingHandle=0x0004)
  3. 由Request(attributeType=0x2802,startingHandle=0x0005,endingHandle=0x0009类型读取的)
  4. 由Request(attributeType=0x2802,startingHandle=0x0010,endingHandle=0x0019类型读取的)
  5. 由Request(attributeType=0x2802,startingHandle=0x001a,endingHandle=0x001a类型读取的)
  6. 由Request(attributeType=0x2803,startingHandle=0x001a,endingHandle=0x001a类型读取的)
  7. 由Request(attributeType=0x2802,startingHandle=0x0021,endingHandle=0x0027类型读取的)
  8. 由Request(attributeType=0x2802,startingHandle=0x002b,endingHandle=0x002e类型读取的)

这些请求不足以发现服务,但是蓝牙资源管理器列出了此时的所有服务UUID。这表明OSX已经知道该蓝牙设备上的服务位于何处。蓝色缓存设备服务并在启动时读取吗?如果是这样,我如何清除缓存?

我试过关闭蓝牙,杀死蓝色,重新启动OSX,但每次OSX从未重新发现服务。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-03 21:41:15

是的,blued确实缓存了蓝牙LE GATT表。如果缓存不好,请执行以下操作以删除它,这要感谢“蓝色进程正在扼杀我的CPU”

  1. 删除/Library/Preferences/com.apple.Bluetooth.plist.这将删除所有绑定蓝牙和蓝牙LE设备的知识。
  2. 杀/蓝它将由launchd重新启动。
  3. 再次运行蓝牙LE程序。PacketLogger现在将显示按组类型请求读取的,以重新发现主要服务。

根据蓝牙4.0第3卷G部分2.5.2属性缓存,当中央与外围设备建立了“纽带”(而不仅仅是配对)时,就允许缓存。我不知道如何证实中央确实与外围国家联系在一起,但我认为是这样的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22028998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档