問題タブ [pyusb]

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 に答える
1347 参照

python - ウィンドウのシリアル USB ポート番号 (パラメーターとして)

Windows 8.1のEclipseでpython USBライブラリを使用してシリアル通信用のUSBスティック(ANT + suntoo)に接続したい。USB スティックのシリアル アドレス (Port_#0001.Hub_#0003) をパラメーターとして Python プログラムに渡す必要があります。

Linux では次のようになります: #SERIAL = '/dev/ttyUSB0', したがって、ウィンドウにはこのようなものはありません

ただし、WindowsではCOMxの一部のバリアントになりますが、私のOSはUSBをCOMポートとして表示しません。むしろ、ポートとハブ番号を含む一般的な USB HUB を表示するだけです。

COM3 を渡そうとしましたが、次のようなエラーが発生しました: ポート 'COM3' を開けませんでした: FileNotFoundError(2, '指定されたファイルが見つかりません.', None, 2)

これらの質問Qs01Qs02は関連していますが、役に立ちません。ガイドしてください。

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

python - Python HIDAPI を使用して安価なロード セル スケールをテアする方法は?

良いニュースは、この安価な Xiamen ELANE.NET ロード セルが USB でレポート 3 モードにパワーアップすることです。現在の重量をグラム単位で絶えずバーフィングします。

そのデータシートは次のとおりです。

http://www.elane.net/USBscales/List_USB_Digital_Load_Cell_Commands_and_Data_Format_User.pdf

私はそれを標準的なpyusb呼び出しで読むことができます。このサンプルはスケールを読み取ることができます...

http://www.orangecoat.com/how-to/read-and-decode-data-from-your-mouse-using-this-pyusb-hack

...デバイスルックアップを次のように置き換えた場合usb.core.find(idVendor=0x7b7c, idProduct=0x301)

(私は自分のプログラムを実行することも乱用sudoします。bc は、デバイスのアクセス許可をいじることを拒否しsudo、Raspberry Pi では簡単です。)

標準pyusb呼び出しを使用すると、スケールのスピューを次のように読み取ることができます。

これは 6 バイトの配列を返します。

体重計にコマンドを送信しようとすると、楽しみが始まります。現在の重量をゼロにするコマンド (Zero Weight、別名「風袋」) は7 4 2 0 0 0.

https://github.com/walac/pyusb/blob/master/docs/tutorial.rstのようなサンプル コードを使用して ENDPOINT_OUT エンドポイントを検索し、これらの行のいずれかを使用してそれに書き込む場合、私は風袋できません:

(症状としては、ロード セルに荷重をかけて、上記の線で重量を量り、風袋引きを行った後、再び.read()ゼロにならないということです。).read()

よし、私たちはまだ死んでいない。HIDAPI は試していません。それで、apt-get私は some libusbhid-common、 some cython-dev、 some libusb-dev、 some libusb-1.0.0-dev、および somelibudev-devと、風袋引きを試みるために HIDAPI C のサンプル コードをアップグレードします。

そして、それは風袋です。

私の 1 つの成功を Python で再現するために (私のアプリの 1 つの小さなレイヤーを C++ で書き直すのは魅力的ですが!)、いくつかの Cython-hidapi (おそらく から) を取り出し、それらのサンプル コードgit://github.com/signal11/hidapi.gitをアップグレードします。try.py

何だと思う?最後の行は風袋引きしません。しかし、3回実行すると風袋がかかります!

それで、読み取りがレベル 0 を返すまで何度も風袋行を呼び出すループを書く前に、誰かが私の数学をチェックして近道を提案してくれませんか? 生のpyusbソリューションもうまく機能します。

0 投票する
0 に答える
815 参照

python - PyUSB USBError: [Errno None] 不明なエラー

set_configuration() メソッドを実行して USB デバイスに接続しようとしていますが、次のエラーが表示されます。

これは私が使用しているコードです:

これはデバイスの USB 情報です。

私はpyusbは初めてですが、基本的にgithubページの指示に従っていると感じています。Rasbian OS を搭載したラズベリー pi でこのコードを実行しています。また、Python 2.7.3 を使用し、ルートとして実行しています。デバイスには 1 つの構成と 1 つのインターフェイスしかありませんが、何が間違っていますか?

0 投票する
0 に答える
352 参照

python - USB プロトコルのリバース エンジニアリング - オフセットの問題

Windows では動作するが、Linux ではドライバーを持たないデバイス プロトコルをリバース エンジニアリングしようとしています。(windows vm + wireshark) をキャプチャし、後ですべての USB 通信を再生します。Windows と Linux のバージョンでまったく同じ Wireshark トレースがあると思います。

ループには、変更されないように見えるいくつかのセットアップ データがあり、その後に 4096 バイトの bulk_in 転送が続きます。

私の問題は、実際にはバイト 0 から始まるはずの 4096 バイトの受信データの前に +-1000 バイトのゼロが頻繁にあることです。Windows バージョンでは常に正しいようです。

何が原因でしょうか? タイミングの問題?pyusb/usblib は何でも処理できると思いますか? ある種の例外はありますか?

関連するエンドポイント情報を見ると、wMaxPacketSize は 512 ですが、4096 バイトを書き込んでいます。関連している可能性はありますか? オーバーフロー例外は発生しません。

ありがとう!