質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Bluetooth

Bluetoothとは短距離の間でデータを交換するための無線通信規格である。固定・モバイル両方のデバイスから、短波の電波送信を行うことで、高いセキュリティをもつパーソナルエリアネットワーク(PAN)を構築する。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

2202閲覧

BLE通信(EddyStone)におけるTLMフレームとビーコンの紐づけ

coelacanth9

総合スコア8

Bluetooth

Bluetoothとは短距離の間でデータを交換するための無線通信規格である。固定・モバイル両方のデバイスから、短波の電波送信を行うことで、高いセキュリティをもつパーソナルエリアネットワーク(PAN)を構築する。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2018/05/21 09:38

編集2018/05/21 09:41

[前提]
複数のビーコンを使ったBLE通信(EddyStone)を行っています。

[実現したい事]
TLMフレームとビーコンの紐づけを行いたい。

[現状と問題]
EddyStoneのTLMフレームは、個別のビーコンを示すIDを持っていません。
複数のビーコンを検出している状態で、検出したTLMフレームがどのビーコンから発せられたものであるかを特定する方法がわかりません。

直前に検出したUIDのビーコンに対して紐づけるといった方法が考えられますが、
複数のビーコンを同時に検出するような状況において、割り込みや混線のようなイメージで、
ビーコンAのUIDフレーム受信

ビーコンBのUIDフレーム受信

ビーコンAのTLMフレーム受信

ビーコンBのTLMフレーム受信
このような順番で検出した場合、上記の方法では紐づけを誤ってしまうと考えています。

公式では、TLMフレームはUID等のフレームと組み合わせて解析する必要があると書かれています。
https://github.com/google/eddystone/blob/master/eddystone-tlm/tlm-plain.md
特に、Interleavingが必要、というような説明と読めますが、そのInterleavingが具体的にどのような処理なのかわかりません。

[質問]
1. [現状と問題]で挙げているような懸念はあり得るのでしょうか?(割り込み・混線)
2. 公式のいうInterleavingというを用いた具体的な処理構成はどのようになるでしょうか?
3. また、その公式のいう方法で処理すれば、私の懸念している割り込み・混線の問題は回避できるのでしょうか?

以上、宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

特に、Interleavingが必要、というような説明と読めますが、そのInterleavingが具体的にどのような処理なのかわかりません。

ここでのInterleavingとは、要は使う状況に応じてビーコンの送信間隔を変えましょうと言うことです。その実際の間隔の指定は使う人(運用)次第です。ガイドラインくらいの意味で捉えて差し支えないと思います。

説明にもありましたが、

For example, if your application is using the TLM for fleet management, it may be satisfied receiving one TLM frame per day,

例えば機材管理の為にTLMを利用するような運用だと1日に1回のTLMの送出で状況は把握できるでしょうし、もっと頻繁にデータ収集をするような場所、例えば多くのビーコン機器が配置され、通信量が多くなる場所では1分に1回とのように、それぞれが抑制した頻度でビーコンを発します。対してそうでもない場所ではもっと多い頻度でビーコンを発信するよう設定することもできます。

eddystoneのgithub issueでも参考になるものがありましたのでご案内しておきます。
TLMフレームのみならず、Eddystone-UID や Eddystone-URLのアドバタイジングに関しても、用途に応じて適切に設定しましょうとのことです。
Specification for Interleaving

その他、こちらの説明も参考になると思いましたので併せてご案内します。
Monitor the Health of Your Beacons

上記を踏まえて3つのご質問に回答しますと、
> 1.[現状と問題]で挙げているような懸念はあり得るのでしょうか?(割り込み・混線)

ご懸念はそのままその通りで、BLEデバイス(ペリフェラル)の固有のIDが区別できない限り、有り得ます。ですので、固有のIDとして利用できるMACアドレスを使用して区別します。

2.公式のいうInterleavingというを用いた具体的な処理構成はどのようになるでしょうか?

先の解説になります。

  1. また、その公式のいう方法で処理すれば、私の懸念している割り込み・混線の問題は回避できるのでしょうか?

1.により、回避できるようになると言うことです。

別の話になりますが、気に留めておく必要があるのは、BLEのアドバタイジングは送達確認は無いので、発信したTLMフレームをandroid端末のようなBLEセントラル機器が受信する確約は無いと言うことです。取りこぼしはあり得ます。

また、多くの端末が短い間隔で送信すると受信側のアプリで処理しきれないこともあるのでその辺も考慮する必要はあるかと思います。この辺は実際に試してみて、調整するようなかたちになるでしょうか。

投稿2018/05/22 01:37

dodox86

総合スコア9183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coelacanth9

2018/05/30 08:21

dodox86様 ご回答誠にありがとうございます。返信が遅れましたこと、申し訳ございません。 分かりやすい解説をしていただきありがとうございます。 ご回答頂きました内容から、 ・TLMフレームとビーコンを紐づけるにはGATT接続まで行ってMACアドレスを取得する必要がある。 ・セントラルは、ビーコンが発信するフレームを解析するだけでGATT接続は行わない、といった仕様の場合は紐づけられない。 という理解をしましたが、その認識で合っていますか? 割り込み等が起こりえること、Interleavingの意味については、理解できました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問