問題タブ [usb4java]
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.
usb4java - USB デバイスから読み取ろうとすると、USB エラー 5 が表示されます: データを読み取ることができません: エンティティが見つかりません。
usb4java api を介して USB デバイスから読み取ろうとしましたが、次のエラーが表示されます: USB エラー 5: データを読み取ることができません: エンティティが見つかりません。endpoint_in は LibUsb.ENDPOINT_IN から取得し、それを読み取り関数に渡します。 デバイスが検出されましたが、デバイスからの読み取りに進むことができません。
}
デバイスは USB マウスですが、それが問題ですか?
public static ByteBuffer write(DeviceHandle handle, int size) { ByteBuffer buffer = ByteBuffer.allocateDirect(8); buffer.put(新しいバイト[] { 'p' });
しかし、USB エラー 5 が表示されます: データを書き込めません: エンティティが見つかりません
classpath - Netbeans の実行に javax.usb.properties を含める
Netbeans 8.1 プロジェクト Windows 7/64b からhttp://usb4java.org/に基づいた簡単な例を実行しようとしています。必要な javax.usb.properties を作成し、プロジェクトのルート ディレクトリに配置しました。ドキュメントによると、クラスパスのルートにある必要があります。(参照http://usb4java.org/quickstart/javax-usb.html )
VMオプションに挿入して実行構成を設定してみました(-cpまたは-classpathを無差別に使用):-classpath "。" または -classpath "D:/WORKSPACES/NETBEANS/USBPrototypeControler"。
残念ながら、期待どおりに構成が実行されていません。javax.usb.properties が見つからないという例外が毎回発生します。
どうすれば Netbeans を使用できますか?
java - Java (Raspberry PI および Windows) は DYMO Scale を読み取ります
Windows とラズベリー pi で実行できるようにする必要がある Java アプリケーションを作成しています。
アプリケーションは、DYMO USB スケールに接続する必要があります。
デバイス監視スタジオに確認すると、データを受信していることがわかります。デバイス監視スタジオ
現在、usb4java 経由でデータを読み込もうとしています。
私は次に従っています: http://usb4java.org/quickstart/libusb.html
正しいデバイスが見つかりました。ハンドルを作成します。インターフェイスを作成します。
今私の質問です。データの読み取り方法を教えてください。一括転送で試してみます。
しかし、私のバッファと read_transfered は常に空です。(0 でいっぱいの配列)
私は何を間違っていますか?
よろしく、 ダイダー
java - USB4Java は libusb 1.0 または 0.1 のラッパーですか? 新しいJava開発に推奨されますか?
JavaでUSBデバイスを使用する適切な方法を見つけようとしています。StackOverflow からの投稿のほとんどは usb4java の使用を推奨していますが、最新のアクティビティは 2014 年初頭にあるようです。そのため、まだアクティブかどうかはわかりません。
とにかく、少し掘り下げてみると、そのページには、「ネイティブの libusb 1.0 ライブラリに基づいています」と書かれています。次に、デバイス ドライバーをインストールしようとして、推奨どおりに Zadig を使用しました ( https://github.com/libusb/libusb/wiki/Windows#How_to_use_libusb_on_Windows )。
「libusb-win32」ドライバーを使用して、usb4java を動作させました。しかし、「libusb-win32」Web サイトにアクセスすると、「libusb-win32 は USB ライブラリ libusb-0.1 のポートです」と記載されており、さらにここhttp://libusb.org/wiki/APIs#libusb -0.1legacyAPIで、「開発状況: libusb-0.1 は非推奨であり、これ以上の変更やリリースはありません」</p>
これは非常に紛らわしいので、まず USB4Java が libusb 1.0 を使用しているか 0.1 を使用しているかを知りたいと思います。また、新しい開発や進むべき道に推奨されるものはありますか? Javaを使用するUSBデバイスのサポートはあまりないようです.
アップデート:
ありがとうドライマン。素晴らしい説明。libusb-win32 と組み合わせた usb4java に関する私の問題はレイテンシーです。私のトランザクションは 10 ミリ秒ごとに行われ、データを失うわけにはいきません。そのため、バッファリングを開始する必要があり、15 個のバッファーがあるため、最大遅延は 150 ミリ秒になります。 )、時々 1 秒を超えるレイテンシがあることがわかります。WinUSBを試しましたが、何らかの理由で次のようになりました:
より信頼性が高いかもしれないとおっしゃったので、試してみて、修正しようと思います。
ところで: 以下のコード内で転送 (LibUsb.submitTransfer(transfer);) を送信しようとすると、アクセス違反が発生します。
java - USB デバイスの文字列記述子を取得する
Windows 8.1 ではLibUsb.getDeviceList(null,connectedDevices)
、次のコードを使用して、PC に接続されたすべての USB デバイスを正常に取得します。
しかし、「iManufacturer」がnullではない特定のデバイスの文字列記述子を取得したい場合:
LIBUSB.ERROR_NO_DEVICE
関数に返されるエラー コードを取得しますopen
。これは、ほんの数ミリ秒前に検出されたデバイスに対して奇妙に感じるか、LIBSUSB.ERROR_INVALID_PARAM
エラー コードに返されgetDescriptor
ます。そしてLibUsb.getStringDescriptor(handle,deviceDescriptor.iManufacturer(),(short)0x409,buffer)
、同じエラーコードで同様に失敗します...
を使用して、17 台中 2 台のデバイスのメーカーと製品の文字列を取得することに成功し、とLibUsb.getStringDescriptor(handle,deviceDescriptor...)
に null 以外の値が返されました。他のものが取得されなかった理由は 127 バイトの制限に関連していると思いましたが、1000 バイトのサイズのバッファーで を使用するのは良くありません。iManufacturer
iProduct
getStringDescriptorAscii(handle,deviceDesriptor...,buffer)
私は何が欠けていますか?
java - usb4java: データ転送が機能しません
usb4java (低レベル API) を使用して、Windows (x86 と x86_64 の両方) で HID デバイスとして設定された USB 接続の科学機器と通信しようとしています。正常に動作する非常に古い C++ アプリケーションがありますが、さまざまな理由から純粋な Java に置き換えようとしています。
デバイス記述子を取得してインターフェイス/エンドポイントを特定できますが、非同期転送は発生せず (Device Monitoring Studio でチェック)、コールバックは呼び出されません。usb4java によって例外がスローされることはなく、libusb のレベルでログにアクセスできるかどうかもわかりません (可能であれば)。私はハードウェアを扱うのはまったくの初心者なので、本当に基本的なことを見逃しているかもしれません。
エンドポイントは 1 つしかなく、C++ コードが双方向通信をどのように管理したかはわかりません。すべての詳細はサードパーティのライブラリに埋もれているため、コード内で転送タイプについて明示的に言及されていません。
libusbK ドライバーをインストールし、高度な実装 (javax-usb) を試しました。転送はまだ完了していません。
以下は、エンドポイント記述子ダンプからの出力と、コードの短縮バージョンです。
コードは次のとおりです。
ご提案いただきありがとうございます。