当サイトでは、iRemo2で利用しているリモコン・データをこちらのDBで公開しています。
で、それをiアプリで使う方法をちょっとだけ説明
リモコンアプリの作成を考えてる人は参考にして下さい。
長くなったので折りたたみ↓↓↓
iアプリでリモコンを扱うには、
パッケージ com.nttdocomo.device のクラス IrRemoteControl と IrRemoteControlFrame の2つのクラスを使います。
で
NECのTVの電源ボタンに割り当てられているデータは以下のようになっています。
| 割り当て信号 | |||||||||||||||||
|
|||||||||||||||||
割り当て信号は、上から順番に、フレーム1・フレーム2と一番下に、ボタンが押し続けられた場合の信号送信方法を示しています。
リモコンによっては、フレームが1つだけの物もあれば、複数フレームの物も有ります。
iアプリでは、複数のフレームを1度に指定して送信する事が可能です。
(ただし、キャリア / コード0 / コード1 は1つしか指定できないので、この3つの数値が異なるフレームは、複数回に分けて送信する必要が有ります。)
それでは、まず、IrRemoteControlFrameクラスで、データを用意します。
このデータの場合フレームは2つなので、2個の配列と実態を用意
IrRemoteControlFrame [] irf = new IrRemoteControlFrame[2]; irf[0]=new IrRemoteControlFrame(); irf[1]=new IrRemoteControlFrame();
フレーム1のヘッダー / ストップ / データ / ビット数 / 送信回数 をセットします。
// ヘッダー irf[0].setStartHighDuration(9000); irf[0].setStartLowDuration(4500); // ストップ irf[0].setStopHighDuration(600); irf[0].setFrameDuration(1072); // データ+ビット数 irf[0].setFrameData(new byte[] {(byte)0x18,(byte)0xE7,(byte)0x10,(byte)0xEF},32); // 送信回数 irf[0].setRepeatCount(1);
注意点は、setFrameDuration
これは、このフレーム全体の送信時間を指定する必要があって、自動で計算してくれないので自分で計算する必要があります。
ヘッダー時間+ストップ時間+データ送信時間
データ送信時間の計算が面倒。
18E710EFを2進に変換して、0の数 x コード0時間 + 1の数xコード1時間
16進 18E710EF > 2進 0001 1000 1110 0111 0001 0000 1110 1111
0 = 16個 / 1 = 16個
全部足すと
9000+4500+600+39200+16*(600+550)+16*(600+1620)
=107220us
指定は、0.1ms単位なので、1072が正解
続けて、次のフレームも設定します。
irf[1].setStartHighDuration(9000);
irf[1].setStartLowDuration(2200);
irf[1].setStopHighDuration(0);
irf[1].setFrameDuration(1075);
irf[1].setRepeatCount(IrRemoteControlFrame.COUNT_INFINITE);
irf[1].setFrameData(new byte[] {(byte)0x00},1);
setRepeatCountには、無限を表すIrRemoteControlFrame.COUNT_INFINITEを指定。
これで、フレームのデータ設定は終了
続いて、IrRemoteControlクラスを使って用意したフレームデータの送信です。
IrRemoteControlクラスの宣言と、キャリア / コード0 / コード1のセット
IrRemoteControl ir = IrRemoteControl.getIrRemoteControl(); ir.setCarrier(132,132); ir.setCode0(0,600,550); ir.setCode1(0,600,1620);
後は、送信
ir.send(2,irf);
これでは、10秒間でっぱなしなので、適当な所で
ir.stop();
で止めると言った具合です。
リモコン送信 サンプル プログラム
参考用に、今回のプログラムのプロジェクトファイルをアップしておきます。
DoJa 3.5で作ってます。
※2つ目のフレームの指定の表示が間違っていましたので、修正しました。(2009/2/16)

こちらはとてもすばらしいアプリだと思います。
ただ会社の携帯がdocomoでなんとか使用かのうですが、私用の携帯がsoftbankのためこちらも対応することは可能でしょうか。
iRemoのことですよね?
僕自身、docomoの携帯しか持ってないので・・・難しいですね。ごめんなさい。
リモコンデータ公開してるので、誰か実機を持ってる人が作ってくれればいいのですがね