開発環境の構築

SDKの追加

TARGET -> Build phases -> Link Binary with Libraries

代替テキスト

 

「Add Other…」、「Add Files…」を選択します。

代替テキスト

 

ASR033WSDK.frameworkを追加します。

代替テキスト

 

正常に追加されると、下の赤い枠のように表示されます。
ここまでで、SDKの追加は完了になります。

代替テキスト

ヘッダーファイルのインポート

Objective-CプロジェクトにSDKを使用するクラスにヘッダーファイルをインポートする必要があります。 以下を参照してください。

#import <ASR033WSDK/ASR033WSDK.h>

SDKの使用

ASR033Wオブジェクトの生成・初期化を行う(シングルトン)

let asr033w = ASR033W.sharedInstance()
ASR033W *asr033W = [ASR033W sharedInstance];

デリゲートを設定する

asr033w.setDelegate(self)
asr033w.delegate = self;

デバイス検索を開始する

asr033w.startSearchDevice()
var dataArray: [Any] = []
[asr033w startSearchDevice];
NSMutableArray *dataArray= [[NSMutableArray alloc] init];

検索結果を受信するデリゲート

func receivedASR033WSearchInformation(_ information: [AnyHashable : Any], isFinish: Bool) {
    if isFinish {
        // 検索完成
    } else {
        // 検索継続
    }
}
- (void)receivedASR033WSearchInformation:(NSDictionary *)information isFinish:(BOOL)isFinish {
    if(isFinish == YES) {
        //検索完成
    } else {
        //検索継続
    }
}

033Wオブジェクトに接続する

接続手順は次の通りです。

  1. デリゲートを使って AsReader の IP アドレスを取得

  2. 取得した IP アドレスを使用して接続を行う

asr033w.connectServer(withIP: "192.168.10.199", remoteport: 9600)
[asr033w connectServerWithIP:@"192.168.10.199" remoteport:9600];

接続結果を受信するデリゲート

func receivedASR033WNetworkState(_ state: ASR033WNetworkState, error: Error?) {
    switch state {
    case .connected:
        // 接続状態
    case .disconnected:
        // 切断状態
    case .unknown:
        // 不明な状態
    default:
        // その他のエラー
        break
    }
}
- (void)receivedASR033WNetworkState:(ASR033WNetworkState)state error:(NSError *)error {
    if (state == ASR033WNetworkStateConnected) {       
        // 接続状態
    } else if (state == ASR033WNetworkStateDisconnected) {
        // 切断状態
    } else if (state == ASR033WNetworkStateUnknown) {
        // 不明な状態
    } else {
        // その他のエラー
    }
}

RFIDデータの受信開始

RFIDデータを受信できる状態にする。

asr033w.startReceiveRFIDData()
[asr033w startReceiveRFIDData];

HIDデータの受信開始

HIDデータを受信できる状態にする。

asr033w.startReceiveHIDData()
[asr033w startReceiveHIDData];

RFIDデータの読取を開始する

asr033w.startInventory(
    withAntenna1: true,
    antenna2: true,
    antenna3: true,
    antenna4: true,
    antenna5: true,
    antenna6: true,
    antenna7: true,
    antenna8: true,
    tid: true
)
[asr033w startInventoryWithAntenna1:YES
                               antenna2:YES
                               antenna3:YES
                               antenna4:YES
                               antenna5:YES
                               antenna6:YES
                               antenna7:YES
                               antenna8:YES
                                     TID:YES];

インベントリされたデータを受信するデリゲート

func receivedASR033WInventoryPC(
    _ pc: String,
    epc: String,
    tid: String,
    ant: Int,
    rssi: Int,
    phase: Float,
    frequency: Float
) {
    // pc        PCデータ
    // epc       EPCデータ
    // tid       TIDデータ
    // ant       アンテナ番号
    // rssi      応答波の信号強度
    // phase     応答波の位相
    // frequency 応答波の周波数
}
- (void)receivedASR033WInventoryPC:(NSString *)pc
                               epc:(NSString *)epc
                               tid:(NSString *)tid
                               ant:(int)ant
                              rssi:(int)rssi
                             phase:(float)phase
                         frequency:(float)frequency {
    // pc          PCデータ
    // epc         EPCデータ
    // tid         TIDデータ
    // ant         アンテナ番号
    // rssi        応答波の信号強度
    // phase       応答波の位相
    // frequency   応答波の周波数
}

RFIDデータの読取を停止する

asr033w.stopInventory()
[asr033w stopInventory];

ASR033Wオブジェクトとの接続を切断する

asr033w.disconnectServer()
[asr033w disconnectServer];

接続を切断の結果を受信するデリゲート

func receivedASR033WNetworkState(_ state: ASR033WNetworkState, error: Error?) {
    switch state {
    case .connected:
        // 接続状態
    case .disconnected:
        // 切断状態
    case .unknown:
        // 不明な状態
    default:
        // その他のエラー
        break
    }
}
- (void)receivedASR033WNetworkState:(ASR033WNetworkState)state
                              error:(NSError *)error {
    if (state == ASR033WNetworkStateConnected) {
        // 接続状態
    } else if (state == ASR033WNetworkStateDisconnected) {
        // 切断状態
    } else if (state == ASR033WNetworkStateUnknown) {
        // 不明な状態
    } else {
        // その他のエラー
    }
}