在尝试为CSR1010开发工具包编写一些固件之前,我正在使用ANCS来尝试了解它是如何工作的。
我一直在目标C中编写一个cmd行应用程序,它充当中心,然后询问ANCS服务。我可以接收Notification,无问题,并将正确的详细信息写回控制点,以取回我想要的属性。
我现在遇到的问题是,我不确定数据源特性何时完成了它的传输。MTU的大小是20字节,所以我返回的数据被拼接到必要的数据包中,并被很好地发送。当传输结束时,我无法头脑清醒,从我所能看到的信息标签或任何东西没有结束,或任何方式,以核实所有的数据已经到达,以便我可以缝制所有的一切再次回到一起。
苹果公司( apple 这里 )在ANCS上发布的文件显示:
如果Get App Attribute命令的响应大于所协商的GATT最大传输单元(MTU),则NP将其拆分为多个片段。NC必须通过拼接每个片段来重新组合响应。当收到每个请求的属性的完整元组时,响应就完成了。
当收到每个请求的属性的完整元组时,如何知道?。
Thx//56k
发布于 2014-10-20 17:34:14
ANCS规范(编号/doc/uid/SW7 40013460-CH1-SW7)规定:
如果响应大于所谈判的GATT最大传输单元(MTU),则NP将其拆分为多个片段。NC必须通过拼接每个片段来重新组合响应。当收到每个请求的属性的完整元组时,响应就完成了。
发送GetNotificationAttributes请求时,需要存储所请求的属性列表(或至少需要多少属性)。然后,在解析响应时,您需要一直等待更多的拆分数据包,直到收到所请求的所有属性。这基本上意味着信任ANCS总是完全回答,应该是这样的;但是,为了安全起见,我会在您的代码中添加一个超时。这样的话,如果ANCS被卡住了,你就不会在混乱中跟随它)
马泰奥
https://stackoverflow.com/questions/24895289
复制相似问题