# 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 { // メソッドの実行に失敗しました } ```