com.nttdocomo.opt.device
クラス IrReceiver

Object
  拡張com.nttdocomo.opt.device.IrReceiver

public class IrReceiver
extends Object

携帯電話のネイティブの赤外線受信機能にアクセスする手段を提供します。

受信したパケットデータは、getInputStream()より取得した入力ストリーム(java.io.InputStream)から 読み出すことで取得できます。

Java API で定義した、4つのリモコン受信信号波形(語彙)は、Java API 経由で届く、「リモコン受信データ列」を16進数で読むと、各々が次のように読み取ることができます。
語彙16進数_読み
「START」E
「STOP」F
「DATA0」0
「DATA1」1


「リモコン受信データ列」において、1パケット分のデータ列は以下の構成となります。

(1) 「START(リーダ)」

(2) 有意なデータ列「DATA0」・「DATA1」の羅列

(3)「STOP (トレーラ)」

有意なデータ列「DATA0」・「DATA1」の羅列部分だけを16進数に変換することで、1パケット分の「取得データ」となります。

例:

リモコン受信データ列:E 1010 0101 0010 0000 1111 1111 0000 0001 F

1パケット分取得データ: A520FF01

InputStreamによる読み出し(read())は、内部にある赤外線受信したデータを保持するバッファより バイト単位で今回要求された分を返し、バイト配列で読み出す場合の戻り値には、読み込まれたバイト数を返します。 ただし、バッファにデータが溜まっていない場合には、戻り値で-1を返します。 また、一度読み出されたデータについては、再度読み出すことはできません。 そのため、このInputStreamはmark()メソッドおよびreset()メソッドはサポートされておりません。

cancel()の有無に関わらず赤外線受信が停止した場合でも、停止前までのデータを読み出すことは可能です。 そして、停止されたために最初のバイトが読み出せなくなるタイミングで、例外が発生します。

このクラスより取得したInputStreamでのみ発生し得る特殊な例外について以下に示します。
メソッド例外の種類例外のメッセージ解説
available()InterruptedIOExceptionIr data receive interrupted サスペンド・非活性状態から復帰したことを検知した場合に発生します。
IOExceptionNo resources リソース不足により赤外線受信を途中までしかできなかった場合に発生します。
IOExceptionRace condition 他機能との競合により赤外線受信機能を使用できない場合に発生します。
IOExceptionIr data receive canceled 赤外線受信が上記以外の理由で中断された場合に発生します。
全read()共通InterruptedIOExceptionIr data receive interrupted サスペンド・非活性状態から復帰したことを検知した場合に発生します。
IOExceptionNo resources リソース不足により赤外線受信を途中までしかできなかった場合に発生します。
IOExceptionRace condition 他機能との競合により赤外線受信機能を使用できない場合に発生します。
IOExceptionIr data receive canceled 赤外線受信が上記以外の理由で中断された場合に発生します。
reset()InterruptedIOExceptionIr data receive interrupted サスペンド・非活性状態から復帰したことを検知した場合に発生します。
IOExceptionNo resources リソース不足により赤外線受信を途中までしかできなかった場合に発生します。
IOExceptionRace condition 他機能との競合により赤外線受信機能を使用できない場合に発生します。
IOExceptionIr data receive canceled 赤外線受信が上記以外の理由で中断された場合に発生します。
skip()InterruptedIOExceptionIr data receive interrupted サスペンド・非活性状態から復帰したことを検知した場合に発生します。
IOExceptionNo resources リソース不足により赤外線受信を途中までしかできなかった場合に発生します。
IOExceptionRace condition 他機能との競合により赤外線受信機能を使用できない場合に発生します。
IOExceptionIr data receive canceled 赤外線受信が上記以外の理由で中断された場合に発生します。

導入されたバージョン:
DoJa-5.1 (906i)

フィールドの概要
static int DATA0_HIGH_MAX
          赤外線信号のデータ部(論理0)High時間の最大値(usec)を示す属性です(=6)。
static int DATA0_HIGH_MIN
          赤外線信号のデータ部(論理0)High時間の最小値(usec)を示す属性です(=7)。
static int DATA0_LOW_MAX
          赤外線信号のデータ部(論理0)Low時間の最大値(usec)を示す属性です(=8)。
static int DATA0_LOW_MIN
          赤外線信号のデータ部(論理0)Low時間の最小値(usec)を示す属性です(=9)。
static int DATA1_HIGH_MAX
          赤外線信号のデータ部(論理1)High時間の最大値(usec)を示す属性です(=10)。
