問題タブ [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.
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)
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
ソリューションもうまく機能します。
python - PyUSB USBError: [Errno None] 不明なエラー
set_configuration() メソッドを実行して USB デバイスに接続しようとしていますが、次のエラーが表示されます。
これは私が使用しているコードです:
これはデバイスの USB 情報です。
私はpyusbは初めてですが、基本的にgithubページの指示に従っていると感じています。Rasbian OS を搭載したラズベリー pi でこのコードを実行しています。また、Python 2.7.3 を使用し、ルートとして実行しています。デバイスには 1 つの構成と 1 つのインターフェイスしかありませんが、何が間違っていますか?
python - USB プロトコルのリバース エンジニアリング - オフセットの問題
Windows では動作するが、Linux ではドライバーを持たないデバイス プロトコルをリバース エンジニアリングしようとしています。(windows vm + wireshark) をキャプチャし、後ですべての USB 通信を再生します。Windows と Linux のバージョンでまったく同じ Wireshark トレースがあると思います。
ループには、変更されないように見えるいくつかのセットアップ データがあり、その後に 4096 バイトの bulk_in 転送が続きます。
私の問題は、実際にはバイト 0 から始まるはずの 4096 バイトの受信データの前に +-1000 バイトのゼロが頻繁にあることです。Windows バージョンでは常に正しいようです。
何が原因でしょうか? タイミングの問題?pyusb/usblib は何でも処理できると思いますか? ある種の例外はありますか?
関連するエンドポイント情報を見ると、wMaxPacketSize は 512 ですが、4096 バイトを書き込んでいます。関連している可能性はありますか? オーバーフロー例外は発生しません。
ありがとう!