20

ライブラリは次のことを行う必要があります。

  • 使いやすく、数行のクライアント コードで多くのことを達成する必要があります
  • 可能な限りプラットフォームに依存しないようにします。(将来的に他のプラットフォームに移植する場合)
  • C++ バインディングがあります。
  • 成熟して安定していること

また、コールバックを通じてほとんどの HID イベントの通知を受け取りたいです。

次の代替案を検討しました。

  • libhid - (残念ながら?) これは GPL であり、私のアプリケーションでは使用できません。
  • WDK - 私の使用には少し低レベルのようです。私はそのような制御を必要としません。
  • atusbhid - これには適切なレベルの抽象化がありますが、Windows メッセージング ループにしっかりと結び付けられています。

他に提供できる代替案はありますか?

4

6 に答える 6

9

hidapiを見てください: C++ バインディングの質問に答えるのは C であり (事実上:))、クロスプラットフォームであり、非常に寛容なライセンスを持っています。

コールバックはないようですが...

于 2011-08-11T02:12:37.840 に答える
5

libhid が機能する場合は、libhid を使用してデバイスと通信し、TCP 接続を介して必要なものを提供するアプリケーション (GPL) を作成する必要があります。実際のアプリケーションは、必要なことを行うために TCP 経由で接続します。これは明らかにパフォーマンスに大きな影響を与えます。

このアプリケーションは事実上、libhid とアプリケーションの間の「shim」になります。この場合、shim は技術的な理由ではなく、法的な理由で存在します。

それが良い考えだと言っているのではなく、ただの考えです。

于 2008-11-11T22:15:33.240 に答える
3

あなた自身を転がすことを検討してください。インターフェイス、プラットフォームの独立性のレベルなどを完全に制御できます。プロジェクトはGPLですが、それを自分のレシピとして使用したり、自分の問題を見つけるためのテストベッドとして使用したりできます。

于 2008-11-14T10:31:13.823 に答える
2

TraceシステムのHIDmakerソフトウェアスイートはオプションです。

長所:

  • 使いやすい(USB HIDのプログラミング方法を学ぶのに最適)
  • さまざまなプロジェクト形式(Visual StudioおよびBorland)で動作するアプリケーションのソースコードを生成します
  • ホストとデバイスの両方の安定したサンプルコードを生成します(私の経験では安定しています)
  • 高性能(HIDがそもそも高性能であるとさえ言えば)

短所:

  • MicrosoftWindowsでのみ動作します
  • 独自のUSBライブラリを使用していると思います(ActiveX
于 2008-11-14T09:37:21.937 に答える
2

このコードを見てください:

C# から FM ラジオ (またはその他の USB HID デバイス) を読み取って使用する

HID デバイスと通信するためのいくつかの簡単なクラスを提供します。つまり、デバイスのエイリアス (\?\HID#Vid_nnnn&Pid_nnn#... など) を取得し、CreateFile を使用してそれを開きます。でデバイスのエイリアスを取得できますHKML\SYSTEM\CCS\Control\DeviceClasses\{4d1e55...}\

Vid と Pid は、デバイスのベンダー ID と製品 ID です (デバイス マネージャーを確認してください)。

于 2009-02-03T19:27:28.647 に答える