static int DATA1_HIGH_MIN
          赤外線信号のデータ部(論理1)High時間の最小値(usec)を示す属性です(=11)。
static int DATA1_LOW_MAX
          赤外線信号のデータ部(論理1)Low時間の最大値(usec)を示す属性です(=12)。
static int DATA1_LOW_MIN
          赤外線信号のデータ部(論理1)Low時間の最小値(usec)を示す属性です(=13)。
static int START_HIGH_MAX
          赤外線信号のスタート部High時間の最大値(usec)を示す属性です(=2)。
static int START_HIGH_MIN
          赤外線信号のスタート部High時間の最小値(usec)を示す属性です(=3)。
static int START_LOW_MAX
          赤外線信号のスタート部Low時間の最大値(usec)を示す属性です(=4)。
static int START_LOW_MIN
          赤外線信号のスタート部Low時間の最小値(usec)を示す属性です(=5)。
static int STOP_HIGH_MAX
          赤外線信号のストップ部High時間の最大値(usec)を示す属性です(=14)。
static int STOP_HIGH_MIN
          赤外線信号のストップ部High時間の最小値(usec)を示す属性です(=15)。
static int STOP_LOW_MAX
          赤外線信号のストップ部Low時間の最大値(usec)を示す属性です(=16)。
static int STOP_LOW_MIN
          赤外線信号のストップ部Low時間の最小値(usec)を示す属性です(=17)。
static int TTIME_MAX
          赤外線信号のT時間の最大値(usec)を示す属性です(=0)。
static int TTIME_MIN
          赤外線信号のT時間の最小値(usec)を示す属性です(=1)。
 
コンストラクタの概要
protected IrReceiver()
          直接このクラスのインスタンスを生成することはできません。
 
メソッドの概要
 void cancel()
          赤外線受信を停止します。
 java.io.InputStream getInputStream()
          赤外線受信したデータを取り出すための入力ストリームを取得します。
static IrReceiver getIrReceiver()
          赤外線受信機能のオブジェクトを取得します。
 void receive()
          赤外線受信を開始します。
 void setAttribute(int attr, int value)
          赤外線受信に関する属性を設定します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

TTIME_MAX

public static final int TTIME_MAX

赤外線信号のT時間の最大値(usec)を示す属性です(=0)。

関連項目:
setAttribute(int,int), 定数フィールド値

TTIME_MIN

public static final int TTIME_MIN

赤外線信号のT時間の最小値(usec)を示す属性です(=1)。

関連項目:
setAttribute(int,int), 定数フィールド値

START_HIGH_MAX

public static final int START_HIGH_MAX

赤外線信号のスタート部High時間の最大値(usec)を示す属性です(=2)。

関連項目:
setAttribute(int,int), 定数フィールド値

START_HIGH_MIN

public static final int START_HIGH_MIN

赤外線信号のスタート部High時間の最小値(usec)を示す属性です(=3)。

関連項目:
setAttribute(int,int), 定数フィールド値

START_LOW_MAX

public static final int START_LOW_MAX

赤外線信号のスタート部Low時間の最大値(usec)を示す属性です(=4)。

関連項目:
setAttribute(int,int), 定数フィールド値

START_LOW_MIN

public static final int START_LOW_MIN

赤外線信号のスタート部Low時間の最小値(usec)を示す属性です(=5)。

関連項目:
setAttribute(int,int), 定数フィールド値

DATA0_HIGH_MAX

public static final int DATA0_HIGH_MAX

赤外線信号のデータ部(論理0)High時間の最大値(usec)を示す属性です(=6)。

関連項目:
setAttribute(int,int), 定数フィールド値

DATA0_HIGH_MIN

public static final int DATA0_HIGH_MIN

赤外線信号のデータ部(論理0)High時間の最小値(usec)を示す属性です(=7)。

関連項目:
setAttribute(int,int), 定数フィールド値

DATA0_LOW_MAX

public static final int DATA0_LOW_MAX

赤外線信号のデータ部(論理0)Low時間の最大値(usec)を示す属性です(=8)。

関連項目:
setAttribute(int,int), 定数フィールド値

DATA0_LOW_MIN

public static final int DATA0_LOW_MIN

赤外線信号のデータ部(論理0)Low時間の最小値(usec)を示す属性です(=9)。

関連項目:
setAttribute(int,int), 定数フィールド値

DATA1_HIGH_MAX

public static final int DATA1_HIGH_MAX

