■ONKYOのAVセンターTX-NR626を入れて取説を読んでいるとAndroidアプリから制御できるとのこと。ネットワーク経由でコマンドを流せるということは、パケットキャプチャしてみたらそのプロトコルがわかるはず。
とりあえず普段使いのデスクトップでWiresharkをプロキャスミスモードで動かしてみると、UPnPのプロトコルにAVセンターからのパケットが出てくるのだけどandroidアプリからのパケットが拾えない。プロキャスミスなのに変だなと思ったのですが、うちはスイッチングハブだから当たり前でした。
こんなこともあろうかと、というわけでもないですが、なんでだか捨てられずにいた古い10baseのスタッカブルハブを引っ張り出してAVセンターとの間に入れると拾えるようになりました。
最初はUPnP、というかDLNAのパケットを期待していたのですが、Androidを操作して出てくるのはDLNAのパケットではなく、単なるTCPのパケットで、そのペイロードは'ISCP'で始まり、0x0d 0x0aで終わる一連のバイナリ列でした。
とりあえず電源オン・オフでキャプチャしたパケットをコピーして、PHPを使ってソケットに流してみるとなんということもなく制御できてしまいました。これは楽ちん。ペイロードの構造は'ISCP'で始まり、3ワード(0x00000010, 0x000000xx, 0x01000000)の後に'!'で始まるコマンド文字列らしきものが続く、という構造。そのコマンド列にどことなく親近感を覚えるのは、自分が作っている家電制御デバイスのコマンド列とどこか似た構造を持っているからだろう。こういうものはだいたい似通ってくるものだし。
ずいぶんあっさり制御できたので、今まで使っていたAVセンターの赤外リモコン制御とは別に操作系が簡単に作れそうだ。しかし、'ISCP'とは何だろう。