RFIDリーダ制御モジュール APIリファレンス

 

 

Biz/Browser HTと外部サービスを連携する機能「ExternalService」クラスを用いて使用することができるメソッドの一覧です。
本項では、RFIDリーダ制御モジュールで使用可能な機能を説明します。
サービスの使い方については、Biz/Browser HTのExternalServiceクラスのリファレンスも参照してください。

 

対応機種とモジュール

メーカ

対応機種

略称と対応モジュール

東北システムズ・サポート

DOTR-3200
SR7

jp.co.opst.biz.util.rfid.tss/.MainService

TSS、TSS版

※掲載されている会社名や製品名は、一般に各社の商標または登録商標です。

 

本APIリファレンスのバージョン

モジュール

バージョン

Biz/Browserの対応バージョン

TSS版

v1.1.0

v1.2.6

 

【注意事項】

Android 14以上の端末でRFIDリーダと接続する場合、以下のいずれかの操作を行う必要があります。(初回のみ)

 

◯操作手順1

1. Android OS設定>アプリ>すべてのアプリ>RFID Extension TSS>権限 の画面を開く

2. 「位置情報」を「常に許可」に設定する

 

◯操作手順2

1. connectメソッドによる接続要求時、権限を尋ねるポップアップが表示される

2. 位置情報の権限リクエスト時のポップアップメッセージに従い、設定画面を開く

3. 「位置情報」を「常に許可」に設定する

 

※BLE機器と接続するためには位置情報の権限を「常に許可」にする必要があります。

 位置情報の権限はBLE機器との接続を行う目的で使用します。制御モジュールがお客様の位置情報を取得・保存・送信することはありません。

※connectメソッドの呼び出し時に表示される権限を尋ねるポップアップ上で操作する場合、「常に許可」が選択肢に現れないため表示内容に従って設定画面を開く必要があります。

 Android OSバージョンが14未満のとき、「常に許可」が選択肢に現れることがあります。その場合は「常に許可」を選択することで接続可能です。

※Android OSの制約により、権限を尋ねるポップアップで各権限を複数回拒否すると、権限を尋ねるポップアップの表示が抑制されてしまい接続に失敗し続けることがあります。

 このような場合、制御モジュールを一旦アンインストールしてからインストールするか、または設定画面での直接許可を試行してください。

 

目次

 

メソッド名 概要
connect RFIDリーダと接続します。ペアリング済みのリーダを自動的に検出して接続します。
disconnect RFIDリーダとの接続を切断します。
inventoryTag インベントリ(スキャンを開始してRFタグのEPCを収集)を行います。
stopAccessTag スキャンを停止します。
startReadTag タグの読み取りを行います。インベントリと異なり、タグの任意の領域にアクセスしてデータを受け取ります。
setTagAccessOnce 同一のタグ(UII)を一度だけ読み取るようにするどうかを設定します。
isTagAccessOnce 同一のタグ(UII)を一度だけ読み取るようにするかどうかの設定を取得します。
clearAccessTagList スキャンしたタグの内部のリストをクリアします。同一タグの読み取りの判定に用います。
setMask タグの読み取りマスクを設定します。
clearMask タグの読み取りマスクを消去します。
setTagDecode 読み取ったタグをReadTagイベントで通知する際に、タグのデータをデコードするかどうかを設定します。
setRadioChannel 出力電波のチャンネルを設定します。
getRadioChannel 出力電波のチャンネルを取得します。
setRadioPower 出力電波の強度を設定します。高いほどタグが応答しやすくなり、読み取りが成功しやすくなります。
getRadioPower 出力電波の強度を取得します。
setQValue Q値を設定します。高いほどタグの読み取り衝突を抑えやすくなります。
getQValue Q値を取得します。
setBuzzerVolume 読み取り時などのブザー音の音量を設定します。
getBuzzerVolume 読み取り時などのブザー音の音量を取得します。
setSessionFlag タグへのアクセス時のセッションフラグを設定します。
getSessionFlag タグへのアクセス時のセッションフラグを取得します。
writeSingleTag UIIを指定して1枚のタグの任意の領域に書き込みを行います。
lockSingleTag UIIを指定して1枚のタグの任意の領域をロックまたはアンロックします。
getVersion 本モジュールのバージョンを取得します。
getBatteryLevel バッテリー残量を取得します。
intrinsic.connect RFIDリーダと接続します。
setTxTime 電波照射時間を指定します。
getTxTime 電波照射時間を取得します。
setDecodeTagEPC タグEPC読み取り時に、EPCを標準コードなどにデコードするかどうか、その方法を指定します。
ReadTagイベント inventoryTagメソッドやstartReadTagメソッドでタグを読み取ったときに発生します。
DeviceStateChangedイベント connectやdisconnectやRFIDリーダの操作により、RFIDリーダの状態が変化したときに発生します。
TriggerChangedイベント RFIDリーダのトリガーの押下状態が変化したときに発生します。

 

