問題タブ [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.

0 投票する
1 に答える
3571 参照

java - libusbはUSBマスストレージと通信します

私は現在、libusb 0.1をバックエンドとして使用してjavax-usb(JSR-80)実装を作成しています。一括転送機能をテストする必要があります。これを行う最も簡単な方法は、USBフラッシュドライブなどのUSB大容量ストレージデバイスと通信することです。残念ながら、これらのデバイスがどのように機能しているかわかりません。ある種のプロトコルがあると思います。バルクエンドポイントで転送を開始する前に、いくつかのUSB制御要求を送信する必要があります。

私は完全なUSB大容量ストレージドライバーなどを書くことに興味がないので、ファイルシステムのものでさえ問題ではありません。私の唯一の目的は、実装をリファレンス実装と比較できるように、バルクエンドポイントを介してデータを転送することです。

私が必要としているのは、いくつかのサンプルコード(言語は関係なく、libusbまたは別のものを使用するかどうかも関係ない可能性が高い)またはプログラマーにとって理解しやすいUSBマスストレージの仕様です(私はハードウェアではありません)スペシャリスト)。私はすでにウェブを検索しましたが、今のところ有用なものは何も見つかりませんでした。

0 投票する
1 に答える
2614 参照

linux - 組み込みLinuxデバイスでのUSBドライバーテスト

組み込みLinuxデバイスでUSBドライバーをテストするためのオープンソーステストスイートを探しています。何か提案は大歓迎ですか?私はこのリンクを読んでいます:http ://www.linux-usb.org/usbtest/

オープンスイートのUSBテストスイートが存在しない場合、誰かが組み込みデバイスでUSBをテストするためのアイデアを提案できますか?

0 投票する
2 に答える
3503 参照

c# - USB 割り込みデータの読み取り

私は、libusb WIN32 ドライバーを使用する USB デバイスを持っています。

割り込みデータは、USB-HID インターフェイス エンドポイント 83 (EP83 内) を介して加速度計から取得できます。データは、次のフィールド (x、y、z、Vbat、CpuTemp) を持つリトルエンドイン形式です。データは 62.5ms (16Hz) ごとに取得されます。多数の USB HID「get」および「set」レポートが利用可能です (ep0 経由)

.NET および C# 経由でこのデータにアクセスするにはどうすればよいですか?

0 投票する
3 に答える
10152 参照

python - Windows 7 の Pyusb でデバイスが見つからない

そこで、Pyusb 1.0.0-alpha-1 をインストールしまし
た。 Windows では、USB デバイスへのハンドルを取得できません。

USB デバイスが 1 つ (idVendor=0x04d8、idProduct=0x0042) 接続されていて、試してみusb.core.find(idVendor=0x04d8, idProduct=0x0042)ましたが、これも失敗しました。

Ubuntu では、同じバージョンの pyusb と python (2.6) を使用して、そのコードを使用してデバイスを正常に見つけ、それと通信できます。

Windows 7でpyusbにUSBデバイスを見つけるにはどうすればよいですか?

0 投票する
1 に答える
1409 参照

android - Android ARM デバイス/エミュレーターで libusb がクラッシュする

