Delegate

本章では、ASR033WDelegate プロトコルに定義されているデリゲートメソッドについて解説します。
このプロトコルを実装することで、ASR033Wの各種イベントやデータを受信できます。


receivedASR033WSearchInformation:isFinish:

ASR-033Wの情報を受信した後に呼び出されるデリゲートメソッドです。
検索デバイスの情報取得が完了したタイミングで実行されます。

@MainActor
func receivedASR033WSearchInformation(
    _ information: [AnyHashable : Any]!,
    isFinish: Bool
)
- (void)receivedASR033WSearchInformation:(NSDictionary *)information
                                isFinish:(BOOL)isFinish;

パラメータ

項目名

説明

information

[String: Any]

ASR-033Wの情報を格納した辞書

isFinish

Bool

検索状況。
true の場合は検索完了、false の場合は検索中

サンプルコード

func receivedASR033WSearchInformation(_ information: [AnyHashable : Any]!, isFinish: Bool) {
    if isFinish {
        // 検索完了時の処理
    } else {
        // 検索中の処理
    }
}
- (void)receivedASR033WSearchInformation:(NSDictionary *)information isFinish:(BOOL)isFinish{
    if(isFinish == YES) {
        // 検索完了
    } else {
        // 検索中
    }
}

receivedASR033WNetworkState:error:

ASR-033Wの接続状態を受信した際に呼び出されるデリゲートメソッドです。
接続成功・切断・不明なネットワーク状態などを通知します。

@MainActor
func receivedASR033WNetworkState(
    _ state: ASR033WNetworkState,
    error: (any Error)!
)
- (void)receivedASR033WNetworkState:(ASR033WNetworkState)state
                              error:(NSError *)error;

パラメータ

項目名

説明

state

ASR033WNetworkState

ASR-033Wの接続状態。列挙型 ASR033WNetworkState を参照

error

NSError?

接続失敗時のエラー情報。成功時は nil

サンプルコード

func receivedASR033WNetworkState(_ state: ASR033WNetworkState, error: (any Error)!) {
    if (state == ASR033WNetworkStateConnected) {
        // 接続成功
    } else if (state == ASR033WNetworkStateDisconnected) {
        // 接続失敗
    } else if (state == ASR033WNetworkStateUnknown) {
        // 不明な状態
    } else {
        // その他のエラー
    }
}
- (void)receivedASR033WNetworkState:(ASR033WNetworkState)state error:(NSError *)error{
    if (state == ASR033WNetworkStateConnected) {
        // 接続成功
    } else if (state == ASR033WNetworkStateDisconnected) {
        // せ
    } else if (state == ASR033WNetworkStateUnknown) {
        // 不明な状態
    } else {
        // その他のエラー
    }
}

receivedASR033WInventoryPC:epc:tid:ant:rssi:phase:frequency:

インベントリで読み取ったタグ情報を受信するデリゲートメソッドです。
startInventoryWithAntenna1 などでインベントリを開始した後、読み取りごとに呼び出されます。

@MainActor
func receivedASR033WInventoryPC(
    _ pc: String!,
    epc: String!,
    tid: String!,
    ant: Int32,
    rssi: Int32,
    phase: Float,
    frequency: Float
)
- (void)receivedASR033WInventoryPC:(NSString *)pc
                              epc:(NSString *)epc
                              tid:(NSString *)tid
                              ant:(int)ant
                             rssi:(int)rssi
                            phase:(float)phase
                        frequency:(float)frequency;

パラメータ

項目名

説明

pc

NSString

タグのPCデータ

epc

NSString

タグのEPCデータ

tid

NSString

タグのTIDデータ

ant

int

使用アンテナ番号

rssi

int

応答波の信号強度

phase

float

応答波の位相

frequency

float

応答波の周波数(MHz)

サンプルコード

func receivedASR033WInventoryPC(_ pc: String!,
                                epc: String!,
                                tid: String!,
                                ant: Int32,
                                rssi: Int32,
                                phase: Float,
                                frequency: Float) {
    print(
        "PC: \(pc ?? "nil")\n" +
        "EPC: \(epc ?? "nil")\n" +
        "TID: \(tid ?? "nil")\n" +
        "ANT: \(ant)\n" +
        "RSSI: \(rssi)\n" +
        "PHASE: \(phase)\n" +
        "FREQUENCY: \(frequency)"
    )
}
- (void)receivedASR033WInventoryPC:(NSString *)pc
                              epc:(NSString *)epc
                              tid:(NSString *)tid
                              ant:(int)ant
                             rssi:(int)rssi
                            phase:(float)phase
                        frequency:(float)frequency {
    NSLog(@"PC: %@, EPC: %@, TID: %@, Ant: %d, RSSI: %d, Phase: %f, Freq: %f",
          pc, epc, tid, ant, rssi, phase, frequency);
}

receivedASR033WHIDData:

HIDデータを受信した際に呼び出されるデリゲートメソッドです。