connectメソッド

説明

RFIDリーダと接続します。ペアリング済みのリーダを自動的に検出して接続します。
Bluetoothデバイス名またはMACアドレスを指定して接続します。

※RFIDリーダのペアリング等のハードウェア側の操作については、メーカードキュメントをご参照ください。

 

呼出形式

externalService1.invoke("connect", deviceName);

 

戻り値

なし

 

引数

String deviceName

 

ペアリング済みRFIDリーダデバイスの名称、もしくはBluetoothアドレス(MACアドレス)
MACアドレス形式(**:**:**:**:**:**)で指定した場合はMACアドレスとして接続先デバイスの検索を行います。
それ以外の場合は、ペアリング済みデバイスの名称として接続先デバイスの検索を行います。デバイス名称は正規表現が使用可能です。

 

 

disconnectメソッド

説明

RFIDリーダとの接続を切断します。

 

呼出形式

externalService1.invoke("disconnect");

 

戻り値

なし

 

引数

なし

 

 

inventoryTagメソッド

説明

インベントリ(スキャンを開始してRFタグのEPCを収集)を行います。
読み取ったタグはReadTagイベントで受け取れます。
すでにスキャンが開始されている場合は一度現在のスキャンを停止してから行います。

 

呼出形式

externalService1.invoke("inventoryTag");

 

戻り値

なし

 

引数

なし

 

 

stopAccessTagメソッド

説明

スキャンを停止します。

 

呼出形式

externalService1.invoke("stopAccessTag");

 

戻り値

なし

 

引数

なし

 

 

startReadTagメソッド

説明

タグの読み取りを行います。インベントリと異なり、タグの任意の領域にアクセスしてデータを受け取ります。
読み取ったタグはReadTagイベントで受け取れます。
すでにスキャンが開始されている場合は一度現在のスキャンを停止してから行います。

 

呼出形式

externalService1.invoke("startReadTag", memoryType, wordOffset, wordCount [, password]);

 

戻り値

なし

 

引数

integer memoryType

 

読み取るメモリ領域

説明

0

RESERVED領域

1

EPC領域

2

TID領域

3

USER領域

 

integer wordOffset

 

アクセス対象のオフセット位置(ワード単位) ※1ワードは2バイト

 

integer wordCount

 

オフセット位置から読み取るデータの長さ(ワード単位)

 

String password

 

タグに設定されているアクセスパスワードを16進数文字列で指定します。省略時は0です。

 

 

setTagAccessOnceメソッド

説明

同一のタグ(UII)を一度だけ読み取るようにするどうかを設定します。

 

呼出形式

externalService1.invoke("setTagAccessOnce", once);

 

戻り値

なし

 

引数

boolean once

 

一度だけ読み取るようにするかどうかを設定します。
trueなら1度だけ読み取り、falseなら何度でも読み取り。デフォルトは端末の設定に依存します。

 

 

isTagAccessOnceメソッド

説明

同一のタグ(UII)を一度だけ読み取るようにするかどうかの設定を取得します。

 

呼出形式

var res = externalService1.invoke("isTagAccessOnce");

 

戻り値

