問題タブ [lirc]

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

raspberry-pi - RPi で irexec を動作させることができません

Raspberry Pi で GPIO によって駆動される IR レシーバー LED を使用しようとしています。私はlircdをセットアップし、irrecordでリモートについて教えました.irwは私が押しているキーを示しています:

それでも irexec は何もしません。

私の ~/.lircrc は次のようになります:

次のように irexec を開始します。

そして、入力を待っているように見えますが、何も来ません。

irexec がキープレスを取得しているかどうかを確認するにはどうすればよいですか? どうすればそれを機能させることができますか?

0 投票する
2 に答える
549 参照

linux - Lircd.conf: ボタンが離されたとき、私のリモートはキーコードなしで pre_data を送信します

リモコンを「偽造」して、ホームオートメーションを行い、テレビの STB をオンにしたいと考えています。これは「受け取る」ことではなく、受信者に「送信する」ことです。

関連するリモコンのコードを見つけたところ、うまくいきました。ただし、テレビのセットトップボックスは、キーの実際のコードなしで、事前データを再度送信してから送信を停止することにより、ボタンの押下 (および複数回のボタンの押下) の終了を検出するようです。

これを説明するために、mode2 を使用して、電源を 2 回続けて押すと (ただし、その間にボタンを放すと)、次の一連のパルスとスペースを受け取ります。

各行はコードの繰り返しです。オシロスコープでギャップを測定すると、はるかに大きくなります (約 120ms)。

これについて興味深いのは、トグル ビットがないように見えますが、送信はワード全体の終わりではなく、7 番目のパルスで終了するように見えることです。これはすべてのキーで同じです。

前述したように、TV ボックスをオンにしたり (電源を 2 回続けて押したり)、チャンネル 11 または 22 に変更したりできないため、これは関連しているようです。

どうすればこれを実装できますか? 何か案は?

私のlircファイルは次のようになります。

事前データと同じ方法で「投稿データ」を定義して実験しようとしましたが、ギャップが長く、「投稿データ」が繰り返しの一部であってはならないため、これは正しく機能しません。

Lirc を変更して再コンパイルするのは、常に更新やシステムの変更などで大騒ぎになるので、正直に言って、それほど深く入り込むのは避けたいと思います。

これは、待ち時間をあまり導入せずにスクリプトで実行できますか (たとえば、pre_data のみを送信する「停止コード」リモートを定義します)。「リモートのふりをしている」ボックスは、Debian (Allwinner A20 プロセッサ) を搭載したかなり強力なアーム プロセッサです。どんな助けでも大歓迎です

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

python - ブロッキングがオフの場合でも、Python Lirc はコードをブロックします

最新のRasbian Wheezyディストリビューションを実行しているRaspberry Pi B+でOWN (Open Weather Network )を使用してスクロール天気フィードをセットアップしようとしていますが、 Python LIRC (Linux Infrared Remote Control)を使用して IR サポートを追加するのに問題があります。

私がやろうとしていること: 気象変数には、状態、温度、湿度、風速の4 つがあります。それらは私の 16x2 LCD 画面に表示され、タイトルが一番上の行に、値が 2 番目の行に表示されます。それらは次の画面に置き換わる前に 5 秒間画面に表示されます。最後に到達すると、再びループします。180 回 (約 1 時間) ループした後、天気を更新します。IR リモコンのボタン 1 ~ 4 を使用して特定のタイルにジャンプし、そのループに戻りたいと考えています。

動作:ボタンが押されていない場合、 LIRCがブロック されている場合のように空のキューをスキップするのではなく、 lirc.nextcode()でハングし、ボタンが押されるのを待って、 KeyboardInterruptで終了します。

IRを追加するまで、すべてがうまくいきました。これで、最初の天気変数が表示され、次の変数を取得しようとすると、IR コードがキューにない場合にスキップして次のタイルに移動する代わりに、lirc.nextcode()は IR コードを受信するまでコードを停止します。これは、 LIRCブロッキングがオフになっていると発生しないはずです。