@MainActor
func receivedASR033WHIDData(_ HIDData: Data!)
- (void)receivedASR033WHIDData:(NSData *)HIDData;

パラメータ

項目名

説明

HIDData

NSData

受信したHIDデータ

サンプルコード

func receivedASR033WHIDData(_ HIDData: Data!) {
    print("HIDData: \(HIDData as NSData)")
}
- (void)receivedASR033WHIDData:(NSData *)HIDData {
    NSLog(@"Received HID Data: %@", HIDData);
}

receivedASR033WDeviceState:

ASR-033Wのデバイス状態を受信した際に呼び出されるデリゲートメソッドです。

@MainActor
func receivedASR033WDeviceState(_ error: ASR033WResultCode)
- (void)receivedASR033WDeviceState:(ASR033WResultCode)error;

パラメータ

項目名

説明

error

ASR033WResultCode

デバイス状態を示す列挙型。
詳細はASR033WResultCodeを参照

サンプルコード

func receivedASR033WDeviceState(_ error: ASR033WResultCode) {
    if (error == ASR033WResultNoError) {
        print("Device state OK")
    } else {
        print("Device error: \(error)")
    }
}
- (void)receivedASR033WDeviceState:(ASR033WResultCode)error {
    if (error == ASR033WResultNoError) {
        NSLog(@"Device state OK");
    } else {
        NSLog(@"Device error: %ld", (long)error);
    }
}

receivedASR033WActionState:resultCode:

インベントリ開始、インベントリ停止、RFタグへの書き込み、ロック、キルの結果を受信します。
以下のメソッドを呼び出した際に呼び出されます。

@MainActor
func receivedASR033WActionState(
    _ action: ASR033WCommandType,
    resultCode: ASR033WResultCode
)
- (void)receivedASR033WActionState:(ASR033WCommandType)action
                        resultCode:(ASR033WResultCode)resultCode;

パラメータ

引数名

説明

action

ASR033WCommandType

ASR033Wコマンドタイプ
列挙型ASR033WCommandTypeを参照

resultCode

ASR033WResultCode

列挙型ASR033WResultCodeを参照

サンプルコード

func receivedASR033WActionState(_ action: ASR033WCommandType,
                                resultCode: ASR033WResultCode) {
}
- (void)receivedASR033WActionState:(ASR033WCommandType)action
                       resultCode:(ASR033WResultCode)resultCode {
}

accessASR033WResult:actionState:epc:data:rssi:phase:frequency

インベントリデータを受信します。
startInventoryWithAntenna1を実行した後、呼び出されます。

@MainActor
func accessASR033WResult(
    _ error: ASR033WResultCode,
    actionState action: ASR033WCommandType,
    epc: String!,
    data: String!,
    rssi: Float,
    phase: Float,
    frequency: Float
)
- (void)accessASR033WResult:(ASR033WResultCode)error
                actionState:(ASR033WCommandType)action
                        epc:(NSString *)epc
                       data:(NSString *)data
                       rssi:(float)rssi
                      phase:(float)phase
                  frequency:(float)frequency;

パラメータ

項目名

説明

pc

String

タグのPCデータ

epc

String

タグのEPCデータ

tid

String

タグのTIDデータ

ant

int

アンテナ番号

rssi

int

応答波の信号強度

phase

float

応答波の位相

frequency

float

応答波の周波数 (MHz)

サンプルコード

func accessASR033WResult(_ error: ASR033WResultCode,
                         actionState action: ASR033WCommandType,
                         epc: String!,
                         data: String!,
                         rssi: Float,
                         phase: Float,
                         frequency: Float) {

}
- (void)accessASR033WResult:(ASR033WResultCode)error
                actionState:(ASR033WCommandType)action
                        epc:(NSString *)epc
                       data:(NSString *)data
                       rssi:(float)rssi
                      phase:(float)phase
                  frequency:(float)frequency {
    // 実装コードをここに記述
}

receivedASR033WData

ASR-033Wから返されたコマンドデータを受信します。
sendData メソッドを呼び出した後に呼び出されます。

@MainActor
func receivedASR033WData(_ data: Data!)
- (void)receivedASR033WData:(NSData *)data;

パラメータ

項目名

説明

data

Data

受信したコマンドデータ

サンプルコード

func receivedASR033WData(_ data: Data!) {
    print("Data: \(data as NSData)")
}
- (void)receivedASR033WData:(NSData *)data {
}

receivedASR033WSearchDeviceInfo

AsReader情報を受信します。
startSearchDevice を実行した後に呼び出されます。

@MainActor
func receivedASR033WSearchDeviceInfo(_ arrInfos: [Any]!)
- (void)receivedASR033WSearchDeviceInfo:(NSArray *)arrInfos;

パラメータ

項目名

説明

arrInfos

[Any]

受信したAsReader情報の配列

サンプルコード

func receivedASR033WSearchDeviceInfo(_ arrInfos: [Any]!) {
}
- (void)receivedASR033WSearchDeviceInfo:(NSArray *)arrInfos {  
}