一度だけ読み取るようにするかどうかの設定を返します。
trueなら1度だけ読み取り、falseなら何度でも読み取ります。

 

引数

なし

 

 

clearAccessTagListメソッド

説明

スキャンしたタグの内部のリストをクリアします。同一タグの読み取りの判定に用います。

 

呼出形式

externalService1.invoke("clearAccessTagList");

 

戻り値

なし

 

引数

なし

 

 

setMaskメソッド

説明

タグの読み取りマスクを設定します。
マスクを設定すると、設定したマスクパターンに一致するタグのみ読み取るようになります。

※SR7の場合は、USER領域の存在しないタグのUSER領域に対してマスクを指定すると読み取れないことがあります。

 

呼出形式

externalService1.invoke("setMask", memoryType, maskOffset, maskBits, maskPattern);

 

戻り値

なし

 

引数

integer memoryType

 

マスクの対象とするメモリ領域

説明

1

EPC領域

2

TID領域

3

USER領域

 

integer maskOffset

 

メモリ領域内の、マスク対象とするオフセット位置(ビット単位)

 

integer maskBits

 

マスク対象とするデータの長さ(ビット単位)

 

String maskPattern

 

マスクパターン。16進数文字列で指定。

 

 

clearMaskメソッド

説明

タグの読み取りマスクを消去します。

 

呼出形式

externalService1.invoke("clearMask");

 

戻り値

なし

 

引数

なし

 

 

setTagDecodeメソッド

説明

読み取ったタグをReadTagイベントで通知する際に、タグのデータをデコードするかどうかを設定します。

 

呼出形式

externalService1.invoke("setTagDecode", enabled);

 

戻り値

なし

 

引数

boolean enabled

 

デコードするかどうか。trueならする、falseならしない。デフォルトはfalseです。

 

 

setRadioChannelメソッド

説明

出力電波のチャンネルを設定します。

※本機能はSR7では使用できません。

 

呼出形式

externalService1.invoke("setRadioChannel", channels);

 

戻り値

なし

 

引数

integer channels

 

以下の値の組み合わせで、使用するチャンネルを指定します。
※日本の電波法に基づいて適切な値を使用するようご注意ください。

説明

0x00000001

Ch5

0x00000002

Ch11

0x00000004

Ch17

0x00000008

Ch23

0x00000010

Ch24

0x00000020

Ch25

 

 

 

getRadioChannelメソッド

説明

出力電波のチャンネルを取得します。

※本機能はSR7では使用できません。

 

呼出形式

var res = externalService1.invoke("getRadioChannel");

 

戻り値

出力電波の設定が値の組み合わせで返ります。

説明

0x00000001

Ch5

0x00000002

Ch11

0x00000004

Ch17

0x00000008

Ch23

0x00000010

Ch24

0x00000020

Ch25

 

引数

なし

 

 

setRadioPowerメソッド

説明

出力電波の強度を設定します。高いほどタグが応答しやすくなり、読み取りが成功しやすくなります。

 

呼出形式

externalService1.invoke("setRadioPower", power);

 

戻り値

なし

 

引数

integer power

 

出力電波強度 [dBm]を、0~30の値で指定します。
※日本の電波法に基づいて適切な値を使用するようご注意ください。
※SR7の場合は、5~30の値で指定します。

 

 

getRadioPowerメソッド

説明

出力電波の強度を取得します。

 

呼出形式

var res = externalService1.invoke("getRadioPower");

 

戻り値

出力電波強度 [dBm]

 

引数

なし

 

 

setQValueメソッド

説明

Q値を設定します。高いほどタグの読み取り衝突を抑えやすくなります。
対応するタグの枚数は 2 のn乗で表され、例えば 15 を設定した場合は 2^15 = 32768[枚] となります。

※本機能はSR7では使用できません。

 

呼出形式

externalService1.invoke("setQValue", val);

 

戻り値

なし

 

引数

integer val

 

Q値 (2のn乗[枚])

モジュール

設定可能範囲

TSS版

0~15

 

 

getQValueメソッド

