SDKの使い方¶
SDK及び依存ライブラリーをインポート¶
プロジェクトにJvmaSDK.framework、ExternalAccessory.framework、
libc++.tbdを追加する必要があります。
※「ExternalAccessory.framework」と「libc++.tbd」はiOS標準のライブラリであり、本SDKには含まれません。
JvmaSDK.frameworkをインポート¶
JvmaSDK.frameworkファイルをプロジェクトのフォルダにコピーします。
1)プロジェクト名を選択
2)TARGETSを選択
3)Build Phasesを選択
4)Link Binary With Librariesに「+」をタップ
5)「Add Other…」にある「Add Files… 」を選択します。
6)プロジェクトフォルダにあるJvmaSDK.frameworkを選択、「Open」をタップします。
7)JvmaSDK.frameworkのインポートに成功
依存ライブラリーをインポート¶
1)プロジェクト名を選択
2)TARGETSを選択
3)Build Phasesを選択
4)Link Binary With Librariesに「+」をタップ
libc++.tbd をリンクする¶
1)検索枠に「libc++.tbd」を入力
2)libc++.tbdを選択
3)Addをタップ
4)libc++.tbd のインポートに成功
ExternalAccessory.framework のインポート¶
1)検索枠に「ExternalAccessory」を入力
2)ExternalAccessory.frameworkを選択
3)Addをタップ
4)ExternalAccessory.framework のインポートに成功
protocolを追加¶
AsReaderのASK通信デバイスと通信する為に、プロトコルの設定が必要です。
プロジェクトの.plistファイルの Supported external accessory protocolsに
「jp.co.asx.asreader.6dongle.ask」プロトコルを追加します。
Bridging-Header.h の作成¶
この SDK は Objective-C で開発されているため、Swift で利用する場合は Bridging-Header.h ファイルを設定する必要があります。 ここではその手順を簡単に説明します。
※ 詳細な手順については、Apple の開発ドキュメントをご参照ください。
ファイルの作成¶
プロジェクトを選択し、「New File」をタップします。
ポップアップしたウィインドウに「Header File」を選択します。
「Next」をタップし、ブリッジングファイルの名前を入力します。
「プロジェクト名-Bridging-Header.h」と入力後、「Create」をタップすると、ブリッジングファイルが生成されます。
プロジェクトに生成したブリッジングファイルは下図の通りです。
ブリッジングファイルの設定¶
TARGETS ->Build Settings->「bridging」で検索します。
「Objective-C Bridging Header」にブリッジングファイルのパスを追加します。
(下図はサンプルプロジェクトを例にしています。))
ブリッジングファイルを使う¶
ブリッジングファイルでSDKファイルを引用します。
#import <JvmaSDK/JvmaSDK.h>
プロジェクトでSDKを使う¶
SDKは主に2つの部分に分かれています。
1つ目は、AsReaderとの通信を行う「AsReaderAsk」クラス。
2つ目は、JVMAプロトコルを含む「JvmaSDK」クラスです。
AsReaderAsKオブジェクトを作成する¶
let ask: AsReaderAsk = AsReaderAsk.shared()
JvmaSDKオブジェクトを作成する¶
「JvmaSDK」オブジェクトを作成するには、「AsReaderAsk」オブジェクトをパラメーターとして渡す必要があります。
let sdk: JvmaSDK = JvmaSDK(asReaderAsk: ask)
statusDelegateのデリゲートの設定¶
ask.statusDelegate = self
statusDelegateのデリゲートメソッドを実装¶
extension ViewController: AsReaderAskStatusDelegate {
func onReceivedConnectedState(_ isConnected: Bool) {
//AsReaderとiOSデバイス間の接続ステータスをコールバックします。
}
func onReceivedPowerState(_ isOn: Bool, beep isBeep: Bool, vib isVib: Bool, led isLed: Bool) {
//現在接続されているAsReaderの電源、音、振動のステータスをコールバックします。
}
func onReceivedBatteryState(_ gauge: Int32) {
//現在接続されているAsReaderのバッテリー残量をコールバックします。
}
func onReceivedTriggerState(_ isTriggerDown: Bool) {
//現在接続されているAsReaderのトリガーキーの状態をコールバックします。
}
func onReceivedReaderSettingBeep(_ isOn: Bool, vib isVib: Bool, led isLed: Bool){
//現在接続されているAsReaderの音と振動のステータスをコールバックします。
}
}
AsReader の接続¶
AsReader が iOS デバイス に接続または切断されると、
onReceivedConnectedState デリゲートメソッドが呼び出され、
現在の接続状態をアプリに通知します。
AsReader の電源を入れる¶
AsReader が接続され、isConnected が true の場合は、
sendPower メソッドを呼び出し、
AsReader の電源をオンにします。
func onReceivedConnectedState(_ isConnected: Bool) {
// AsReader と iOS デバイス間の接続ステータスをコールバックします。
if isConnected {
ask.sendPower(on: true, setBeep: true, setVib: true, setLed: true)
} else {
ask.sendPower(on: false, setBeep: false, setVib: false, setLed: false)
}
}
AsReader の電源状態を確認する¶
sendPower を呼び出すと、戻り値が true の場合、
onReceivedPowerState デリゲートメソッドが呼び出されます。
onReceivedPowerState のコールバックパラメータ isOn が true の場合、
AsReader の電源が正常にオンになっていることを示します。
func onReceivedPowerState(_ isOn: Bool, beep isBeep: Bool, vib isVib: Bool, led isLed: Bool) {
// 現在接続されている AsReader の電源、ビープ音、振動、LED のステータスをコールバックします。
}
実行とコールバック¶
実行結果はクロージャを介してデータとしてコールバックされます。
AsReaderの電源がオンになると、onReceivedPowerStateデリゲートメソッドがコールバックされます。
コールバックパラメータ isOn がtrueの場合、デバイスとの通信が正常に実行可能な状態です。
ここでは、getVmDataのサンプルコードを紹介します。
このメソッドを使って自動販売機のデータを収集する方法を説明します。
なお、他の通信メソッドについては同様の方法で呼び出すことが可能です。
//自動販売機のデータを取得するメソッドを呼び出します。
sdk.getVmData(
withSettingCode: password,
terminalPassword: terminalPassword,
dataIds: array,
inputTimeRecord: inputTimeRecord
) { resultDataBlock in
// 返されたデータの処理(resultDataBlock)
}