Windowsラップトップのusbポートに接続するzigbeeusbドングルがあります。着信パケットをキャプチャできる必要があります。
対応するUSBポートに関連付けられたバスを監視することにより、着信パケットをキャプチャするacプログラムを作成しようとしています。
この監視を容易にするcライブラリはありますか?そうでない場合、どうすればバスの内容にアクセスできますか?
これは、ハードウェアドライバーが行うことです。低レベルのハードウェアを直接監視し、そのデータを処理して、より便利なインターフェイスでユーザーレベルのプログラムに公開します。
TelegesisとAdaptiveはダウンロード用のWindowsドライバーを提供していると思います。互換性がない場合は、Zigbeeを製造した人は誰でも独自のドライバーを提供する必要があります。
または、独自のドライバーを作成することもできますが、それは非常に困難でトリッキーな作業であり、気の弱い人向けではありません。
libusbを使用してUSBパケットを簡単に読み書きできます。通常、私はPythonラッパーpyUSBを介してlibusbを使用します
ただし、特定のドングルからのパケット形式をエンコード/デコードする方法に関するドキュメントは実際にありますか?実際のzigbeeパケットは、デコードできる必要がある独自のプロトコルにラップされている場合があります。
また、USBドングルは実際には生のUSBを介して通信しており、FTDIチップを使用してUSB経由で仮想シリアルポートを作成していないと想定しています。その場合は、USBをいじくり回す必要はなく、シリアルデータ用の仮想COMポートを使用するだけです。
ドングルのケースを開けて、使用されているチップを確認すると便利です(開けやすく、アイデアに満足している場合にのみ行ってください)。
あなたはそれがテキサスインスツルメンツベースだと言います:それならおそらくTIのZ-Stackファームウェアを実行しています。その場合は、Z-Stack Monitor and Test APIを実行している可能性があります(ドキュメントコードSWRA198を検索してください)。それと対話するためにC/C++を簡単に書くことができます。
ただし、最初のハードルは、デバイスの読み取り/書き込みを可能にすることです。FTDIチップがあれば、それは簡単です。前の投稿で述べたように、仮想通信ポートとして表示されるはずです。CC2531のようなチップは、USBバスに直接接続できます。私はその構成に精通していません。私はそのようなドングルを1つ持っていて、それらはいくつかの奇妙なTexasInstrumentsシリアルオーバーUSBプロトコルを使用しています。ただし、適切なWindowsドライバーを入手すれば、アプリケーションが使用する通常の通信ポートとして表示されるはずです。