私はすべての最新バージョン ( Python LIRC 1.2.1 ) を持っています。以前のバージョンのPython LIRCには、ブロッキング パラメーターにバグがあったことを知っています。私は 2 日間かけてあらゆる可能なことを調査し、試しました。これは私が見つけた1つの可能な回避策ですが、これは同じ問題の影響を受けています: Python LIRCブロッキングシグナルの回避策が機能していません

コードの多くが不適切であることはわかっています。つまり、グローバル変数、関数内に必要なもの、3 時間ごとの OWN 更新、および 1 時間ごとの更新ですが、これは機能させるための一時的なものです。後で整理してオブジェクト指向にします。これにより一部の人が読みにくくなる場合は、事前に申し訳ありません.

ここに問題があります。Lirc.nextcode()は、 LIRCキューから次の IR コードを取得し、リストとしてcodeIRに追加する必要がありますが、ボタンが押されておらず、ブロックがオフになっている場合は、コードをスキップする必要があります。代わりに、ブロッキングがオンであるかのように動作し、ボタンが押されるまでハングします。それでもメインループを続行しません。NEXTを出力するだけで、I KeyboardInterruptが終了するまでハングします。

残りのコードを追加しました。すべて正常に動作しますが、私が達成しようとしていることを理解するのに役立つと確信しています。

KeyboardInterruptアウトすると、Traceback常にlirc.nextcode()につながります。エラーを投稿しますが、コードを少し変更したところ、lirc.nextcode()を含む関数までしかトレースされません。

私はこれを解決するために 2 日間を費やしましたが、髪をほとんど引き抜いているので、皆さんが私に与えることができる解決策または回避策を講じます. 事前に感謝します。私が見つけることができる助けに本当に感謝します。Signal Module AlarmExceptionを使用して回避策を見つけましたが、raw_input() から lirc.nextcode() に切り替えると、同じようにハングし (raw_input() にタイマーを置いても問題ありません)、アラームが機能しなくなります。右。リンクは次のとおりです。Python LIRCブロッキングシグナルの回避策が機能していません

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

python - Python LIRC ブロック シグナルの回避策が機能しない

Python LIRC関数lirc.nextcode()に問題があります。ブロッキングをオフにしました。これにより、LIRCキューが空の場合にコードlirc.nextcode()をスキップできます。これには、 lirc.init("program", blocks=False)で初期化し、 lirc.set_blocking(False, sockid)を試しました。どちらも機能せず、コードは常にハングし、続行する必要があるときにボタンが押されるのを待ちます。

raw_input('prompt')に時間制限を設けるこの回避策を見つけました。したがって、lirc.nextcodde()がボタンを押すのを待っていても、アラームを無効にするボタンが押されていない場合は、5 秒後にアラームが鳴り、とにかくコードをスキップします。

次に、私のニーズに合わせて変更しました:

実現したいこと:ボタンが押され、IR コードがLIRCキューにある場合、押されたボタンを出力する必要があります。ボタンが押されておらず、 LIRCキューが空である場合は、"Prompt timeout. Continueing..." および "timed out" を出力する必要があります。

実際に何が起こるか:ボタンが押され、IR コードがLIRCキューにある場合、ボタンが出力されますが、ボタンが押されておらず、キューが空の場合、ボタンを閉じるまでハングします。text = raw_input(prompt)text = lirc. nextcode()
に変更するまで、意図したとおりに機能します。その後、その関数が閉じて次のエラーが発生するまでハングします。

そのため、 lirc.nextcode()のブロックをオフにしても機能しないだけでなく、Signalアラーム コードの回避策も継続できなくなります。

これは、この回避策の目的である、LIRCブロッキングに関する私の最初の質問へのリンク「Python Lirc は、ブロッキングがオフの場合でもコードをブロックします」です。どちらの回答も喜んで受け入れます。

助けてくれてありがとう、本当に感謝しています。

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

infrared - 長いエアコンの ir コードのデコード

