|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Objectcom.nttdocomo.opt.device.IrReceiver
携帯電話のネイティブの赤外線受信機能にアクセスする手段を提供します。
受信したパケットデータは、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() | InterruptedIOException | Ir data receive interrupted | サスペンド・非活性状態から復帰したことを検知した場合に発生します。 |
| IOException | No resources | リソース不足により赤外線受信を途中までしかできなかった場合に発生します。 | |
| IOException | Race condition | 他機能との競合により赤外線受信機能を使用できない場合に発生します。 | |
| IOException | Ir data receive canceled | 赤外線受信が上記以外の理由で中断された場合に発生します。 | |
| 全read()共通 | InterruptedIOException | Ir data receive interrupted | サスペンド・非活性状態から復帰したことを検知した場合に発生します。 |
| IOException | No resources | リソース不足により赤外線受信を途中までしかできなかった場合に発生します。 | |
| IOException | Race condition | 他機能との競合により赤外線受信機能を使用できない場合に発生します。 | |
| IOException | Ir data receive canceled | 赤外線受信が上記以外の理由で中断された場合に発生します。 | |
| reset() | InterruptedIOException | Ir data receive interrupted | サスペンド・非活性状態から復帰したことを検知した場合に発生します。 |
| IOException | No resources | リソース不足により赤外線受信を途中までしかできなかった場合に発生します。 | |
| IOException | Race condition | 他機能との競合により赤外線受信機能を使用できない場合に発生します。 | |
| IOException | Ir data receive canceled | 赤外線受信が上記以外の理由で中断された場合に発生します。 | |
| skip() | InterruptedIOException | Ir data receive interrupted | サスペンド・非活性状態から復帰したことを検知した場合に発生します。 |
| IOException | No resources | リソース不足により赤外線受信を途中までしかできなかった場合に発生します。 | |
| IOException | Race condition | 他機能との競合により赤外線受信機能を使用できない場合に発生します。 | |
| IOException | Ir data receive canceled | 赤外線受信が上記以外の理由で中断された場合に発生します。 |
| フィールドの概要 | |
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 |
| フィールドの詳細 |
public static final int TTIME_MAX
赤外線信号のT時間の最大値(usec)を示す属性です(=0)。
setAttribute(int,int),
定数フィールド値public static final int TTIME_MIN
赤外線信号のT時間の最小値(usec)を示す属性です(=1)。
setAttribute(int,int),
定数フィールド値public static final int START_HIGH_MAX
赤外線信号のスタート部High時間の最大値(usec)を示す属性です(=2)。
setAttribute(int,int),
定数フィールド値public static final int START_HIGH_MIN
赤外線信号のスタート部High時間の最小値(usec)を示す属性です(=3)。
setAttribute(int,int),
定数フィールド値public static final int START_LOW_MAX
赤外線信号のスタート部Low時間の最大値(usec)を示す属性です(=4)。
setAttribute(int,int),
定数フィールド値public static final int START_LOW_MIN
赤外線信号のスタート部Low時間の最小値(usec)を示す属性です(=5)。
setAttribute(int,int),
定数フィールド値public static final int DATA0_HIGH_MAX
赤外線信号のデータ部(論理0)High時間の最大値(usec)を示す属性です(=6)。
setAttribute(int,int),
定数フィールド値public static final int DATA0_HIGH_MIN
赤外線信号のデータ部(論理0)High時間の最小値(usec)を示す属性です(=7)。
setAttribute(int,int),
定数フィールド値public static final int DATA0_LOW_MAX
赤外線信号のデータ部(論理0)Low時間の最大値(usec)を示す属性です(=8)。
setAttribute(int,int),
定数フィールド値public static final int DATA0_LOW_MIN
赤外線信号のデータ部(論理0)Low時間の最小値(usec)を示す属性です(=9)。
setAttribute(int,int),
定数フィールド値public static final int DATA1_HIGH_MAX
赤外線信号のデータ部(論理1)High時間の最大値(usec)を示す属性です(=10)。
setAttribute(int,int),
定数フィールド値public static final int DATA1_HIGH_MIN
赤外線信号のデータ部(論理1)High時間の最小値(usec)を示す属性です(=11)。
setAttribute(int,int),
定数フィールド値public static final int DATA1_LOW_MAX
赤外線信号のデータ部(論理1)Low時間の最大値(usec)を示す属性です(=12)。
setAttribute(int,int),
定数フィールド値public static final int DATA1_LOW_MIN
赤外線信号のデータ部(論理1)Low時間の最小値(usec)を示す属性です(=13)。
setAttribute(int,int),
定数フィールド値public static final int STOP_HIGH_MAX
赤外線信号のストップ部High時間の最大値(usec)を示す属性です(=14)。
setAttribute(int,int),
定数フィールド値public static final int STOP_HIGH_MIN
赤外線信号のストップ部High時間の最小値(usec)を示す属性です(=15)。
setAttribute(int,int),
定数フィールド値public static final int STOP_LOW_MAX
赤外線信号のストップ部Low時間の最大値(usec)を示す属性です(=16)。
setAttribute(int,int),
定数フィールド値public static final int STOP_LOW_MIN
赤外線信号のストップ部Low時間の最小値(usec)を示す属性です(=17)。
setAttribute(int,int),
定数フィールド値| コンストラクタの詳細 |
protected IrReceiver()
| メソッドの詳細 |
public static IrReceiver getIrReceiver()
赤外線受信機能のオブジェクトを取得します。 このメソッドでは、複数回呼び出された場合でも常に同じオブジェクトへの参照を返します。
com.nttdocomo.lang.UnsupportedOperationException - 本機能が未サポートの場合に発生します。
com.nttdocomo.device.DeviceException - 赤外線受信で取得したデータを保持するためのバッファの確保に失敗した場合に発生します。(NO_RESOURCES)public java.io.InputStream getInputStream()
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)public void cancel()
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ドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。