# AsReaderAskStatusDelegate ## onReceivedConnectedState AsReader と iOS デバイス間の接続状態を通知するコールバックです。 ### コールバックが発生するタイミング 1. AsReader が iOS デバイスに接続または切断されると、その状態がコールバックされます。 2. アプリが完全にバックグラウンドへ移行すると、切断状態がコールバックされます。 3. AsReader が iOS デバイスに接続されている状態でアプリがフォアグラウンドに復帰すると、SDK は内部的に EASession の有無を確認します。 - セッションが存在する場合、まず切断状態がコールバックされ、その後 SDK は再接続を試みます。接続に成功すると再び接続状態がコールバックされます。 4. SDK 内の Stream 処理中にエラーが発生した場合、切断状態がコールバックされます。 5. アプリがフォアグラウンドで動作中に、タスクからアプリを終了すると、切断状態がコールバックされます。 6. アプリが終了していない限り、SDK は AsReader と iOS デバイスの接続状態を常に監視します。 - AsReader が未接続で、かつアプリがフォアグラウンドにある場合、SDK は自動的に再接続を試み、成功すると接続状態がコールバックされます。 7. AsReader のバッテリー残量が極端に少ない場合、[`onReceivedBatteryState`](AsReaderAsk_delegate.md#onreceivedbatterystate) にて `gauge = 0` が通知され、このデリゲートで接続・切断状態が繰り返しコールバックされることがあります。 - AsReader の電源が完全に失われた場合は、本デリゲートのコールバックは行われなくなります。 ```swift func onReceivedConnectedState(_ isConnected: Bool) ``` ### パラメータ ```{list-table} :align: left :class: list-table * - 項目名 - 型 - 説明 * - isConnected - Bool - AsReaderとiOSデバイスの接続ステータス true:接続中 false:未接続 ``` ### サンプルコード ```swift func onReceivedConnectedState(_ isConnected: Bool) { if isConnected { // AsReader接続中 } else { // AsReader未接続 } } ``` --- ## onReceivedBatteryState 接続中の AsReader のバッテリー残量をコールバックします。 ### コールバックが発生するタイミング #### **ASR-060D** 1. AsReader が正常に接続されると、[`onReceivedConnectedState`](AsReaderAsk_delegate.md#onreceivedconnectedstate) デリゲートがコールバックされます。 このとき `isConnected` が `true` の場合、バッテリー情報が1回だけコールバックされます。 2. AsReader の電源がオンになると、[`onReceivedPowerState`](AsReaderAsk_delegate.md#onreceivedpowerstate) デリゲートがコールバックされます。 このとき `isOn` が `true` の場合、10秒ごとにバッテリー情報が継続的にコールバックされます。 3. AsReader が切断されると、再び [`onReceivedConnectedState`](AsReaderAsk_delegate.md#onreceivedconnectedstate) が呼び出されます。 `isConnected` が `false` の場合、バッテリー情報はコールバックされません。 4. AsReader の電源がオフになると、[`onReceivedPowerState`](AsReaderAsk_delegate.md#onreceivedpowerstate) がコールバックされ、`isOn` が `false` の場合はバッテリー情報は送信されません。 #### **ASR-061D、ASR-M60D** 1. AsReader が正常に接続されると、[`onReceivedConnectedState`](#onreceivedconnectedstate) がコールバックされます。`isConnected` が `true` の場合、バッテリー情報が1回送信され、その後も10秒ごとにコールバックされ続けます。 2. 電源がオンになると、[`onReceivedPowerState`](#onreceivedpowerstate) がコールバックされます。`isOn` が `true` の場合も、同様にバッテリー情報が1回送信され、10秒ごとに継続的な通知が行われます。 3. AsReader が切断された場合も、[`onReceivedConnectedState`](#onreceivedpowerstate) がコールバックされます。`isConnected` が `false` の場合、バッテリー情報の通知は停止します。 4. 電源がオフになると、[`onReceivedConnectedState`](#onreceivedconnectedstate) がコールバックされます。 `isOn が `false` の場合は、バッテリー情報が1回送信され、その後も10秒ごとにコールバックされ続けます。 #### **ASR-M60DB** 1. AsReader が正常に接続されると、[`onReceivedBLEConnectedState`](#onreceivedbleconnectedstate) がコールバックされます。`isConnected` が `true` の場合、バッテリー情報が1回送信され、その後も10秒ごとにコールバックされ続けます。 2. 電源がオンになると、[`onReceivedPowerState`](#onreceivedpowerstate) がコールバックされます。`isOn` が `true` の場合も、同様にバッテリー情報が1回送信され、10秒ごとに継続的な通知が行われます。 3. AsReader が切断された場合も、[`onReceivedBLEConnectedState `](#onreceivedbleconnectedstate) がコールバックされます。`isConnected` が `false` の場合、バッテリー情報の通知は停止します。 4. 電源がオフになると、[`onReceivedPowerState `](#onreceivedpowerstate) がコールバックされます。 `isOn が `false` の場合は、バッテリー情報が1回送信され、その後も10秒ごとにコールバックされ続けます。 ```swift func onReceivedBatteryState(_ gauge: Int32) ``` ### パラメータ ```{list-table} :align: left :class: list-table * - 項目名 - 型 - 説明 * - gauge - Intt32 - AsReaderのバッテリ残量 ``` ### サンプルコード ```swift func onReceivedBatteryState(_ gauge: Int32) {   //gauge:バッテリ残量 } ``` --- ## onReceivedTriggerState 接続中の AsReader のトリガーキーが押された/離された際に、そのステータスをコールバックします。 ### コールバックが発生するタイミング まず、トリガーキーに対してデフォルトの動作を無効化する必要があります。 [`setTriggerModeDefault`](AsReaderAsk_method.md#settriggermodedefault)を呼び出し、`isDefault` パラメータを `false` に設定してください。 AsReader の電源が正常にオンになると、[`onReceivedPowerState`](AsReaderAsk_delegate.md#onreceivedpowerstate)デリゲートがコールバックされ、パラメータ `isOn` が `true` の場合に、トリガーキーの操作が監視されます。 この状態で、トリガーキーが押されたり離されたりすると、本デリゲートが呼び出されます。 コールバックパラメータ `isTriggerDown` が `true` の場合は「トリガーキーが押された」状態、`false` の場合は「トリガーキーが離された」状態を示します。 ```swift func onReceivedTriggerState(_ isTriggerDown: Bool) ``` ### パラメータ ```{list-table} :align: left :class: list-table * - 型 - 説明 * - Bool - Triggerキーが押下されたかどうか true:triggerキーを押下 false:triggerキーを離す ``` ### サンプルコード ```swift func onReceivedTriggerState(_ isTriggerDown: Bool) { if isTriggerDown{ // triggerキーを押下 } else { // triggerキーを離す } } ``` --- ## onReceivedPowerState 接続中の AsReader の電源状態、ビープ音、バイブレーションのステータスをコールバックします。 ### コールバックが発生するタイミング [`sendPower`](AsReaderAsk_method.md#sendpower) メソッドを実行し、戻り値が `true` の場合に、設定結果がこのデリゲートメソッドを通じてコールバックされます。 このとき、コールバックされる各パラメータの値は、`sendPower` メソッドに渡した引数と同じ内容です。 ```swift func onReceivedPowerState(_ isOn: Bool, beep isBeep: Bool, vib isVib: Bool, led isLed: Bool) ``` ### パラメータ ```{list-table} :align: left :class: list-table * - 項目名 - 型 - 説明 * - isOn - Bool - AsReaderのパワーステータス true:オン false:オフ * - isBeep - Bool - データを受け取る際のビープのステータス true:オン false:オフ * - isVib - Bool - データを受け取る際のバイブレーションのステータス true:オン false:オフ * - isLed - Bool - 未使用 ``` ### サンプルコード ```swift func onReceivedPowerState(_ isOn: Bool, beep isBeep: Bool, vib isVib: Bool, led isLed: Bool) {       // isOnデバイスのパワーステータス // isBeepデータを受け取る際のビープのステータス // isVibデータを受け取る際のバイブレーションのステータス // isLed未使用 } ``` --- ## onReceivedReaderSettingBeep 接続中の AsReader のビープ音およびバイブレーション設定をコールバックします。 ### コールバックが発生するタイミング [`sendSettingBeep`](AsReaderAsk_method.md#sendsettingbeep)を実行し、戻り値が `true` の場合に、このデリゲートがコールバックされます。 コールバックされるパラメータは、[`sendSettingBeep`](AsReaderAsk_method.md#sendsettingbeep) メソッドに渡したパラメータと同じ内容になります。 ```swift func onReceivedReaderSettingBeep(_ isOn: Bool, vib isVib:Bool, led isLed: Bool) ``` ### パラメータ ```{list-table} :align: left :class: list-table * - 項目名 - 型 - 説明 * - isOn - Bool - データを受け取る際のビープステータス true:オン false:オフ * - isVib - Bool - データを受け取る際のバイブレーションステータス true:オン false:オフ * - isLed - Bool - 未使用 ``` ### サンプルコード ```swift func onReceivedReaderSettingBeep(_ isOn: Bool, vib isVib: Bool, led isLed: Bool) { // isBeepデータを受け取る際のビープステータス // isVibデータを受け取る際のバイブレーションステータス // isLed未使用 } ``` --- ## onReceivedBLEConnectedState AsReader の Bluetooth 接続ステータスをコールバックします。 ⚠️ この機能は **ASR-M060DB** にのみ対応しています。 ### コールバックが発生するタイミング [`connectBluetooth`](AsReaderAsk_method.md#connectbluetooth)、[`disConnectBluetooth`](AsReaderAsk_method.md#disconnectbluetooth)が呼び出された際に、このデリゲートメソッドがコールバックされます。 ```swift func onReceivedBLEConnectedState(_ isConnected: Bool) ``` ### パラメータ ```{list-table} :align: left :class: list-table * - 項目名 - 型 - 説明 * - isConnected - Bool - Bluetooth の接続ステータス true:接続済み false:切断済み ``` ### サンプルコード ```swift func onReceivedBLEConnectedState(_ isConnected: Bool) { if isConnected { // Bluetooth 接続成功時の処理 } else { // Bluetooth 切断時の処理 } } ``` --- ## onReceivedBLEError AsReader の Bluetooth 通信エラー情報を通知するデリゲートです。 ⚠️ この機能は **ASR-M060DB** のみに対応しています。 ### コールバックが発生するタイミング Bluetooth 通信中にエラーが発生した場合、 このデリゲートメソッドが呼び出されます。 ```swift func onReceivedBLEError(_ error: Error) ``` ### パラメータ ```{list-table} :align: left :class: list-table * - 項目名 - 型 - 説明 * - error - Error - 発生したエラー内容 ``` ### サンプルコード ```swift func onReceivedBLEError(_ error: Error) { // error: エラー内容の処理 } ```