# AsReaderBarcodeDevice
## `sharedInstance`
AsReaderBarcodeDeviceのシングルトンインスタンスを取得します。
アプリ全体で一つのインスタンスを共有するために使用します。
```objectivec
+ (instancetype)sharedInstance;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `instancetype`
- AsReaderBarcodeDeviceクラスのインスタンスオブジェクト
```
### サンプルコード
```objectivec
AsReaderBarcodeDevice *asReaderBarcodeDevice = [AsReaderBarcodeDevice sharedInstance];
```
---
{#startscan}
## `startScan`
バーコードの読み取りを開始します。
読み取るバーコードの最大数と、1回の読み取りにかける最大時間(秒)を指定してスキャンを開始します。
**このメソッドの実行後、処理結果は以下のメソッドによってコールバックされます。**
- [`receivedBarcodeData`](./10_AsReaderBarcodeProtocol.md#receivedbarcodedata)
- [`receivedScanData`](../common/common/8_AsReaderDeviceProtocol.md#receivedscandata)
```objectivec
- (BOOL)startScan:(uint8_t)numberOfTags readUntilInSec:(uint8_t)readUntilInSec;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `numberOfTags`
- `uint8_t`
- 読み取るバーコードの最大数。
・`0x00`:1件スキャンして終了。
・`0x01〜0xFE`:指定した件数だけ読み取る
(例:0x05 → 5件)。
・`0xFF`:連続読み取り(手動で停止するまで)。
※通常は10〜20件程度までの利用を推奨します。大量に指定すると時間がかかる場合があります。
* - `readUntilInSec`
- `uint8_t`
- 最大読み取り時間(秒単位)。
・`0x00`:`numberOfTags` に応じてスキャンを即時終了。
・`0x01〜0xFE`:指定した秒数だけスキャン
(例:0x10 → 16秒)。
・`0xFF`:連続スキャン(手動で停止するまで)。
※通常は5〜30秒程度が推奨されます。
```
### 注意事項
- 通常、`numberOfTags` と `readUntilInSec` の両方を `0x00` に設定すると、**バーコードを1件だけ読み取って即座に終了**します。
- より多くのバーコードを読み取る必要がある場合は、**どちらか一方だけを変更するのが推奨**されます。
- `0xFF` を指定した場合、読み取りは手動で停止するまで継続されます。
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- YES:読み取り開始に成功した場合
NO:開始に失敗した場合
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice startScan:0 readUntilInSec:0];
if (status) {
// 読み取り開始に成功
} else {
// 読み取り開始に失敗
}
```
---
## `stopScan`
バーコードのスキャンを停止します。
startScanで開始したスキャンを終了したい時に使用します。
```objectivec
- (BOOL)stopScan;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- YES:スキャン停止成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice stopScan];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `doFactoryReset`
バーコードモジュールの設定を出荷時の状態にリセットします。
初期状態に戻したい場合に使用します。
**このメソッドの実行後、処理結果は [`receiveFactoryReset`](./10_AsReaderBarcodeProtocol.md#receivefactoryreset) によってコールバックされます。**
> ⚠️ **注意**
> このメソッドは **ASR-230D,ASR-0231D,ASR-0240D,ASR-022D のみ対応**しています。
```objectivec
- (BOOL)doFactoryReset;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 内容
* - `BOOL`
- `YES`:リセットに成功した場合
`NO`:リセットに失敗した場合
```
### 使用例
```objectivec
BOOL status = [asReaderDevice doFactoryReset];
if (status) {
// 初期化に成功しました
} else {
// 初期化に失敗しました
}
```
---
## `sendBarcodeSettingData:`
バーコード設定コマンドを端末に送信します。
主にスキャナの設定変更を行う際に使用します。
```objectivec
- (BOOL)sendBarcodeSettingData:(NSData*)sendData;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `sendData`
- `NSData *`
- 送信するバーコード設定データ
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 内容
* - `BOOL`
- `YES`:送信成功
`NO`:送信失敗
```
### 使用例
```objectivec
BOOL status = [asReaderDevice sendBarcodeSettingData:data];
if (status) {
// 設定の送信に成功しました
} else {
// 設定の送信に失敗しました
}
```
---
## `getSymbologies`
読み取り可能なバーコードシンボルを取得します。
このメソッドを実行した後、コールバックメソッド [`receivedSymbologies`](./10_AsReaderBarcodeProtocol.md#receivedsymbologies)でバーコードシンボルの状態を受け取ります。
> ⚠️ **注意**
> このメソッドは **ASR-M24Dのみ対応**しています。
```objectivec
- (BOOL)getSymbologies;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getSymbologies];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `setSymbologyPrefix`
読み取ったすべてのバーコードに、シンボル体系(種類)に応じたプリフィックスを付加します。
バーコードの種類を識別したい場合に使用します。
> ⚠️ **注意**
> 本機能は **ASR-0230D**、**ASR-0240D**、**ASR-022D** など、**一部のモデルのみ**対応しています。
> 対応していないモデルで実行した場合は `NO` が返されます。
```objectivec
- (BOOL)setSymbologyPrefix;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 内容
* - `BOOL`
- `YES`:設定に成功
`NO`:未対応モデル、またはスキャン中のため設定失敗
```
### 使用例
```objectivec
BOOL status = [asReaderDevice setSymbologyPrefix];
if (status) {
// プリフィックスの設定に成功しました
} else {
// 対応していないモデル、またはスキャン中のため設定できませんでした
}
```
---
## `setDisableSymbologyPrefix`
バーコードに付加されるプリフィックス(接頭辞)を無効化します。
`setSymbologyPrefix` で設定したプリフィックスを解除したい場合に使用します。
> ⚠️ **注意**
> この機能は **ASR-0230D、0240D、022D** など、**一部のモデルのみ**対応しています。
> 非対応モデルやスキャン中の状態では `NO` が返されます。
```objectivec
- (BOOL)setDisableSymbologyPrefix;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 内容
* - `BOOL`
- `YES`:プリフィックスの無効化に成功
`NO`:未対応モデル、またはスキャン中で失敗
```
### 使用例
```objectivec
BOOL status = [asReaderDevice setDisableSymbologyPrefix];
if (status) {
// プリフィックスを無効化しました
} else {
// 対応していないモデル、またはスキャン中のため無効化できませんでした
}
```
---
## `setCustomPrefix:`
すべてのバーコードに同じ接頭辞を設定します。
接頭辞文字列の詳細は、[Lower ASCII Reference Table](../common/17_compatibility_charts.md#lower-ascii-reference-table)を参照してください。
> ⚠️ **注意**
> この機能は **ASR-0230D、0240D、022D** など、**一部のモデルのみ**対応しています。
```objectivec
- (BOOL)setCustomPrefix:(NSString *)prefix;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `prefix`
- `NSString *`
- 設定する接頭辞文字列
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 内容
* - `BOOL`
- `YES`:設定成功
`NO`:設定失敗
```
### 使用例
```objectivec
BOOL status = [asReaderDevice setCustomPrefix:@"01"];
if (status) {
// 接頭辞の設定に成功しました
} else {
// 接頭辞の設定に失敗しました
}
```
---
## `setDisableCustomPrefix`
バーコードに付加されたカスタム接頭辞を無効化(クリア)します。
`setCustomPrefix:` で設定した接頭辞を解除したい場合に使用します。
> ⚠️ **注意**
> この機能は **ASR-0230D、0240D、022D** など、**一部のモデルのみ**対応しています。
```objectivec
- (BOOL)setDisableCustomPrefix;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 内容
* - `BOOL`
- `YES`:解除成功
`NO`:解除失敗
```
### 使用例
```objectivec
BOOL status = [asReaderDevice setDisableCustomPrefix];
if (status) {
// 接頭辞の解除に成功しました
} else {
// 接頭辞の解除に失敗しました
}
```
---
## `setCustomSuffix:`
すべてのバーコードに同じ接尾辞(サフィックス)を設定します。
接頭辞文字列の詳細は、[Lower ASCII Reference Table](../common/17_compatibility_charts.md#lower-ascii-reference-table)を参照してください。
> ⚠️ **注意**
> この機能は **ASR-0230D、0240D、022D** など、**一部のモデルのみ**対応しています。
```objectivec
- (BOOL)setCustomSuffix:(NSString *)suffix;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `suffix`
- `NSString *`
- 設定する接尾辞文字列
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 内容
* - `BOOL`
- `YES`:設定成功
`NO`:設定失敗
```
### 使用例
```objectivec
BOOL status = [asReaderDevice setCustomSuffix:@"01"];
if (status) {
// 接尾辞の設定に成功しました
} else {
// 接尾辞の設定に失敗しました
}
```
---
## `setDisableCustomSuffix`
設定されている接尾辞(サフィックス)をクリアします。
`setCustomSuffix:` で追加した接尾辞を解除する際に使用します。
> ⚠️ **注意**
> この機能は **ASR-0230D、0240D、022D** など、**一部のモデルのみ**対応しています。
```objectivec
- (BOOL)setDisableCustomSuffix;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 内容
* - `BOOL`
- `YES`:設定成功
`NO`:設定失敗
```
### 使用例
```objectivec
BOOL status = [asReaderDevice setDisableCustomSuffix];
if (status) {
// 接尾辞の解除に成功しました
} else {
// 接尾辞の解除に失敗しました
}
```
---
## `setBarcodeEngineUserCommand:`
バーコードモジュールの動作をコマンドで設定します。
詳細なコマンド仕様については、ご使用の各機種に対応したバーコード設定マニュアルをご参照ください。
> ⚠️ **注意**
> この機能は **ASR-0230D、0240D、022D** など、**一部のモデルのみ対応**しています。
```objectivec
- (BOOL)setBarcodeEngineUserCommand:(NSString *)command;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `command`
- `NSString *`
- コマンドコード文字列(例:`"BEPPWR1."`)
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- `YES`:成功
`NO`:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice setBarcodeEngineUserCommand:@"BEPPWR1."];
if (status) {
// コマンドの送信に成功しました
} else {
// コマンドの送信に失敗しました
}
```
---
## `setCodeID:isBeepOn:`
Code ID の種類と、読み取り時のビープ音のオン/オフを設定します。
> ⚠️ **注意**
> このメソッドは **ASR-M24D のみ対応**です。他のモデルでは使用できません。
```objectivec
+ (NSData*)setCodeID:(int)codeID beepOn:(BOOL)isBeepOn;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `codeID`
- `int`
- [CodeIDの種類(列挙型)](../common/enum/12_AsReaderInfoDefine.md#codeid)
* - `isBeepOn`
- `BOOL`
- YES:ビープ音オン、NO:オフ
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice setCodeID:CODEID_NONE isBeepOn:YES];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `setOCRType:isBeepOn:`
OCRの種類とビープ音のオン・オフを設定します。
> ⚠️ **注意**
> このメソッドは **ASR-M24D のみ対応**です。他のモデルでは使用できません。
```objectivec
- (BOOL)setOCRType: (OCRType)type isBeepOn:(BOOL)isBeepOn;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `type`
- `OCRType`
- [OCRの種類(列挙型)](../common/enum/12_AsReaderInfoDefine.md#ocrtype)
* - `isBeepOn`
- `BOOL`
- `YES`:ビープ音オン、`NO`:ビープ音オフ
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- `YES`:成功、`NO`:失敗
```
### 使用例
```objectivec
BOOL status = [asReaderDevice setOCRType:OCR_TYPENONE isBeepOn:YES];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `setiOSHIDEnable:`
HIDモードのオン・オフを設定します。
> ⚠️ **注意**
> このメソッドは **ASR-M24D のみ対応**です。他のモデルでは使用できません。
```objectivec
- (BOOL)setiOSHIDEnable:(BOOL)isOn;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `isOn`
- `BOOL`
- `YES`:オン、`NO`:オフ
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- `YES`:成功、`NO`:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice setiOSHIDEnable:YES];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `setPresentationMode:isBeepOn:`
プレゼンテーションモードのオン・オフを設定します。
読み取り範囲内にバーコードが入ると自動的に読み取りが開始されます。
> ⚠️ **注意**
> このメソッドは **ASR-M24D のみ対応**です。他のモデルでは使用できません。
```objectivec
- (BOOL)setPresentationMode:(BOOL)isOn isBeepOn:(BOOL)isBeepOn;
```
### パラメータ
```{list-table}
:align: left
:class: list-table
* - 項目名
- 型
- 説明
* - `isOn`
- `BOOL`
- プレゼンテーションモードのオン・オフ設定(YES:オン、NO:オフ)
* - `isBeepOn`
- `BOOL`
- ビープ音のオン・オフ設定(YES:オン、NO:オフ)
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice setPresentationMode:YES isBeepOn:YES];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `getCodeID`
CodeIDを取得します。
このメソッドを実行した後、コールバックメソッド [`receivedCodeID`](./10_AsReaderBarcodeProtocol.md#receivedcodeid)でCodeIDを受け取ります。
> ⚠️ **注意**
> このメソッドは **ASR-M24Dのみ対応**しています。
```objectivec
- (BOOL)getCodeID;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getCodeID];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `getOCR`
OCRの状態(OCR - A, OCR - B)を取得します。
このメソッドを実行した後、コールバックメソッド [`receivedOCR`](./10_AsReaderBarcodeProtocol.md#receivedocr)でOCRの状態を受け取ります。
> ⚠️ **注意**
> このメソッドは **ASR-M24Dのみ対応**しています。
```objectivec
- (BOOL)getOCR;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getOCR];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `getHID`
HIDモードの状態を取得します。
このメソッドを実行した後、コールバックメソッド [`receivedHID`](./10_AsReaderBarcodeProtocol.md#receivedhid)でHIDモードの状態を受け取ります。
> ⚠️ **注意**
> このメソッドは **ASR-M24Dのみ対応**しています。
```objectivec
- (BOOL)getHID;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- メソッドの実行結果:YES:成功、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getHID];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `getPresentationMode`
デモモードの状態を取得します。
このメソッドを実行した後、コールバックメソッド [`receivedPresentationMode`](./10_AsReaderBarcodeProtocol.md#receivedpresentationmode)でデモモードの状態を受け取ります。
> ⚠️ **注意**
> このメソッドは **ASR-M24Dのみ対応**しています。
```objectivec
- (BOOL)getPresentationMode;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- YES:デモモードの状態を正常に取得、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getPresentationMode];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## `getSecurity`
バーコードのセキュリティレベルを取得します。
このメソッドを実行した後、コールバックメソッド [`receivedBarcodeSecurity`](./10_AsReaderBarcodeProtocol.md#receivedbarcodesecurity)でセキュリティレベルを受け取ります。
> ⚠️ **注意**
> このメソッドは **ASR-M24Dのみサポート**しています。
```objectivec
- (BOOL)getSecurity;
```
### 戻り値
```{list-table}
:align: left
:class: list-table
* - 型
- 説明
* - `BOOL`
- YES:バーコードのセキュリティレベルを正常に取得、NO:失敗
```
### サンプルコード
```objectivec
BOOL status = [asReaderDevice getSecurity];
if (status) {
// メソッドの実行に成功しました
} else {
// メソッドの実行に失敗しました
}
```
---
## 非推奨メソッド一覧
以下のメソッドは現在非推奨です。
**将来的に削除される可能性がありますので、新規開発では使用しないでください。**
代替手段が用意されている場合はそちらをご利用ください。
---
### ⚠️ `startScan`【非推奨】
バーコードスキャンを開始します。
代替: [`startScan`](#startscan)
```objectivec
- (void)setTriggerModeDefault:(BOOL)isDefault;
```