Android blueZ HCI(二):hcitool hcidump常用方法

关键词:hciconfig  hcitool hcidump
作者:xubin341719(欢迎转载,请注明作者,请尊重版权,谢谢!)
欢迎指正错误,共同学习、共同进步!!

Android blueZ HCI(一):hciconfig实现及常用方法
Android blueZ hci(二):hcitool hcidump常用方法


一、Hcitool
1、这部分代码和hciconfig命令比较相似,不做详细分析
命令对应执行函数、解释数据表:
比如:hci scan命令,对应执行cmd_scan函数Idh.code\external\bluetooth\bluez\tools\hcitool.c

static struct {
	char *cmd;
	void (*func)(int dev_id, int argc, char **argv);
	char *doc;
} command[] = {//命令定义描述
	{ "dev",    cmd_dev,    "Display local devices"                },
	{ "inq",    cmd_inq,    "Inquire remote devices"               },
	{ "scan",   cmd_scan,   "Scan for remote devices"              },
	{ "name",   cmd_name,   "Get name from remote device"          },
	{ "info",   cmd_info,   "Get information from remote device"   },
	{ "spinq",  cmd_spinq,  "Start periodic inquiry"               },
	{ "epinq",  cmd_epinq,  "Exit periodic inquiry"                },
	{ "cmd",    cmd_cmd,    "Submit arbitrary HCI commands"        },
	{ "con",    cmd_con,    "Display active connections"           },
	{ "cc",     cmd_cc,     "Create connection to remote device"   },
	{ "dc",     cmd_dc,     "Disconnect from remote device"        },
	{ "sr",     cmd_sr,     "Switch master/slave role"             },
	{ "cpt",    cmd_cpt,    "Change connection packet type"        },
	{ "rssi",   cmd_rssi,   "Display connection RSSI"              },
	{ "lq",     cmd_lq,     "Display link quality"                 },
	{ "tpl",    cmd_tpl,    "Display transmit power level"         },
	{ "afh",    cmd_afh,    "Display AFH channel map"              },
	{ "lp",     cmd_lp,     "Set/display link policy settings"     },
	{ "lst",    cmd_lst,    "Set/display link supervision timeout" },
	{ "auth",   cmd_auth,   "Request authentication"               },
	{ "enc",    cmd_enc,    "Set connection encryption"            },
	{ "key",    cmd_key,    "Change connection link key"           },
	{ "clkoff", cmd_clkoff, "Read clock offset"                    },
	{ "clock",  cmd_clock,  "Read local or remote clock"           },
	{ "lescan", cmd_lescan, "Start LE scan"                        },
	{ "lecc",   cmd_lecc,   "Create a LE Connection",              },
	{ "ledc",   cmd_ledc,   "Disconnect a LE Connection",          },
	{ "dsn",    cmd_dsn,    "Try to get rid of scatternets",       },
	{ NULL, NULL, 0 }
};

2、 hcitool常用方法
(1)、hcitool帮助命令
hcitool –h

(2)、hcitool dev 显示本机MAC地址

root@android:/ # hcitool dev
hcitool dev
Devices:
        hci0    00:16:53:96:22:53

(3)、hcitool inq

root@android:/ # hcitool inq
hcitool inq
Inquiring ...
        C4:6A:B7:21:79:C8       clock offset: 0x7e48    class: 0x5a020c
        1C:66:AA:66:68:2E       clock offset: 0x5e27    class: 0x5a020c
        AC:72:89:85:90:2A       clock offset: 0x13ec    class: 0x4a0100
        68:17:29:78:37:4A       clock offset: 0x5185    class: 0xff0104
        B0:C4:E7:65:A7:3A       clock offset: 0x267e    class: 0x5a020c

(4)、hcitool scan扫描周围设备

(5)、hcitool name 8C:71:F8:AE:2A:C0(对应要获取名字的BT mac地址)

(6)、hcitool info 8C:71:F8:AE:2A:C0(对应要获取名字的BT mac地址)

(7)、hci clock

1|root@android:/ # hcitool clock
hcitool clock
Clock:    0x5ba67
Accuracy: 0.00 msec

二、hcidump常用方法
1、 hcidump  -Xt
终端下显示相应HCI信息。

1、  hcidump –Bw /data/bt1.cfa(android2.3下)/data/bt1.cfa为文件路径
hcidump  –w  /data/bt1.cfa(android 4.0下)

用capture file viewer打开(frontline comprobe protocol analysis system 13.8)入下图就可以分析相应的协议。

(2)、hcidump -tr bt_0.log
显示bt hci log信息
(3)、hcidump -r bt_0.log
(4)、hcidump –Rtw 


猜你喜欢

转载自blog.csdn.net/xubin341719/article/details/38640725