ワテのブログ

The fundamental things apply As time goes by.

2014年1月25日土曜日

IRKitのjsonについてのメモ

スポンサーリンク

IRKitのjsonのdata keyについて下記のように説明されています。

赤外線信号は、サブキャリア周波数のオン・オフからなります。IRKitデバイスはオン→オフ間の時間、オフ→オン間の時間を 2MHz のカウンタで数えます。dataには、カウンタで数えた数をオン・オフの回数分ならびます。

正直、一回読んだだけでは意味がわかりませんでしたが調査した結果、理解できました。

参照サイト

  1. 赤外線リモコンの通信フォーマット

赤外線リモコンは赤外線ランプのオンオフの繰り返しでデータを表現します。オンになっている時間、オフになっている時間の違いでデータを区別します。
例えば、家製協(AEHA)フォーマットでデータの始まりを表わすLeaderはオンになっている時間が425μs * 8 = 3400μs、オフになっている時間が425μs * 4 = 1700μsで表現されます。[1]

ここでjsonのdata keyの説明を読むと

IRKitデバイスはオン→オフ間の時間、オフ→オン間の時間を 2MHz のカウンタで数えます。

と書いてあります。つまり、赤外線がオンになって オフになるまで、オフになってオンになるまでの間の時間を2MHzのカウンタで数えているということです。2MHzは1 / 200,000s = 0.5μsですので0.5μsに一回カウントされます。
例えば、家製協(AEHA)フォーマットのLeaderですとオンからオフまでの時間が3400μsです。これを2MHzのカウンタで計数すると0.5μs毎にカウントされるので3400μs * 2 = 6800カウントとなります。
同じくオフからオンまでの時間は1700μsですから1700μs * 2 = 3400カウントとなります。

そして、

dataには、カウンタで数えた数をオン・オフの回数分ならびます。

とあるので、このデータをjson で表現すると、

[6800, 3400]

という配列となります。

さて、[1]にはLeader以降のCustomer CodeやParityやData0…がありますが、これらはbit列で表現されます。bitはData bitで表現されます。0はオンの時間が425μs、オフの時間が425μs。1はオンの時間が425μs、オフの時間が1275μsです。これをカウントで表現すると0は[850, 850]、1は[820, 2550]となります。

ここまでくればもうおわかりかとおもいますが、まとめると

カウント = μs * 2

です。
そしてdata keyはこのカウントの配列です。

関連項目

スポンサーリンク