SVG電子工作ブログやってます。先頭に三菱電機とパナソニック製エアコンのリモコン信号を解析する部分を追記リモコン信号の信号解析アプリケーション信号解析アプリケーション以前に用意したアプリケーションのおまけに解析器を付けておきました。メニューのInfra-redページでリモコン信号をコピペすると確認できます。↑は成り行きで追加していたらいつの間にかフロントヘビーに育ってしまったので今度分割します。それを解析するソフトウェアを実装した。資料によると第1フレームと第2フレームは共通の信号なので片方を解析すればよいようだ。フレームは18バイト。256)ということのようですね。三菱電機製エアコンの部分はネットで拾ってきたコードなので正確な所はよくわからない。ONとなっているので解析できてる様な気がするね。第2フレームに個別の信号の2フレーム構成で出来ているようだ。第1フレームは8バイトの共通の信号。この2つは同じ信号だよ。実際のソースコードを見てみると分かるはず。firstビットオーダーの信号で19バイト。停止信号を送るとディスプレイが消えたのでこの写真は運転状態の写真です。以上で資料が正しいことを確認できた。信号解析アプリケーションで解析するリモコン信号は以下の方法で手に入れてください。下のコードをコピペする。あるダウンロードからCSVファイルをダウンロードしてコードをコピペする。赤外線リモコン信号を記録して送信する学習リモコンをラズパイゼロでつくる。手持ちのリモコンからコードを取り出す。作った赤外線信号ファイルからjsonを取り出す。現在の版では複数個データがあっても先頭のデータしか使わないです。カスタムコードBF40で合っているようです。first)でビット列が反転しているのが確認できる。OFFAEHA(家製協)はよくわからない。エアコンリモコン信号は長い。conditioner2フレーム構成。OFFを繰り返すプリアンブルのような信号があるね。イーサネットのフレームはプリアンブルから始まる。これはLANに接続しているインターフェイスにフレーム送信の開始を認識させ、同期をとるタイミングを与えるための信号である。DIXイーサネットでは、サイズが8オクテット(64bit)のフィールドで、1と0が交互に続き、最後の1ビット(64bit目)が1で終わる。プリアンブルもちろんイーサネットとは関係が無いが。10101010...のような信号をみると連想してしまう。conditioner同じく2フレーム構成。フォーマット赤外線リモコン信号の構造を引用します。MSP430FR4xx1より引用しました。アプリケーションノートを信用して欲しい。Note2より引用しました。sequence.ざっと見ていると情報通信でおなじみの階層構造をなしているわけで。OFFペイロード(エンコードした情報)トレイラー(ストップビット)を一つのフレームに組み立てて物理層に送る。物理層(伝送路3)では(NECフォーマットの場合)このように見える。ついでに物理層(伝送路3)では(SIRCフォーマットの場合)このように見える。いうものを情報通信用語で「カプセル化」といいますね。受信側プログラムはその反対「非カプセル化」を行なえば元の情報が得られる。書いたソースコードでこのプログラムの動作は上で図示されている構造を解体。「非カプセル化」するということ。このプログラムはこの3段階で解体するように作りました。(物理層からやってきた)入力である複数のフレームを個々のフレームに切り離す。個々のフレームからペイロードを取り出す。ペイロードをデコードする。このプログラムはそれを入力とします。この図をよく見て欲しい。取り扱っているデータを「ビット」と言うのはふつう第1層(物理層)「フレーム」と言うのはふつう第2層(物理層の上層)のお話ね。以下簡単に説明します。EuclideanRingのインスタンスにしている。BasebandBit型1ビットを表現する。Negateこれは2値を表せたら表現は何でもよいんですけどね。今回はAssert/Negateでいきます。off_)InfraredCode赤外線リモコン信号。最後はこれに変換される。参考リンクのADRSIR文書情報で定義された入力をデコーダーに渡す中間表現に変換する。中間表現から赤外線リモコン信号に変換する。1段目は入力を各フレームに変換する。8ms継続でフレームを切り離す。SIRC(SONY)規格でも有効。a3段階のデコード関数はEitherモナド破壊的更新(変数再代入)を伴う操作を行なうためのStateモナドこの2つのモナドを合成している。(State.put)などのアクセッサーを通じてフィールドにアクセスすることになる。ようないわゆる純粋関数型言語では変数の取り扱いに特別の配慮が必要なんでこんなことになる。純粋にこだわらない言語ではこんなめんどくさい事をしなくても普通に変数を使えばよいですね。}赤外線リモコン信号の解析はこれでいいと思う。入力文字列が各段階で変換される様子を見ているのが上のページ。リモコンコードCSVファイルをダウンロードする。各カウント値を2バイトデータとして先頭からカウント値のLoバイト、Hiバイトの順番にデータを送信しますデータ送信データ長は、ON-OFFで1データとなります。よって、この場合のデータ長は8となります。参考文献中にあります。参考文献中にあります。