説明

Q値を取得します。

※本機能はSR7では使用できません。

 

呼出形式

var res = externalService1.invoke("getQValue");

 

戻り値

Q値 (2のn乗[枚])

 

引数

なし

 

 

setBuzzerVolumeメソッド

説明

読み取り時などのブザー音の音量を設定します。

※本機能はSR7では音量を設定することはできません。ミュートのときはブザー音は無効、それ以外のときは有効となります。

 

呼出形式

externalService1.invoke("setBuzzerVolume", vol [, persistent]);

 

戻り値

なし

 

引数

integer vol

 

ブザー音量 [%] 通常、0~100の範囲で設定します。
※実際に設定される音量はRFID機器によって異なります。
getBuzzerVolumeメソッドで取得したとき、設定値と異なる値が戻る場合があります。

説明

0-49

ミュート

50-99

小音量

100

大音量

 

boolean persistent

 

設定を機器側で保持し、次回接続時に自動的に反映するかどうか。trueなら自動設定します。デフォルトはfalseです。
※SR7では使用できません。

 

 

getBuzzerVolumeメソッド

説明

読み取り時などのブザー音の音量を取得します。

※本機能はSR7では使用できません。

 

呼出形式

var res = externalService1.invoke("getBuzzerVolume");

 

戻り値

ブザー音量 [%]
setBuzzerVolumeメソッドの設定値と異なる値が戻る場合があります。

 

引数

なし

 

 

setSessionFlagメソッド

説明

タグへのアクセス時のセッションフラグを設定します。

 

呼出形式

externalService1.invoke("setSessionFlag", session);

 

戻り値

なし

 

引数

integer session

 

セッションフラグを、以下の値のいずれかで指定します。

説明

0

S0を指定。一度アクセスしたタグにすぐに再アクセス可能。

1

S1を指定。一度アクセスしたタグに一定時間後に再アクセス可能。

2

S2を指定。一度アクセスしたタグは電波が届かなくなってから一定時間後に再アクセス可能。

3

S3を指定。動作はS2と同じ。

 

 

getSessionFlagメソッド

説明

タグへのアクセス時のセッションフラグを取得します。

 

呼出形式

var res = externalService1.invoke("getSessionFlag");

 

戻り値

セッションフラグを返します。

説明

0

S0を指定。一度アクセスしたタグにすぐに再アクセス可能。

1

S1を指定。一度アクセスしたタグに一定時間後に再アクセス可能。

2

S2を指定。一度アクセスしたタグは電波が届かなくなってから一定時間後に再アクセス可能。

3

S3を指定。動作はS2と同じ。

 

引数

なし

 

 

writeSingleTagメソッド

説明

UIIを指定して1枚のタグの任意の領域に書き込みを行います。
このメソッドは同期的に実行され、実行を終えるかタイムアウトするまで処理が返りません。

※実行後にフィルター設定が自動的に変更されるため、適宜setMaskメソッドやclearMaskメソッドを呼び出してください。

 

呼出形式

externalService1.invoke("writeSingleTag", memoryType, wordOffset, words, uii [, password]);

 

戻り値

なし

 

引数

integer memoryType

 

書き込み先のメモリ領域

説明

0

RESERVED領域

1

EPC領域

2

TID領域

3

USER領域

 

integer wordOffset

 

アクセス対象のオフセット位置(ワード単位)

 

integer words

 

タグに書き込むデータ(ワード単位の長さ)

 

String uii

 

書き込むタグのUII

 

String password

 

タグに設定されているアクセスパスワードを16進数文字列で指定します。省略時は0です。

 

 

lockSingleTagメソッド

説明

UIIを指定して1枚のタグの任意の領域をロックまたはアンロックします。
このメソッドは同期的に実行され、実行を終えるかタイムアウトするまで処理が返りません。

 

呼出形式

externalService1.invoke("lockSingleTag", target, type, uii [, password]);

 

戻り値

なし

 

引数

integer target

 

操作対象。値の組み合わせで複数指定できます。

説明

0x01

キルパスワード

