Android Bluetooth hci 命令分析
Android在连接BLE设备的时候,遇到连接没多久就自动断开的情况。通过HCI来分析一下。
BLE设备发送连接参数更新请求
3909 15:53:01.224737 TexasIns_f0:d3:41 (Hon-RFID3) HandHeld_e0:e5:4f (EDA) L2CAP 21 Rcvd Connection Parameter Update Request
回复BLE发送过来的请求
3910 15:53:01.225744 HandHeld_e0:e5:4f (EDA) TexasIns_f0:d3:41 (Hon-RFID3) L2CAP 15 Sent Connection Parameter Update Response (Accepted)
发送连接更新请求,host通过hci发给controller
3911 15:53:01.227044 host controller HCI_CMD 18 Sent LE Connection Update
更新参数操作执行成功。controller发给host。这条命令之后,协议栈会发送命令给出去,给对面的BLE设备。
3963 15:53:01.566723 controller host HCI_EVT 13 Rcvd LE Meta (LE Connection Update Complete)
这边在等待BLE设备的回复,等待超时了。后面就断开。
5410 15:53:12.491452 controller host HCI_EVT 7 Rcvd Disconnect Complete
最后一个帧的内容,显示连接超时。
Frame 5410: 7 bytes on wire (56 bits), 7 bytes captured (56 bits)
Encapsulation type: Bluetooth H4 with linux header (99)
Arrival Time: Apr 25, 2019 23:53:12.491452000 China Standard Time
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1556207592.491452000 seconds
[Time delta from previous captured frame: 0.001655000 seconds]
[Time delta from previous displayed frame: 0.001655000 seconds]
[Time since reference or first frame: 86.503400000 seconds]
Frame Number: 5410
Frame Length: 7 bytes (56 bits)
Capture Length: 7 bytes (56 bits)
[Frame is marked: False]
[Frame is ignored: False]
Point-to-Point Direction: Received (1)
[Protocols in frame: bluetooth:hci_h4:bthci_evt]
Bluetooth
[Source: controller]
[Destination: host]
Bluetooth HCI H4
[Direction: Rcvd (0x01)]
HCI Packet Type: HCI Event (0x04)
Bluetooth HCI Event - Disconnect Complete
Event Code: Disconnect Complete (0x05)
Parameter Total Length: 4
Status: Success (0x00)
Connection Handle: 0x0002
Reason: Connection Timeout (0x08)
而另外一个台设备, 却不会断开,第一个帧显示对面LE设备所能支持结构,其中Connection Parameters Request Procedure: False,表示不支持更新参数请求。
第一个帧:
1408 15:57:13.490071 controller host HCI_EVT 15 Rcvd LE Meta (LE Read Remote Used Features Complete)
第一个帧的内容:
Frame 1408: 15 bytes on wire (120 bits), 15 bytes captured (120 bits)
Encapsulation type: Bluetooth H4 with linux header (99)
Arrival Time: Apr 25, 2019 23:57:13.490071000 China Standard Time
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1556207833.490071000 seconds
[Time delta from previous captured frame: 0.002823000 seconds]
[Time delta from previous displayed frame: 0.002823000 seconds]
[Time since reference or first frame: 39.218678000 seconds]
Frame Number: 1408
Frame Length: 15 bytes (120 bits)
Capture Length: 15 bytes (120 bits)
[Frame is marked: False]
[Frame is ignored: False]
Point-to-Point Direction: Received (1)
[Protocols in frame: bluetooth:hci_h4:bthci_evt]
Bluetooth
[Source: controller]
[Destination: host]
Bluetooth HCI H4
[Direction: Rcvd (0x01)]
HCI Packet Type: HCI Event (0x04)
Bluetooth HCI Event - LE Meta
Event Code: LE Meta (0x3e)
Parameter Total Length: 12
Sub Event: LE Read Remote Used Features Complete (0x04)
Status: Success (0x00)
Connection Handle: 0x0002
Supported LE Features: 0x0000000000000001, LE Encryption
.... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ...1 = LE Encryption: True
.... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ..0. = Connection Parameters Request Procedure: False
.... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .0.. = Extended Reject Indication: False
.... .... .... .... .... .... .... .... .... .... .... .... .... .... .... 0... = Slave-Initiated Features Exchange: False
.... .... .... .... .... .... .... .... .... .... .... .... .... .... ...0 .... = Ping: False
.... .... .... .... .... .... .... .... .... .... .... .... .... .... ..0. .... = Data Packet Length Extension: False
.... .... .... .... .... .... .... .... .... .... .... .... .... .... .0.. .... = LL Privacy: False
.... .... .... .... .... .... .... .... .... .... .... .... .... .... 0... .... = Extended Scanner Filter Policies: False
.... .... .... .... .... .... .... .... .... .... .... .... .... ...0 .... .... = LE 2M PHY: False
.... .... .... .... .... .... .... .... .... .... .... .... .... ..0. .... .... = Stable Modulation Index - Tx: False
.... .... .... .... .... .... .... .... .... .... .... .... .... .0.. .... .... = Stable Modulation Index - Rx: False
.... .... .... .... .... .... .... .... .... .... .... .... .... 0... .... .... = LE Coded PHY: False
.... .... .... .... .... .... .... .... .... .... .... .... ...0 .... .... .... = LE Extended Advertising: False
.... .... .... .... .... .... .... .... .... .... .... .... ..0. .... .... .... = LE Periodic Advertising: False
.... .... .... .... .... .... .... .... .... .... .... .... .0.. .... .... .... = Channel Selection Algorithm #2: False
.... .... .... .... .... .... .... .... .... .... .... .... 0... .... .... .... = Power Class 1: False
.... .... .... .... .... .... .... .... .... .... .... ...0 .... .... .... .... = Minimum Number of Used Channels Procedure: False
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000. .... .... .... .... = Reserved: 0x000000000000
[Command in frame: 1393]
[Pending in frame: 1398]
[Pending-Response Delta: 54.527ms]
[Command-Response Delta: 57.991ms]
虽然不支持更新参数请求,但是却发了更新参数请求过来,这个现象比较奇怪。
参数更新请求。
2698 15:57:19.440508 TexasIns_f0:d3:41 (Hon-RFID3) localhost () L2CAP 21 Rcvd Connection Parameter Update Request
请求回复。
2702 15:57:19.441762 localhost () TexasIns_f0:d3:41 (Hon-RFID3) L2CAP 15 Sent Connection Parameter Update Response (Accepted)
发送更新过去。
2705 15:57:19.442326 host controller HCI_CMD 18 Sent LE Connection Update
这条命令没有处理,应为没有controller通过hci发给host的命令回复,所以没有处理。就不会存在后面的等待超时。
Android Bluetooth hci 命令分析的更多相关文章
- 【转】Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
原文网址:http://blog.csdn.net/xubin341719/article/details/38584469 关键词:蓝牙blueZ A2DP.SINK.sink_connect.s ...
- Android bluetooth介绍(四): a2dp connect流程分析
关键词:蓝牙blueZ A2DP.SINK.sink_connect.sink_disconnect.sink_suspend.sink_resume.sink_is_connected.sink_ ...
- Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
关键词:蓝牙blueZ A2DP.SINK.sink_connect.sink_disconnect.sink_suspend.sink_resume.sink_is_connected.sink_ ...
- Appium Android Bootstrap源码分析之命令解析执行
通过上一篇文章<Appium Android Bootstrap源码分析之控件AndroidElement>我们知道了Appium从pc端发送过来的命令如果是控件相关的话,最终目标控件在b ...
- ZT 4.3 android bluetooth hfp分析
4.3 android bluetooth hfp分析 2013-08-20 20:16 592人阅读 评论(3) 收藏 举报 所有程序执行的代码都是有入口的,在这里我们暂时分析一种情景,蓝牙打开着, ...
- 【转】Android bluetooth介绍(二): android blueZ蓝牙代码架构及其uart 到rfcomm流程
原文网址:http://blog.sina.com.cn/s/blog_602c72c50102uzoj.html 关键词:蓝牙blueZ UART HCI_UART H4 HCI L2CAP ...
- Android blueZ HCI(一个):hciconfig实施和经常使用
关键词:hciconfighcitool hcidump笔者:xubin341719(欢迎转载,请明确说明,请尊重版权,谢谢.)欢迎指正错误,共同学习.共同进步! . Android blueZ H ...
- Android bluetooth介绍(两): android 蓝牙源架构和uart 至rfcomm过程
关键词:蓝牙blueZ UART HCI_UART H4 HCI L2CAP RFCOMM 版本号:基于android4.2先前版本 bluez内核:linux/linux3.08系统:an ...
- android bluetooth
Android bluetooth介绍(一):基本概念及硬件接口 BlueZ为调试和与蓝牙子系统通信提供很多设置命令行工具,包含下面这些: hciconfig hcitool hcidump sdpt ...
随机推荐
- [JOISC2014]たのしい家庭菜園
[JOISC2014]たのしい家庭菜園 题目大意: 给定一个长度为\(n(n\le3\times10^5)\)的序列\(A(A_i\le10^9)\).只能交换相邻两个数,问最少需要几步可以将它变成一 ...
- [COCI2015]COCI
[COCI2015]COCI 题目大意: 有\(n(n\le5\times10^5)\)个人比赛,比赛总共进行\(3\)轮,每一轮得分为\([0,650]\)内的整数.现在已经得知每个人前两轮的成绩. ...
- HTML5:在移动端禁用长按选中文本功能
很多时候,我们在写的手机页面需要用户进行长按然后响应一个事件.但是在微信中用户的长按操作被默认为谈出来一个复制的选项.那么这个时候如何去禁止这个东西呢? 其实很简单,方法看下面: 只需要在你需要禁止的 ...
- 纯CSS实现展开列表
效果预览 以下为源码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...
- Android EditText设置为Number类型后获取数字
s_video_seg1 = Integer.parseInt(video_seg1.getEditableText().toString().trim()); 此处要使用getEditableTex ...
- ZKW线段树入门
Part 1 来说说它的构造 线段树的堆式储存 我们来转成二进制看看 小学生问题:找规律 规律是很显然的 一个节点的父节点是这个数左移1,这个位运算就是低位舍弃,所有数字左移一位 一个节点的子节点是这 ...
- .net异常机制
异常机制简介 当CPU运行到一些非法的指令,例如除零错误,访问内存页失败等指令,CPU会生成一个硬件异常,不同的异常有固定的异常代码作为标识符,异常产生以后CPU暂时不能继续执行后续的指令—因为后续的 ...
- Android 修改应用图标(Android Studio)
1 res\drawable 放置icon.png(此图片是你需要修改的图标,必须是png文件). 2 修改AndroidManifest.xml: android:icon="@drawa ...
- SDN+DPI文献阅读
MultiClassifier: A combination of DPI and ML for application-layer classification in SDN 来源:Internat ...
- 上海线下技术交流(AA制)
标签: 上海线下技术交流会 作者:王清培(Plen wang) 沪江Java资深架构师 .营销云平台负责人 上海地区技术线下交流,本次聚会AA制,要的就是热爱技术,交流技术,不是凑热闹.特此留念. 活 ...