問題タブ [hidapi]
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.
macos - デーモンユーザーがIOHIDDeviceOpenを呼び出すときにkIOReturnNotPrivilegedを取得せずにHIDデバイスにアクセスするにはどうすればよいですか?
HIDデバイス(マウスやキーボードではない)にアクセスするためにhidapiを使用しています。サポートされる最も古いOSバージョンは10.6で、現在Mac OXX10.6.8を使用しています。Mac OS X実行可能ファイルが通常のユーザー権限で実行されている場合は、デバイスを列挙し、ベンダーと製品IDで使用するデバイスを特定して、次のように開きます。
実際には、実行可能ファイルはデーモンとして実行する必要がありますが、その後IOHIDDeviceOpen
失敗しkIOReturnNotPrivileged
ます。Linuxの場合、udevルールによるホットプラグスクリプトの起動に関する同様の問題を回避し、新しく接続された(一致する)デバイスの権限を変更しました。デーモンユーザーに固執したいと思います。どうすればこれを達成できますか?
pthreads - 2つのスレッドのHIDAPI
https://github.com/signal11/hidapi/issues/72によると、HIDAPIはLinuxマシンでスレッドセーフである必要があります。しかし、私はそれをまったく動作させることができません。これが私がすることです:
グローバルハンドルを使用しないと、毎回「書き込みエラー」が発生します。例のように、正式にはすべてが機能しますが、hid_readは常に0バイトを返します...もちろん、単純なhid_write()の後にhid_read()を実行すると、意図したとおりにコマンド0x82に対して正しい応答が返されます。 。私はここで本当に迷っています、私は何かを見落としていますか?
編集:明確にするために、ゼロバイトはすべてを含むすべてに対しても返されます。マウスのボタンなど。それで動作するように見えますが、データバッファは常にゼロバイトです。
c - ソースからlibhidapi.dylibを作成する方法は?
USBデバイスにアクセスする必要があるクロスプラットフォームプロジェクト(WinおよびMac)が進行中です。すべての要件に完全に適合するHIDAPIライブラリを見つけました。HIDAPIライブラリ用のDelphiFiremonkeyラッパーがないため(少なくとも1つはわかりません)、自分で作成しています。
HIDAPIプロジェクトのWebサイトhttp://www.signal11.us/oss/hidapi/は次のように述べています。「Windowsでは、HIDAPIをオプションでDLLに組み込むことができます。「「
これは、Visual Studioを使用してソースを正常にコンパイルし、Windowsで完全に機能するDLLを作成したためです。さて、私はCプログラマーではなく、OSXは私の最強のスキルではないので、それは可能であり、与えられたソースコードからlibhidapi.dylibを作成するにはどうすればよいですか?
mono - OSXでのHIDAPIのオプション
私はCでHIDAPIを使用していて、相互運用機能を使用してMonoがHIDAPIと通信できるようにしようとしています。私は多くの検索を行いましたが、OSXでMonoを使用するためにHIDAPIを取得した人を見つけることができませんでした。
HIDAPIを使用してHIDデバイスからの出力をローカル仮想シリアルポートにリダイレクトし、Monoにシリアルポートから読み取ることができるかどうかを誰かが知っていますか?
別のオプションとして、ArduinoleonardoやCircuits@ Home USB Host Shieldのようなものを使用できるかどうか誰かが知っていますか?
少なくとも、MonoでPInvokeを整理できるようになるまでは。
ありがとう
c++ - Hidapiはubuntuでコードをコンパイルできません
Ubuntu12.04でhidapiライブラリを使用しようとしています。githubのチュートリアルに従いましたが、付属のテストコードでさえ機能していません。それは常に未定義の参照について不平を言います。解決策が見つかりません。インストールが成功した後でも、どこにもライブラリが見つかりません。
hidtest.cppをコンパイルしようとしていますが、最初のエラーはhid_init()
行にあります。
誰かが私を助けてもらえますか?
編集:
これはUbuntu12.04で、EclipseJunoを使用して行われます。
linux - UbuntuのEclipseでネイティブhidapiとlibusb-1.0ライブラリをリンクする
私はUbuntuを初めて使用し、2日間オンラインで検索し、多くのソリューションを試しましたが、まだ運がありません. 誰かがこれを手伝ってくれるなら、私は感謝します。
WindowsでEclipseを使用してJavaでプログラムを作成しました。私のプログラムは、C 版 hidapi ライブラリ (.dll) の Java ラッパーである Java hidapi ライブラリを使用しています。Eclipse では、Java hidapi をビルド パスに追加し、C hidapi をネイティブ ライブラリとして設定すると、すべてが正常に機能します。
今、Ubuntuでも同じことをしたいと思っています。同じ Java hidapi が使用され、Linux 用の C バージョンの hidapi ライブラリ (.so ファイル) が使用されます。Linux 用の C バージョンの hidapi ライブラリを作成するとき、libusb-1.0 という別のライブラリが必要であることがわかりました (hidapi は低レベルの通信を処理するために必要です)。libusb-1.0 をインストールし (/usr/lib/i386-linux-gnu の下に libusb-1.0.so ファイルがあります)、Linux 用の C バージョンの hidapi ライブラリを作成します。私は小さなCプログラムを持っていて、それをbashでテストしました。動作するので、この時点まで、Linux用のlibsub-1.0.soとCバージョンのhidapiライブラリの両方libhidapi-jni.soが正しくインストール/生成され、実行時にシステムが共有 libusb-1.0.so ライブラリを見つけることができる小さな C プログラムは、libsub-1.0 がどこにあるかを明示的に言及しなくても (libusb-1.0.
だから私は日食に行きます。Eclipse ワークスペースをインポートし、ビルド パスに Java hidapi を追加し (Windows で行ったように)、Linux 用の C バージョンの hidapi ライブラリ (.so ファイル) を「lib」というフォルダー (.dll バージョンのネイティブ ライブラリも存在します)。そして、「ビルドパス」->「ビルドパスの設定」->「ライブラリ」タブ->「ネイティブライブラリの場所」で、ネイティブライブラリを「lib」に設定しました。したがって、この時点までの 2 つのネイティブ ライブラリは、/usr/lib/i386-linux-gnu の下の libusb-1.0 と、'whereever eclipse workspace is'/lib の下の hidapi.so です。最後に、ソース コードに次の 2 行を追加します。
System.loadLibrary("usb-1.0"); // この行を A と呼びます。
System.loadLibrary("hidapi-jni"); // この行を B と呼びます。
プログラムを Java アプリケーションとして実行します。行 A で「java.lang.UnsatisfiedLinkError: no usb-1.0 in java.library.path」が報告されます。そのため、Java ランタイムは libsub-1.0 の場所を見つけることができないと思います。
明確にするために、私はすでに次の試行を行いましたが、どれも機能しませんでした.
- 2 つのライブラリはそのままにして、vm 引数を追加します (実行 -> 実行構成 -> 引数 -> VM 引数): -Djava.library.path="${workspace_loc:project_name}/lib; /usr/lib/i386- linux-gnu". 行 A に「java.lang.UnsatisfiedLinkError: no usb-1.0 in java.library.path」が表示されます。
- 元に戻す 1. libsub-1.0.so を 'wherever eclipse workspace is'/lib に移動して、2 つの .so ファイルを一緒にします。.jar のネイティブ ライブラリの場所をこのフォルダーに設定します。B行で「java.lang.UnsatisfiedLinkError: blablabla: undefined symbol: libusb_control_transfer」が表示されます。したがって、libusbライブラリが見つかったと思いますが、シンボル(libusbにあるはず)はまだ解決されていません。これは本当に奇妙です。
誰でも私を助けることができますか?前もって感謝します。
ubuntu - HID API がテスト GUI を構築できない
hid API の readme 手順全体に従った後、「hidtest/」ディレクトリから「make」を実行しようとすると、「make: Nothing to be done for `all'.」が表示されます。エラー。何が原因なのかわかりません。
java - HIDAPIでUSBデバイスの温度を読み取る方法は?
USB デバイス TEMPer から温度の値を回復する必要があり、このブログ投稿でコードを見つけました。
私のクラスはこのエラーコードを返します:
com.codeminders.hidapi.HIDDeviceNotFoundException at com.codeminders.hidapi.HIDManager.openById(HIDManager.java:114) at Foo.readTemperature(Foo.java:44) at StartApplication.main(StartApplication.java:96)
USB プローブが HID デバイスかどうかを確認しましたが、そうです。
解決策が見つかりました!==> クラシック ストレージ キー以外の USB デバイスが表示されないのは、私の Linux です。だから今それは働いています!
私は今、2番目の問題を抱えています.このコードでは、
そして、このラインは良い結果を得るために不可欠です。そして、バイトを使った操作は私にとって本当に簡単ではありません...
ソリューション n°2 が見つかりました! ==>必要なのは、書き込みと読み取りの前に次の行を追加することだけです:
私が思う最後の問題:これを行うときにバイトを読み取らない:
n は常に 0 です...