在做BLE的过程中好多人遇到这些问题:
1)为什么远端设备发给我的消息我没收到?
2)为什么远端设备发给我的消息和我接收到的不一样?
3)为什么我的消息发布出去?
等等。想要知道为什么,除了经典的logd(万能的printf)之外,Android蓝牙中有一个很重要的debug方式就是btsnoop.log.
这个log记录了host与controller通信的全部内容,列出了蓝牙协议栈的各个层的消息通信图谱。注意,由于这个log是协议栈自己生成的,它只列出了协议栈发出去的和接收到的消息,若是由于其它原因,例如UART 驱动丢包等导致的问题,则需要使用其它的log工具来寻找原因(例如uart sniffer)。
snoop log并不是蓝牙创造出来的东西,而是由SUN发明的一种log格式,主要应用到IEEE802 的各种log的身上。和任何文件一样,JPEG,MP3等,它有固定的格式。
感兴趣的同学可以到下面的链接来查看snoop log的格式:
http://www.fte.com/webhelp/FTS4BT/Content/Technical_Information/BT_Snoop_File_Format.htm
以及