赤外線信号のデータ部(論理1)High時間の最大値(usec)を示す属性です(=10)。

関連項目:
setAttribute(int,int), 定数フィールド値

DATA1_HIGH_MIN

public static final int DATA1_HIGH_MIN

赤外線信号のデータ部(論理1)High時間の最小値(usec)を示す属性です(=11)。

関連項目:
setAttribute(int,int), 定数フィールド値

DATA1_LOW_MAX

public static final int DATA1_LOW_MAX

赤外線信号のデータ部(論理1)Low時間の最大値(usec)を示す属性です(=12)。

関連項目:
setAttribute(int,int), 定数フィールド値

DATA1_LOW_MIN

public static final int DATA1_LOW_MIN

赤外線信号のデータ部(論理1)Low時間の最小値(usec)を示す属性です(=13)。

関連項目:
setAttribute(int,int), 定数フィールド値

STOP_HIGH_MAX

public static final int STOP_HIGH_MAX

赤外線信号のストップ部High時間の最大値(usec)を示す属性です(=14)。

関連項目:
setAttribute(int,int), 定数フィールド値

STOP_HIGH_MIN

public static final int STOP_HIGH_MIN

赤外線信号のストップ部High時間の最小値(usec)を示す属性です(=15)。

関連項目:
setAttribute(int,int), 定数フィールド値

STOP_LOW_MAX

public static final int STOP_LOW_MAX

赤外線信号のストップ部Low時間の最大値(usec)を示す属性です(=16)。

関連項目:
setAttribute(int,int), 定数フィールド値

STOP_LOW_MIN

public static final int STOP_LOW_MIN

赤外線信号のストップ部Low時間の最小値(usec)を示す属性です(=17)。

関連項目:
setAttribute(int,int), 定数フィールド値
コンストラクタの詳細

IrReceiver

protected IrReceiver()
直接このクラスのインスタンスを生成することはできません。

メソッドの詳細

getIrReceiver

public static IrReceiver getIrReceiver()

赤外線受信機能のオブジェクトを取得します。 このメソッドでは、複数回呼び出された場合でも常に同じオブジェクトへの参照を返します。

戻り値:
赤外線受信機能のオブジェクトを返します。
例外:
com.nttdocomo.lang.UnsupportedOperationException - 本機能が未サポートの場合に発生します。
com.nttdocomo.device.DeviceException - 赤外線受信で取得したデータを保持するためのバッファの確保に失敗した場合に発生します。(NO_RESOURCES)

getInputStream

public java.io.InputStream getInputStream()
赤外線受信したデータを取り出すための入力ストリームを取得します。 このメソッドを複数回呼び出した場合、常に同じオブジェクトへの参照を返します。

戻り値:
赤外線受信したデータを読み出す入力ストリームを返します。

receive

public void receive()

赤外線受信を開始します。この時、前回受信したデータがInputStreamに残っている場合、そのデータはクリアされます。 また、既に受信中の場合は何も行いません。

以下の原因により赤外線受信が停止した場合、本メソッドでは例外は発生せず、getInputStream()から取得したInputStreamのread()時に例外が発生します。
・サスペンド時
・待受非活性時
・エラー発生時

例外:
com.nttdocomo.lang.IllegalStateException - setAttribute(int,int)で設定された属性値が不正だった場合・属性全てについて値が設定されていない場合に発生します。
SecurityException - セルフモード時に赤外線受信を行おうとした場合に発生します。
com.nttdocomo.device.DeviceException - リソースの確保に失敗した場合に発生します。(BUSY_RESOURCE)
com.nttdocomo.device.DeviceException - 上記以外の理由で赤外線受信の開始に失敗した場合に発生します。(UNDEFINED)

cancel

public void cancel()
赤外線受信を停止します。赤外線受信が開始されていない場合は、何も行いません。


setAttribute

public void setAttribute(int attr,
                         int value)
赤外線受信に関する属性を設定します。存在しない属性が指定された場合は何も行わずに無視されます。 フィールドにある全ての属性について値を設定する必要があります。

パラメータ:
attr - 設定する属性を指定します。
value - 設定する属性の値を指定します。
例外:
IllegalArgumentException - 引数attrで指定された有効な属性に対して、引数valueに不正な値が指定された場合に発生します。
com.nttdocomo.device.DeviceException - 赤外線受信中に属性の値を変更しようとした場合に発生します。(BUSY_RESOURCE)


NTT DOCOMO,INC.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。

その他記載された会社名、製品名などは該当する各社の商標または登録商標です。