FileMaker Pro 15の新機能「RangeBeacons」関数

2016年06月13日 10:00 AM

FileMaker 16以前


iBeaconがFileMaker Pro 15から利用できるようになりました。

 

新しく追加された関数「RangeBeacons」をFileMaker Goで使用することで
近くに存在するiBeaconの情報を一覧で取得することができます。
関数「RangeBeacons」はFileMaker Goでの関数のため
iPhone・iPadで利用できますが、PCでは利用できません。

 

iBeaconの情報を取得することで、
「自分が今どのiBeaconの近くにいるのか」が判断できます。
そして、「このiBeaconの近くにいるのであれば○○をする」
というスクリプトを作成することができます。

 

1.「RangeBeacons」関数の構文について

RangeBeacons ( UUID { ; タイムアウト ; メジャー ; マイナー } )

RangeBeacons関数ではiBeaconに設定している「UUID」を引数として使用します。
そのため、複数のiBeaconを一度に検出したい場合には
対象のiBeaconのUUIDを同一のものに設定しておく必要があります。

他のオプションの引数についても確認しましょう。
タイムアウト:iBeaconの検出に使用する秒数を設定できます。
メジャー:UUIDと同じくiBeaconに設定されている値です。
マイナー:UUID、メジャーと同じくiBeaconに設定されている値です。
設定する値はこのようなイメージをするといいでしょう。

1_mini

UUID、メジャー、マイナーの設定はiBeaconの機種によりますが
購入時にメーカーで設定してもらうか
購入後に自分で設定を行いましょう。
iBeaconの設定方法について例を挙げてご説明します。


個人的にアンパンが好きなのでアンパン工場を複数運営している
アンパン製造株式会社での設定について考えましょう。

工場の中のライン毎にiBeaconを設置しラインを区別することで処理を行います。

2_new_mini

このとき、アンパン製造株式会社で
使用するiBeaconはUUIDを全て「UUID_1(※1)」と設定します。
工場1ではメジャーを「Major_こしあん(※1)」と設定します。
工場2ではメジャーを「Major_つぶあん(※1)」と設定します。
工場3ではメジャーを「Major_ずんだあん(※1)」と設定します。
ライン1ではマイナーを「Minor_あんこ製造(※1)」と設定します。
ライン2ではマイナーを「Minor_パン製造(※1)」と設定します。
ライン3ではマイナーを「Minor_アンパン製造(※1)」と設定します。

3_mini

※1 実際の設定では「UUID_1」「Major_こしあん」「Minor_あんこ製造」
のような値は設定できません。
今回はわかりやすいように例として設定しています。
ちなみに、UUIDは 8492E75F-4FD6-469D-B132-043FE94921D8 のような値となります。
上記の設定を行うと
「UUID_1」を引数として指定したRangeBeacons関数を実行した際に
近くに存在するアンパン製造株式会社のiBeaconを全て取得することができます。
また、取得したメジャー、マイナーの値から
どの工場のiBeaconなのか、またどのラインのiBeaconなのか
という判断を行うことができます。

 

2.「RangeBeacons」関数で取得できる返り値について

RangeBeacons関数を実行すると
近くに存在するiBeaconから以下の値を取得できます。
「UUID, メジャー, マイナー, 近さ, 精度, RSSI」

4_mini

 

UUID、メジャー、マイナーはiBeaconに設定している値です。
近さは4段階あり、0:不明、1:非常に近い、2:近い、3:遠い となります。
精度は受信したiBeaconからの近さの精度です。おおよその距離を示します。
rssiは受信したiBeaconが発信している信号の強度を示し、数値が小さいほど強くなります。

 

「, 」で区切られたテキストとして値を取得するため、
実際にスクリプトなどで使用する際には
「, 」を区切り文字として分解する必要があります。

 

簡易的なものですがサンプルファイルを作成したのでご参照ください。

 

ダウンロードはこちら→

 

~使用方法~
「検出UUID_g」にiBeaconのUUIDを入力し、「iBeacon検出」ボタンを押下してください。
検出されたiBeaconからUUID、メジャー、マイナー、近さ、精度、rssiを取得し、
それぞれの値がフィールドに設定されます。