Bluez相關(guān)的各種tools的使用

7 Bluez相關(guān)的各種tools的使用

在這一段折騰Bluez的時(shí)間里纸镊,越來(lái)越發(fā)現(xiàn)Bluez相關(guān)的許多工具做得還是挺好用的庭再,主要在Bluez-utils/tools 目錄下做葵。只是有一點(diǎn)讓我很遺憾栏豺,除了man以外很難找到更多的幫助文檔,而man文檔本身對(duì)一些功能的描述也不是很詳細(xì)。

其中有些選項(xiàng)蠢终,如果你不了解藍(lán)牙協(xié)議棧,或者沒(méi)有查閱過(guò)相關(guān)藍(lán)牙芯片的一些文檔茴她,很難搞明白是什么意思寻拂,甚至有些選項(xiàng)的具體參數(shù)值的設(shè)定,如果不讀源碼你都無(wú)從得知有哪些備選值败京。兜喻。梦染。赡麦。

能力有限,下面所寫(xiě)的只是我所用過(guò)的有限的幾個(gè)工具的一些使用經(jīng)驗(yàn)帕识,希望能有所幫助泛粹。

<a name="head7_1"></a> 7.1 Bccmd

Bccmd是用來(lái)和CSR的芯片進(jìn)行BCCMD(Bluecore command protocol)通訊的一個(gè)工具。BCCMD并非藍(lán)牙協(xié)議棧的標(biāo)準(zhǔn)肮疗,而是CSR芯片的專(zhuān)屬協(xié)議
Bccmd的調(diào)用格式為:bccmd [-t <transport>] [-d <device>] <command> [<args>]

Tansport類(lèi)型包括 HCI USB BCSP H4等晶姊,常用的估計(jì)就是HCI和BCSP兩種。需要注意一下他們的使用場(chǎng)合:
HCI是一個(gè)抽象的標(biāo)準(zhǔn)的藍(lán)牙通訊接口伪货,在基于HCI協(xié)議調(diào)用BCCMD時(shí)们衙,需要在Bluez已經(jīng)建立好hci接口的基礎(chǔ)上使用。
BCSP(Bluecore Serial Protocol)是CSR自己制定的傳輸層協(xié)議碱呼,主要目的是用來(lái)加強(qiáng)在沒(méi)有使用CTS蒙挑、RTS進(jìn)行流量控制的情況下進(jìn)行可靠的數(shù)據(jù)傳輸?shù)哪芰ΑF涓拍钍窍鄬?duì)H3 , H4而言愚臀,( 具體分析忆蚀,請(qǐng)參考下面雜項(xiàng)一章中相應(yīng)的小節(jié) )

BCCMD的主要用途就是用來(lái)讀寫(xiě)pskey,這里以 psset 這個(gè)command來(lái)介紹一下格式:
Psset 格式如下: psset [-r] [-s <stores>] <key> <value>
其它都好理解姑裂,關(guān)鍵是-s參數(shù)之后跟的store具體的含義馋袜。這個(gè)參數(shù)可以是數(shù)值也可以是字符串
查詢(xún)CSR的BCCMD相關(guān)的文檔,可以找到具體的含義如下:

0x0000 Default 
0x0008 psram 
0x0001 psi 
0x0002 psf 
0x0004 psrom 
0x0003 psi then psf 
0x0007 psi, psf then psrom 
0x0009 psram then psi 
0x000b psram, psi then psf 
0x000f psram, psi, psf then psrom 

CSR的藍(lán)牙芯片中舶斧,PSKEY可能存儲(chǔ)在 rom flash eeprom ram等介質(zhì)里欣鳖,這里的數(shù)值指明了psset/get命令操作PSKEY時(shí)所針對(duì)的存儲(chǔ)介質(zhì)及其優(yōu)先順序,通常我們會(huì)用 -s 0x0-s “default” 來(lái)使用該命令茴厉,0x0的含義與0xf一樣泽台。

值得注意的是让网,哪個(gè)參數(shù)是有效的,還取決于哪一類(lèi)的存儲(chǔ)介質(zhì)實(shí)際存在于藍(lán)牙芯片中师痕,此外溃睹,只讀類(lèi)的介質(zhì)對(duì)寫(xiě)操作類(lèi)的命令也是無(wú)效的。

基本上來(lái)說(shuō)胰坟,所修改的都是位于psram中的pskey因篇,此外,pskey修改以后要起作用笔横,還要一并使用 -r參數(shù)竞滓,或直接用warmreset命令將藍(lán)牙芯片進(jìn)行warm reset。

7.2 Hciattach

Hciattach主要用來(lái)初始化藍(lán)牙設(shè)備吹缔,它的命令格式如下:

hciattach [-n] [-p] [-b] [-t timeout] [-s initial_speed] <tty> <type | id> [speed] [flow|noflow] [bdaddr]

其中最重要的參數(shù)就是 type和speed商佑,type決定了要初始化的設(shè)備的型號(hào),可以使用 hciattach –l 來(lái)列出所支持的設(shè)備型號(hào)厢塘。
并不是所有的參數(shù)對(duì)所有的設(shè)備都是適用的茶没,有些設(shè)備會(huì)忽略一些參數(shù)設(shè)置,例如:查看hciattach的代碼就可以看到晚碾,多數(shù)設(shè)備都忽略bdaddr參數(shù)抓半。

