2014/12/16

[ble]CC2540 USB Dongleから直接WireSharkで見る

WireSharkでリアルタイムの流れが見えてもしょうが無かろう、などと言っていたが、だんだん気になってきた。
もしかして、私は技術的に難しそうだから逃げただけじゃないだろうか。。。
えぇい、作ってしまえ!

というわけで、luaを作った。
https://sites.google.com/site/hiro99ma/ble/files/ble_cc2540dongle.lua?attredirects=0&d=1

USB CC2540 Dongleのポートを見て、WireSharkのBT LE LLプロトコルに流しているだけだ。
あんまり動かしてないけど、Advertisingくらいは取れていそうだ。
フィールドとかは気にしないでおくれ(練習の消し忘れ)。

短いluaファイルなので大したことないのかもしれないが、ここまで至るまでが大変だったのだ。
特に、BLEのDissectorをどうやって指定するのかがわからなくてね。。。
UDPとかTCPはやり方がよく出てくるけど、DissectorTable.get()の引数がわからんかったのだ。
メニューの「Internals > Dissector tables」で一覧は出てくるけど、BLEっぽいのがないし、検索もできない。
やむなく、1つ1つツリーを開いて探し、ようやく見つけた次第だ。

最後は、Dissectorに渡すサイズがどこから計算してよいかわからず、いくつかパケットを見て、-10すればよさそうだ、という手抜きで済ませてしまった。

 

まあ、一番の問題は、単にUSBのバルク転送を見ているだけなので、何でもかんでもBLEのデータだと思ってしまうところだろうな。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。