Rpi で Lirc ソフトウェアを使用して生の IR コードを記録し、分析して conf ファイルとして保存しています。さらに、この conf ファイルを Android アプリで使用して生のコードを生成し、それを ir blaster に送信しています。テレビや音楽システムの場合、これは完全に正常に機能します。しかし、AC の場合、記録中にリモートは、温度、ファン速度、クロック、打撃などを含む AC の完全な情報を送信します。これは非常に面倒で非効率的な方法です。

長いAC赤外線信号を効率的に判断し、それをAndroidアプリに移植してさらに制御できるようにするために助けが必要です.

よろしく、リティカ

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

c - cgo: プリアンブルで typedef 構造体を使用

Lirc の Go バインディングを作成しようとしています: https://github.com/inando/go-lirc

lirc_init() や lirc_deinit() などの単純な関数は問題なく動作します。

関数「lirc_command_init()」には、構造体型を使用する必要があります: https://github.com/inando/lirc/blob/master/lib/lirc_client.h#L334

私は最初に次のようなことを試しました:

しかし、これは私にこのエラーを与えます: C.lirc_command_init の名前の種類を特定できませんでした。
型に struct_ を使用する必要があるかどうかわかりませんか?
ctx はおそらくポインターである必要がありますが、常に同じエラーが発生します。

次に、ラッパーを試してみましたが、これにより不明なタイプ名「lirc_cmd_ctx」というエラーが発生します

ここで何が間違っていますか?Go でその構造体型を使用するにはどうすればよいですか?

更新:
これが関連しているかどうかはわかりませんが、C.free も文句を言います。

-> C.free の名前の種類を特定できませんでした

Go バージョン: go バージョン go1.4 linux/amd64 (Windows では Vagrant)

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

java - gcc コンパイル: size_t が見つかりません (64 ビット システムに JLirc をインストールしています)

JavaでリモートコントロールにアクセスするためにJLircを使用しています。ソケットを介してlircに接続するためにネイティブメソッドを使用します。残念ながら、JLirc の最後の更新は 15 年前であるため、64 ビット システムはサポートされていません。

そこで、lirc に接続するためのソケットを作成する別の方法を提供してくれる JUDS に目を向けました。

標準的な C メソッドと思われるものを使用して、Java ( libunixdomainsocket-linux-x86_64.so) を介してアクセスされるライブラリをコンパイルします。を使用して構成ファイルを作成し、を使用autoconfしてメイクファイルを作成しました./configure

ここで を実行するmakeと、次のエラーが表示されます。

この質問を読んで、含める<stddef.h>と役立つと思います。ただし、コンパイルしようとする .c ソース ファイルに行を追加#include <stddef.h>しても役に立ちません。

これを修正するために何ができるか考えていますか?

  • JUDS をコンパイルして .so ファイルを取得する方法を見つける
  • JavaでLinuxソケットに接続するためのJUDS以外の方法を見つける
  • Javaを介してlircに接続するためのJLirc以外の方法を見つける
0 投票する
2 に答える
6149 参照

raspberry-pi - ラズベリーパイでLIRCを使用してACリモコンから赤外線信号を記録する方法は?

私はすでにラズベリーパイのLIRCを使用して、サムスンテレビのリモコンのIR信号を記録および使用していました。録音プロセスは問題ありませんでした。このサイトを参考にしましたが、同じ方法でbluestar AC からの IR 信号を記録できません。1 ~ 3 個のドット (常に同じ数であるとは限りません) の後、irrecord は次のエラー メッセージで終了します。

次に、mode2を使用してACリモート信号を記録し、それをテキストファイルにルーティングして、lircd.confファイルを手動で変更して、リンクに示されている生のコードを含めようとしました

デフォルトの 5 ミリ秒ではなく 2 ミリ秒のタイミングで irrecord を使用するには?

しかし、その後、エラーが発生します

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

javascript - javascript を使用して lircd.conf を解析する

で使用するために、LIRC データベース (例: http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V850.lircd.conf )から lircd.conf ファイルを解析するにはどうすればよいですか?私のJavaScriptプロジェクト?

クライアント ブラウザーで実行できる JavaScript のパーサーを使用したいと思います。