Hciattach命令內(nèi)部的工作步驟是:首先打開(kāi)制定的tty設(shè)備,然后做一些通用的設(shè)置格嘁,如flow等笛求,然后設(shè)置波特率為 initial_speed,然后根據(jù)type調(diào)用各自的初始化代碼糕簿,最后將波特率重新設(shè)置為speed探入。所以調(diào)用hciattach時(shí),要根據(jù)你的實(shí)際情況懂诗,設(shè)置好initial_speed和speed蜂嗽。

對(duì)于type BCSP來(lái)說(shuō),它的初始化代碼只做了一件事响禽,就是完成BCSP協(xié)議的同步操作徒爹,它并不對(duì)藍(lán)牙芯片做任何的pskey的設(shè)置。同步操作的具體流程和規(guī)范可以參考CSR的相關(guān)文檔: BCSP Link Establishment Protocol

7.3 其它

下面幾個(gè)芋类,使用了隆嗅,但是沒(méi)有太多研究

7.3.1 Hcidump

Hcidump不在bluez-utils包里,而是在單獨(dú)的hcidump包里侯繁。主要用來(lái)分析捕獲和分析HCI數(shù)據(jù)包胖喳,如果使用bluez過(guò)程中出了什么問(wèn)題,用hcidump往往可以發(fā)現(xiàn)一些出錯(cuò)的線(xiàn)索贮竟,原因丽焊。 參數(shù)很多较剃,基本上hcidump –X –V 就可以幫你獲得詳細(xì)的經(jīng)過(guò)格式解析的數(shù)據(jù)包。

<a name="head7_3_2"></a> 7.3.2 Hcitool

主要用hcitool來(lái)scan遠(yuǎn)端的設(shè)備技健,顯示設(shè)備地址写穴,名稱(chēng)等。
例如:Hcitool scan雌贱, hcitool inq

7.3.3 Sdptool

主要用來(lái)瀏覽遠(yuǎn)端設(shè)備SDP服務(wù)啊送,或者管理本地的SDPD維護(hù)的數(shù)據(jù)庫(kù)。
常用的應(yīng)該就是查找遠(yuǎn)端設(shè)備的服務(wù)了

例如:

sdptool browse 00:02:72:B0:00:26 瀏覽地址為00:02:72:B0:00:26的設(shè)備所提供的服務(wù)

sdptool search 0x1112 00:02:72:B0:00:26 查找地址為00:02:72:B0:00:26的設(shè)備上的Headset Audio Gateway服務(wù)欣孤。

./sdptool search 0x1112 00:02:72:B0:00:26 
Class 0x1112 
Inquiring ... 
Searching for 0x1112 on 00:02:72:B0:00:26 ... 
Service Name: Headset Audio Gateway 
Service RecHandle: 0x1001d 
Service Class ID List: 
"Headset Audio Gateway" (0x1112) 
"Generic Audio" (0x1203) 
馋没。。降传。 
<a name="head7_3_4"></a> 7.3.4 Hciconfig

這個(gè)就不用多說(shuō)了篷朵,格式上很類(lèi)似于ifconfig,用來(lái)設(shè)置HCI設(shè)備的參數(shù)
例如
hciconfig hci0 up 啟動(dòng)hci0接口

hciconfig hci0 iscan 使能位于hci0接口的藍(lán)牙芯片的inquery scan模式(使得設(shè)備能被其它藍(lán)牙設(shè)備發(fā)現(xiàn))

出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末婆排,一起剝皮案震驚了整個(gè)濱河市声旺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泽论,老刑警劉巖艾少,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異翼悴,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)幔妨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)鹦赎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人误堡,你說(shuō)我怎么就攤上這事古话。” “怎么了锁施?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵陪踩,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我悉抵,道長(zhǎng)肩狂,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任姥饰,我火速辦了婚禮傻谁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘列粪。我一直安慰自己审磁,他們只是感情好谈飒,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著态蒂,像睡著了一般杭措。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钾恢,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天瓤介,我揣著相機(jī)與錄音,去河邊找鬼赘那。 笑死刑桑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的募舟。 我是一名探鬼主播祠斧,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拱礁!你這毒婦竟也來(lái)了琢锋?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤呢灶,失蹤者是張志新(化名)和其女友劉穎吴超,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體鸯乃,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鲸阻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缨睡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸟悴。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖奖年,靈堂內(nèi)的尸體忽然破棺而出细诸,到底是詐尸還是另有隱情,我是刑警寧澤陋守,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布震贵,位于F島的核電站,受9級(jí)特大地震影響水评,放射性物質(zhì)發(fā)生泄漏猩系。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一之碗、第九天 我趴在偏房一處隱蔽的房頂上張望蝙眶。 院中可真熱鬧,春花似錦、人聲如沸幽纷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)友浸。三九已至峰尝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間收恢,已是汗流浹背武学。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伦意,地道東北人火窒。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像驮肉,于是被迫代替她去往敵國(guó)和親熏矿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容