tizen.moe

tizen.moe

USB赤外線リモコンアドバンスをLinux (ubuntu) で使うメモ (2)

blog.tizen.moe

ちょっとした問題点の調査と解決。

NEC LEDシーリングライトの信号が学習できなかった

うんうん唸って結局こちらを拝見し

qiita.com

どうもミソは↓の一文だった模様。

リモコンから出力される波形は38kHz(=約26us)なので,これよりも小さいサンプリング周波数でサンプリングします.

github.com

こちらのコマンドを拝借していたので、取得時の周波数はデフォルトで38kHzになっていてこれだとチト早すぎる模様。

$ ./bto_advanced_USBIR_cmd -r -f 36000

とか指定して取れば良いはず。が、

$ ./bto_advanced_USBIR_cmd -r -f 36000
エラー: -fオプションは-dオプションまたは-rオプションを指定した場合のみ使用できます。

と、怒られる。どうもコード読むと条件判定間違ってる臭いので↓のパッチを当てる

diff --git bto_advanced_USBIR_cmd.c bto_advanced_USBIR_cmd.c
index 955b295..223c975 100644
--- bto_advanced_USBIR_cmd.c
+++ bto_advanced_USBIR_cmd.c
@@ -424,7 +424,7 @@ else if(((!type_flag)&&(code_flag||Code_flag))||(((!code_flag)&&(!Code_flag))&&t
   fprintf(stderr, "エラー: -tオプションと-cまたは-Cオプションとは必ずセットで指定して下さい。\n");
   exit(1);
 }
-else if(((!data_flag)||(!read_flag))&&freq_flag)
+else if(((!data_flag)&&(!read_flag))&&freq_flag)
 {
   fprintf(stderr, "エラー: -fオプションは-dオプションまたは-rオプションを指定した場合のみ使用できます。\n");
   exit(1);

これで取ったものと -f ツケないで取ったものだと2byte目とか明らかに違う。が、 -t NEC -c `cat xxx.txt` だとNG(反応しない)

$ ./bto_advanced_USBIR_cmd -d `cat xxx.txt`

なら反応した。ナンデダロ~ォ♪*1ナンデダロ~♪

*1:乂(゚д゚ ;)≡(; ゚д゚)乂