記事の詳細
ADRSIR “ラズベリー・パイ専用学習リモコン基板”の配布ツール「コマンドラインツール」について、外部ファイルの読み込み方法
ADRSIR “ラズベリー・パイ専用学習リモコン基板”の配布ツール「コマンドラインツール」について、外部ファイルの読み込み方法について解説します。
これにより、現在公開中のリモコンコードcsvファイルからの直接読み込みや、別のボードへの設定移行などが出来るようになり、活用の幅が大きく広がります。
使い方
対応するファイルは、中身に赤外線コードの情報のみが一行だけ格納されているものです。
テスト用などに作成する場合は、
./IR-remocon02-commandline.py r (0-9の番号) > hoge.data
として出力できます。
このときファイル名や拡張子について制約はありませんが、
- ファイル名は半角英数字のもの
- 拡張子については.txtや.data、あるいは拡張子なし
によるファイル作成をお勧めします。
リダイレクトによる方法
外部ファイルからは、リダイレクトを用いてツールに赤外線コードを渡します。
ボタンへの登録を行う場合は
./IR-remocon02-commandline.py w (0-9の番号) < hoge.data
というようにします。これにより、任意のボタンに任意のコードを登録することが可能になります。
保存されたファイル内のコードを直接出力したい場合は、
./IR-remocon02-commandline.py t < hoge.data
とします。ボタンに登録しきれないコードを出力させたい場合も、このように手軽に行うことができます。
パイプによる方法
cat hoge.data | ./IR-remocon02-commandline.py t
としても外部ファイルからの入力を受け取り、内部への保存または赤外線の出力をすることができます。
これを利用し、
- catコマンドによりcsvなどの大きな外部ファイルを読み込む
- grepコマンドで特定の行を読み込む
- awkコマンドやcutコマンドなどで赤外線コードのみを取り出す
- ツールにパイプで流しこむ
といった流れで、赤外線コードをまとめた巨大な外部ファイルから赤外線コードを読み込み、発信するといったことができ、遠隔操作する場合などに非常に大きな効果を発揮します。
若干”シェル芸”気味ではありますが、一例として、弊社が公開している各社リモコンコード表から読み込みを行う時のコマンドを示します。
リモコンコード表にはメーカー、機器、機能の組み合わせに対する赤外線コードが以下のような形で大量に収録されています。
“メーカー名”,”対象機器”,”対象機器”,”赤外線コード”
その中からお目当ての赤外線コードが収録されている一行を引き出し、赤外線コードだけを切り出す必要があります。これらの操作をシェルコマンドで行い、ツールに入力するには以下のようにコマンドを入力します。
cat 赤外線データ20171225.csv | grep メーカー名 | grep 対象機器 | grep 利用機能 | rev | awk ‘{sub(“,.*”,””);print $0}’ | cut -c 3- | rev | cut -c 2- | sudo ./IR-remocon02-commandline.py t
…ちょっと長いですね、順番に説明していきます。
cat 赤外線データ20171225.csv | grep メーカー名 | grep 対象機器 | grep 利用機能
まず外部ファイルを読み込み、欲しい赤外線コードの絞り込みを行います。条件指定のgrep節は順番を問わないので、わかりやすく並べてもらっても構いません。
注意点として、ツールに流し込める赤外線コードは一つだけなので、条件を適切に設定しないと複数のコードがヒットし、適切でないものが読み込まれる可能性があります。
基本的にはメーカー名、機器、機能を指定すれば大丈夫ですが、同じメーカーの同じ機器でも複数パターンがあることがあるので、事前にgrepで検索するといいでしょう。
| rev | awk ‘{sub(“,.*”,””);print $0}’ | cut -c 3- | rev | cut -c 2-
抽出された文字列から赤外線コードを切り出しています。
| sudo ./IR-remocon02-commandline.py t
切り出された赤外線コードをそのまま発信しています。
このようにして、外部ファイルからの赤外線コード読み込みを行うことができます。また、このコマンドの例では読み込んだコードをそのまま発信していますが、もちろんボタンに登録することも可能です。
いかがでしたか?今回のアップデートにより、この基板の活用範囲がぐんと広がり、使いやすくなったんじゃないかな、と思っております。
今後も皆様が便利に使っていただけるようアップデートを重ねて参ります。
ライセンス: ADL(Assembly Desk License)
*raspbian 2018/3/14版にて動作確認を行っています。以降のバージョン対応は未定です。