2016-08-07 9 views
0

I a lirc for pythonを使用します。これはかなりうまくいっていますが、私は1つの機能が欠けています。私のテストでは、ボタンが押されたときにコードが送られました。今、キーが押されている間、コードを印刷したいと思います。つまり、関数は「キーダウン」で開始し、「キーアップ」で停止する必要があります。 lirc.nextcode()だけを使用すると、「キーダウン」イベントだけがキャプチャされるため、機能しません。python lirc keyup関数?

だから、 "キーアップ"を検出するためのトリックはありますか?

答えて

0

lircにこのような機能はありません。リモコンからの赤外線信号が受信されたかどうかは、キーアップイベントではなく、キーダウンイベントでもありません。

独自のキーアップイベントとキーダウンイベントをコーディングする必要があります。 設定ファイルの作成方法、特に遅延に関する部分を見てみましょう。http://www.lirc.org/html/configure.html 1秒あたりに多くのイベントが送信されるように設定します。

次に、非ブロックモードでlircを配置します(https://github.com/tompreston/python-lirc参照)。その後、lirc.nextcode()をループすることができます。イベントが返されない場合や、別のキーのイベントが返された場合は、キーアップイベントが発生します。

+0

'mode2 -d/dev/lirc0'を使用してボタンを押すと、信号が連続的に受信されていることがわかります。私はlircの設定の遅延オプションが私を助けることができるかどうか分からない、それはちょうどいくつかのリピートを無視するためです。 – vtni

0

実は、lircdは合成リリースイベントを発生さ--releaseオプションがあり、アドオンたlircのキー押下イベントとカーネルを供給lircd-uinputもありhttp://lirc.org/html/lircd.html

でマンページを参照してください。これらのイベントは、/ dev/inputデバイス上で利用可能になり、繰り返しイベントと解放イベントが完了します。 lircd-uinputのマンページ(http://lirc.org/html/lircd-uinput.html)を参照してください。