問題タブ [pyudev]
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 - pyudev を使用してディスク ドライブのみを検索する
udev、特に pyudev を使用してコンピューター上のすべてのハードディスクを列挙してすべてを列挙しようとしています。
これにより、次のように出力されます。
私は主に実際のドライブに関心があり、光ディスク ドライブ、ループバック デバイス、または RAM デバイスには関心がないので、どうすれば結果をフィルタリングして実際の物理メディアだけを取得できますか?
python - pyudevでUSBキーボードを検出していますか?
USB キーボードのホットプラグを検出するためにこの質問を選択してきましたが、ID_INPUT_KEYBOARD は私のキーボードを表す udev Device オブジェクトのキーではありません。
ホットプラグされたデバイスがキーボードかどうかを検出するために pyudev を使用するにはどうすればよいですか?
python - TypeError : メソッドは正確に 2 つの引数を取ります (3 つ指定)
pyudev を使用して USB ドライブの接続を監視するプログラムを作成しようとしています。コードは次のとおりです。
トレースバック:
これを修正するのを手伝ってください。
ドキュメントページに記載されているコードを使用しようとしています。お気づきのように、device_connected
メソッドには引数device_connected(observer,device)
がありますが、その場合もコードは機能しません。同じエラーをスローします。しかし、最初はどのように機能するのか疑問に思っていました。クラスのすべてのメソッドがself
引数として持つべきではありませんか?
udev - udev は、Bluetooth デバイスの「機能」を常に報告するとは限りません
私は pyudev を使用して Bluetooth デバイスを探し、「features」属性を使用してデバイスが LE をサポートしているかどうかを判断しました。ただし、最近のUbuntuの最新バージョンでは、udevは「機能」について何も報告しなくなりました。
ここに私が得る詳細があります:
そして、期待どおりに動作し続けている別のデバイスで、次のようになります。
応答の違いを引き起こす何らかの構成変更がどこかにありますか?
編集
これらの欠損値のほとんどが現在含まれていることがわかりましたが、/sys/kernel/debug/bluetooth/hci0/
なぜそうなのかわかりません。ただし、features
ファイルの形式は異なります。これは、構成ファイル、コンパイラ オプション、またはその他によって制御されますか?
python - PyGame 再接続時に USB MIDI デバイスを再初期化する
ここで使用されているものと非常によく似ていますが、Raspberry Pi でバックグラウンド サービスとして実行します。
MIDI デバイスを切断して再接続し、引き続き読み取ることができるようにしたいと考えています。
私は2つのアプローチを試しました:
- pygame.midi.get_count() と info() を使用して定期的に MIDI デバイスを列挙します。
- この例のように、pyudev を使用して USB イベントを監視します。
(1) の問題は、デバイスがまだ接続されているかどうかに関係なく、pygame.midi が常に同じ値 (get_count と info の両方) を返すように見えることです。
(2) の問題は、イベント用に登録した非同期関数が呼び出されないことです (ただし、サブシステムを usb に変更するだけでスタンドアロンの例は正常に動作します)。これはスレッド化の問題である可能性があると考えたので、専用スレッドからのイベントを登録するためにすべてを呼び出し、glib.MainLoop.run() を実行してアイドル待機させましたが、pygame が midi デバイスを読み取ることができないことを発見しましたAMK クラスを実行する前にスレッドを開始した場合、何かを出力して返されたスレッドであっても。(Piレポのpyudevのバージョンが0.13であるため、glibを使用していますが、新しい方法はgobjectと同等だと思います)。
したがって、udevd を使用して接続イベントを検出し、/etc/udev/rules.d/ トリガーを介してサービスを再起動することに頼りました。 )。
したがって、デバッグにさらに多くの時間を費やす前に (2)、誰かが正しい方向に向けてくれることを期待していました。