ちょっとした問題点の調査と解決。
NEC LEDシーリングライトの信号が学習できなかった
NEC LEDシーリングライト LIFELED'S 調光タイプ ~6畳 HLDZA06009
posted with amazlet at 17.07.03
うんうん唸って結局こちらを拝見し
どうもミソは↓の一文だった模様。
リモコンから出力される波形は38kHz(=約26us)なので,これよりも小さいサンプリング周波数でサンプリングします.
こちらのコマンドを拝借していたので、取得時の周波数はデフォルトで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:乂(゚д゚ ;)≡(; ゚д゚)乂