過去 2 日間、デバイス ドライバーがインストールされていない外部デバイスから USB 経由でデータを取得する方法についていくつか読んでいます。USB経由でWT500横河パワーメーターからデータを読み取る必要があります(基本的に、メーターが示すパラメーターの1つだけ、パワー値のみを読み取りたい)。WT500 用のデバイス ドライバーが利用可能であることは認識していますが、いくつかの依存関係があり、ソフトウェアをインストールしたり、それに対応するためにノードに大きな変更を加えたりしたくありません。私が望むことを実行するために使用できることがわかりましlibusb
た.USBデバイスをスニッフィングしていくつかの情報を返すCプログラムがあります。libusbも使用するusb-robotも調べました。私が調査しているサーバー ノードには、OpenSUSE Linux カーネル 2.6.30 が搭載されています。usbfsをマウントしました。
質問:
- libusb を使用すると、要求したときにいつでも USB デバイス経由でパワー メーターからデータ ダンプを取得できると期待しています。メーターに次のように要求できますか? 25k のデータを送信し、それを解析すると、探しているパラメーター値を取得できますか? デバイスに関する知識がまったくないことを考えると、デバイスから意味のある値を得ることができますか? サンプルコードが役立ちます。
-- USBTMC デバイスを照会できる ?IDN のような標準メッセージがいくつかあります。ただし、画面に表示されているものを取得する必要がある場合は、特定のクエリをメーターに送信する必要があります (構文はテクニカル ドキュメント/マニュアル/通信インターフェイスにある必要があります)。
- fread のようなものを使用してファイルを読み取るだけのように、私がやりたいことを行う簡単な方法はないと思います??
――ほぼそうですね。USBTMC モジュールがインストールされている場合 (カーネルのデフォルトのモジュールは機能しませんでした。デバイスのインストールとクエリの詳細な説明はこちらです - http://code.google.com/p/scte/wiki/USBTMC )。いくつかのクエリを送信し、cat
または の下の特定のファイルから何かを介して応答を読み取ります/dev
。
メーターの技術文書によると、記載されているドライバー通信インターフェイスは Windows 固有のものであることがわかります。そのため、リバース エンジニアリングを行う必要があるかもしれません。
-- はい。ただし、ごくわずかであるか、まったくない可能性があります。
ありがとうございました。
編集:少しグーグルした後、答えがあると思います。質問の横にそれらを追加しました。