問題タブ [libusb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - libusb を使用したデバイスからの読み取りの問題
状況は次のとおりです。USB デバイス (通信しようとしているカスタム デバイス) があり、2 つのエンドポイントがあり、1 つはデバイスへの書き込み、もう 1 つはデバイスからの読み取りです。どちらも一括転送です。すべての通信トランザクションは、(1) デバイスにコマンドを書き込む (2) 応答を読み取るという形式を取ります。実際に通信を行うために libusb (1.0 ベータではなくバージョン 0.1) を使用しています。
Windows では、すべて問題ありません。デバイスを接続し、インターフェイスを要求し、楽しく通信できます。ただし、Ubuntu (標準の Hardy デスクトップ インストール) では、デバイスに接続して書き込みを行うことはできますが、libusb から報告されたエラー「URB の送信エラー: 無効な引数」ですべての読み取り操作が失敗します (エラー コード -22)。
/var/log/messages を確認すると、読み取りが試行されたと同時にログに記録された警告メッセージが表示されます。そのバスで、それはエンドポイント 81 から読み取ろうとしています)。
だから... libusbを使用して同様の問題を見た人はいますか、それを修正する方法はありますか?
usb - USB 構成の設定に失敗する
libusb を使用して USB デバイスと通信しようとしていますが、レースの最初の段階でつまずいているように感じます。どのエンドポイントと通信する必要があるかなどは正確にわかっていますが、そこまで到達することさえできません。私は、本質的に:
これで、デバッグ モードでデバイス情報を見ることができ、現在の構成が 0 (初期化されていない/再起動直後) であり、構成番号が 1 の有効な構成が 1 つだけあることがわかります。 1 にすると、-22 の戻り値が返されます。これは、(stringifier を通過して) "windows api error: bad parameter.
同様の問題を抱えている他の人を見つけることができませんでした。それはとても簡単なことのように思えます.インターフェイスを主張したり、代替インターフェイスを設定したりすることさえできません.最初に構成を設定する必要があります。私は何が欠けていますか?(重要な場合:これはWinXP上にあります)
usb - libhid を使用して USB に読み書きする場合
ユーザー空間ライブラリを使用して、Linux で USB HID デバイスからの応答を読み書きしたいと考えています。しばらくグーグルで調べたところ、libhid が問題の解決策になることがわかりました。
hid_interrupt_write
そのため、 and を使用しhid_interrupt_read
てデータを送受信すると、次のエラーが発生しました。
しかし、デバイスを使用hid_set_output_report
しhid_get_input_report
て読み書きしようとすると、次のエラーが発生しました。
と
そして、Usage_Path を取得する方法がわかりません。
誰でもこの問題を解決できますか? 助言がありますか?
これが私のソースコードと実行時の結果です:
結果:
python - libusb-1.0とctypesを使用した非同期USB操作の理解に役立つものもあります
大丈夫。私はそれを考え出した。transfer.flagsは、intではなくバイトである必要がありました。愚かな私。現在、ioctl、errno 16からエラーコードが表示されています。これは、デバイスがビジーであることを意味していると思います。なんて働き者だ。libusbメーリングリストで質問しました。
以下は私がこれまでに持っているものです。これは実際にはそれほど多くのコードではありません。そのほとんどはlibusbのctypes構造体です。一番下までスクロールして、エラーが発生した実際のコードを確認します。
python - USB-同期vs非同期vs半非同期
更新:
非同期Cバージョンを作成しましたが、正常に動作します。
速度の問題はPythonのGILが原因であることが判明しました。その動作を微調整する方法があります。sys.setcheckinterval(interval)
間隔をゼロ(デフォルトは100)に設定すると、低速の問題が修正されます。あとは、他の問題の原因を突き止めるだけです(すべてのピクセルが塗りつぶされているわけではありません)。これは意味がありません。usbmonは、すべての通信が行われていることを示します。libusbのデバッグメッセージングは、異常なことは何も示していません。usbmonの出力を取得して、同期と非同期を比較する必要があると思います。usbmonが示すデータは、一見正しいように見えます(最初のバイトは0x96または0x95である必要があります)。
以下の元の質問、S。Lottで述べたように、これはUSBLCDコントローラー用です。発信エンドポイントメソッドであるdrv_sendには3つの異なるバージョンがあります。以下に違いを説明しました。非同期USB操作の概要を説明すると役立つかもしれません。同期USB操作は同じように機能することに注意してください。同期的に実行されるだけです。
非同期I/Oは5ステップのプロセスと見なすことができます。
- 割り当て:libusb_transferを割り当てます(これはself.transferです)
- 充填:実行する転送に関する情報をlibusb_transferインスタンスに入力します(libusb_fill_bulk_transfer)
- 提出:libusbに転送の提出を依頼します(libusb_submit_transfer)
- 完了処理:libusb_transfer構造(libusb_handle_eventsおよびlibusb_handle_events_timeout)で転送結果を調べます
- 割り当て解除:リソースのクリーンアップ(以下には表示されていません)
元の質問:
私は3つの異なるバージョンを持っています。人は完全に同期し、人は半非同期であり、最後は完全に非同期です。違いは、同期により、制御しているLCDディスプレイに期待されるピクセルが完全に表示され、非常に高速であるということです。半非同期バージョンは、ディスプレイの一部にしか表示されませんが、それでも非常に高速です。非同期バージョンは非常に遅く、表示の一部しか表示されません。ピクセルが完全に入力されていない理由と、非同期バージョンが本当に遅い理由に困惑しています。手がかりはありますか?
完全同期バージョンは次のとおりです。
半非同期バージョンは次のとおりです。
これが完全非同期バージョンです。device_pollはそれ自体がスレッド内にあります。
そして、ここでキューが空になります。これは、gobjectタイムアウトのコールバックです。
これが転送のコールバックです。ロック状態をfalseに戻すだけで、操作が終了したことを示します。
eclipse - Linux usb-hid : libhid ライブラリを eclipse(C++) または netbeans IDE またはネイティブ input.h または hiddev.h に追加しますか?
libhidに問題があります。
Linuxでusb-hidにアクセスする2ウェイ4があることがわかりました
1) input.hやhiddev.hなどの Linux のデフォルト ライブラリと ...
2) libhid の使用
libhid がややこしいので、input.h を使用しようとしましたが、その 2 に問題があります。
ubuntu から自分のデバイスに関する情報を取得する方法がわかりません
open() を使用してデバイスを開きます
次に、ioctl で情報を取得します
しかし、それは私に間違ったベンダーと製品IDを与えます
次に、libhidを使用しようとしましたが、Eclipseまたはnetbeansでlibhid(または他のライブラリ)を使用する方法を知っていました
eclipse や netbeans などの IDE をコンパイルした方法、またはターミナルと gcc を使用してコードをコンパイルした方法を教えてください。または ioctl() および open() を使用する方法は?
私のコード例全体:
iphone - Objective-C を使用した USB プログラミング
Objective-C を iPhone アプリケーションとして使用して USB デバイスをプログラムする方法を誰か教えてもらえますか?
iPhoneからUSBデバイスのコンテンツにアクセスしたい
libusb - libusbdotnet で動作するように署名されていない x64 ドライバーをインストールする
私は現在、Windows 7 開発者です。libusbdotnetで初期化するデバイスを取得するために動作する環境。
デバイス (USB 大容量記憶装置) が接続され、Windows 用の既定の USB-MASS ストレージ ドライバーを使用して実行されます。このドライバーを、libusbdotnet の .INF ウィザードによって作成されたドライバーに置き換えたいと考えています。
オペレーティング システムは 64 ビットで、既定では INF ウィザードがこのドライバーを生成しますが、「ドライバーの一覧から選択する」に移動してポイントすると、「署名されていない」と信じていたため、選択できません。新しく作成されたデバイス ドライバがあるディレクトリ。
DESO を使用して "TEST MODE" を有効にしましたが、まだこのファイルを選択できません。
libusbdotnet に精通している人、または Windows で署名されていない特定のドライバーで動作するようにデバイスを指示する人 (.inf ファイルが必要ですか? または .sys ???) どこが間違っているかについて何かアドバイスはありますか?
ありがとう!
c++ - 64 ビット Windows 用の libusb-win32 に代わるものはありますか?
libusb-win32ライブラリを使用して、開発中の USB ハードウェアと対話するソフトウェアを開発しています。今、同じソフトウェアを Windows 64 で実行しようとしていますが、ドライバーが動作しないようです (当然のことです)。
私が見落としていた 64 ビット Windows の代替手段はありますか?
python - Python libusb pyusb「mach-o、しかし間違ったアーキテクチャ」
pyusbモジュールに問題があります。問題を1行に絞り込み、エラーを再現するための小さなサンプルスクリプトを作成しました。
これと同じスクリプトがUbuntu10.04で正常に実行されます。
x86_64(OS 10.6のデフォルト)ではなく32ビット(i386)用のlibusbモジュール(ソースから直接およびmacports経由)をビルドしようとしましたが、同じエラーが発生します。
よろしくお願いします!