私は NDK を使用して libusb をコンパイルしています (両方ともhttps://github.com/monaka/libusb-androidで提供されているビルド済みのものから)) だけでなく、彼の変更を使用して最新の利用可能な (libusb-1.0.8) をコンパイルします。ロードされているように見え、「init()」への最初の呼び出しはエラーを返しません。ただし、デバイスを一覧表示するためにライブラリに基本的な呼び出しを行おうとすると (libusb に含まれているサンプル lsusb コードから)、クラッシュが発生します。NDK が提供する「arm-eabi-addr2line」と、ダンプが障害として提供するアドレスを使用して、libusb のデバイス リスト メソッドが検出したデバイスから「不明なステータス」を取得することを突き止めました。クラッシュが発生する「usbi_log()」メソッドが呼び出されます。NDK ツールでは行番号が表示されないため、エラーが発生している場所の詳細はこれだけです。

libusb ソース リポジトリ: http://git.libusb.org/?p=libusb.git;a=summary;js=1

これが問題の一部であると考える理由はありませんが、非常に単純なアクションから libusb への単純な JNI 呼び出しを行っています。これは非常に基本的な .h (javah から) ファイルと .c ファイルであり、提供されている「lsubs」サンプル プログラムのアクションをコピーし、Action クラスは onLoad() メソッドで呼び出しを行うだけです。

また、エミュレーターで実行するとクラッシュします。また、デバイス (Nexus One) を取り外してデバッグを無効にし ([アプリケーション] -> [デバイスの開発] で無効にする)、USB バスを (理論的には) 空にする (少なくとも外部物理デバイスの) と、同じクラッシュが発生します。

デバイスとエミュレーター Android バージョン: 2.2
NDK バージョン: r5b
ADK バージョン: r10
ホスト OS: OSX

あなたが提供できる助けをありがとう!

0 投票する
1 に答える
1675 参照

curl - MacportsからのcURLのインストールが失敗する

友人のMacにMacportsを使用してインストールしようとしてlibusb-develいます(Osceletonをインストールするために必要です)。私のコンピューターでは、インストールは完全にうまくいきましたが、彼にインストールしている間、私は立ち往生しています。

の依存関係の1つはlibusb-develですcurl。ただし、インストールcurlは失敗するようです。の構成中curlに、エラーメッセージが表示され、インストールが終了します。私はログを参照しています。ここで、これはエラーに関連する部分です。

ログに示されているコマンドを使用してconfigure-scriptを自分で実行すると、すべてうまくいき、curl完全にインストールされます。ただし、Macportsは、特定のファイルがすでに存在するなどのエラーが表示されるため、これに満足していません。また、curlMacportsを使用して直接インストールすると問題が発生するようです。

このため、のインストールを続行できずlibusb-devel、学校のプロジェクトですぐに必要になります。誰か助けてもらえますか?

TIA

0 投票する
3 に答える
3284 参照

visual-c++ - USB経由で高速にデータをホストに転送

USB接続を介してカスタムメイドのラボデバイス(小さなハードウェアのもの)と話しています。ラボ デバイスから最大速度でデータを取得するにはどうすればよいですか?

ホストは Windows XP マシンで、Visual Studio で libsub-win32 を使用して C コードを実行しています。小さなハードウェアが大量のデータを収集します。ホストはこのデータを要求してから読み取ることができます。すべてがうまく機能しています。気になるのは速度です。大まかな見積もりは 1Mbit/s であり、これは USB2 がサポートする 480 Mbit/s にはほど遠いものです。デバイスは、少なくともその速度でデータを送信できる必要があります。私は USB も libusb-win32 もほとんどまたはまったく経験していませんが、それらについて読んでみました。USB通信設定をどこでどのように変更するかわかりませんが。仕様では、高速バスにマイクロフレームと呼ばれるものがあるようです。それらをどのように使用できますか?

必ずしも libusb-win32 ライブラリを使用する必要はありません。他におすすめはありますか?

現在の実装に関する詳細: 上記のように、通信には libusb-win32 を使用します。すべての初期化は、ダウンロードに含まれる小さな例からコピーされます。

次に、(usb_bulk_write(...) と usb_bulk_read(...) を使用して) ラボ デバイスに話しかけ、そのデータを私と共有するよう説得します。512バイトのチャンクでデータを提供します。このような各チャンクは、usb_bulk_read(...) を使用して読み取られます。

2011 年 4 月 27 日編集: Full Speed を使用しているように見えますが、High Speed は使用していません。どうすれば高速に乗れますか?USB 記述子ファイルのパラメーターが間違っていませんか? (はい、USB2.0 を使用しており、デバイスは高速をサポートする必要があります。)


編集 2011 年 5 月 17 日: winUSB を使用して通信を実装しました (.inf ファイルと c++ プログラムを作成しました)。WinUSB を使用する利点は、高速を使用しようとしているかどうかを教えてくれることです。それはありますが、まだ約 11+-2 Mbit/s を超える速度は得られません。なんで?

USB2.0 プロトコルによれば、コンピュータはフレーム マーカーの開始 (ミリ秒ごとに送信) を送信する必要があります。しかし、高速を使用する場合、「高速では 125us の長さ (1 ミリ秒あたり 8 マイクロフレーム) の「マイクロフレーム」を使用する」と表示されます。1 ミリ秒のフレーム番号付けとの対応は、各フレーム番号を 8 連続で繰り返すことにより、高速 SOF パケットで維持されます。マイクロフレーム。」私はこれをよく理解していませんが、マイクロフレームを十分に頻繁に送信しないことが問題になる可能性がありますか? プロトコルを理解している人は、私に教えてください! 自分のコンピューターで動作するかどうかに関係なく、その動作を理解したいです。


6月15日編集

問題解決: コンピューター側に変更を加えても、必要以上に通信が高速になることはありません (エンドポイントの数を変更せず、実際に USB2.0 接続を使用している場合)。ここでの問題は、非常に時間のかかる方法でメモリ領域を使用するプロセッサ コードにありました。これにより、この質問は一種の非質問になります。すべてのポインタと情報をありがとう。USBについて、とても勉強になりました!

0 投票する
1 に答える
2764 参照

c++ - libevent で libusb を使用するには?

libevent を使用してイベント駆動型アプリケーションを作成しています。libusb-1.0 を使用して USB 転送を行う必要があります。

libusb_get_pollfdsを使用してファイル記述子のリストを取得し ( でfds)、次のように libevent に追加したいと考えました。

また、libusb_set_pollfd_notifiers を使用してfdsを追加/削除しlibusb_fds_eventsます。

問題は、libusb によって返されたリストに多くの奇妙な fds が表示されることです (たとえば、stdinイベントが 0 の場合に (!) を何度も取得します)。

私はそれを正しい方法で使用していますか?

0 投票する
1 に答える
253 参照

java - USB 周辺機器として動作する Windows システム上の Java アプリケーション

USB デバイスをホストとして機能させ、Windows ベースのシステム上のアプリケーションをペリフェラルとして機能させる方法はありますか? ホストである USB デバイスがあり、Windows ベースのシステムで実行されているアプリケーションに接続する必要があります。デバイスは USB 2.0 On-the-go 仕様を使用していますが、ホストの役割で実行する必要があります。いくつかのライブラリとそうでないものを見つけましたが、それらはアプリケーションがホストでデバイスが周辺機器である場合にのみ機能するようです。情報やリードをいただければ幸いです。

ありがとう。

0 投票する
1 に答える
5499 参照

android - 生データを Android シリアル ポート (USB) に書き込む

私のプロジェクトでは、「生の」データを USB ポートに書き込む必要があります (root が必要な場合は問題ありません)。

Android 用の libusbのポートを見つけ、NDK でコンパイルすることができました。ライブラリを私の実行可能ファイル (ルートとして実行) にリンクしましたが、関数 "libusb_init" は常にエラー (LIBUSB_ERROR_OTHER) を返します。

問題は(今では...)ファイル「linux_usbfs.c」、より正確にはこの関数にあることがわかりました:

/dev/bus/usb明らかに私のN1には存在しません。