0x02

アクセスパスワード

0x10

EPC領域

0x20

TID領域

0x40

USER領域

 

integer type

 

操作内容

説明

0

アンロック

1

ロック

 

String uii

 

操作するタグのUII

 

String password

 

タグに設定されているアクセスパスワードを16進数文字列で指定します。省略時は0です。

 

 

getVersionメソッド

説明

本モジュールのバージョンを取得します。

 

呼出形式

var res = externalService1.invoke("getVersion");

 

戻り値

バージョン番号が文字列で返ります。

 

戻り値

本モジュールのバージョン情報を示す文字列。
バージョン番号、リビジョン番号、その他のモジュールを区別する情報で構成されます。

戻り値(例)

String

1.0.0_r25120101

 

getBatteryLevelメソッド

説明

バッテリー残量を取得します。

 

呼出形式

var res = externalService1.invoke("getBatteryLevel");

 

戻り値

バッテリー残量 [%]

 

引数

なし

 

 

intrinsic.connectメソッド

説明

RFIDリーダと接続します。
本メソッドの仕様はconnectメソッドと同じです。実行時はconnectメソッドが呼ばれたものとして扱われます。

※本メソッドは非推奨APIで、互換性のために残されています。通常はconnectメソッドをご利用ください。

 

 

setTxTimeメソッド

説明

電波照射時間を指定します。

※本機能はSR7では使用できません。

 

呼出形式

externalService1.invoke("setTxTime", TxTime);

 

戻り値

なし

 

引数

integer TxTime

 

電波の照射時間(ミリ秒)を指定します。40 ~ 400[ms]で指定します。
指定できる範囲は機種により異なります。確認してください。

 

 

getTxTimeメソッド

説明

電波照射時間を取得します。

※本機能はSR7では使用できません。

 

呼出形式

var res = externalService1.invoke("getTxTime");

 

戻り値

指定されている電波の照射時間(ミリ秒)

 

引数

なし

 

 

 

setDecodeTagEPCメソッド

説明

タグEPC読み取り時に、EPCを標準コードなどにデコードするかどうか、その方法を指定します。

 

呼出形式

externalService1.invoke("setDecodeTagEPC", type);

 

戻り値

なし

 

引数

integer type

 

変換方法を指定します。

説明

0x0000

無効(デフォルト)

0xF001

ASCII文字に変換 ※変換できない場合'X'

 

 

ReadTagイベント

説明

inventoryTagメソッドやstartReadTagメソッドでタグを読み取ったときに発生します。

 

Eventオブジェクトには以下の子オブジェクトが付加されています。

名前

説明

String

epc

タグのUII

Number

rssi

タグアクセス時のRSSI値 [dBm]
※inventoryTagで開始したタグ読み取りのみ取得可能です。

String

data

startReadTagメソッドによって読み取った場合、読み取ったタグの領域のデータ

String

decodedata

setDecodeTagEPCでASCII変換を指定した場合に出力

String

detail

デコードしたデータの連想配列(setTagDecodeメソッドで取得するように指定した場合)

※SGTIN96の場合は、["header"]=>EPCヘッダ部分, ["indicator"]=>インジケータ(GTIN-14), ["jan"]=>JANコード, ["serial"]=>シリアルNo

 

 

DeviceStateChangedイベント

説明

connectメソッドやdisconnectメソッドやRFIDリーダの操作により、RFIDリーダの状態が変化したときに発生します。

 

Eventオブジェクトには以下の子オブジェクトが付加されています。

名前

説明

String

state

接続状態
Finding … 接続待機状態
Connected … 接続状態
Disconnected … 切断状態

 

 

TriggerChangedイベント

説明

RFIDリーダのトリガーの押下状態が変化したときに発生します。

SR7では、トリガーを押すたびに押下している状態と離している状態が交互に切り替わります。そのため、本機能もそれらのタイミングで発生します。

 

Eventオブジェクトには以下の子オブジェクトが付加されています。

名前

説明

boolean

pressed

押下状態。押下中ならtrue、そうでなければfalse