# SDKの使用方法 {#add-sdk} ## SDKの追加 ### TARGET -> Build phases -> Link Binary With Libraries SDKフレームワークをプロジェクトに追加します。 ![](../media/SDK-01.png) ### "Add Other..." を選択 ![](../media/SDK-02.png) ファイルブラウザを通じてSDKフレームワークファイルを選択します。 ### AsReaderDockSDK.frameworkとAsReaderBLESDK.frameworkを追加 これら2つのフレームワークファイルをプロジェクトに追加します。 ![](../media/SDK-03.png) ### 追加完了後 フレームワークがプロジェクトのリンクライブラリリストに正しく追加されていることを確認します。 ![](../media/SDK-04.png) ## AsReaderプロトコルの追加 plistファイルの `Supported external accessory protocols` オプションに以下のプロトコルを追加します。 - ASX - 510R,520R: `jp.co.asx.asreader.barcode` - ASR - 010D,020D,022D, M24D: `jp.co.asx.asreader.6dongle.barcode` - ASX - 300R,ASX - 301R: `jp.co.asx.asreader.rfid` - ASR - 030D,ASR - 031D: `jp.co.asx.asreader.6dongle.rfid` - ASR - 0230D,ASR - 0240D: `jp.co.asx.asreader.0230D`, `jp.co.asx.asreader.0240D` - ASR-M30S: `jp.co.asx.asreader.slim` 例えば ![](../media/SDK-05.png) ## クラスでのSDKの使用 SDKを使用するクラスでヘッダーファイルをインポートします。 ```objectivec #import "AsReaderDevice.h" ``` ## 注意事項 - Dock SDK4 を利用するためには、C++ のコードに対応する必要があります。SDKヘッダーファイルを参照する `.m` ファイルを `.mm` に変更するか、`libc++` ライブラリをインポートしてビルドしてください。 - 連続して命令を送信する場合は、前の命令の応答を受け取ってから次の命令を送信する必要があります。応答を受信する前に再度コマンドを送信すると、異常が発生する可能性があります。 ## SDKの使用方法 ### AsReaderRFIDDeviceオブジェクトの作成と初期化(シングルトンパターン) ```objectivec AsReaderRFIDDevice *asReaderRFIDDevice = [AsReaderRFIDDevice sharedInstance]; ``` ### デリゲートの設定 ```objectivec [AsReaderRFIDDevice sharedInstance].delegateDevice = self; [AsReaderRFIDDevice sharedInstance].delegateRFID = self; ``` ### 接続状態デリゲートの受信 ```objectivec - (void)plugged:(BOOL)plug { if (plug) { AsReaderInfo *info = [AsReaderInfo sharedInstance]; if (!info.isEnginePowerAlwaysOn) { // 030Dは電源をオンにする必要があります [[AsReaderRFIDDevice sharedInstance] setReaderPower:YES beep:YES vibration:YES batteryGaugeLed:YES barcodeAimer:YES barcodePowerOnBeep:YES mode:1]; } else { // ASR - M30、ASR-M24Dは電源をオンにする必要はありません } } } ``` ### AsReaderの電源をオンにする ```objectivec [[AsReaderRFIDDevice sharedInstance] setReaderPower:YES beep:YES vibration:YES batteryGaugeLed:YES barcodeAimer:YES barcodePowerOnBeep:YES mode:1]; ``` ### デバイスの電源状態の受信 ```objectivec - (void)readerConnected:(int)status { if (status == 0xFF) { // 電源が正常にオンになりました } else { // 電源のオンに失敗したか、電源が既にオフになっています } } ``` ### スキャンを開始する ```objectivec [[AsReaderRFIDDevice sharedInstance] startScan:0 readUntilInSec:0 repeatCycle:0]; ``` ### RFIDタグのスキャン(RSSI取得あり)を開始する ```objectivec [[AsReaderRFIDDevice sharedInstance] startReadTagsAndRssiWithTagNum:0 maxTime:0 repeatCycle:0]; ``` ### スキャン開始データの状態の受信 ```objectivec - (void)startedReadScan:(int)status { if (status == 0x00) { // スキャンが正常に開始されました } else { // スキャンの開始に失敗しました } } ``` ### RFIDタグのスキャンを停止する ```objectivec [[AsReaderRFIDDevice sharedInstance] stopScan]; ``` ### スキャン停止データの状態の受信 ```objectivec - (void)stopReadScan:(int)status { if (status == 0x00) { // スキャンが正常に停止されました } else { // スキャンの停止に失敗しました } } ``` ### RSSI付きのタグデータの受信 ```objectivec - (void)pcEpcRssiReceived:(NSData *)pcEpc rssi:(int)rssi { // pcEpc: タグのPCEPCデータ // rssi: タグのRSSI値 } ```