2017-01-05 107 views
0

私は大気中のCO2含有量を測定するデバイスを購入しました。それは3秒ごとにUSB経由で値を報告します。 VB6でこれらの値を処理したいです。VB6からUSB HIDにアクセス

デバイスを差し込んだ後、ヒューマンインタフェースデバイス(HID)としてリストされているハードウェアマネージャで見つけられます。

私が知っている通りの項目を調べると、Port_#0003.Hub_#0003にプラグインされています。イベントタブで、USB \ VID_04D9 & PID_A052 \ 1.40という名前のデバイスが設定されていて、クラスGUIDが{745A17A0-74D3-11D0-B6FE-00A0C90F57DA}であることを確認しました。 RS/232の実装はありません。少なくとも、私には何も表示されないので、MS COMM Controlは使用できません(16の許可ポート番号すべてで試してみてください)。

[VB6]でタグ付けされたHIDに関する情報をSOで検索すると、HID APIを直接使用するのはPITAだけです。

とにかく試してみたかったし、HID.dllを参照しようとしましたが、このDLLをVBで使用できないと不平を言うVB6しか見つからなかった。

通信されたデータを取得して処理するためにデバイスにアクセスする方法はありますか?どのように私はこのベンチャーに着手するのですか?

+0

"参照"と言ったら、 "参照として追加する"という意味ですか? COM DLLでない場合は、すべての関数に宣言を追加する必要があります。ドキュメント化されたAPIはありますか? Cで書かれていますか? –

+0

ジム、はい、私は参照として追加しようとしました。ただし、HID用に作成された製品であり、MSによる使用を推奨されています。この説明を参照してください:https://en.wikipedia.org - このページは、「Windowsの内蔵HID(ヒューマンインターフェイスデバイス)ドライバを使用して、USBのHIDクラス仕様に準拠したデバイスと通信できることを主張しています。カスタムドライバが必要です; Windowsに含まれているドライバを使用します。API関数の呼び出しをサポートするプログラミング言語を使用してください。 ":http://janaxelson.com/hidpage.htm/wiki/USB_human_interface_device_class – Herb

+0

最初のリンクは次のとおりです。https: //en.wikipedia.org/wiki/USB_human_interface_device_class – Herb

答えて

0

私はVB6の実装へのリンク(コメント内の同じページ)がありますが、ページ上のすべてのリンクが壊れていることがわかりました - それらはページをリロードするだけです。あなたがそれを追跡することができれば、私はそれがあなたのニーズを満たすだろうと確信しています。

いずれの場合でも、サポートされているHIDデバイスは、いずれも明らかにDirectInputで使用できます。インスタンスDirectX8、次にDirectInput8、次にDirectInputDeviceGetDIDevices,.Acquireのデバイス(あなたのHIDデバイス)を列挙し、その機能を調べてください。

すべてこれはDirectXに依存しますが、これはMSによって完全にdocumentedです。ドキュメントはVB6フレンドリーではありませんが、通常はそれを解決することは可能です。

+0

Thanks Jim。しかし、DirectX8はWin 8.1にインストールするのに失敗し、Win 9x、...、Vistaが必要です。 – Herb

+0

@Herbお使いのOS(11?)で動作する最新のDXバージョンをインストールするだけです。以前のインタフェースはすべて新しいバージョンに組み込まれているか、同等のものが存在するはずです。 –

1

完全なベンダーのドキュメントがない場合、これはどの言語を使用してもかすかではありません。あなたはおそらく、USBスニッファを使用して、ベンダーのソフトウェアで使用中の生パケットをキャプチャする必要があります。そこから、引っ掻きと推測の苦労が始まります。

このようなデバイスで動作するようにVB6で記述されたコードの例については、[VB6] TEMPer Gold USB HID Thermometer Classを参照してください。たとえ他の人がサンプルのCコードと交換されたUSBパケットにいくつかの反駁を投稿していたとしても、それをうまく動作させることは大変だった。他の誰かが既にあなたのために重いものをやっていない限り、あなたはもっと多くの仕事をするように思えます。

HID.DLLはActiveXライブラリではありません。それはタイプライブラリが埋め込まれていません。私が知る限り、利用できる外部のタイプライブラリもありません。とにかく参照を設定するものはありません。

だけでなく、それはCOMライブラリではなく、生のプレーンな古い標準DLLです。

あなたはあなたの頭をはるかに超えていると思います。ベンダーがAPIライブラリを提供していない限り、必要な研究開発を行うための時間とツールがなければ、運が悪いかもしれません。ベンダーが適切な低レベルのドキュメントを提供すれば、それはいくらかの労力を節約することができますが、めったにないのでそうは思われません。

+0

私は始めてくれてありがとう。私はあなたの答えをまだ解決策にしていないでしょう、私は真剣に進歩を遂げるまで、私は望みます。 +1 – Herb

関連する問題