# AsReaderRFIDDevice
## `sharedInstance`
AsReaderRFIDDeviceのシングルトンインスタンスを取得します。
アプリ全体で一つのインスタンスを共有するために使用します。
```objectivec
+ (instancetype)sharedInstance;
```
---
## `startReadTagsAndRssiWithTagNum`
RFIDタグの読取(RSSIあり)を開始します。
**このメソッドの実行後、処理結果は [`pcEpcRssiReceived`](./5_AsReaderRFIDProtocol.md#pcepcrssireceived) によってコールバックされます。**
> ⚠️ **注意**
> ASR-M30Sは`maxTags`、`repeatCycle`の設定をサポートしていません。
```objectivec
- (BOOL)startReadTagsAndRssiWithTagNum:(int)maxTags maxTime:(int)maxTime repeatCycle:(int)repeatCycle;
```
### パラメータ
```{list-table}
:header-rows: 1
:widths: 20 15 65
* - 項目名
- 型
- 説明
* - maxTags
- int
- 読み取るタグの最大数
* - maxTime
- int
- 1回の読み取りの最大時間
* - repeatCycle
- int
- 1回の読み取りの繰り返し回数
```
### 戻り値
```{list-table}
:header-rows: 1
:widths: 20 80
* - 型
- 説明
* - BOOL
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice startReadTagsAndRssiWithTagNum:1 maxTime:1 repeatCycle:1];
if (status) {
// 成功
} else {
// 失敗
}
```
---
## `startReadTagAndTidWithTagNum`
タグのEPCとTIDを同時に読み取ります。
**このメソッドの実行後、処理結果は [`epcReceived:tid:`](./5_AsReaderRFIDProtocol.md#epcreceived-tid) によってコールバックされます。**
> ⚠️ **注意**
> ASR-M30Sは`maxTags`、`repeatCycle`の設定をサポートしていません。
```objectivec
- (BOOL)startReadTagAndTidWithTagNum:(int)maxTags maxTime:(int)maxTime repeatCycle:(int)repeatCycle;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `maxTags`
- `int`
- 読み取る最大タグ数
* - `maxTime`
- `int`
- 1回の読み取り最大時間(ms単位)
* - `repeatCycle`
- `int`
- 読み取りの繰り返し回数
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice startReadTagAndTidWithTagNum:5 maxTime:300 repeatCycle:2];
if (status) {
// 成功処理
} else {
// 失敗処理
}
```
---
## `startScan`
AsReaderのRFIDタグ読取を開始します。
このメソッドの実行後、処理結果は [`receivedScanData`](../common/common/8_AsReaderDeviceProtocol.md#receivedscandata) によってコールバックされます。
> ⚠️ **注意**
> ASR-M30SはnumberOfTags、repeatCycleの設定をサポートしていません。
```objectivec
- (BOOL)startScan:(int)numberOfTags
readUntilInSec:(int)readUntilInSec
repeatCycle:(int)repeatCycle;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `numberOfTags`
- int
- 読み取るタグの最大数
* - `readUntilInSec`
- int
- 1回の読み取りの最大時間(秒)
* - `repeatCycle`
- int
- 1回の読み取りの繰り返し回数
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO: 失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice startScan:1 readUntilInSec:1 repeatCycle:1];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `stopScan`
RFIDタグのスキャンを停止します。
スキャンを開始した後に使用します。
```objectivec
- (BOOL)stopScan;
```
### 戻り値
```{list-table}
:header-rows: 1
:widths: 20 80
* - 型
- 説明
* - BOOL
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice stopScan];
if (status) {
// 成功
} else {
// 失敗
}
```
---
## `getChannel`
非FH(周波数ホッピング)モードで使用するRFチャネルを取得します。
**このメソッドの実行後、処理結果は [`channelReceived`](./5_AsReaderRFIDProtocol.md#channelreceived) によってコールバックされます。**
```objectivec
- (BOOL)getChannel;
```
### 戻り値
```{list-table}
:header-rows: 1
:widths: 20 80
* - 型
- 説明
* - BOOL
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getChannel];
if (status) {
// 成功
} else {
// 失敗
}
```
---
## `setChannel`
非FH(周波数ホッピング)モードで使用するRFチャネルを設定します。
**このメソッドの実行後、処理結果は [`didSetChannelParamReceived`](./5_AsReaderRFIDProtocol.md#didsetchannelparamreceived) によってコールバックされます。**
```objectivec
- (BOOL)setChannel:(int)channel channelOffset:(int)channelOffset;
```
### パラメータ
```{list-table}
:header-rows: 1
:widths: 20 15 65
* - 項目名
- 型
- 説明
* - channel
- int
- チャネル数
* - channelOffset
- int
- ミラー副搬送波のチャネルオフセット量
```
### 戻り値
```{list-table}
:header-rows: 1
:widths: 20 80
* - 型
- 説明
* - BOOL
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice setChannel:1 channelOffset:0];
if (status) {
// 成功
} else {
// 失敗
}
```
---
## `getFhLbtParameter`
FHおよびLBTパラメータを取得します。
**このメソッドの実行後、処理結果は以下のメソッドによってコールバックされます。**
- [`fhLbtReceived`](./5_AsReaderRFIDProtocol.md#fhlbtreceived)
- [rfidOnOffTimeReceived](./5_AsReaderRFIDProtocol.md#rfidonofftimereceived)
```objectivec
- (BOOL)getFhLbtParameter;
```
### 戻り値
```{list-table}
:header-rows: 1
:widths: 20 80
* - 型
- 説明
* - BOOL
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getFhLbtParameter];
if (status) {
// 成功
} else {
// 失敗
}
```
---
## `getOutputPowerLevel`
現在の出力および最大と最小の出力を取得します。
**このメソッドの実行後、処理結果は [`txPowerLevelReceived`](./5_AsReaderRFIDProtocol.md#txpowerlevelreceived) によってコールバックされます。**
```objectivec
- (BOOL)getOutputPowerLevel;
```
### 戻り値
```{list-table}
:header-rows: 1
:widths: 20 80
* - 型
- 説明
* - BOOL
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getOutputPowerLevel];
if (status) {
// 成功
} else {
// 失敗
}
```
---
## `setOutputPowerLevel`
出力を設定します。
**このメソッドの実行後、処理結果は [`didSetOutputPowerLevel`](./5_AsReaderRFIDProtocol.md#didsetoutputpowerlevel) によってコールバックされます。**
```objectivec
- (BOOL)setOutputPowerLevel:(int)powerLevel;
```
### パラメータ
```{list-table}
:header-rows: 1
:widths: 20 15 65
* - 項目名
- 型
- 説明
* - powerLevel
- int
- 出力(日本版の出力範囲13~23dBm)
```
### 戻り値
```{list-table}
:header-rows: 1
:widths: 20 80
* - 型
- 説明
* - BOOL
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice setOutputPowerLevel:180];
if (status) {
// 成功
} else {
// 失敗
}
```
---
## `writeTagMemoryWithAccessPassword`
タグにデータを書き込みます。
**このメソッドの実行後、処理結果は [`writeTagMemoryWithAccessPassword`](./5_AsReaderRFIDProtocol.md#id39) によってコールバックされます。**
```objectivec
- (BOOL)writeTagMemoryWithAccessPassword:(int)accessPassword epc:(NSData *)epc memoryBank:(int)memoryBank startAddress:(int)startAddress dataToWrite:(NSData *)dataToWrite;
```
### パラメータ
```{list-table}
:header-rows: 1
:widths: 20 15 65
* - 項目名
- 型
- 説明
* - accessPassword
- int
- アクセスパスワード00000000
* - epc
- NSData
- 対象タグ
* - memoryBank
- int
- タグエリア、0:RFU、1:EPC、2:TID、3:User
* - startAddress
- int
- 開始アドレス(ワード単位でカウント)
* - dataToWrite
- NSData
- 書き込むデータ
```
### 戻り値
```{list-table}
:header-rows: 1
:widths: 20 80
* - 型
- 説明
* - BOOL
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice writeTagMemoryWithAccessPassword:11111111 epc:epcs memoryBank:1 startAddress:1 dataToWrite:data];
if (status) {
// 成功
} else {
// 失敗
}
```
---
## `killTagWithPassword`
タグをキルします
**このメソッドの実行後、処理結果は [`killedReceived`](./5_AsReaderRFIDProtocol.md#killedreceived) によってコールバックされます。**
> ⚠️ **注意**
> タグをキルするにはキルパスワードを設定する必要があります。
```objectivec
- (BOOL)killTagWithPassword:(int)killpassword epc:(NSData *)epc;
```
### パラメータ
```{list-table}
:header-rows: 1
:widths: 20 15 65
* - 項目名
- 型
- 説明
* - killpassword
- int
- キルパスワード(00000000に設定するとタグをキルできません)
* - epc
- NSData
- キルするタグのEPC
```
### 戻り値
```{list-table}
:header-rows: 1
:widths: 20 80
* - 型
- 説明
* - BOOL
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice killTagWithPassword:11111111 epc:epc];
if (status) {
// 成功
} else {
// 失敗
}
```
---
## `lockTagMemoryWithAccessPassword`
タグをロックします。
**このメソッドの実行後、処理結果は [`lockedReceived`](./5_AsReaderRFIDProtocol.md#lockedreceived) によってコールバックされます。**
```objectivec
- (BOOL)lockTagMemoryWithAccessPassword:(int)accessPassword epc:(NSData *)epc lockData:(int)lockData;
```
### パラメータ
```{list-table}
:header-rows: 1
:widths: 20 15 65
* - 項目名
- 型
- 説明
* - accessPassword
- int
- アクセスパスワード(00000000に設定するとロックできません)
* - epc
- NSData
- ロックするタグのEPC
* - lockData
- int
- ロックデータ
```
### 戻り値
```{list-table}
:header-rows: 1
:widths: 20 80
* - 型
- 説明
* - BOOL
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice lockTagMemoryWithAccessPassword:11111111 epc:epc lockData:1];
if (status) {
// 成功
} else {
// 失敗
}
```
---
## `getSession`
現在のセッション値を取得します。
**このメソッドの実行後、処理結果は [`sessionReceived`](./5_AsReaderRFIDProtocol.md#sessionreceived) によってコールバックされます。**
```objectivec
- (BOOL)getSession;
```
### パラメータ
```{list-table}
:header-rows: 1
* - 項目名
- 型
- 説明
* - 戻り値
- BOOL
- メソッドの実行結果:YES:成功 NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice getSession];
if (status) {
// 成功処理
} else {
// 失敗処理
}
```
---
## `setSession`
セッション値を設定します。
**このメソッドの実行後、処理結果は [`didSetSession`](./5_AsReaderRFIDProtocol.md#didsetsession) によってコールバックされます。**
```objectivec
- (BOOL)setSession:(int)session;
```
### パラメータ
```{list-table}
:header-rows: 1
* - 項目名
- 型
- 説明
* - session
- int
- セッション値。0:S0、1:S1、2:S2、3:S3
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- メソッドの実行結果:YES:成功 NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice setSession:1];
```
---
## `getAnticollision`
アンチコリジョン設定を取得します。
**このメソッドの実行後、処理結果は [`anticolParamReceived`](./5_AsReaderRFIDProtocol.md#anticolparamreceived) によってコールバックされます。**
```objectivec
- (BOOL)getAnticollision;
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- メソッドの実行結果:YES:成功 NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice getAnticollision];
```
---
## `setAnticollision`
アンチコリジョンを設定します。
**このメソッドの実行後、処理結果は [`didSetAntiCollision`](./5_AsReaderRFIDProtocol.md#didsetanticollision) によってコールバックされます。**
```objectivec
- (BOOL)setAnticollision:(int)mode Counter:(int)counter;
```
### パラメータ
```{list-table}
:header-rows: 1
* - 項目名
- 型
- 説明
* - mode
- int
- 0:固定Q、1:動的Q
* - counter
- int
- カウンター(デフォルト値1)
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- メソッドの実行結果:YES:成功 NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice setAnticollision:1 Counter:1];
```
---
## `updateRegistry`
レジストリを更新します。
**このメソッドの実行後、処理結果は [`updatedRegistry`](./5_AsReaderRFIDProtocol.md#updatedregistry) によってコールバックされます。**
```objectivec
- (BOOL)updateRegistry;
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- メソッドの実行結果:YES:成功 NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice updateRegistry];
```
---
## `getRFIDModuleVersion`
リーダーの基本情報を取得します。
**このメソッドの実行後、処理結果は [`rfidModuleVersionReceived`](./5_AsReaderRFIDProtocol.md#rfidmoduleversionreceived) によってコールバックされます。**
```objectivec
- (BOOL)getRFIDModuleVersion;
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- メソッドの実行結果:YES:成功 NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice getRFIDModuleVersion];
```
---
## `setHoppingOnOff`
周波数ホッピングとLBTパラメータを設定します。
**このメソッドの実行後、処理結果は [`didSetFhLbt`](./5_AsReaderRFIDProtocol.md#didsetfhlbt) によってコールバックされます。**
```objectivec
- (BOOL)setHoppingOnOff:(BOOL)isOn;
```
### パラメータ
```{list-table}
:header-rows: 1
* - 項目名
- 型
- 説明
* - isOn
- BOOL
- YES:周波数ホッピング2 / LBT 1、NO:周波数ホッピング1 / LBT 2
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- メソッドの実行結果:YES:成功 NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice setHoppingOnOff:YES];
```
---
## `writeTagMemoryWithEPC`
タグにデータを書き込みます。
**このメソッドの実行後、処理結果は [`writtenReceived`](./5_AsReaderRFIDProtocol.md#writtenreceived) によってコールバックされます。**
```objectivec
- (BOOL)writeTagMemoryWithEPC:(NSData *)epc dataToWriteAscii:(NSString *)dataToWrite;
```
### パラメータ
```{list-table}
:header-rows: 1
* - 項目名
- 型
- 説明
* - epc
- NSData
- 書き込むタグのEPC
* - dataToWrite
- NSString
- 書き込むデータ
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- メソッドの実行結果:YES:成功 NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice writeTagMemoryWithEPC:epc dataToWriteAscii:dataToWrite];
```
---
## `readTagWithAccessPassword`
タグの指定メモリ領域をアクセスパスワードで読み取る。
**このメソッドの実行後、処理結果は [`tagMemoryReceived`](./5_AsReaderRFIDProtocol.md#tagmemoryreceived) によってコールバックされます。**
> ⚠️ **注意**
> ASR-M30SではdataLengthが0の場合、EPCエリアのみstartAddressから末尾まで取得され、それ以外のmemoryBankではエラーになります。
```objectivec
- (BOOL)readTagWithAccessPassword:(int)accessPassword epc:(NSData*)epc memoryBank:(int)memoryBank startAddress:(int)startAddress dataLength:(int)dataLength;
```
### パラメータ
```{list-table}
:header-rows: 1
* - 項目名
- 型
- 説明
* - accessPassword
- int
- アクセスパスワード
* - epc
- NSData
- 対象タグのEPCデータ
* - memoryBank
- int
- タグエリア(0:RFU、1:EPC、2:TID、3:User)
* - startAddress
- int
- 開始アドレス(ワード単位)
* - dataLength
- int
- 読み取るデータ長(ワード単位)
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- YES: 成功、NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice readTagWithAccessPassword:11111111 epc:epcs memoryBank:1 startAddress:1 dataLength:dataLength];
if (status) {
// 読み取り成功時の処理
} else {
// 読み取り失敗時の処理
}
```
---
## `setOptimumFrequencyHoppingTable`
最適な周波数ホッピングテーブルを設定する。
**このメソッドの実行後、処理結果は [`didSetOptiFreqHPTable`](./5_AsReaderRFIDProtocol.md#didsetoptifreqhptable) によってコールバックされます。**
```objectivec
- (BOOL)setOptimumFrequencyHoppingTable;
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- YES: 成功、NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice setOptimumFrequencyHoppingTable];
if (status) {
// 成功処理
} else {
// 失敗処理
}
```
---
## `getFrequencyHoppingMode`
周波数ホッピングモードを取得する。
**このメソッドの実行後、処理結果は [`hoppingTableReceived`](./5_AsReaderRFIDProtocol.md#hoppingtablereceived) によってコールバックされます。**
```objectivec
- (BOOL)getFrequencyHoppingMode;
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- YES: 成功、NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice getFrequencyHoppingMode];
if (status) {
// 成功処理
} else {
// 失敗処理
}
```
---
## `setFrequencyHoppingMode`
周波数ホッピングモードを設定する。
**このメソッドの実行後、処理結果は [`didSetFHmodeChanged`](./5_AsReaderRFIDProtocol.md#didsetfhmodechanged) によってコールバックされます。**
```objectivec
- (BOOL)setFrequencyHoppingMode:(int)mode;
```
### パラメータ
```{list-table}
:header-rows: 1
* - 項目名
- 型
- 説明
* - mode
- int
- 周波数ホッピングモード。プロトコルにより値の意味が異なる。
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- YES: 成功、NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice setFrequencyHoppingMode:1];
if (status) {
// 成功処理
} else {
// 失敗処理
}
```
---
## `getRegion`
現在のデバイス地域設定を取得する。
**このメソッドの実行後、処理結果は [`regionReceived`](./5_AsReaderRFIDProtocol.md#regionreceived) によってコールバックされます。**
```objectivec
- (BOOL)getRegion;
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- YES: 成功、NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice getRegion];
if (status) {
// 成功処理
} else {
// 失敗処理
}
```
---
## `setRegion`
デバイスの地域設定を行う。
```objectivec
- (BOOL)setRegion:(int)region;
```
### パラメータ
```{list-table}
:header-rows: 1
* - 項目名
- 型
- 説明
* - region
- int
- 地域コード(例:17=韓国、33=北米など)
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- YES: 成功、NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice setRegion:82];
if (status) {
// 成功処理
} else {
// 失敗処理
}
```
---
## `setReadTime`
タグ読み取りのオン・オフ時間を設定する。
**このメソッドの実行後、処理結果は [`onOffTimeChanged`](./5_AsReaderRFIDProtocol.md#onofftimechanged) によってコールバックされます。**
```objectivec
- (BOOL)setReadTime:(int)onTime offTime:(int)offTime;
```
### パラメータ
```{list-table}
:header-rows: 1
* - 項目名
- 型
- 説明
* - onTime
- int
- 読取動作時間(ミリ秒など)
* - offTime
- int
- 読取休止時間(ミリ秒など)
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- YES: 成功、NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice setReadTime:100 offTime:200];
if (status) {
// 成功処理
} else {
// 失敗処理
}
```
---
## `startReadTagsRFM`
センサーデータ付きRFIDタグの読み取りを開始する。
**このメソッドの実行後、処理結果は [`pcEpcSensorDataReceived`](./5_AsReaderRFIDProtocol.md#pcepcsensordatareceived) によってコールバックされます。**
```objectivec
- (BOOL)startReadTagsRFM:(int)maxTags maxTime:(int)maxTime repeatCycle:(int)repeatCycle;
```
### パラメータ
```{list-table}
:header-rows: 1
* - 項目名
- 型
- 説明
* - maxTags
- int
- 読み取る最大タグ数
* - maxTime
- int
- 1回の読み取り最大時間
* - repeatCycle
- int
- 読み取り繰り返し回数
```
### 戻り値
```{list-table}
:header-rows: 1
* - 型
- 説明
* - BOOL
- YES: 成功、NO: 失敗
```
**サンプルコード**:
```objectivec
BOOL status = [asReaderDevice startReadTagsRFM:10 maxTime:500 repeatCycle:2];
if (status) {
// 成功処理
} else {
// 失敗処理
}
```
---
## `getSelectParameter`
タグ選択パラメータを取得します。
**このメソッドの実行後、処理結果は [`selectParamReceived`](./5_AsReaderRFIDProtocol.md#selectparamreceived) によってコールバックされます。**
```objectivec
- (BOOL)getSelectParameter;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getSelectParameter];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `setSelectParameter`
タグ選択パラメータを設定します。
```objectivec
- (BOOL)setSelectParameter:(int)target
action:(int)action
memoryBank:(int)memoryBank
pointer:(int)pointer
length:(int)length
truncate:(int)truncate
mask:(NSData *)mask;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 説明
* - target
- セッション:S0(000), S1(001), S2(010), S3(011), SL(100)
* - action
- ISO18000-6C規格に準拠したアクション指定
* - memoryBank
- メモリ領域:RFU(00), EPC(01), TID(10), User(11)
* - pointer
- フィルタ対象メモリの開始アドレス
* - length
- フィルタリング対象データの長さ
* - truncate
- フィルタ一致時にタグデータを切り捨てる:有効(1), 無効(0)
* - mask
- フィルタリングデータ本体
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
### サンプルコード
```objectivec
uint8_t bytes[] = { 0x01, 0x02, 0x03 };
NSData *selParamData = [NSData dataWithBytes:bytes length:sizeof(bytes)];
BOOL status = [asReaderDevice setSelectParameter:selParamData];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
> **注意**
> 設定するパラメータは、デバイスの仕様に従って作成してください。誤った設定は予期しない動作の原因になります。
---
## `setQueryParam`
18000-6C Air Interface プロトコルの Query パラメータを設定します。
タグのセッション動作やスロット数の指定など、読み取りの詳細設定に使用します。
```objectivec
- (BOOL)setQueryParam:(int)divideRatio
m:(int)m
trext:(int)trext
selection:(int)selection
session:(int)session
target:(int)target
qValue:(int)qValue;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `divideRatio`
- `int`
- ・`0`:DR = 8
・`1`:DR = 64/3
* - `m`
- `int`
- ・`0`:M = 1
・`1`:M = 2
・`2`:M = 4
・`3`:M = 8
* - `trext`
- `int`
- ・`0`:パイロットトーンなし
・`1`:パイロットトーンあり
* - `selection`
- `int`
- ・`0` または `1`:All
・`2`:~SL
・`3`:SL
* - `session`
- `int`
- ・`0`:S0
・`1`:S1
・`2`:S2
・`3`:S3
* - `target`
- `int`
- ・`0`:A
・`1`:B
* - `qValue`
- `int`
- `0〜15` の範囲でスロット数を指定(2の指数:例 `4` → 16スロット)
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- 実行結果を返します。
`YES`:成功
`NO`:失敗
```
---
## `getModulation`
現在の変調モードを取得します。
**このメソッドの実行後、処理結果は [`modulationParamReceived:rxMod:dr:`](./5_AsReaderRFIDProtocol.md#modulationparamreceived-rxmod-dr) によってコールバックされます。**
```objectivec
- (BOOL)getModulation;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
---
## `setModulationBLF`
変調モードを設定します。
**このメソッドの実行後、処理結果は [`didSetModulation`](./5_AsReaderRFIDProtocol.md#didsetmodulation) によってコールバックされます。**
```objectivec
- (BOOL)setModulationBLF:(int)blf rxMod:(int)rxMod dr:(int)dr;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `blf`
- `int`
- 例:160(BLF_160)、250(BLF_250)、320、640など
* - `rxMod`
- `int`
- 例:0(FM0)、1(M2)、2(M4)、3(M8)
* - `dr`
- `int`
- 例:0(8)、1(64/3)
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
---
## `getRSSIThreshold`
RSSIの閾値設定を取得します。
**このメソッドの実行後、処理結果は [`rssiThresholdReceived:`](./5_AsReaderRFIDProtocol.md#rssithresholdreceived) によってコールバックされます。**
```objectivec
- (BOOL)getRSSIThreshold;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
---
## `setRSSIThreshold`
RSSIの閾値を設定します。
```objectivec
- (BOOL)setRSSIThreshold:(uint16_t)threshold;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `threshold`
- `uint16_t`
- 設定するRSSI閾値
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
---
## `setFrequencyHoppingTableSize`
周波数ホッピングテーブルを設定します。
```objectivec
- (BOOL)setFrequencyHoppingTableSize:(int)tableSize channels:(NSData *)channels;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `tableSize`
- `int`
- テーブルのサイズ(バイト数)
* - `channels`
- `NSData`
- チャンネル番号のリスト
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
---
## `getQueryParameter`
クエリパラメータを取得します(Query A/I Class C)。
```objectivec
- (BOOL)getQueryParameter;
```
---
## `setRfCw`
RF CW信号の出力を設定します。
※本コマンドはアイドル状態でのみ有効です。
```objectivec
- (BOOL)setRfCw:(BOOL)on;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `on`
- `BOOL`
- CW信号の出力:YES=出力、NO=停止
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
---
## `blockEraseTagMemoryWithAccessPassword`
タグメモリをブロック単位で消去します。
```objectivec
- (BOOL)blockEraseTagMemoryWithAccessPassword:(int)accessPassword epc:(NSData *)epc memoryBank:(int)memoryBank startAddress:(int)startAddress dataLength:(int)dataLength;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `accessPassword`
- `int`
- アクセスパスワード
* - `epc`
- `NSData`
- 対象タグのEPC
* - `memoryBank`
- `int`
- 対象メモリ領域(0:RFU、1:EPC、2:TID、3:User)
* - `startAddress`
- `int`
- 開始アドレス(ワード単位)
* - `dataLength`
- `int`
- 消去するデータ長(ワード単位)
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
---
## `getTemperature`
温度を取得します。
```objectivec
- (BOOL)getTemperature;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功。NO: 失敗。
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getTemperature];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `getRegistryItem`
レジストリ項目を取得します。
```objectivec
- (BOOL)getRegistryItem:(int)registryItem;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `registryItem`
- int
- レジストリ項目コード
例:
0x0000: レジストリバージョン
0x0001: ファームウェア日付
0x0002: 周波数帯
0x0003: 出力
0x0004: FH/LBT
0x0005: アンチコリジョンモード
0x0006: 変調モード
0x0007: クエリ(Q)
0x0008: 周波数ホッピングテーブル
0x0009: 出力テーブル
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功。NO: 失敗。
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getRegistryItem:1];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `setFrequencyHoppingMode`
周波数ホッピングモードを設定します。
```objectivec
- (BOOL)setFrequencyHoppingMode:(int)mode;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `mode`
- int
- 周波数ホッピングモード
0:通常モード
1:スマート周波数ホッピングモード
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功。NO: 失敗。
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice setFrequencyHoppingMode:1];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `setReadRSSIMode`
RFIDモードでタグのRSSI値を読み取るかどうかを設定します。
```objectivec
- (void)setReadRSSIMode:(BOOL)isReadRSSIMode;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `isReadRSSIMode`
- BOOL
- YES:RSSI値を読み取る
NO:読み取らない
```
### サンプルコード
```objectivec
[AsReaderDevice setReadRSSIMode:YES];
```
---
## `getAutoOffTime`
デバイスの自動オフ時間を取得します。
**このメソッドの実行後、処理結果は [`didGetAutoOffTimeReceived`](./5_AsReaderRFIDProtocol.md#didgetautoofftimereceived) によってコールバックされます。**
> ⚠️ **注意**
> この機能は **ASR-M30S** など、**一部のモデルのみ**対応しています。
```objectivec
- (BOOL)getAutoOffTime;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功。NO: 失敗。
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getAutoOffTime];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `setAutoOffTime`
デバイスの自動オフ時間を設定します。
**このメソッドの実行後、処理結果は [`didSetAutoOffTime`](./5_AsReaderRFIDProtocol.md#didsetautoofftime) によってコールバックされます。**
> ⚠️ **注意**
> この機能は **ASR-M30S** など、**一部のモデルのみ**対応しています。
```objectivec
- (BOOL)setAutoOffTime:(int)time;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `time`
- int
- 自動オフ時間(秒)
範囲:0〜1800秒
0の場合は自動オフしない
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功。NO: 失敗。
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice setAutoOffTime:0];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `getContinuousMode`
タグの読み取りモード(単一モードまたは連続モード)を取得します。
**このメソッドの実行後、処理結果は [`didGetContinuousModeReceived`](./5_AsReaderRFIDProtocol.md#didgetcontinuousmodereceived) によってコールバックされます。**
> ⚠️ **注意**
> この機能は **ASR-M30S** など、**一部のモデルのみ**対応しています。
```objectivec
- (BOOL)getContinuousMode;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功。NO: 失敗。
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getContinuousMode];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `setContinuousMode`
タグの読み取りモード(単一モードまたは連続モード)を設定します。
**このメソッドの実行後、処理結果は [`didSetContinuousMode`](./5_AsReaderRFIDProtocol.md#didsetcontinuousmode) によってコールバックされます。**
> ⚠️ **注意**
> この機能は **ASR-M30S** など、**一部のモデルのみ**対応しています。
```objectivec
- (BOOL)setContinuousMode:(BOOL)isContinuousMode;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `isContinuousMode`
- BOOL
- YES:連続モード
NO:単一モード
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功。NO: 失敗。
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice setContinuousMode:YES];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```