開発環境の構築¶
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オブジェクトに接続する¶
接続手順は次の通りです。
デリゲートを使って AsReader の IP アドレスを取得
取得した 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 {
// その他のエラー
}
}