以下に図面を参照して、本発明の好適な実施形態を例示的に説明する。ただし、本発明については、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて、以下に記載する実施形態に対して適宜変更、改良が加えられたものについても本発明の範囲に入ることが理解されるべきである。
<第1実施形態>
本実施形態の通信システムに含まれる情報処理装置及び通信装置について説明する。情報処理装置として、以下の説明ではスマートフォンを例示しているが、これに限定されない。ウェアラブルデバイス、携帯端末、ノートPC、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、種々の処理装置を適用可能である。さらに、音楽再生デバイス、テレビ等でも適用可能であり、無線通信を行うことが可能な処理装置であれば、種々の処理装置を適用可能である。また、通信装置として、以下の説明ではプリンタを例示しているが、これに限定されない。無線通信を行うことが可能な処理装置であれば、種々の処理装置を適用可能である。例えば、プリンタであれば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等に適用することができる。また、プリンタのみならず複写機やファクシミリ装置でもよい。さらに、スマートフォン、携帯端末、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ等にも適用可能である。その他、複写機能、FAX機能、印刷機能等の複数の機能を備える複合機にも適用可能である。
まず、本実施形態の情報処理装置と、本実施形態の情報処理装置と通信可能な通信装置の構成について図1のブロック図を参照して説明する。
(情報処理装置)
情報処理装置101は、本実施形態の情報処理装置である。情報処理装置101は、入力インタフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース107、表示部108、通信部109、近距離無線通信部110等を有する処理装置である。
入力インタフェース102は、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースであり、物理キーボードやボタン、タッチパネル等で構成される。なお、後述の出力インタフェース107と入力インタフェース102とを同一の構成とし、画面の出力とユーザからの操作の受け付けを同一の構成で行うような形態としても良い。
CPU103は、システム制御部であり、情報処理装置101の全体を制御する。
ROM104は、CPU103が実行する制御プログラムやデータテーブル、組み込みオペレーティングシステム(以下、OSという。)プログラム等の固定データを格納する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。
RAM105は、バックアップ電源を必要とするSRAM(Static Random Access Memory)等で構成される。なお、RAM105は、図示しないデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、情報処理装置101の設定情報や情報処理装置101の管理データ等を格納するメモリエリアもRAM105に設けられている。また、RAM105は、CPU103の主メモリとワークメモリとしても用いられる。
外部記憶装置106は、フラッシュメモリ等で構成され、印刷実行機能を提供するアプリケーション、通信装置151が解釈可能な印刷情報を生成する印刷情報生成プログラム等を保存している。また、外部記憶装置106は、通信部109を介して接続している通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムや、これらのプログラムが使用する各種情報を保存している。尚、外部記憶装置106の実装方法としては、フラッシュメモリを情報処理装置101に内蔵する実装方法、外部スロット(不図示)を介してmicroSDカード等を挿入する実装方法等がある。
出力インタフェース107は、表示部108がデータの表示や情報処理装置101の状態の通知を行うための制御を行うインタフェースである。
表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や情報処理装置101の状態の通知を行う。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを設置することで、表示部108を介してユーザからの入力を受け付けても良い。本実施例では、情報処理装置101の例として、表示部108が情報処理装置101に含まれる構成のスマートフォンの例で説明する。
通信部109は、通信装置151等の装置と接続して、データ通信を実行するための構成である。例えば、通信部109は、無線LANルーター等の外部のアクセスポイント131に接続可能である。通信装置151も外部のアクセスポイント131に接続されることにより、情報処理装置101と通信装置とは、外部のアクセスポイント131を介して、通信が可能となる。この接続方式を、インフラストラクチャー接続と呼ぶ。また、通信部109は、通信装置151内のアクセスポイント(不図示)に接続可能である。通信部109と通信装置151内のアクセスポイントが接続することで、情報処理装置101と通信装置151は相互に通信可能となる。この接続方式を、ダイレクト接続と呼ぶ。なお、ダイレクト接続の方式として、Wi-Fi Direct(登録商標)を用いてもよい。通信部109が通信装置151とインフラストラクチャー接続するかダイレクト接続するかはユーザにより選択可能であることが好ましい。
無線通信方式としては、例えば、IEEE802.11シリーズ(IEEE802.11a、IEEE802.11n(Wi-Fi 4)、IEEE802.11ac(Wi-Fi 5)、IEEE802.11ax(Wi-Fi 6)等)に準拠した通信方式であるWi-Fi(WirelessFidelity)(登録商標)が挙げられる。また、Bluetooth(登録商標)等の通信でもよい。
近距離無線通信部110は、通信装置151等の装置と近距離で無線接続して、データ通信を実行するための構成であり、通信部109とは異なる通信方式によって通信を行う。近距離無線通信部110は、通信装置151内の近距離無線通信部157と接続可能である。近距離無線通信部110は、電波強度も取得することができる。なお、本実施形態では、近距離無線通信部110の通信方式として、Bluetooth5.1の規格が用いられるものとする。なお、Bluetooth5.1には、Classic Bluetoothと、Bluetooth Low Energy(BLE)の両規格が含まれる。本実施形態では近距離無線通信部157の通信方式として、Bluetooth5.1のBLE規格が用いられるものとする。ただし、本実施形態では、この規格に限定されず、Bluetooth5.1以降のBluetooth規格のように、Bluetooth5.1と同等以上の位置検出機能を有する規格であれば、適用可能である。
GPS受信部112は、グローバル・ポジショニング・システム(Global Positioning System(GPSと略す))の一部を担うGPS受信機等で構成され、後述する図14(a)で示すGPS衛星1401からの信号を受け取る。この信号に基づき、情報処理装置101は、緯度、経度、北緯/南緯の情報、東経/西経の情報の少なくともいずれかに関する現在の位置情報を知ることができる。さらに、高度(海抜)等による現在の高度情報や、地表における移動の速度に関する速度情報、地表における移動の真方位情報等を知ることができる。なお、情報処理装置がウェアラブルデバイスのような簡易デバイスの場合、GPS受信部112を備えていない場合もある。
(通信装置)
通信装置151は、本実施形態の通信装置である。通信装置151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、近距離無線通信部157等を有する処理装置である。
通信部156は、通信装置151内部のアクセスポイントとして、情報処理装置101等の装置と接続するためのアクセスポイントを有している。このアクセスポイントにより、通信装置151は親局として動作し、該アクセスポイントに、情報処理装置101の通信部109が接続可能である。つまり、通信部156はこの内部のアクセスポイントにより無線通信で情報処理装置101とダイレクト接続することができる。通信部156は、アクセスポイントとして機能するハードウェアを備えていてもよいし、アクセスポイントとして機能させるためのソフトウエアにより、アクセスポイントとして動作してもよい。また、通信部156は、Wi-Fi Direct(登録商標)の親局であるGroup Ownerとして機能してもよい。なお、通信装置151は、外部のアクセスポイント131を介して、情報処理装置101とインフラストラクチャー接続により通信しても良い。通信部156が情報処理装置101とインフラストラクチャー接続するかダイレクト接続するかはユーザにより選択可能であることが好ましい。
通信方式としては、例えば、IEEE802.11シリーズ(IEEE802.11a、IEEE802.11n(Wi-Fi 4)、IEEE802.11ac(Wi-Fi 5)、IEEE802.11ax(Wi-Fi 6)等)に準拠した通信方式であるWi-Fi(登録商標)が挙げられる。また、Bluetooth(登録商標)等の通信でもよい。
近距離無線通信部157は、情報処理装置101等の装置と近距離で無線接続するための構成である。本実施形態では、近距離無線通信部157の通信方式として、Bluetooth5.1の規格が用いられるものとする。より具体的には、本実施形態では近距離無線通信部157の通信方式として、Bluetooth5.1のBLE規格が用いられるものとする。ただし、本実施形態では、この規格に限定されず、Bluetooth5.1以降のBluetooth規格のように、Bluetooth5.1と同等以上の位置検出機能を有する規格であれば、適用可能である。
RAM153は、バックアップ電源を必要とするSRAM等で構成される。なお、RAM153は、図示しないデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータや図19に示す設置位置情報と設置高度情報等を揮発させずに格納することができる。また、通信装置151の設定情報や通信装置151の管理データ等を格納するメモリエリアもRAM153に設けられている。また、RAM153は、CPU154の主メモリとワークメモリとしても用いられ、情報処理装置101等から受信した印刷情報を一旦保存するための受信バッファや各種の情報を保存する。
ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。本実施形態では、ROM152に格納されている各制御プログラムは、ROM152に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。
CPU154は、システム制御部であり、通信装置151の全体を制御する。
プリントエンジン155、RAM153に保存された情報や情報処理装置101等から受信した印刷ジョブに基づき、インク等の記録剤を用いて紙等の記録媒体上に画像形成し、印刷結果を出力する。この時、情報処理装置101等から送信される印刷ジョブは、送信データ量が大きく、高速な通信が求められるため、近距離無線通信部157よりも高速に通信可能な通信部156を介して受信する。なお、通信装置151が、プリンタではない場合、プリントエンジン155は備えていない。
また、通信装置151が、スマートフォン、携帯端末、ノートPC、タブレット端末等の端末装置の場合、情報処理装置101と同様にGPS受信部112を備えることが好ましい。後述する図14(a)で示すGPS衛星1401からの信号を受け取り、通信装置151は、緯度、経度、北緯/南緯の情報、東経/西経の情報の少なくともいずれかに関する現在の位置情報を知ることができる。さらに、高度(海抜)等による現在の高度情報や、地表における移動の速度に関する速度情報、地表における移動の真方位情報等を知ることができる。
表示部158は、タッチパネルを備えるLCD(液晶ディスプレイ)で構成され、ソフトキーボード機能(不図示)も備えており、ユーザは文字や数字の入力や、表示部158内のボタン操作等を行うことができる。
なお、通信装置151には、外付けHDDやSDカード等のメモリがオプション機器として装着されてもよく、通信装置151に保存される情報は、当該メモリに保存されても良い。
また、本実施形態の通信装置151は、接続設定処理により接続モードが設定され、設定された接続モードに基づいた接続形態により、情報処理装置101と通信を行う。本実施形態の通信装置は、インフラストラクチャー接続により通信を行う場合は、接続モードとしてインフラストラクチャー接続モードが設定され、ダイレクト接続により通信を行う場合は、接続モードとしてダイレクト接続モードが設定される。さらに、インフラストラクチャー接続モードとダイレクト接続モードとの両方を有効に設定することで、両接続が並行して動作可能なモードにすることも可能である。
なお、ここでは、ダイレクト接続時の例として、通信装置151が親局として機能し(APとして機能、又は、Wi-Fi DirectのGroupOwnerとして機能)、情報処理装置101が子局として機能する例を説明した。しかしながら、本実施形態では、特にこの分担形態に限らず他の形態であってもよい。つまり、ダイレクト接続時において、情報処理装置101が親局として動作し、通信装置151が子局として動作してもよい。
本実施形態では、情報処理装置101は、ROM104や外部記憶装置106等に所定のアプリケーションを格納しているものとする。所定のアプリケーションとは、例えば、通信装置151がプリンタの場合、情報処理装置101は、情報処理装置101内の画像データを印刷させるための印刷ジョブを、通信装置151に送信するためのアプリケーションプログラムである。このような機能を有するアプリケーションを、以後印刷アプリという。なお、印刷アプリは、印刷機能以外に、他の機能を備えていても良い。例えば、印刷アプリは、通信装置151がスキャン機能を備えている場合に、通信装置151にセットされた原稿をスキャンさせる機能や、通信装置151の他の設定を行う機能、通信装置151の状態を確認する機能等を備えていても良い。すなわち、印刷アプリは、印刷ジョブ以外に、スキャンジョブや設定ジョブを通信装置151に送信する機能を有していても良い。また、所定のアプリケーションは、印刷アプリに限定されず、印刷以外の機能を備えているアプリケーションプログラムであっても良い。
(BLE規格におけるアドバタイジング)
本実施形態では、情報処理装置101の近距離無線通信部110および通信装置151の近距離無線通信部157は、BLEによって通信を行うものとして説明する。なお、本実施形態では、通信装置151の近距離無線通信部157が、後述のアドバタイズ情報(アドバタイズパケット)をブロードキャストするアドバタイザ(又はスレーブ)として機能する。そして、情報処理装置101の近距離無線通信部110が、アドバタイズ情報を受信するスキャナ(又はマスタ)として機能する。また、通信部109および通信部156は無線LAN(Wi-Fi)によって通信を行うものとして説明する。
ここで、BLE規格におけるアドバタイズ情報の送信及びBLE接続要求の受信の処理について説明する。本実施形態では、上述したように近距離無線通信部157がスレーブ機器として動作するため、近距離無線通信部157がアドバタイズ情報の送信及びBLE接続要求の受信を行うものとする。近距離無線通信部157は、2.4GHzの周波数帯を40チャネル(0~39ch)に分割して通信を行う。近距離無線通信部157は、そのうち、37~39番目のチャネルをアドバタイズ情報の送信やBLE接続要求の受信に利用し、0~36番目のチャネルをBLE接続後のデータ通信に利用している。
図2は、アドバタイズ情報を送信する際の消費電力を説明するための図である。図2では、縦軸が近距離無線通信部157の消費電力を、横軸が時間を示しており、1つのチャネルを利用してアドバタイズ情報を送信する際の消費電力を各処理別に示している。Tx205は、アドバタイズ情報をブロードキャストする処理である送信処理における総消費電力を、Rx206は、BLE接続要求を受信するための受信器を有効にしておく処理である受信処理における総消費電力を示している。送信電力207は送信処理による瞬間消費電力を示している。また、受信電力203は受信処理による瞬間消費電力を示している。また、マイコン動作電力201は、近距離無線通信部157内のマイコンが動作している場合の瞬間消費電力を示している。なお、Tx205とRx206の前後や間にもマイコンが動作しているのは、送信・受信処理の実行や停止のためには事前にマイコンが起動している必要があるからである。また、アドバタイズ情報の送信を複数チャネルで行う場合は、アドバタイズ情報の送信を行うチャネルの数だけ消費電力が増えることになる。また、マイコンが動作を行っておらず、近距離無線通信部157が省電力状態となっている間は、スリープ電力204が近距離無線通信部157の瞬間消費電力となる。このように、近距離無線通信部157は、所定のチャネルを用いて送信処理を行った後、同一のチャネルを用いて一定時間受信処理を行うことで、情報処理装置101からBLE接続要求が送信されるのを待つ。
図3は、アドバタイズの詳細を説明するための図である。近距離無線通信部157は、図3に示すように、アドバタイズ情報の送信処理と受信処理を、チャネル別に3回繰り返した後、マイコンの動作を停止させ一定時間省電力状態になる。以下、所定のチャネルによるアドバタイズ情報の送信処理と受信処理の組み合わせをアドバタイズと言う。また、所定のチャネルによってアドバタイズ情報を送信する時間間隔をアドバタイズ間隔という。なお、1回目のアドバタイズを行ってから省電力状態になるまでに繰り返すアドバタイズの回数は、3回以下であれば任意に変更可能である。また、図3ではアドバタイズ時のチャネルは37番目のチャネル、38番目のチャネル、39番目のチャネルの順番で順次使用している。ただし、この順番はランダムであってもよい。また、順番は1回目のアドバタイズと2回目のアドバタイズ、3回目以降のアドバタイズとでそれぞれ異なっていてもよい。
図5は、近距離無線通信部157が通信装置151の周辺にブロードキャストするアドバタイズ情報の構造の一例である。近距離無線通信部157は、電力の供給が開始されると初期化処理を行い、アドバタイジング状態となる。近距離無線通信部157は、アドバタイジング状態となると、アドバタイズ間隔に基づいて定期的にアドバタイズ情報を周辺にブロードキャストする。アドバタイズ情報は、ヘッダ901とペイロード902から構成される。情報処理装置101は、このアドバタイズ情報を受信することで、通信装置151の存在を認識することができる。さらに、情報処理装置101は、通信装置151にBLE接続要求を送信することで通信装置151とBLE接続することができる。ヘッダ901は、アドバタイズ情報のタイプやペイロード902の大きさの情報などを格納する領域である。ペイロード902は、識別情報としてのデバイス名903(デバイス情報)や搭載プロファイル情報、通信装置151とBLE接続するための接続情報904、アドバタイズ情報の送信電力(Tx Power)905等の情報を格納する。なお、通信装置151の識別情報906や、通信装置151のステータス(エラーや電源の状態等)に関する情報をアドバタイズ情報のペイロード内に含めても良い。通信装置の識別情報906としては、通信装置のMACアドレスや、通信装置のサービス情報、通信装置内のアクセスポイントのSSID、パスワード等が該当する。また、後述する図22の各情報についても、ペイロード902内に含めるとよい。
本実施形態では、近距離無線通信部157は、通信装置151の電源がONになった場合にアドバタイジング状態となり、アドバタイズ情報の送信を開始するものとする。ただし、近距離無線通信部157がアドバタイズ情報の送信を開始するタイミングは、上述の形態に限定されず、例えば、BLE機能を有効にするための所定の操作が行われたタイミング等であっても良い。また、通信装置151の電源ボタンが押下されて電源オフ状態となった場合や、省電力機能により通信装置151がスリープモードになった場合であっても、近距離無線通信部157へは電力供給が行われることにより、アドバタイズ情報の送信が行われてもよい。
なお例えば、近距離無線通信部157は、まず、第1アドバタイズ情報を送信してもよい。そして、第1アドバタイズ情報に対するスキャン・リクエストを情報処理装置101から受け取った場合、スキャン・レスポンスとして、第1アドバタイズ情報とは内部の情報の内容が異なる第2アドバタイズ情報を送信する形態であっても良い。例えば、第1アドバタイズ情報は、アドバタイズ情報の送信電力に関する情報や近距離無線通信部157の識別情報等を含むものとする。そして、第2アドバタイズ情報は、通信装置151の識別情報や、通信装置151が備えている機能やハードウェアに関する情報等を含むものとする。スキャン・レスポンスとしての第2アドバタイズ情報を受信した情報処理装置101から、接続要求(CONNECT_REQ)を受信すると、通信装置151と情報処理装置101との間で接続が確立する。このような形態の場合、例えば印刷アプリは、第2アドバタイズ情報をハンドリングするものとして設計される。そのため、以下の説明において印刷アプリがハンドリングするアドバタイズ情報は、第2アドバタイズ情報であるものとする。なお、後述する図22に記載の各情報については、第1アドバタイズ情報に含めてもよいが、第2アドバタイズ情報に含めることが好ましい。
また、上述の説明では、通信装置151の近距離無線通信部157が、アドバタイザ又はスレーブとして機能し、情報処理装置101の近距離無線通信部110が、スキャナ又はマスタとして機能する例について説明した。しかしながら、本実施形態では、逆でもよい。つまり、情報処理装置101の近距離無線通信部110が、アドバタイズ情報をブロードキャストするアドバタイザ又はスレーブとして機能し、通信装置151の近距離無線通信部157が、アドバタイズ情報を受信するスキャナ又はマスタとして機能してもよい。
(Bluetooth5.1)
Bluetooth 5.1では、Angle of Arrival(AoA)又はAngle of Departure(AoD)を利用した方向検知が可能である。これにより、装置間の相対位置関係がわかる。例えば、近くにある2つのBluetooth機能を搭載した装置同士の相対位置を数センチメートルの誤差で特定できる。
図6は、通信装置151内の近距離無線通信部157が送信するアドバタイズ情報を用いて、情報処理装置101が通信装置151の方向を検知する機能を説明するためのブロック図である。情報処理装置101内の近距離無線通信部110はアンテナ601とアンテナ602とアンテナ603を備え、通信装置151内の近距離無線通信部157はアンテナ604とアンテナ605とアンテナ606を備える。なお、近距離無線通信部110と近距離無線通信部157のそれぞれに備わっているアンテナの本数はこの限りではない。アンテナの本数は1本もしくは2本、あるいは3本以上であってもよい。また、近距離無線通信部110と近距離無線通信部157とで、備わっているアンテナの本数はそれぞれで違っていてもよい。また、図6では、近距離無線通信部110と近距離無線通信部157に備わっているアンテナは直線上に配置されているよう記載したが、アンテナの配置はこの限りではない。3本以上の場合、2次元に配置してもよい。
図7は、情報処理装置101に通信装置151との距離及び通信装置151の位置の方向を検知させるために、通信装置151内の近距離無線通信部157が送信するアドバタイズ情報の構造の一例である。Constant Tone Extension(CTE)は、情報処理装置101に対する通信装置151の方向を検知するために使用されるデータである。Preamble501は、情報処理装置101が通信装置151のアドバタイズ情報を受信する際のクロック同期用のデータである。Access-Address502は、情報処理装置101が通信装置151のアドバタイズ情報を受信する際のフレーム同期用のデータである。PDU(Protocol Data Unit)503は、通信装置151が送信するアドバタイズ情報における実データ部分である。なお、図5で説明したアドバタイズ情報であるヘッダ901とペイロード902は、PDU503の中に含まれる情報である。CRC(Cyclic Redundancy Check)504はPDU503の通信時の誤り検出符号値である。
情報処理装置101が通信装置151の方向を検知する方法として2つの方法がある。つまり、近距離無線通信部110が複数のアンテナを備えることにより実現される方法(AoAを利用する方法)と、近距離無線通信部157が複数のアンテナを備えることにより実現される方法(AoDを利用する方法)がある。以下、詳細に説明する。
(AoAを利用する方法)
図8を用いて、近距離無線通信部110が複数のアンテナを備えることにより実現される、情報処理装置101が通信装置151の方向を検知する方法について説明する。近距離無線通信部157はアンテナ604からCTE505を含むアドバタイズ情報であるAoA Radio Signal703を送信する。近距離無線通信部110は、複数のアンテナ(アンテナ601とアンテナ602の両方)でAoA Radio Signal703を受信する。ここで、アンテナ601とアンテナ602で受信されたAoA Radio Signal703の位相差(つまり、受信されたアドバタイズ情報の位相差)をψ、波長をλとする。また、アンテナ601とアンテナ602の距離であるAoAアンテナ間距離d701を用いることにより、以下の式(1)から、情報処理装置101に対する通信装置151の方向であるAngle of Arrival θ702が計算される。AoAアンテナ間距離d701は、アドバタイズ情報に含まれている場合はアドバタイズ情報から取得してもよく、GATT通信により取得してもよい。
θ=arccos((ψλ)/(2πd)) 式(1)
このように、通信装置151からアドバタイズ情報を受信した情報処理装置101は、Angle of Arrival θ702を計算することで、通信装置151の方向を検知することができる。
(AoDを利用する方法)
次に、図9を用いて、近距離無線通信部157が複数のアンテナを備えることにより実現される、情報処理装置101が通信装置151の方向を検知する方法について説明する。近距離無線通信部157は複数のアンテナ(アンテナ604とアンテナ605の両方)からCTE505を含むアドバタイズ情報であるAoD Radio Signal803を送信する。近距離無線通信部110は、アンテナ601でAoD Radio Signal803を受信する。ここで、通信装置151では、アンテナ604がアドバタイズ情報を所定の周期で送信した後、間隔を空けずにアンテナ605がアドバタイズ情報を同じ周期で送信するものとする。この場合、アンテナ604とアンテナ605とは連続して同周期のアドバタイズ情報を送信しているため、アンテナ601が受信するアドバタイズ情報には、アンテナ604とアンテナ605との距離に依存した位相差が検出される。
アンテナ604とアンテナ605によるAoD Radio Signal803の位相差をψ、波長をλとする。また、アンテナ604とアンテナ605の距離であるAoDアンテナ間距離d801を用いることにより、式(2)から、情報処理装置101に対する通信装置151の方向であるAngle of Departure θ802が計算される。
θ=arccos((ψλ)/(2πd)) 式(2)
このように、通信装置151からアドバタイズ情報を受信した情報処理装置101は、Angle of Departure θ802を計算することで、通信装置151の方向を検知することができる。
なお、近距離無線通信部110が複数のアンテナを備えることにより実現される方法の説明では、複数のアンテナとしてアンテナ601とアンテナ602の2つが用いられる形態について述べたが、使用されるアンテナの本数はこの限りではない。例えば、情報処理装置101は、3本以上のアンテナを使用し、それぞれのアンテナから求まるAngle of Arrival θの平均を算出することでAngle of Arrival θ702を取得してもよい。同様に近距離無線通信部157が複数のアンテナを備えることにより実現される方法においても、複数のアンテナとして使用されるアンテナの本数は上述の限りではない。例えば、通信装置151は、3本以上のアンテナを使用し、それぞれのアンテナから求まるAngle of Departure θの平均を算出することでAngle of Departure θ802を取得してもよい。
また上述では、情報処理装置101と通信装置151のどちらか一方の装置が複数のアンテナを使用する実施形態について述べたが、この限りではない。両方の装置がともに複数のアンテナを用いてもよい。
また上述では、情報処理装置101が、1台の通信装置151の方向を検知する形態について述べたが、この限りではない。情報処理装置101が、2台以上の通信装置151の方向を検知しても良い。また情報処理装置101は、2台以上の通信装置151の方向を検知し、それぞれの検知データを参照することで、1台の通信装置151の方向を検知する形態と比較し、高精度に、装置間の距離や方向、位置を検知することができる。
また上述では、通信装置151がアドバタイズ情報を送信し、情報処理装置101がアドバタイズ情報を受信して通信装置151の方向を検知する例について説明した。しかしながら、本実施形態では、逆でもよい。つまり、情報処理装置101がアドバタイズ情報を送信し、通信装置151がアドバタイズ情報を受信して情報処理装置101の方向を検知してもよい。
(BLE規格におけるGATT通信)
ここで、BLE規格におけるGATT(Generic Attribute Profile)通信の概要について説明する。GATTとは、BLE規格において情報の読み書き(送受信)を司るプロファイルである。GATT通信は、アドバタイジング後にBLE接続が確立することにより行われる通信である。GATT通信においては、データの転送元と転送先に基づいて、GATTクライアントとGATTサーバの2つのロールが定義されている。
GATTクライアントはGATTサーバにリクエストを送信し、GATTサーバからの応答を受信する。本実施形態では、情報処理装置101がGATTクライアントとなる。GATTクライアントは、GATTサーバの近距離無線通信部内の記憶領域に保持されている情報の読み取り(リード)及び、当該記憶領域に対する情報の書き込み(ライト)を実行することが出来る。
GATTサーバは、GATTクライアントからの要求を受信すると、GATTクライアントに対して応答を返す。本実施形態では、通信装置151がGATTサーバとなる。なお、GATTサーバは、GATTサーバの状態情報等の情報を格納するデバイスとして動作する。
図10は、GATTのデータ形式について説明するための図である。GATTのデータは、図10に示すような階層構造を持っており、サービス、キャラクタリスティック、ディスクリプタと呼ばれる3つの要素から構成される。ただし、ディスクリプタは存在していなくても良く、本実施形態では、近距離無線通信部157が構成するGATTデータにはディスクリプタは存在しないものとする。
サービス、キャラクタリスティック、ディスクリプタは32桁で表現されるUUID(Universally Unique Identifier)で識別することができる。ここで言う、UUIDとは、ソフトウエア上でオブジェクトを一意に識別するための識別子として使用されるものである。UUIDは128ビットの数値だが、通常は16進数で550e8400-e29b-41d4-a716-446655440000のように表現される。
なお、サービス、キャラクタリスティック、ディスクリプタには、Bluetooth SIG(Special Interest Group)によりの標準で定義されているものやベンダー固有のもの等がある。ベンダー固有のサービス、キャラクタリスティック、ディスクリプタのUUIDは、上述のように32桁で表現される。Bluetooth SIGにより標準で定義されているサービス、キャラクタリスティック、ディスクリプタのUUIDについては4桁で表現される。すなわち、例えば、Bluetooth SIGにより標準で定義されているサービス、キャラクタリスティック、ディスクリプタのUUIDは、2A49のように表現される。
サービスは、GATTのデータ中のアトリビュートを共通区分ごとにグループ化したものであり、各サービスには1以上のキャラクタリスティックが含まれる。キャラクタリスティックには、キャラクタリスティック毎に単一の値が設定されている。ディスクリプタは、キャラクタリスティックに付加情報が必要な際に用いられる属性値が設定されている。サービス、キャラクタリスティック、ディスクリプタには、それぞれ、GATTクライアントにリードやライトを許可するか否かを示す設定値であるリード・ライトの属性を設定することが出来る。
GATTクライアントは、サービス、キャラクタリスティックそれぞれのUUIDを指定することで、指定したキャラクタリスティックに設定されている値に対して、リード・ライトを実行することが出来る。ただし、リード・ライトが実行できるか否かは、各サービス、キャラクタリスティックに設定されているリード・ライト属性に基づく。
図11に、近距離無線通信部157によって構築されているGATTデータの例を示す。図11のGATTデータにおいて、「Service UUID」は、各サービスに割り振られているUUIDを示す。UUIDは上述したとおり、4桁もしくは32桁で記述されている。「Service名」は、各サービスの名前を示す。「Charactaristic UUID」は、各キャラクタリスティックに割り振られているUUIDを示す。UUIDは上述したとおり、4桁もしくは32桁で記述されている。「Charactaristic名」は、各キャラクタリスティックの名前を示す。「Service リード可能」は、各サービスに関する値を情報処理装置101がリード(読み取り)可能か否かを示す。「Service ライト可能」は、各サービスに関する値を情報処理装置101がライト(書き込み)可能か否かを示す。「Charactaristic リード可能」は、各キャラクタリスティックに関する値を情報処理装置101がリード可能か否かを示す。「Charactaristic ライト可能」は、各キャラクタリスティックに関する値を情報処理装置101がライト(書込み)可能か否かを示す。「Charactaristic インディケイト可能」は、各キャラクタリスティックに関する値を通信装置151が更新した場合に情報処理装置101へインディケイト(通知)可能か否かを示す。「ペアリング必要」は、各キャラクタリスティックに関する値をペアリング済みでなければ情報処理装置101にライトもしくはリードを許可しないか否かを示す。
情報処理装置101は、「Service リード可能」がリード可能(○)を示し且つ「Charactaristic リード可能」がリード可能を示(○)している場合、対応するキャラクタリスティックに関する値を読み取ることができる。また、情報処理装置101は、「Service リード可能」がリード可能(○)を示し且つ「Charactaristic リード可能」がリード不可能(空欄)を示している場合、対応するキャラクタリスティックに関する値を読み取ることができない。「値」は、各キャラクタリスティックに設定された値を示す。また、「ペアリング必要」がペアリング不必要(空欄)を示している場合、情報処理装置101は、通信装置151とペアリングをしていない状態でも、対応するキャラクタリスティックに関する値を読み書きすることができる。一方、「ペアリング必要」がペアリング必要(○)を示している場合、情報処理装置101は、通信装置151とペアリングをしている状態でなければ、対応するキャラクタリスティックに関する値を読み書きすることができない。
本実施形態では、情報処理装置101と通信装置151間で認証を行い、装置間でGATT通信によりデータの読み書きを実行するためのペアリング処理を実施する。情報処理装置101と通信装置151間でのペアリングが実行されていない状態では、通信装置151は、GATT通信による情報の読み書きを許可しない構成とする。このようにすることで、ペアリングを行っていない情報処理装置101と通信装置151が通信を行ってしまい、例えば、通信装置151が保持する情報がペアリングを行っていない情報処理装置101に不用意に取得されてしまうことを抑制することができる。なお、本実施形態では、ペアリングを行っていない状態で許可されるGATT通信と、ペアリングを行っていない状態では許可されないGATT通信とがあるものとする。秘匿性の低い情報は、ペアリングを行っていない状態で許可されるGATT通信で通信可能とすることで、通信の利便性を向上させることができる。一方、秘匿性の高い情報は、ペアリングを行っていない状態では許可されないGATT通信でのみ通信可能とすることで、通信のセキュリティを向上させることができる。
図4を用いて、ペアリング処理の詳細について説明する。まず、情報処理装置101は、前述の印刷アプリが起動され、印刷アプリを介してユーザからペアリング処理の実行指示を受け付けた場合、特定の装置情報を有するアドバタイズ情報のサーチを開始する。なお、特定の装置情報とは、例えば、印刷アプリに対応する装置(プリンタ等)のUUIDやMACアドレス等である。そして、情報処理装置101は、特定の装置情報を有するアドバタイズ情報を受信すると、特定の装置情報を有するアドバタイズ情報の送信元の装置のリストを表示部に表示し、ペアリング対象となる装置の選択をユーザから受け付ける。ここでは、通信装置151が選択されたものとして説明する。
そして、情報処理装置101は、ペアリング対象となる装置の選択を受け付けた場合、セキュリティーマネージャプロトコルによる通信により、通信装置151に、ペアリング要求を送信する。なお、ペアリングが終了するまで、装置間の通信は、セキュリティーマネージャプロトコルによって行われるものとする。
通信装置151は、ペアリング要求を受信すると、表示部160に、図4(a)に示すようなPINコード表示画面200を表示する。PINコード表示画面200には、PINコード201と、ペアリング処理をキャンセルするためのCancelボタン202が表示される。そして、情報処理装置101は、ペアリング要求を送信すると、表示部108に、図4(b)に示すようなPINコード入力画面210を表示する。PINコード入力画面210には、ユーザによるPINコード201の入力を受け付けるためのPINコード入力領域211が表示される。さらに、入力されたPINコード201を通信装置151に送信するためのOKボタン213と、ペアリング処理をキャンセルするためのCancelボタン212が表示される。PINコード入力領域211にPINコード201が入力された状態で、OKボタン213が押下されると、情報処理装置101は、入力されたPINコード201を含む情報を通信装置151に送信する。通信装置151は、受信した情報に含まれるPINコード201が、PINコード表示画面200に表示したPINコード201と一致するか否かを判定し、一致すると判定した場合は、情報処理装置101にペアリングを許可する。具体的には、通信装置151は、PINコード201をもとに所定の方法で作成されたリンクキー(認証情報)を、BLE規格のSMP(Security Manager Protocol)を利用して情報処理装置101と交換する。交換されたリンクキーは、情報処理装置101の持つ記憶領域(ROM104等)と通信装置151の持つ記憶領域(ROM152等)にそれぞれ保存される。これによりペアリングが完了し、以降、装置間でBLE通信を実行することが許可される。なお、情報処理装置101は、ペアリングが完了すると、PINコード表示画面200を非表示とし、元の画面を再度表示する。
ペアリング完了後は、情報処理装置101は、通信装置151に対してGATT通信要求を送信する際には、ペアリング処理時に記憶領域に保存したリンクキーを通信装置151に通知する。通信装置151は、GATT通信要求を受信した場合、ペアリング処理時に記憶領域に保存したリンクキーと通知されたリンクキーを比較して、GATT通信要求を発信している装置が、ペアリング済みの装置であるかを確認する。そして、通信装置151は、ペアリング済みの装置であると確認できた場合は、情報処理装置101とのGATT通信による情報の読み書きを開始する。これにより、情報処理装置101は、一旦通信装置151とのペアリング処理を完了しておけば、以降はユーザによるPINコードの入力なしに通信装置151とのGATT通信を実行することができる。
なお、上述では、PINコード入力領域211に、PINコード入力画面210に表示されているPINコード201をユーザに入力させる形態を説明したが、この形態に限定されない。例えば、PINコード210を固定の(ユーザが任意に変更できない)情報とし、印刷アプリのインストールと共に情報処理装置101に格納される形態とすることで、ユーザの入力なしにPINコード210が通信装置151に通知される形態としてもよい。また、ペアリング処理が開始されるタイミングも上述の形態に限定されず、例えば、印刷アプリを介してユーザが印刷を指示したタイミングや、接続設定処理においてBLE接続が行われる前のタイミング等であっても良い。
また、情報処理装置101が表示するPINコード入力画面210は、印刷アプリによって表示されなくとも良い。例えば、情報処理装置101は、設定用アプリケーション(以降、設定用アプリ)を有していても良い。設定用アプリとは、OSにより実行される機能に関する設定を行うためのアプリーションプログラムである。設定用アプリは、例えば、OSが情報処理装置101にインストールされる一連の処理において一緒にインストールされたり、情報処理装置101の着荷時にOSと一緒に予め情報処理装置101にインストールされたりしているアプリーションプログラムである。情報処理装置101は、通信装置151とペアリングを行う際に、設定用アプリを起動させて印刷アプリをバックグラウンドに遷移させ、設定用アプリにより表示されるBluetooth設定画面に対するペアリングのための入力をユーザから受け付けても良い。
また上述では、PINコード入力式のペアリング方法について説明したが、ペアリングの方法は、上述の方法に限定されない。以下に、PINコード入力式以外のペアリング方法について説明する。情報処理装置101は、通信装置151が保持している情報である、鍵シードと呼ばれる情報を、BLE接続を介して通信装置151から取得する。そして、情報処理装置101と通信装置151は、それぞれが予め認識している法則に従って、鍵シードからリンクキーを生成する。生成されたリンクキーは、情報処理装置101の持つ記憶領域(ROM104等)と通信装置151の持つ記憶領域(ROM152等)にそれぞれ保存される。すなわち、情報処理装置101と通信装置151は、同じリンクキーをそれぞれが保持することとなる。このようにしてリンクキーを生成し、当該リンクキーを用いたGATT通信が可能となることで、通信装置151と情報処理装置101との間の認証が行われ、ペアリング処理が完了する。ペアリング処理が完了した後は、情報処理装置101と通信装置151との間の通信において、リンクキーに基づいて暗号化した情報が通信される。情報処理装置101と通信装置151は、リンクキーに基づいて暗号化された情報を受信した場合、自身が保持するリンクキーを用いて暗号化を解除することで、暗号化される前の情報を認識することができる。
(アドバタイジングとBLE接続のシーケンス)
図12は、情報処理装置101と通信装置151との間におけるBLE通信を説明するためのシーケンス図である。なおこの処理シーケンスが示す通信装置151の処理は、CPU154が、ROM152又は通信装置151が備えるHDD(不図示)に記憶されている制御プログラムをRAM153にロードし、その制御プログラムを実行することで実現される。また、この処理シーケンスが示す情報処理装置101の処理は、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムをRAM105にロードし、その制御プログラムを実行することで実現される。
以下の説明において、通信装置151は、所定の間隔でアドバタイズ情報を送信するアドバタイザであるものとする。また、情報処理装置101は、周辺にあるアドバタイザから送信されるアドバタイズ情報を待ち受けるスキャナであるものとする。まず、通信装置151内の近距離無線通信部157は、アドバタイズ情報の送信を行う(S1301~S1303)。情報処理装置101は、近距離無線通信部110が近距離無線通信部157から送信されたアドバタイズ情報を受信することで、通信装置151の存在を認識することができる。
情報処理装置101は、通信装置151を認識し、通信装置151と接続することを決定したら、接続要求情報を通信装置151に送信する。具体的には、近距離無線通信部110が、BLEによるネットワーク接続を確立する接続イベントに遷移するための接続要求であるCONNECT_REQを送信する(S1304)。なお、上述したとおり、近距離無線通信部157は、第1アドバタイズ情報と第2アドバタイズ情報(スキャン・レスポンス)とに分けてアドバタイズを実行してもよい。つまり、近距離無線通信部110は、第1アドバタイズ情報に応答してスキャン・リクエストを送信し、第2アドバタイズ情報(スキャン・レスポンス)に応答して接続要求(CONNECT_REQ)を送信してもよい。近距離無線通信部157がCONNECT_REQを受信すると、情報処理装置101及び通信装置151は、接続イベントに遷移する準備をする。具体的には、近距離無線通信部110及び近距離無線通信部157が、それぞれCPU103及びCPU154にGATT通信のための接続処理が完了した旨を通知する。
その後、情報処理装置101及び通信装置151はそれぞれスキャナとアドバタイザから、マスタとスレーブに遷移し、マスタである情報処理装置101とスレーブである通信装置151は、GATT通信のための接続(BLE接続)を確立する。なお、BLE規格では、マスタは、スレーブと「1:多」のスター型のトポロジーを形成することができる。情報処理装置101と通信装置151は、BLE接続を確立したら、以後、GATT通信方式によってデータ通信を行うことができる。
情報処理装置101は、GATT通信により通信装置151のGATTデータにアクセスする前に、通信装置151がどのような構成のGATTデータを有しているかを取得する必要がある。GATTデータの構成とは例えば、GATTデータ内のサービスの数、キャラクタリスティックの数、それぞれのUUIDの値やリードの可否を示す属性等である。GATTデータの構成を情報処理装置101が取得する手段のことをディスカバリと呼ぶ。
そこで情報処理装置101は、S1304でBLE接続が確立された後に、S1305で、ディスカバリを開始する。具体的には情報処理装置101は、通信装置151のGATTデータの構成を示す情報を要求するためのディスカバリ要求を通信装置151へと送信する。これにより、ディスカバリ要求の応答として、通信装置151は、情報処理装置101へGATTデータの構成を示す情報を送信する。GATTデータの構成を示す情報を受信した情報処理装置101は、通信装置151のGATTデータ内の、ハッシュ値が格納されている領域を特定し、ハッシュ値のリードを行う。なおハッシュ値は、図11のCharacteristic UUIDが0x2B2AのDatabase Hashキャラクタリスティックに格納されている値である。通信装置151は、Database Hashキャラクタリスティックの値として、通信装置151があらかじめGATTデータの構成から算出したハッシュ値を格納している。すなわちハッシュ値とは、通信装置151のGATTデータの構成に応じて一意に定められる値である。
なお、情報処理装置101は、過去に情報処理装置101がBLEによって接続したことがある端末からリードしたハッシュ値を、情報処理装置101が備えるメモリ(ROM104等)に格納している。そこでS1306で、情報処理装置101は、S1305でリードしたハッシュ値が、過去にリードしたハッシュ値(情報処理装置101が備えるメモリに格納されているハッシュ値)と一致するものがあるかを比較する。すなわち情報処理装置101は、通信装置151が、過去に情報処理装置101がBLEによって接続したことがある端末か否かを判定する。このとき情報処理装置101は、ハッシュ値だけでなく、通信装置151のMACアドレスなどの個体識別情報等の他の情報を判定条件に加えてもよい。
S1306でNOと判定された場合、情報処理装置101は、通信装置151のGATTデータの残りの構成を把握するために、ディスカバリを継続する。そのためS1307で情報処理装置101は、通信装置151のGATTデータの構成を示す情報を要求するためのディスカバリ要求を通信装置151へと送信する。当該要求を受け付けた通信装置151は、S1308で、情報処理装置101へGATTデータの構成を示す情報を送信する。なお、ディスカバリ要求の送受信及びGATTデータの構成を示す情報の送受信は、GATTデータ内のサービス、キャラクタリスティック、ディスクリプタの数の分だけ繰り返される。そのため、S1309では、GATTデータの構成を示すすべての情報の送信が完了されるまで、ディスカバリ要求の送受信及びGATTデータの構成を示す情報の送受信が繰り返される。
GATTデータの構成を示すすべての情報の送信が完了されると、S1310で、情報処理装置101は、通信装置151のGATTデータの構成をキャッシュとして情報処理装置101が備えるメモリに格納する。このとき情報処理装置101は、通信装置151のGATTデータの構成のキャッシュと通信装置151から得たハッシュ値とを対応付けてメモリへの格納を行う。なお情報処理装置101は、通信装置151のMACアドレスなどの個体識別情報等の他の情報をさらに対応付けてメモリへの格納を行ってもよい。
なお、S1306でYESと判定された場合、情報処理装置101は、通信装置151のGATTデータの構成を既にキャッシュしていることになるため、S1307~S1310までの処理を省略しても良い。
通信装置151のGATTデータの構成を取得することにより、以降、情報処理装置101は、通信装置151との任意のGATT通信を実行することが可能となる。そのため、情報処理装置101は、S1311で、通信装置151との任意のGATT通信を実行する。
GATT通信が完了した後、情報処理装置101は、S1312にて、解放要求を送信する。解放要求を受け取った通信装置151は、S1313にて解放応答を送信し、装置間のBLE接続を終了する。装置間のBLE接続が終了すると、情報処理装置101と通信装置151はそれぞれスキャナとアドバタイザに戻り、通信装置151は、アドバタイズ情報の送信を再開する。
なお、上述の例では、通信装置151がアドバタイザ、情報処理装置101がスキャナの例を記載したが、本実施形態では、逆でも適用可能である。つまり、情報処理装置101がアドバタイザ、通信装置151がスキャナであってもよい。
(BLE通信を介したWi-Fi通信)
ここで、低速な通信であるBLE通信によって、BLEよりも高速な通信であるWi-Fiの接続を行うシーケンスを説明する。図13は、情報処理装置101と通信装置151とが、BLE通信方式によってネットワーク接続を行う場合のシーケンス図である。ここでは、ハンドオーバーによってジョブの送受信を行う場合を例にして説明する。なお、ハンドオーバーとは、通信を行うそれぞれの装置が、まず近距離通信方式(低速通信方式)によって高速通信方式による通信を行うための接続情報をやり取りした後、高速通信方式に切り替えてデータの送受信を行う技術である。
本実施形態では、近距離通信方式としてBLEを、高速通信方式としてWi-Fiを用いている。GATT通信(装置間でBLE接続を確立することによって可能となる双方向通信)の通信速度は、Wi-Fi通信と比較して低速である。そのため、GATT通信では装置間の認証やWi-Fi通信のために必要な接続情報の通信を行い、通信速度の速いWi-Fi通信で容量の多いデータ(ここではジョブ)の転送を行うことで、効率的なデータ転送を図ることができる。なお、ハンドオーバーにおいて利用される通信方式は、上述の形態に限定されず、近距離通信方式及び高速通信方式として種々の通信方式が利用されて良い。例えば、NFC通信やWi-Fi Aware通信にてWi-Fi通信のための接続情報をやり取りし、その後Wi-Fi通信にてデータのやり取りを行うような構成としても良い。
なお、この処理シーケンスが示す通信装置151の処理は、CPU154が、ROM152又は通信装置151が備えるHDD(不図示)に記憶されている制御プログラムをRAM153にロードし、その制御プログラムを実行することで実現される。また、この処理シーケンスが示す情報処理装置101の処理は、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムをRAM105にロードし、その制御プログラムを実行することで実現される。
以下の説明において、通信装置151は、所定の間隔でアドバタイズ情報を送信するアドバタイザであるものとする。また、情報処理装置101は、周辺にあるアドバタイザから送信されるアドバタイズ情報を待ち受けるスキャナであるものとする。
まず、近距離無線通信部157は、アドバタイズ情報の送信を行う(S1001~S1003)。情報処理装置101は、近距離無線通信部110が近距離無線通信部157から送信されたアドバタイズ情報を受信することで、通信装置151の存在を認識することができる。
情報処理装置101は、通信装置151を認識し、通信装置151と接続することを決定したら、接続要求情報を通信装置151に送信する。具体的には、近距離無線通信部110が、BLEによるネットワーク接続を確立する接続イベントに遷移するための要求であるCONNECT_REQを送信する(S1004)。近距離無線通信部157がCONNECT_REQを受信すると、情報処理装置101及び通信装置151は、接続イベントに遷移する準備をする。具体的には、近距離無線通信部110及び近距離無線通信部157が、それぞれCPU103及びCPU154にGATT通信のための接続処理が完了した旨を通知する。その後、情報処理装置101及び通信装置151はそれぞれスキャナとアドバタイザから、マスタとスレーブに遷移し、マスタである情報処理装置101とスレーブである通信装置151は、GATT通信のための接続(BLE接続)を確立する。なお、BLE規格では、マスタは、スレーブと「1:多」のスター型のトポロジーを形成することができる。情報処理装置101と通信装置151は、BLE接続を確立したら、以後、GATT通信方式によってデータ通信を行うことができる。なお、S1001~S1004までの処理は、図12におけるS1301~S1304までの処理と同様である。通信装置151は、BLE接続を確立した場合、アドバタイズを停止しても良いし、送信するアドバタイズ情報の内容を切り替えても良い。具体的には通信装置151は、受信した装置が接続要求を送信可能なアドバタイズ情報(ADV_IND)から、受信した装置が接続要求を送信できないアドバタイズ情報(ADV_SCAN_INDやADV_NONCONN_IND)に切り替えても良い。また、図12では、S1305、S1306を実行した後に、S1307~S1310までの処理を実行し、S1311のGATT通信を実行したが、図13では省略する。
S1005では、近距離無線通信部110は、GATT通信により、近距離無線通信部157に対して、通信装置151が利用可能な通信プロトコルの情報を要求する。この要求には情報処理装置101が利用可能な通信プロトコルの情報が含まれており、近距離無線通信部157は、この要求を受信することで、情報処理装置101がWi-Fi等の通信方式を利用可能であることを認識することができる。
S1006では、近距離無線通信部157は、GATT通信により、S1005で受け取った要求に対して、自身の利用可能な通信プロトコルの情報を応答する。これによって互いの装置は、BLE以外の互いの利用可能な通信プロトコルを把握することができる。
ここで、BLE以外の互いの利用可能な通信プロトコルを把握することにより、装置間の通信をWi-Fi通信に切り替えることが情報処理装置101によって決定されたとする。なお、このとき、通信方式の切り替えを行うか否かは通信装置151が決定しても良い。
通信方式の切り替えが決定された場合、S1007およびS1008にて、それぞれの装置は、通信相手を特定するアドレスの情報やSSIDの情報等の、Wi-Fiで通信を行うために必要な接続情報を交換する。その後S1009にて、近距離無線通信部110は、装置間の通信方式をGATT通信からWi-Fi通信へと切り替える要求(通信切り替え要求)を送信する。近距離無線通信部157は、切り替えの要求を受信すると、S1010にて応答を行う。
切り替えの要求と応答が正しく行われたら、S1011では、情報処理装置101は、通信装置151との通信に利用する通信部を近距離無線通信部110から通信部109へ切り替える。
さらに、S1012では、通信装置151は、情報処理装置101との通信に利用する通信部を近距離無線通信部157から通信部156へ切り替える。切り替えを行った後、S1013にて、近距離無線通信部110は解放要求を送信する。解放要求を受け取った近距離無線通信部157は、S1014にて解放応答を送信し、装置間のBLE接続を終了する。装置間のBLE接続が終了すると、情報処理装置101と通信装置151はそれぞれスキャナとアドバタイザに戻り、近距離無線通信部157は、アドバタイズ情報の送信を再開する。
その後、それぞれの装置は、S1007およびS1008で交換したWi-Fi通信を行うために必要な情報を利用し、Wi-Fi通信を行う。まずS1015では、通信部109は、通信装置151がジョブの取得が可能かどうか通信部156に確認をする。ここでは、例えば、通信装置151に転送しようとする画像データを一時保存するための空き容量の情報などが確認される。通信部156は、確認の要求を受け取った後、S1016にて確認に対する応答を送信する。
正しい応答が得られ、通信装置151がジョブの取得が可能であると判断した場合、S1017にて、通信部156は、ジョブを要求する。その後、ジョブの要求を受けた通信部109は、S1018にて情報処理装置101に存在する画像データ等を含むジョブを通信部156に対して送信する。なお、このとき送信するジョブの選択は、例えば、BLE接続が確立する前やBLE接続が確立した後、Wi-Fi接続が確立した後等のタイミングで行われる。また、送信されるジョブは、印刷ジョブに限らず、例えば、通信装置151にスキャンを指示するためのスキャンジョブや情報処理装置101が通信装置151の状態の情報を取得するためのジョブ等であっても良い。また、例えば通信装置151の設定の変更等、通信装置151に対する各種操作を実行するためのコマンド等であっても良い。また、通信装置151がカメラ等の撮像装置の場合、カメラで撮像した画像データを、Wi-Fi通信により、スマートフォン等の情報処理装置101に送信してもよい。また、通信装置151が音楽再生デバイスの場合、スマートフォン等の情報処理装置101から音データをWi-Fi通信により音楽再生デバイスへ送信してもよい。
情報処理装置101は、ジョブの送信が完了した場合、通信装置151とのWi-Fi接続を切断して、ハンドオーバー直前のネットワーク状態に戻る。具体的には、例えば情報処理装置101は、ハンドオーバーを実行する前に、3GやLTE等の移動体通信網やルーター等のアクセスポイントに接続していた場合は、当該移動体通信網やアクセスポイントへの接続を再度確立する。そのため、情報処理装置101は、ハンドオーバーを実行する前に、ハンドオーバー直前のネットワーク状態の情報及び、当該ネットワーク情報を確立するために必要な接続情報等を保持しておく。
このように、ハンドオーバー技術を用いることで、ユーザビリティの高い通信方式(近距離通信方式)によって、高速通信方式で通信するための接続情報をやり取りし、その後、高速通信方式によって、容量の大きいデータのやり取りを高速で行うことができる。なお、ハンドオーバーによってGATT通信からWi-Fi通信へ通信方式の切り替えが行われた場合、装置間のBLE接続は切断されるため、近距離無線通信部157は、アドバタイズ情報の送信を再開する。
なお、上述の例では、通信装置151がアドバタイザ、情報処理装置101がスキャナの例を記載したが、本実施形態では、逆でも適用可能である。つまり、情報処理装置101がアドバタイザ、通信装置151がスキャナであってもよい。
(相対位置の推定)
次に、Bluetooth5.1の位置検出機能を利用した相対位置情報の推定方法について説明する。以下、詳細に説明する。
図28は、Bluetooth5.1のBLE規格をサポートしている複数のBLEデバイスの相対位置を示し、図28を用いて各BLEデバイスのAngle of Arrival θがカバーする領域を説明する。図28(a)は、複数のBLEデバイスの相対位置の一例を示す図である。
プリンタ1402は、図1の通信装置151の構成を備える。プリンタ1402は、据置型であり、その設置場所としては、例えば、コンビニエンスストア内、オフィス内、自宅の屋内等を想定している。プリンタ1402には、プリンタ1402のメモリ内に設置位置情報、設置高度情報、使用形態があらかじめ登録されているものとする。
スマートフォン1403は、図1の情報処理装置101の構成を備える。時刻T0時点において、スマートフォン1403は、位置P0に存在し、真方位120.8度の方向に移動速度2.5knot(=4.63キロメートル毎時)で移動している。スマートフォンは、GPS受信部を備え、GPS受信部に受け取った情報に基づき自身の現在位置情報を取得可能である。また、スマートフォン1403は、携帯端末(モバイル端末)であるため、位置が変化し得る。
ウェアラブルデバイス1404は、腕時計やゴーグルのように、体に装着して使用する装置である。ウェアラブルデバイス1404は、図1の情報処理装置101と基本的には同様な構成を備えるが、GPS受信部112を備えていない。ウェアラブルデバイス1404は、携帯端末(モバイル端末)であるため、位置が変化し得る。
ATM2801は、現金自動預け払い機であり、図1の通信装置151と同様な構成を備える。ATM2801は、据置型であり、その設置場所としては、例えば、コンビニエンスストア内、ショッピングモール内、駅や空港の屋内、オフィス内等を想定している。ATM2801には、ATM2801のメモリ内に設置位置情報、設置高度情報、使用形態があらかじめ登録されているものとする。
図28において、プリンタ1402とスマートフォン1403とATM2801が、BLEのアドバタイザ(以下、アドバタイザデバイスとも呼ぶ)として機能する。ウェアラブルデバイス1404は、BLEのスキャナ(以下、スキャナデバイスとも呼ぶ)として機能する。Angle of Arrival θ(1405)は、ウェアラブルデバイス1404がプリンタ1402から受信するAoA Radio Signalから算出されるAngle of Arrival θである。Angle of Arrival θ(1406)は、ウェアラブルデバイス1404がスマートフォン1403から受信するAoA Radio Signalから算出されるAngle of Arrival θである。Angle of Arrival θ(2802)は、ウェアラブルデバイス1404がATM2801から受信するAoA Radio Signalから算出されるAngle of Arrival θである。
図28(a)の時刻T0時点において、ウェアラブルデバイス1404の周辺にBLEアドバタイザデバイスが1台だけ(例えば、スマートフォン1403だけ)が存在する、と仮定する。この時、ウェアラブルデバイス1404は、スマートフォン1403のAngle of Arrival θ(1406)、及びアドバタイズパケット(スキャン・レスポンス)の電波強度をもとに、自分の現在の相対位置を推定することができる。以下、詳細に説明する。
図28(a)において、ウェアラブルデバイス1404がスマートフォン1403から受信するアドバタイズ情報に基づいて、ウェアラブルデバイス1404は、式(1)より、Angle of Arrival θ(1406)を求めることができる。つまり、ウェアラブルデバイス1404は、ウェアラブルデバイス1404とスマートフォン1403との角度を推定することができる。さらに、ウェアラブルデバイス1404は、受信したアドバタイズ情報の電波強度を基にウェアラブルデバイス1404とスマートフォン1403との距離を推定することができる。具体的には、スマートフォン1403とウェアラブルデバイス1404との距離は、受信した電波強度を基に、電波強度と距離との関係を示すテーブル(後述の図21参照)を使って推定できる。
よって、推定した角度の方向に、推定した距離だけスマートフォン1403から離れた位置が、ウェアラブルデバイス1404の推定位置となる。つまり、図28(a)において、スマートフォン1403を始点としてAngle of Arrival θ(1406)を形成する破線上で、スマートフォン1403から、推定された距離だけ離れた位置が、ウェアラブルデバイス1404の現在の推定相対位置である。
次に、図28(a)の時刻T0において、ウェアラブルデバイス1404の周辺にBLEアドバタイザデバイスが複数台(例えば、プリンタ1402とスマートフォン1403とATM2801)が存在する、と仮定した場合について説明する。ウェアラブルデバイス1404は、これらのBLEアドバタイザデバイスの中から2つのBLEアドバタイザデバイスを選択する。それら2つのBLEアドバタイザデバイスから得た情報をもとに、自分の現在の相対位置を算出して推定することができる。
図28(a)において、ウェアラブルデバイス1404が、プリンタ1402とスマートフォン1403の2つのBLEアドバタイザデバイスを選択した場合の例を次に示す。この場合、プリンタ1402を始点としてAngle of Arrival θ(1405)を形成する破線と、スマートフォン1403を始点としてAngle of Arrival θ(1406)を形成する破線の交点(図26(a)の領域2603)が、算出されたウェアラブルデバイス1404の現在の推定相対位置である。なお、ウェアラブルデバイス1404は、プリンタ1402、スマートフォン1403それぞれとの距離を、プリンタ1402、スマートフォン1403のそれぞれから送信されるアドバタイズパケットの電波強度をもとに図21に示すテーブルを使って推定できる。なお、上記では、プリンタ1402とスマートフォン1403が選択されたが、ATM2801が選択された場合も同様にウェアラブルデバイス1404とATM2801との相対位置を推定することができる。具体的には、ウェアラブルデバイス1404は、Angle of Arrival θ2802と、ATM2801から送信されるアドバタイズパケットの電波強度をもとに図21に示すテーブルを使って、ATM2801との相対位置を推定することができる。
(電波強度と距離のテーブル)
ここで、ウェアラブルデバイス1404が、BLEアドバタイザデバイスとの距離を求めるために用いるテーブルについて説明する。図21は、電波強度、電波強度レベル、推定距離のテーブルの例を示す図である。図21において、「電波強度」(単位:dBm)は、ウェアラブルデバイス1404がプリンタ1402、スマートフォン1403等のBLEアドバタイザデバイスから受信したアドバタイズ情報の電波の強度である。「電波強度レベル」は、前記電波強度をその強さの範囲で5段階のレベルに定義したものであり、本例では電波強度の弱い順に1(最弱)、2、3、4、5(最強)と定義している。「推定距離」は、各電波強度レベルにおけるウェアラブルデバイス1404と電波を発信しているBLEアドバタイザデバイスの推定距離を示す。なお、図28の説明では、この図21を用いて電波強度から距離を推定したが、本実施形態はこれに限定されない。例えば、受信するアドバタイズ情報のペイロード中に送信電力(Tx Power905)が含まれる場合、ウェアラブルデバイス1404は、このTx Powerの値を用いてもよい。つまり、Tx Powerの値と、受信したアドバタイズ情報の電波強度と、を基に伝搬損失を求めることができ、BLEアドバタイザデバイスとの距離の推定が行える。
(BLEアドバタイザデバイスの選択方法)
前記複数(3つ)のBLEアドバタイザデバイスの中から2つのBLEアドバタイザデバイスを選択する方法を次に示す。ウェアラブルデバイス1404は、各BLEアドバタイザデバイスのアドバタイズパケット(スキャン・レスポンス)の電波強度を図21に示すテーブルを使って電波強度レベルに変換する。
ウェアラブルデバイス1404は、電波強度レベルが5のBLEアドバタイザデバイスが存在する場合、そのBLEアドバタイザデバイスを選択する。
ウェアラブルデバイス1404は、3つのBLEアドバタイザデバイスの電波強度レベルが全て5の場合(ケース1)、使用形態が「据置」であるものを優先して選択する。ケース1の場合、ウェアラブルデバイス1404は、使用形態が「据置」のBLEアドバタイズデバイスであるプリンタ1402とATM2801を選択する。
ウェアラブルデバイス1404は、BLEアドバタイザデバイスの電波強度レベルが4以下の場合(ケース2)、使用形態が「据置」のBLEデバイスを優先して選択する。ケース2の場合、例えば、プリンタ1402の電波強度レベルが2、スマートフォン1403の電波強度レベルが4、ATM2801の電波強度レベルが3の場合、ウェアラブルデバイス1404は、プリンタ1402とATM2801を選択する。
ウェアラブルデバイス1404は、使用形態が「据置」の複数のBLEアドバタイザデバイスが存在する場合(ケース3)、電波強度レベルが高い(値が大きい)BLEデバイスを優先して選択する。例えば、スマートフォン1403の電波強度レベルが5、プリンタ1402の電波強度レベルが3、ATM2801の電波強度レベルが4の場合、ウェアラブルデバイス1404は、スマートフォン1403とATM2801を選択する。また、例えば、スマートフォン1403の電波強度レベルが5、プリンタ1402とATM2801の電波強度レベルがどちらも4の場合、ウェアラブルデバイス1404は、スマートフォン1403と、プリンタ1402乃至ATM2801の何れかを選択する。
このように、本実施形態では、ウェアラブルデバイス1404が、周辺の複数のBLEアドバタイザデバイスから自分の現在の相対位置を算出して推定する場合、電波強度と使用形態とを基に、相対位置推定に用いるアドバタイザデバイスを決定する。
特に、本実施形態では、BLEアドバタイザデバイスのうち、「据置」の使用形態のデバイスを優先して使用する。これは、スマートフォン1403のようなモバイルでの使用が想定されるBLEアドバタイザデバイスが含まれている場合、そのBLEアドバタイザデバイスが移動すると相対位置の推定精度が低下するためである。つまり、BLEアドバタイザデバイスが移動することによる計算誤差の為、算出されるウェアラブルデバイス1404の現在の相対位置の精度が落ちる。よって、「据置」の使用形態のBLEアドバタイザデバイスからのアドバタイズ情報を優先して用いることにより、精度よくウェアラブルデバイス1404の相対位置を求めることが可能となる。なお、使用形態の情報は、BLEアドバタイザデバイスからのアドバタイズ情報に含まれるものとする。
また、本実施形態では、BLEアドバタイザデバイスのうち、電波強度レベルが大きいデバイスを優先して使用する。これは、BLEアドバタイザデバイスのアドバタイズパケット(スキャン・レスポンス)の電波強度、すなわち、電波強度レベルが低い場合、ウェアラブルデバイス1404とBLEアドバタイザデバイスの推定距離の誤差が大きくなる。つまり、算出されるウェアラブルデバイス1404の現在の相対位置の精度が落ちる。
よって、これらのケースにおいて、ウェアラブルデバイス1404は、使用形態が「据置」のBLEアドバタイザデバイスと、電波強度レベルが高い(値が大きい)BLEアドバタイザデバイスとを優先して選択する。これにより、ウェアラブルデバイス1404の現在の相対位置の精度を高めることができる。なお、上述の例では、「据置」のBLEアドバタイザデバイスと電波強度レベルが高いBLEアドバタイザデバイスを優先したが、本実施形態はこれに限定されない。電波強度よりも「据置」であることをより優先してもよい。また、電波強度は考慮せずに、「据置」であることのみに基づきBLEアドバタイザデバイスを選択してもよい。
また、図21に示す通り、電波強度は、BLEデバイスからの距離が遠くになるにつれて推定距離の精度が下がる。一方、Angle of Arrival θは、BLEアドバタイザデバイスからの距離が遠くになるにつれて誤差が大きくなるものの、電波強度と比較した場合、同じ距離における誤差が小さく精度は電波強度よりも高いと考えられている。よって、このようなケースにおいては、周辺に存在するBLEアドバタイザデバイスデバイスが1台だけの時よりも複数台存在する時の方が、ウェアラブルデバイス1404の現在の相対位置を高い精度で算出して推定することができる。よって、複数のBLEアドバタイザデバイスからのアドバタイズ情報を用いて相対位置を推定することが好ましい。
図28(b)は、BLEデバイスのAngle of Arrival θがカバーする領域の一例を示す図である。図28(b)において、Angle of Arrival θ領域2601は、ウェアラブルデバイス1404がプリンタ1402から受信するAoA Radio Signalから算出されるAngle of Arrival θがカバーする領域である。Angle of Arrival θ領域2602は、ウェアラブルデバイス1404がスマートフォン1403から受信するAoA Radio Signalから算出されるAngle of Arrival θがカバーする領域である。Angle of Arrival θ領域2803は、ウェアラブルデバイス1404がATM2801から受信するAoA Radio Signalから算出されるAngle of Arrival θがカバーする領域である。
ウェアラブルデバイス1404は、図1に示す近距離無線通信部110を備え、この近距離無線通信部110は、図6に示す3つのアンテナ601、602、603を備える。これらのアンテナで受信されたAoA Radio Signalから算出された前記Angle of Arrival θは、プリンタ1402、スマートフォン1403、ATM2801からの距離が遠くなるにつれて誤差が大きくなる。つまり、Angle of Arrival θ領域2601、2602、2803のような領域をカバーする。領域2804は、Angle of Arrival θ領域2601とAngle of Arrival θ領域2602とAngle of Arrival θ領域2803でカバーされる領域であり、ウェアラブルデバイス1404は、領域2804内に存在すると算出することができる。
ここで、複数のBLEアドバタイザデバイスからのアドバタイズ情報を用いることが好ましい理由についてより詳細に説明する。図26は、BLEアドバタイザデバイスが送信するアドバタイズ情報のAngle of Arrival θがカバーする領域の一例を示す図である。図26において、プリンタ1402、スマートフォン1403、ウェアラブルデバイス1404は、図14に示すそれぞれのものと同一である。図26(a)において、Angle of Arrival θ領域2601は、ウェアラブルデバイス1404がプリンタ1402から受信するアドバタイズ情報のAoA Radio Signalから算出されるAngle of Arrival θがカバーする領域である。Angle of Arrival θ領域2602は、ウェアラブルデバイス1404がスマートフォン1403から受信するアドバタイズ情報のAoA Radio Signalから算出されるAngle of Arrival θがカバーする領域である。ウェアラブルデバイス1404は、図1に示す近距離無線通信部110を備え、この近距離無線通信部110は、図6に示す3つのアンテナ601、602、603を備えるものとする。これらのアンテナで受信されたAoA Radio Signalから算出された前記Angle of Arrival θは、プリンタ1402やスマートフォン1403からの距離が遠くなるにつれて誤差が大きくなる。つまり、Angle of Arrival θ領域2601や領域2602のような領域をカバーする。領域2603は、Angle of Arrival θ領域2601とAngle of Arrival θ領域2602の両方でカバーされる領域であり、ウェアラブルデバイス1404は、領域2603内に存在すると算出することができる。
図26(b)において、Angle of Arrival θ領域2605は、ウェアラブルデバイス1404がスマートフォン1403から受信するAoA Radio Signalから算出されるAngle of Arrival θがカバーする領域である。ウェアラブルデバイス1404は、図1に示す近距離無線通信部110を備え、この近距離無線通信部110は、図6に示す3つのアンテナ601、602、603を備えるものとする。これらのアンテナで受信されたAoA Radio Signalから算出された前記Angle of Arrival θは、スマートフォン2604からの距離が遠くなるにつれて誤差が大きくなる。つまり、Angle of Arrival θ領域2605のような領域をカバーする。領域2606は、Angle of Arrival θ領域2601、Angle of Arrival θ領域2602、Angle of Arrival θ領域2605の全てでカバーされる領域であり、ウェアラブルデバイス1404は、領域2606内に存在すると算出することができる。
図26(b)のケースは、プリンタ1402、スマートフォン1403からのAoA Radio Signalから算出されるAngle of Arrival θ領域2601、2602に加えて、スマートフォン2604からのAoA Radio Signalから算出されるAngle of Arrival θ領域2605も利用する。そして、領域2601、2602、2605の全てでカバーされる領域2606を算出するので、図26(a)のケースよりも図26(b)のケースの方が、ウェアラブルデバイス1404の現在位置を高い精度で算出して推定することができる。なお、図26(b)では、プリンタ1402、スマートフォン1403、スマートフォン2604の3つのBLEアドバタイザデバイスと、ウェアラブルデバイス1404のBLEスキャナデバイスで構成される例を示した。しかしながら、この例に限られない。BLEアドバタイザデバイスの数が多い方が、ウェアラブルデバイス1404の現在位置を高い精度で算出して推定することができる。
(設置情報の登録)
ここで、プリンタ1402のようなBLEアドバタイザデバイスに、あらかじめ設置位置、設置高度、使用形態を登録する登録処理について説明する。図19は、設置情報登録画面の一例を示す図である。図19において、設置情報登録画面1901は、プリンタ1402又はATM2801等の通信装置151の設置位置、設置高度、使用形態を登録する画面であり、通信装置151の表示部158に表示される。
設置位置登録部1902は、ユーザが通信装置151の設置位置をDEG形式で登録することができる機能を備え、登録時の設置位置の単位は「度」である。設置高度登録部1903には、ユーザが通信装置151の設置高度を登録することができる。登録時の設置高度の単位は「メートル」である。使用形態登録部1904には、ユーザが通信装置151の使用形態を「据置」、「モバイル」、「自動」から選択して登録することができる。「据置」は、プリンタやATMのように据置型のBLEデバイスを想定した選択肢である。「モバイル」は、スマートフォンやウェアラブルデバイスのように携帯端末としてモバイルでの使用を想定した選択肢である。「自動」は、ノートPCのように、ある特定の場所に設置して据置型として利用したり、携帯端末としてモバイルで使用したりすることを想定した選択肢である。例えば、ノートPCにおいて、使用形態登録部1904で「自動」が選択されて登録されている場合、ノートPCは、ある一定時間移動していないことを検出すると据置型BLEデバイスとしてふるまう。また、持ち運ばれながら使用されていることを検出するとモバイルBLEデバイスとしてふるまう、というような制御を行う。
ユーザは、表示部158のソフトキーボード機能とタッチパネルを利用して、設置位置登録部1902と設置高度登録部1903と使用形態登録部1904から通信装置151の設置位置と設置高度と使用形態を登録することができる。設置位置情報と設置高度情報と使用形態は、RAM153に保存される。図19では、通信装置151の例としてプリンタ1402が、位置35.51度(北緯35度30.600分)、高度633メートルに、使用形態「据置」で設置されている例を示す。
設置情報登録画面1901は、プリンタやATM等の通信装置151の設置位置、設置高度、使用形態を登録する画面の例として説明したが、この例に限られない。例えば、スマートフォンやノートPC等の情報処理装置101の設置位置、設置高度、使用形態を登録する画面としても同様なものを適用することができる。
(位置案内の表示)
次に、ウェアラブルデバイス1404の相対位置を表示する表示例について説明する。図32は、ウェアラブルデバイス1404を利用したBLEデバイスの相対位置を表示するアプリケーションの例を示す図である。図32において、プリンタ1402、スマートフォン1403、ウェアラブルデバイス1404、ATM2801は、図28に示すそれぞれと同一である。図32は、ウェアラブルデバイス1404が腕時計(スマートウォッチ)の場合の表示例を示す。アプリケーション3201は、ウェアラブルデバイス(腕時計)またはそれを装着しているユーザと、周辺のBLEアドバタイザデバイスとの現在の相対位置を表示するアプリケーションである。図32に示す通り、ウェアラブルデバイス1404と、その周辺のBLEアドバタイザデバイスであるプリンタ1402、スマートフォン1403、ATM2801の現在の相対位置関係がアプリケーション3201により表示される。
(アドバタイズ情報に含められる情報)
次に、BLEアドバタイザデバイスのアドバタイズ情報に含められる情報について説明する。図22は、アドバタイズ情報(スキャン・レスポンス)にセットする情報の例を示す図である。なお、図22の情報は、図5において説明したアドバタイズ情報のペイロード902内に格納される。なお、ペイロード902内には、図22に示す情報以外にも、識別情報、搭載プロファイル情報、送信電力(Tx Power)等の情報も格納される。
図22において、「名称」は各情報の名称、「記号」はアドバタイズ情報(スキャン・レスポンス)にセットされる各情報を示す記号、「値」は各情報の値、「単位(説明)」は、各情報の単位と説明である。「位置」は、GPSで取得する現在位置又は登録されている設置位置を示す。「高度」は、GPSで取得する現在高度又は登録されている設置高度を示す。「移動速度」と「真方位」は、現在の移動速度と真方位、「使用形態」は現在の使用形態の情報をそれぞれ示す。図22では、「位置」の例として北緯35度30.600分をDEG形式の10進表記で表した35.51度、「高度」の例として333メートル、「移動速度」と「真方位」の例としてそれぞれ2.5knot、120.8度を示す。また、「使用形態」の例としてfixedの状態を示している。「使用形態」の値は、「据置」を表す「fixed」、「モバイル」を表す「mobile」、「自動」を表す「auto」の3種類が用意されている。「位置」を表す型式としてDEG形式の10進表記を採用することで、情報量(文字数)を少なくすることができ、アドバタイズパケット(スキャン・レスポンス)のデータ量を減らすことで、BLEデバイスを省電力化することができる。アドバタイズパケット(スキャン・レスポンス)には、図23、図25、図29で示すように「記号」と「値」が格納される。
尚、図22に示す「記号」は、後述する第3実施形態におけるスキャン・リクエストのオプションとしても利用される。ウェアラブルデバイス1404等のBLEのスキャナデバイスは、受信したアドバタイズ情報(スキャン・レスポンス)から、図22に示す情報を取得することができる。なお、スマートフォンやノートPC等のモバイル端末の場合、「使用形態」は格納されていなくてもよい。つまり、使用形態の情報が入っていないことによって、後述の図31における使用形態の判定において「モバイル」であると判定されてもよい。
(スキャン・リクエストとスキャン・レスポンス)
次に、スキャン・リクエストとスキャン・レスポンスの内容について説明する。図29は、スキャン・リクエストとスキャン・レスポンスの例を示す図である。BLEのアドバタイザデバイスがアドバタイズパケット(例:ADV_IND)を送信し、BLEのスキャナデバイスが前記アドバタイズパケットを受信した場合、BLEスキャナデバイスはスキャン・リクエストを送信する。具体的には、BLEスキャナデバイスは、受信したアドバタイズパケットのペイロードだけでは情報が不足している場合、前記スキャナデバイスはスキャン・リクエストを前記アドバタイザデバイスに送信する。前記アドバタイザデバイスは、前記スキャン・リクエストを受信したら、それに対してスキャン・レスポンスを前記スキャナデバイスに送信する。なお、以下では、このようなスキャン・レスポンスも含めてアドバタイズパケット(もしくはアドバタイズ情報)と略して説明する場合もある。
図29(a)は、スキャン・リクエストの例であり、SCAN_REQは、Bluetooth5.1のBLEの規格として規定されているスキャン・リクエストである。図29(b)は、スキャン・レスポンスの例であり、前記スキャン・リクエストに対するスキャン・レスポンスとして、図22の「使用形態」をウェアラブルデバイス1404に返信する例を示す。図29(c)は、スキャン・レスポンスの例であり、前記スキャン・リクエストに対するスキャン・レスポンスとして、図22の「位置」、「高度」、「移動速度」と「真方位」、「使用形態」をウェアラブルデバイス1404に返信する例を示す。図29(b)、図29(c)において、SCAN_RSPは、Bluetooth5.1のBLEの規格として規定されているスキャン・レスポンスであり、その後に各情報が記述される。各情報はカンマ「,」で区切られ、「記号」と値はコロン「:」で区切られるように定義している。
なお、以下では、スキャン・レスポンスとして、図22の「使用形態」を含むアドバタイズ情報をウェアラブルデバイス1404に送信する例を示す。図29(c)を利用するケースに関しては、第2実施形態で説明する。
また、上述の例では、スキャン・レスポンスとしてのアドバタイズ情報の中に、BLEアドバタイザデバイスが図22の情報を格納する例であるが、本実施形態はこれに限定されない。例えば、BLEスキャナデバイスからスキャン・リクエストが送信される前にBLEアドバタイザデバイスが送信しているアドバタイズ情報の中に図22の情報を格納してもよい。
(BLEアドバタイザデバイスの処理フロー)
図30は、BLEのアドバタイザデバイスがアドバタイズパケット(スキャン・レスポンス)を送信する処理の一例を示すフローチャートである。図30のフローチャートに係るプログラムは、例えば、ROM104/152に記憶されており、RAM105/153に読み出され、CPU103/154により実行される。図30は、プリンタ1402が、BLEのアドバタイザデバイスとして、アドバタイズパケット(スキャン・レスポンス)を送信する処理の一例を示すフローチャートである。
S3001において、プリンタ1402が、BLEスキャナデバイスであるウェアラブルデバイス1404から送信された図29(a)に示すスキャン・リクエストを受信することにより、処理を開始する。
S3002において、プリンタ1402は、使用形態登録部1904で登録されてRAM153に保存されている使用形態情報を取得する。
S3003において、プリンタ1402は、前記使用形態情報をアドバタイズパケット(スキャン・レスポンス)にセット(格納)する。
S3004において、プリンタ1402は、ウェアラブルデバイス1404等のBLEスキャナデバイスにアドバタイズパケット(スキャン・レスポンス)を送信する。
S3005において、プリンタ1402は、アドバタイズパケット(スキャン・レスポンス)を全て送信した後、アドバタイズパケット(スキャン・レスポンス)の送信処理を終了する。
以上の処理により、BLEアドバタイザデバイスは、BLEアドバタイザデバイスの使用形態情報を送信する。なお、図30のフローチャートに関連するBLE通信のシーケンスを含む説明に関しては、図13のシーケンス図で示したとおりである。また、ウェアラブルデバイス1404は図13に示す情報処理装置101、プリンタ1402は図13に示す通信装置151にそれぞれ該当する。このように、プリンタ1402から送信されたアドバタイズパケット(スキャン・レスポンス)は、ウェアラブルデバイス1404により受信される。また、図30のフローでは、図22の情報のうち、「使用形態」情報のみがアドバタイズパケットに含まれる例を説明した。しかしながら、本実施形態はこれに限定されない。図22の情報のうち、使用形態以外の情報が含まれていてもよい。
(BLEスキャナデバイスの処理フロー)
次に、BLEスキャナデバイスの処理フローを説明する。図31は、BLEのスキャナデバイスが、自身の相対位置を求め、アプリケーション上に現在の相対位置を表示する処理の一例を示すフローチャートである。図31のフローチャートに係るプログラムは、例えば、ROM104に記憶されており、RAM105に読み出され、CPU103により実行される。
S3101において、BLEのスキャナデバイスであるウェアラブルデバイス1404が、スマートフォン1403、プリンタ1402、ATM2801等のBLEアドバタイザデバイスからのアドバタイズパケット(スキャン・レスポンス)を受信することにより、処理を開始する。
S3102において、ウェアラブルデバイス1404は、受信したアドバタイズパケット(スキャン・レスポンス)の情報から周辺に存在するBLEアドバタイザデバイスの数を確認する。
S3103において、ウェアラブルデバイス1404は、周辺に存在するBLEアドバタイザデバイスの数が0台と判定した場合S3115へ進み、0台ではない(1台以上)と判定した場合S3104へ進む。
S3104において、ウェアラブルデバイス1404は、周辺に存在するBLEアドバタイザデバイスの数が1台と判定した場合S3105へ進み、1台より多い(2台以上)と判定した場合S3109へ進む。
S3105において、ウェアラブルデバイス1404は、アドバタイズパケット(スキャン・レスポンス)を取得する。
S3106において、ウェアラブルデバイス1404は、BLEアドバタイザデバイスが送信するアドバタイズパケット(スキャン・レスポンス)のAoA Radio Signalから、図7に示すAngle of Arrival θ702を算出する。そして、前記BLEアドバタイザデバイスの方向情報(角度に関する情報)を取得する。
S3107において、ウェアラブルデバイス1404は、近距離無線通信部110で受信したアドバタイズパケット(スキャン・レスポンス)の電波強度を取得する。
S3108において、ウェアラブルデバイス1404は、前記方向情報、前記電波強度をもとに、図28(a)の説明の通り、ウェアラブルデバイス1404の現在の相対位置を算出し、S3114へ進む。
S3109において、ウェアラブルデバイス1404は、前記複数のBLEアドバタイザデバイスのアドバタイズパケット(スキャン・レスポンス)を取得する。
S3110において、ウェアラブルデバイス1404は、周辺に存在する複数のBLEアドバタイザデバイスの使用形態情報とアドバタイズパケット(スキャン・レスポンス)の電波強度とを比較する。そして、2つのBLEアドバタイザデバイスを選択する。ウェアラブルデバイス1404が、周辺に存在する複数のBLEアドバタイザデバイスの中から2つのBLEアドバタイザデバイスを選択する方法は、図28(a)に示す方法の例を利用する。ここでは、仮に3つのBLEアドバタイザデバイスの電波強度レベルが全て5(ケース1)であるものとする。よって、ウェアラブルデバイス1404は、使用形態が「据置」のBLEアドバタイズデバイスであるプリンタ1402とATM2801を選択する。つまり、受信電波強度レベルが同じアドバタイズ情報のうち、アドバタイズ情報に含まれる使用形態の情報として「据置」を示す情報が含まれている装置を優先する。
S3111において、ウェアラブルデバイス1404は、選択された2つのBLEアドバタイザデバイスが送信するアドバタイズパケット(スキャン・レスポンス)のAoA Radio Signalから、図7に示すAngle of Arrival θ(702)を算出する。そして、前記2つのBLEアドバタイザデバイスの方向情報(角度に関する情報)をそれぞれ取得する。
S3112において、ウェアラブルデバイス1404は、近距離無線通信部110で受信した、前記2つのBLEアドバタイザデバイスのアドバタイズパケット(スキャン・レスポンス)の電波強度を取得する。
S3113において、ウェアラブルデバイス1404は、前記2つのBLEアドバタイザデバイスの方向情報、電波強度をもとに、図28(a)、図26(a)の説明の通り、自分と各BLEアドバタイザデバイスの現在の相対位置を算出する。
S3114において、ウェアラブルデバイス1404は、アプリケーション3201の画面上に自分と各BLEアドバタイザデバイスの現在の相対位置を表示する。そして、S3115へ進み、処理を終了する。
なお、上記例では、S3109~S3113において、ウェアラブルデバイス1404が、周辺に存在する複数のBLEアドバタイザデバイスのアドバタイズパケットの電波強度と使用形態に基づき、2つのBLEアドバタイザデバイスを選択した。そして選択された2つのBLEアドバタイザデバイスの方向情報、電波強度をもとに、図28(a)、図26(a)の説明の通り現在位置を算出した。しかしながら、本実施形態はこれに限定されない。例えば、図26(b)に示すように、ウェアラブルデバイス1404の周辺に3つ以上のBLEアドバタイザデバイスが存在する場合、これら3つを利用してウェアラブルデバイス1404の現在位置を算出して、精度を高くしてもよい。但し、BLEアドバタイザデバイスの数が多くなると、ウェアラブルデバイスの処理負荷が増えるので、ウェアラブルデバイスの性能に合わせて適切に設計することが重要である。
以上のフローにより、BLEスキャナデバイスは、BLEアドバタイザデバイスから送信されるアドバタイズ情報を基に、相対位置を取得することが可能となる。また、BLEアドバタイザデバイスからのアドバタイズ情報に含まれる使用形態の情報に基づき、「据置」のデバイスからのアドバタイズ情報を優先して用いて相対位置を求める。これにより、より正確にBLEスキャナデバイスの相対位置が求められる。
<第2実施形態>
次に、第2実施形態について説明する。第1実施形態では、ウェアラブルデバイス1404、プリンタ1402、スマートフォン1403、ATM2801の各デバイス同士の相対位置を求めた。そして相対位置関係が認識できるようアプリケーション3201上に表示する例を説明した。第2実施形態では、BLEアドバタイザデバイスは、アドバタイズ情報の中にBLEアドバタイザデバイス自身の絶対位置の情報を含めて送信する。そして、BLEスキャナデバイスは、受信したアドバタイズ情報の中に含まれるBLEアドバタイザデバイスの絶対位置の情報に基づき、BLEスキャナデバイスの絶対位置の情報を求める。これにより、アプリケーション3201は、地図を利用した経路案内等の位置案内機能を実現することができる。第2実施形態では、このような絶対位置の情報を取り入れる仕組みと、この仕組みを利用して経路案内等の機能を備えるアプリケーションの例を説明する。
図14は、Bluetooth5.1のBLE規格をサポートしている装置と、GPS衛星の一例を示す図である。図14(a)において、GPS衛星1401は、グローバル・ポジショニング・システム(Global Positioning System(GPSと略す))の一部を構成するGPS衛星である。実際には複数のGPS衛星が上空で稼働しているが、図14(a)ではそれらの内の1つを記載している。
GPS受信部を備える処理装置であるスマートフォン1403は、上空にある数個のGPS衛星からの信号をGPS受信部で受け取り、スマートフォン1403の現在位置を知ることができる。スマートフォン1403は、図1の情報処理装置101の構成を備える。
プリンタ1402は、図1の通信装置151の構成を備える。プリンタ1402は、据置型であり、その設置場所としては、例えば、コンビニエンスストア内、オフィス内、自宅の屋内等を想定している。また、プリンタ1402は、GPS受信部は備えていないが、プリンタ1402のメモリ内に設置位置情報、設置高度情報、現在の使用形態があらかじめ登録されているものとする。
ウェアラブルデバイス1404は、腕時計やゴーグルのように、体に装着して使用する装置である。ウェアラブルデバイス1404は、図1の情報処理装置101と基本的には同様な構成を備えるが、GPS受信部112を備えていない。
本実施形態では、プリンタ1402とスマートフォン1403がBLEのアドバタイザ(以下、アドバタイザデバイスとも呼ぶ)、ウェアラブルデバイス1404がBLEのスキャナ(以下、スキャナデバイスとも呼ぶ)として機能する例を示す。
図14(a)では、時刻T0時点において、スマートフォン1403は、位置P0に存在し、真方位120.8度の方向に移動速度2.5knot(=4.63キロメートル毎時)で移動している。また、スマートフォン1403は、GPS衛星1401からの信号を内蔵するGPS受信部112で受け取り、スマートフォン1403の現在位置を知ることができる。スマートフォン1403、ウェアラブルデバイス1404は、携帯端末としてモバイルでの使用を想定している。
Angle of Arrival θ(符号1405)は、ウェアラブルデバイス1404がプリンタ1402から受信するAoA Radio Signalから算出されるAngle of Arrival θである。Angle of Arrival θ(符号1406)は、ウェアラブルデバイス1404がスマートフォン1403から受信するAoA Radio Signalから算出されるAngle of Arrival θである。
図14(a)の時刻T0時点において、ウェアラブルデバイス1404の周辺にBLEアドバタイザデバイスが1台だけ(例えば、スマートフォン1403だけ)が存在する、と仮定した場合について説明する。この時、ウェアラブルデバイス1404は、スマートフォン1403の現在位置情報、現在高度情報、Angle of Arrival θ(1406)、及びアドバタイズ情報(スキャン・レスポンス)の電波強度をもとに、自分の現在位置を推定することができる。なお、現在位置情報は、現在の緯度、経度、北緯/南緯の情報、東経/西経の情報の少なくともいずれかに関する位置情報であり、現在高度情報は、現在の高度(海抜)に関する高度情報である。
図14(a)において、ウェアラブルデバイス1404がスマートフォン1403から受信するアドバタイズ情報に基づいて、ウェアラブルデバイス1404は、式(1)より、Angle of Arrival θ(1406)を求めることができる。つまり、ウェアラブルデバイス1404は、ウェアラブルデバイス1404とスマートフォン1403との角度を推定することができる。さらに、ウェアラブルデバイス1404は、受信したアドバタイズ情報の電波強度を基にウェアラブルデバイス1404とスマートフォン1403との距離を推定することができる。具体的には、スマートフォン1403とウェアラブルデバイス1404との距離は、受信した電波強度を基に、電波強度と距離との関係を示すテーブル(図21参照)を使って推定できる。
よって、推定した角度の方向に、推定した距離だけスマートフォン1403から離れた位置が、ウェアラブルデバイス1404の推定現在位置となる。つまり、図14(a)において、スマートフォン1403を始点としてθ(1406)を形成する破線上で、スマートフォン1403の位置から、推定された距離だけ離れた位置がウェアラブルデバイス1404の推定現在位置である。
尚、高度は、スマートフォン1403の現在高度情報をもとに推定することができる。典型的には、スマートフォン1403とウェアラブルデバイス1404と同じ高度情報とすることができる。
このように、ウェアラブルデバイス1404は、周囲の装置(BLEアドバタイザデバイス)からのアドバタイズ情報に含まれるその装置の位置情報を基に、ウェアラブルデバイス1404の絶対位置情報を求めることができる。
次に、図14(a)の時刻T0において、ウェアラブルデバイス1404の周辺にBLEアドバタイザデバイスが複数台(例えば、プリンタ1402とスマートフォン1403)が存在する、と仮定した場合について説明する。この時、ウェアラブルデバイス1404は、プリンタ1402の設置位置情報及び設置高度情報、Angle of Arrival θ(1405)、スマートフォン1403の現在位置情報及び現在高度情報、Angle of Arrival θ(1406)をもとに、自分の現在位置を推定することができる。なお、プリンタ1402にはプリンタ1402の設置位置情報と設置高度情報があらかじめ登録されているものとする。登録処理の詳細は図19を用いて説明した処理により実行される。
図14(a)において、ウェアラブルデバイス1404がプリンタ1402から受信するアドバタイズ情報に基づいて、ウェアラブルデバイス1404は、式(1)より、Angle of Arrival θ(1405)を求めることができる。さらに、ウェアラブルデバイス1404がスマートフォン1403から受信するアドバタイズ情報に基づいて、ウェアラブルデバイス1404は、式(1)より、Angle of Arrival θ(1406)を求めることができる。つまり、ウェアラブルデバイス1404は、ウェアラブルデバイス1404とプリンタ1402との角度と、ウェアラブルデバイス1404とスマートフォン1403との角度を推定することができる。
さらに、ウェアラブルデバイス1404は、プリンタ1402から受信したアドバタイズ情報の電波強度を基にウェアラブルデバイス1404とプリンタ1402との距離を推定することができる。ウェアラブルデバイス1404は、スマートフォン1403から受信したアドバタイズ情報の電波強度と図21のテーブルとを基にウェアラブルデバイス1404とスマートフォン1403との距離を推定することができる。
よって、プリンタ1402を始点としてAngle of Arrival θ(1405)を形成する破線と、スマートフォン1403を始点としてAngle of Arrival θ(1406)を形成する破線の交点(図26(a)の領域2603)が、ウェアラブルデバイス1404の推定現在位置である。尚、高度は前記設置高度情報をもとに推定することができる。
このように、ウェアラブルデバイス1404は、周囲の複数の装置(BLEアドバタイザデバイス)からのアドバタイズ情報を用いることにより、より正確な絶対位置情報を求めることができるため好ましい。特に、電波強度は、BLEスキャナデバイスに対するBLEアドバタイザデバイスの距離が遠くになるにつれて推定距離の精度が下がる。Angle of Arrival θは、BLEアドバイザデバイスからの距離が遠くになるにつれて誤差が大きくなるものの、電波強度と比較した場合、同じ距離における誤差が小さく精度は電波強度よりも高いと考えられている。このようなケースにおいては、周辺に存在するBLEアドバタイザデバイスが1台だけの時よりも複数台存在する時の方が、ウェアラブルデバイス1404の現在位置を高い精度で算出して推定することができる。
以上が本実施形態の位置検出方法の基本的な概念である。しかしながら、ウェアラブルデバイス1403とスマートフォン1402との相対位置関係は変化し得る。図14(b)を用いて、スマートフォン1402が移動している場合について説明する。
図14(b)は、時刻T1時点における装置同士の位置関係を示す。図14(b)において、スマートフォン1403付近の点線の矩形は、図14(a)に示す時刻T0時点におけるスマートフォン1403の位置を表す。スマートフォン1403付近の実線の矩形は、時刻T1時点におけるスマートフォン1403の位置を表す。時刻T1において、スマートフォン1403は、位置P1に存在し、真方位120.8度の方向に移動速度2.5knot(=4.63キロメートル毎時)で移動している。Angle of Arrival θ(1407)は、ウェアラブルデバイス1404がスマートフォン1403から受信するAoA Radio Signalから算出されるAngle of Arrival θである。
ここで、スマートフォン1403がGPS受信部112からスマートフォン1403の現在位置情報を取得してから、ウェアラブルデバイス1404にアドバタイズ情報(スキャン・レスポンス)を送信するまでには、処理時間を要することが考えられる。例えば、T0時点においてウェアラブルデバイス1404は静止していて、時刻T0にスマートフォン1403は現在位置情報を取得し、時刻T1にスマートフォン1403はアドバタイズ情報を送信したと仮定する。時刻T1は時刻T0の1秒後とすると、前記処理時間は1秒間となる。
ウェアラブルデバイス1404がスマートフォン1403からのアドバタイズ情報(スキャン・レスポンス)を受信するのは時刻T1であるが、そのアドバタイズ情報中に含まれる現在位置の情報は、時刻T0時点のものである。従って、ウェアラブルデバイス1404が自身の正確な位置を算出するためには、スマートフォン1403が移動した分の補正を行う必要がある。
そこで、ウェアラブルデバイス1404は、スマートフォン1403からのアドバタイズ情報(スキャン・レスポンス)に移動速度に関する情報と真方位情報が含まれる場合、前記現在位置から真方位方向に1秒間移動した位置P1を算出する。具体的には、プリンタ1402を始点としてAngle of Arrival θ(1405)を形成する破線と、前記算出された位置P1に存在するスマートフォン1403を始点としてAngle of Arrival θ(1407)を形成する破線の交点(図26(a)の領域2603)が、算出されたウェアラブルデバイス1404の推定現在位置である。尚、高度は前記現在高度情報をもとに推定することができる。
このように、ウェアラブルデバイス1404は、周囲の装置からのアドバタイズ情報にその装置の移動速度と真方位情報が含まれる場合、より正確なウェアラブルデバイス1404の絶対位置情報を求めることができるため好ましい。
(位置案内の表示)
次に、ウェアラブルデバイス1404の位置をマップ上に示す表示例について説明する。図20は、ウェアラブルデバイス1404を利用した経路案内アプリケーションの表示例を示す模式図である。図20(a)は、ウェアラブルデバイスが腕時計(スマートウォッチ)の場合の表示例を示す模式図である。経路案内アプリケーション2001は、ウェアラブルデバイス(腕時計)またはそれを装着しているユーザの現在位置、進行方向、目的地までの経路や所要時間等を表示するアプリケーションである。ウェアラブルデバイス1404の現在位置情報と、経路案内アプリケーション2001があらかじめ格納しているマップ情報と、を基に、ウェアラブルデバイス1404は、図20(a)のような位置案内の画面を表示することができる。ユーザは、経路案内アプリケーション2001を利用することで、自分の現在位置、目的地までの経路や道順、所要時間や到着時間を知ることができる。現在位置表示2002は、ウェアラブルデバイス(腕時計)またはそれを装着しているユーザの現在位置を示し、進行中は二等辺三角形、停止中は円で現在位置を表示する。進行中は現在位置表示2002の鋭角部が進行方向を示す。図20(a)は進行中の状態を示している。建物表示2003は、付近にある建物であり、図20(a)ではABC社のビルの例を示している。点線は経路を示す。
図20(b)は、ウェアラブルデバイス1404がゴーグルの場合の表示例を示す模式図である。経路案内アプリケーション2004は、ウェアラブルデバイス(ゴーグル)またはそれを装着しているユーザの現在位置、進行方向、目的地までの経路や所要時間等を表示するアプリケーションである。ウェアラブルデバイス1404の現在位置情報及び現在高度情報と、経路案内アプリケーション2004があらかじめ格納しているマップ情報と、を基に、ウェアラブルデバイス1404は、図20(b)のような位置案内画面を表示することができる。ユーザは、経路案内アプリケーション2004を利用することで、自分の現在位置、目的地までの経路や道順、所要時間や到着時間を知ることができる。経路表示部2005は、ウェアラブルデバイス(ゴーグル)またはそれを装着しているユーザの現在位置、進行方向、目的地までの経路や所要時間等を表示する。経路表示部2005には、上空から見た状態が表示される。建物表示部2008は、ウェアラブルデバイス(ゴーグル)またはそれを装着しているユーザが居る建物内における現在位置を表示する。建物表示2006は、ウェアラブルデバイス(ゴーグル)またはそれを装着しているユーザが居る建物であり、図20(b)ではABC社のビルの例を示している。図20(b)では、ウェアラブルデバイス(ゴーグル)またはそれを装着しているユーザが100階に居る状態を示している。現在位置表示2007、2009は、ウェアラブルデバイス(ゴーグル)またはそれを装着しているユーザの現在位置を示し、進行中は二等辺三角形、停止中は円で現在位置を表示する。進行中は現在位置表示2007、2009の鋭角部が進行方向を示す。図20(b)は停止中の状態を示している。
(スキャン・リクエストとスキャン・レスポンス)
次に、スキャン・リクエストとスキャン・レスポンスの内容について説明する。図23は、スキャン・リクエストとスキャン・レスポンスの例を示す図である。BLEのアドバタイザデバイスがアドバタイズパケット(例:ADV_IND)を送信し、BLEのスキャナデバイスが前記アドバタイズパケットを受信した場合、BLEスキャナデバイスはスキャン・リクエストを送信する。具体的には、BLEスキャナデバイスは、受信したアドバタイズパケットのペイロードだけでは情報が不足している場合、スキャン・リクエストを前記アドバタイザデバイスに送信する。前記アドバタイザデバイスは、前記スキャン・リクエストを受信したら、それに応答してスキャン・レスポンスを前記スキャナデバイスに送信する。なお、以下ではこのようなスキャン・レスポンスも含めてアドバタイズパケット(もしくはアドバタイズ情報)と略して説明する場合がある。
図23(a)は、スキャン・リクエストの例であり、SCAN_REQは、Bluetooth5.1のBLEの規格として規定されているスキャン・リクエストである。図23(b)は、スキャン・レスポンスの例であり、前記スキャン・リクエストに対するスキャン・レスポンスとして、図22の「位置」と「高度」をウェアラブルデバイス1404に返信する例を示す。図23(c)は、スキャン・レスポンスの例であり、前記スキャン・リクエストに対するスキャン・レスポンスとして、図22の「位置」、「高度」、「移動速度」と「真方位」をウェアラブルデバイス1404に返信する例を示す。図23(b)、図23(c)において、SCAN_RSPは、Bluetooth5.1のBLEの規格として規定されているスキャン・レスポンスである。その後に各情報が記述され、各情報はカンマ「,」で区切られ、「記号」と値はコロン「:」で区切られるように定義している。
また、上述した図29もスキャン・リクエストとスキャン・レスポンスの例である。図29(c)は、スキャン・レスポンスとして、図22の「位置」、「高度」、「移動速度」と「真方位」、「使用形態」をウェアラブルデバイス1404に返信する例を示す。
なお、以下では、スキャン・レスポンスとして、図29(c)のスキャン・レスポンスをウェアラブルデバイス1404に送信する例を示す。
なお、上述の例では、スキャン・レスポンスとしてのアドバタイズ情報の中に、BLEアドバタイザデバイスが図22の情報を格納する例であるが、本実施形態はこれに限定されない。例えば、BLEスキャナデバイスからスキャン・リクエストが送信される前にBLEアドバタイザデバイスが送信しているアドバタイズ情報の中に図22の情報を格納してもよい。
(BLEアドバタイザデバイスの処理フロー)
図15は、BLEのアドバタイザデバイスがアドバタイズパケット(スキャン・レスポンス)を送信する処理の一例を示すフローチャートである。図15のフローチャートに係るプログラムは、例えば、ROM104/152に記憶されており、RAM105/153に読み出され、CPU103/154により実行される。
図15(a)は、BLEのアドバタイザデバイスとしてのスマートフォン1403が、BLEスキャナデバイスとしてのウェアラブルデバイス1404にアドバタイズパケット(スキャン・レスポンス)を送信する処理の一例を示すフローチャートである。
S1501において、スマートフォン1403が、ウェアラブルデバイス1404から送信された図23(a)に示すスキャン・リクエストを受信することにより処理を開始する。
S1502において、スマートフォン1403は、GPS受信部112から図22の「位置」で示す現在位置情報を取得する。
S1503において、スマートフォン1403は、GPS受信部112から図22の「高度」で示す現在高度情報を取得する。
S1504において、スマートフォン1403は、GPS受信部112から図22の「移動速度」と「真方位」で示す現在の移動速度と真方位情報を取得する。
S1514において、スマートフォン1403は、使用形態登録部を備えている場合は、使用形態登録部により登録されてRAM105に保存されている使用形態情報を取得する。なお、スマートフォンやノートPC等のモバイル端末の場合、「使用形態」は格納されていなくてもよい。つまり、この場合は、使用形態の情報は取得されない。
S1505において、スマートフォン1403は、前記現在位置情報、前記現在高度情報、前記現在の移動速度と真方位情報、使用形態情報をアドバタイズパケット(スキャン・レスポンス)にセット(格納)する。
S1506において、スマートフォン1403は、ウェアラブルデバイス1404にアドバタイズパケット(スキャン・レスポンス)を送信する。具体的には、図29(c)のスキャン・レスポンスを送信する。
S1507において、スマートフォン1403は、アドバタイズパケット(スキャン・レスポンス)を全て送信した後、アドバタイズパケット(スキャン・レスポンス)の送信処理を終了する。
以上の処理により、BLEアドバタイザデバイスは、BLEアドバタイザデバイスの位置情報等を送信する。なお、図15(a)では、現在位置情報、現在高度情報、現在の移動速度と真方位情報、使用形態情報を全てアドバタイズパケット(スキャン・レスポンス)に含める例を示したが、本実施形態はこの例に限られない。例えば、現在位置情報と使用形態だけをアドバタイズパケット(スキャン・レスポンス)に含めてもよい。また、現在位置情報と現在高度情報と使用形態情報だけをアドバタイズパケット(スキャン・レスポンス)に含めたりしてもよい。また、現在位置情報だけをスキャン・リクエスト受信前のアドバタイズパケットに含め、現在高度情報と使用形態情報をスキャン・レスポンスのアドバタイズパケットに含めてもよい。
図15(b)は、プリンタ1402がBLEのアドバタイザデバイスとして、BLEスキャナデバイスとしてのウェアラブルデバイス1404にアドバタイズパケット(スキャン・レスポンス)を送信する処理の一例を示すフローチャートである。
S1508において、BLEのアドバタイザデバイスであるプリンタ1402が、ウェアラブルデバイス1404から送信された図23(a)に示すスキャン・リクエストを受信することにより処理を開始する。
S1509において、プリンタ1402は、設置位置登録部1902で登録されてRAM153に保存されている設置位置情報を取得する。
S1510において、プリンタ1402は、設置高度登録部1903で登録されてRAM153に保存されている設置高度情報を取得する。
S1515において、プリンタ1402は、使用形態登録部1904で登録されてRAM153に保存されている使用形態情報を取得する。
S1511において、プリンタ1402は、前記設置位置情報、前記設置高度情報、前記使用形態情報をアドバタイズパケット(スキャン・レスポンス)にセットする。
S1512において、プリンタ1402は、ウェアラブルデバイス1404等のBLEスキャナデバイスにアドバタイズパケット(スキャン・レスポンス)を送信する。
S1513において、プリンタ1402は、アドバタイズパケット(スキャン・レスポンス)を全て送信した後、アドバタイズパケット(スキャン・レスポンス)の送信処理を終了する。
以上の処理により、BLEアドバタイザデバイスは、BLEアドバタイザデバイスの使用形態だけでなく、位置情報等を送信する。なお、図15(b)では、設置位置情報と設置高度情報と使用形態情報をアドバタイズパケット(スキャン・レスポンス)に含める例を示したが、この例に限られない。例えば、設置位置情報と使用形態情報だけをアドバタイズパケット(スキャン・レスポンス)に含めてもよい。また、設置位置情報だけをスキャン・リクエスト受信前のアドバタイズパケットに含め、設置高度情報と使用形態情報をスキャン・レスポンスのアドバタイズパケットに含めてもよい。
また、図15のフローチャートに関連するBLE通信のシーケンスを含む説明に関しては、図12のシーケンス図で示している。ウェアラブルデバイス1404は図12に示す情報処理装置101、スマートフォン1403は図12に示す通信装置151、プリンタ1402は図12に示す通信装置151にそれぞれ該当する。このように、スマートフォン1403やプリンタ1402から送信されたアドバタイズパケット(スキャン・レスポンス)を、ウェアラブルデバイス1404が受信する。
(BLEスキャナデバイスの処理フロー)
図16は、BLEのスキャナデバイスが、自身の現在位置を求め、アプリケーション上に現在位置を表示する処理の一例を示すフローチャートである。図16のフローチャートに係るプログラムは、例えば、ROM104に記憶されており、RAM105に読み出され、CPU103により実行される。
S1601において、BLEのスキャナデバイスであるウェアラブルデバイス1404が、スマートフォン1403やプリンタ1402等のBLEアドバタイザデバイスから送信されたアドバタイズパケット(スキャン・レスポンス)を受信することにより処理を開始する。
S1602において、ウェアラブルデバイス1404は、受信したアドバタイズパケット(スキャン・レスポンス)の情報から周辺に存在するBLEアドバタイザデバイスの数を判定する。
S1603において、ウェアラブルデバイス1404は、周辺に存在するBLEアドバタイザデバイスの数が0台と判定した場合S1620へ進み、0台ではない(1台以上)と判定した場合S1604へ進む。
S1604において、ウェアラブルデバイス1404は、周辺に存在するBLEアドバタイザデバイスの数が1台と判定した場合S1605へ進み、1台より多い(2台以上)と判定した場合S1612へ進む。
S1605において、ウェアラブルデバイス1404は、アドバタイズパケット(スキャン・レスポンス)を取得する。
S1606において、ウェアラブルデバイス1404は、図23(b)または(c)に示すアドバタイズパケット(スキャン・レスポンス)から現在位置又は設置位置を示す位置情報を取得する。
S1607において、ウェアラブルデバイス1404は、BLEアドバタイザデバイスが送信するアドバタイズパケット(スキャン・レスポンス)のAoA Radio Signalから、図8に示すAngle of Arrival θ(702)を算出する。そして、前記BLEアドバタイザデバイスの方向情報(角度に関する情報)を取得する。
S1608において、ウェアラブルデバイス1404は、図23(b)または(c)に示すアドバタイズパケット(スキャン・レスポンス)から現在高度/設置高度を示す高度情報を取得する。
S1609において、ウェアラブルデバイス1404は、図23(c)に示すアドバタイズパケット(スキャン・レスポンス)から移動速度と真方位情報を取得する。
S1610において、ウェアラブルデバイス1404は、近距離無線通信部110で受信したアドバタイズパケット(スキャン・レスポンス)の電波強度を取得する。
S1611において、ウェアラブルデバイス1404は、前記位置情報、前記方向情報、前記高度情報、前記移動速度と真方位情報、前記電波強度をもとに、図14(a)の説明の通り、ウェアラブルデバイス1404の現在位置情報を算出する。なお、S1611において、位置情報、方向情報、高度情報、移動速度と真方位情報、電波強度を利用する例を示したが、本実施形態はこの例に限られない。例えば、高度情報、移動速度、真方位情報のいずれもが取得できないケースにおいても、位置情報、方向情報、及び電波強度に基づいて現在位置情報を算出してもよい。
S1612において、ウェアラブルデバイス1404は、前記複数のBLEアドバタイザデバイスのアドバタイズパケット(スキャン・レスポンス)を取得する。
S1613において、ウェアラブルデバイス1404は、周辺に存在するBLEアドバタイザデバイスのアドバタイズパケット(スキャン・レスポンス)の電波強度を比較する。そして、2つのBLEアドバタイザデバイスを選択する。ここで、ウェアラブルデバイス1404が、周辺に存在する複数のBLEアドバタイザデバイス(BLEデバイス)の中から2つのBLEペリフェラルデバイス(BLEデバイス)を選択する方法に関しては、図28(a)に示す方法の例を利用する。ここでは、実施形態1と同様に、3つのBLEアドバタイザデバイスの電波強度レベルが全て5(ケース1)であるものとする。よって、ウェアラブルデバイス1404は、使用形態が「据置」のBLEアドバタイズデバイスであるプリンタ1402とATM2801を選択する。つまり、受信電波強度レベルが同じアドバタイズ情報のうち、アドバタイズ情報に含まれる使用形態の情報として「据置」を示す情報が含まれている装置を優先する。
なお、スマートフォンのようなモバイル端末の場合、モバイル使用が当然であるため、あらかじめ使用形態の情報が登録されていない可能性がある。この場合、図15(a)で示したS1514において使用形態の情報が取得されないため、送信されるアドバタイズ情報にも使用形態の情報が含まれていない(使用形態の「値」が空となっている)。S1613では、このように使用形態の情報がアドバタイズ情報に含まれていない場合は、このアドバタイズ情報を送信したデバイスは「モバイル」であると判定するとよい。
S1614において、ウェアラブルデバイス1404は、図23(b)または(c)に示すアドバタイズパケット(スキャン・レスポンス)から、選択された2つBLEアドバタイザデバイスの現在位置/設置位置を示す位置情報をそれぞれ取得する。
S1615において、ウェアラブルデバイス1404は、前記2つのBLEアドバタイザデバイスが送信するアドバタイズパケット(スキャン・レスポンス)からAoA Radio Signalから、図8に示すAngle of Arrival θ702を算出する。そして、前記2つのBLEアドバタイザデバイスの方向情報(角度に関する情報)をそれぞれ取得する。
S1616において、ウェアラブルデバイス1404は、図23(b)または(c)に示すアドバタイズパケット(スキャン・レスポンス)から、前記2つBLEアドバタイザデバイスの現在高度/設置高度を示す高度情報をそれぞれ取得する。
S1617において、ウェアラブルデバイス1404は、図23(c)に示すアドバタイズパケット(スキャン・レスポンス)から、前記2つのBLEアドバタイザデバイスの移動速度と真方位情報をそれぞれ取得する。
S1618において、ウェアラブルデバイス1404は、前記2つのBLEアドバタイザデバイスの位置情報、方向情報、高度情報、移動速度と真方位情報をもとに、図14(a)、図26(a)の説明の通り、ウェアラブルデバイス1404の現在位置情報を算出する。
S1619において、ウェアラブルデバイス1404は、図20で示した経路案内アプリケーション2001や経路案内アプリケーション2004上に現在位置を表示する。そして、S1620へ進み、処理を終了する。
以上のフローにより、BLEスキャナデバイスは、GPS受信機を装備していない場合であっても、BLEアドバタイザデバイスからのアドバタイズ情報に基づき、BLEスキャナデバイス自身の絶対位置(少なくとも位置情報)を取得することができる。
なお、S1618において、位置情報、方向情報、高度情報、移動速度と真方位情報を利用する例を示したが、本実施形態はこの例に限られない。例えば、高度情報、移動速度、真方位情報のいずれもが取得できないケースにおいても、位置情報と方向情報とに基づいて現在位置情報を算出してもよい。
また、S1612~S1618において、ウェアラブルデバイス1404が、周辺に存在する複数のBLEアドバタイザデバイスの中から2つのBLEアドバタイザデバイスを選択した。そして、ウェアラブルデバイス1404が、前記2つのBLEアドバタイザデバイスの位置情報、方向情報、高度情報、移動速度と真方位情報をもとに、図14(a)、図26(a)の説明の通り現在位置を算出する例を説明した。しかしながら、本実施形態はこの例に限られない。例えば、図26(b)に示すように、ウェアラブルデバイス1404の周辺に3つ以上のBLEアドバタイザデバイスが存在する場合、これらを利用してウェアラブルデバイス1404の現在位置を算出して、精度を高くしてもよい。但し、BLEアドバタイザデバイスの数が多くなると、ウェアラブルデバイスの処理負荷が増えるので、ウェアラブルデバイスの性能に合わせて適切に設計することが重要である。
なお、第2実施形態は、特に人(スマートフォン)が多い街中で有効である。
以上説明したとおり、本実施形態によって、BLEスキャナデバイスは、BLEアドバタイザデバイスから送信されるアドバタイズ情報を基に、絶対位置を取得することが可能となる。また、BLEアドバタイザデバイスからのアドバタイズ情報に含まれる使用形態の情報に基づき、「据置」のデバイスからのアドバタイズ情報を優先して用いて絶対位置を求める。これにより、より正確にBLEスキャナデバイスの絶対位置が求められる。なお、第2実施形態は、絶対位置が取得できることにより、マップに位置情報を表示させることができるため、特に街中で有効である。
<第3実施形態>
次に、第3実施形態について説明する。第1、第2実施形態では、アドバタイザデバイスは、スキャン・レスポンスを送信する際、常にスキャン・レスポンス中のペイロードに、図22の情報(少なくとも位置情報)を格納した。第3の実施形態では、情報の要求があった場合にだけ、その情報をアドバタイズパケットに格納して送信する。これにより、必要な場合にだけ必要な情報を送信するため、BLEデバイスの消費電力を低減することが可能となる。以下の説明では第1又は第2の実施形態と共通する説明は省略し、異なる点について主に説明する。
(スキャン・リクエストとスキャン・レスポンス)
図25は、スキャン・リクエストとスキャン・レスポンスの例を示す図である。BLEのアドバタイザデバイスは、BLEのスキャンデバイスからスキャン・リクエストを受信した場合、そのスキャン・リクエストに対してスキャン・レスポンスをスキャナデバイスに送信する。図25はそのスキャン・リクエスとスキャン・レスポンスの例を示す。
図25(a)、図25(b)、図25(c)、図25(d)は、スキャン・リクエストの例であり、Bluetooth5.1のBLEの規格を拡張したオプションの例を示す。図25(a)、図25(b)、図25(c)、図25(d)において、SCAN_REQは、Bluetooth5.1のBLEの規格として規定されているスキャン・リクエストである。この後に続けて追加情報を要求するオプションを示す記号「opt」が記述された情報が送信される。図25(a)では、SCAN_REQに続けて「位置」と「高度」の要求を示すオプションがセットされている。「place」は図22に示す「位置」を要求するオプションの記号、「elevation」は図22に示す「高度」を要求するオプションの記号である。図25(b)では、SCAN_REQに続けて「位置」、「高度」、「移動速度」と「真方位」の要求を示すオプションがセットされている。「speed」は図22に示す「移動速度」を要求するオプションの記号、「direction」は図22に示す「真方位」を要求するオプションの記号である。
図25(c)では、SCAN_REQに続けて「使用形態」の要求を示すオプションがセットされている。「type」は図22に示す「使用形態」を要求するオプションの記号である。図25(d)では、SCAN_REQに続けて「位置」、「高度」、「使用形態」の要求を示すオプションがセットされている。「place」は図22に示す「位置」を要求するオプションの記号、「elevation」は図22に示す「高度」を要求するオプションの記号、「type」は図22に示す「使用形態」を要求するオプションの記号である。オプションを示す記号「opt」と各情報はコロン「:」で区切られ、オプションとして要求する各情報の「記号」はカンマ「,」で区切られるように定義している。つまり、図25(a)~(d)に示すSCAN_REQの後にセットされているオプションは、BLEアドバタイザデバイスに対して、図22の情報等を要求するための要求情報である。
図25(e)、図25(f)、図25(g)、図25(h)は、スキャン・レスポンスの例であり、Bluetooth5.1のBLEの規格を拡張したオプションの例を示す。図25(e)は図25(a)のスキャン・リクエストに対するスキャン・レスポンス、図25(f)は図25(b)のスキャン・リクエストに対するスキャン・レスポンスの例である。図25(g)は図25(c)のスキャン・リクエストに対するスキャン・レスポンス、図25(h)は図25(d)のスキャン・リクエストに対するスキャン・レスポンスの例である。図25(e)、図25(f)、図25(g)、図25(h)において、SCAN_RSPは、Bluetooth5.1のBLEの規格として規定されているスキャン・レスポンスであり、その後に続けて追加情報がセットされている。各情報はカンマ「,」で区切られ、「記号」と値はコロン「:」で区切られるように定義している。
(オプション情報の送信に関する通信シーケンス)
図17は、BLEのアドバタイザデバイスがアドバタイズパケット(スキャン・レスポンス)を送信する際にオプションを付加する一例を示すフローチャートである。図17のフローチャートに係るプログラムは、例えば、ROM104/152に記憶されており、RAM105/153に読み出され、CPU103/154により実行される。
S1701において、BLEアドバタイザデバイスであるプリンタ1402/スマートフォン1403は、アドバタイズパケットの送信処理を開始する。
S1702において、プリンタ1402/スマートフォン1403は、ウェアラブルデバイス1404等のBLEスキャナデバイスにアドバタイズパケット(例:ADV_IND)を送信する。
S1703において、ウェアラブルデバイス1404は、前記アドバタイズパケットを受信した場合、図25(a)~(d)のいずれかに示すSCAN_REQをプリンタ1402/スマートフォン1403に送信する。具体的には、アドバタイズパケットのペイロードだけでは情報が不足していると判断し、SCAN_REQをプリンタ1402/スマートフォン1403に送信する。
S1704において、ウェアラブルデバイス1404は、図25(a)~(d)のいずれかに示すオプション(opt:・・・)をプリンタ1402/スマートフォン1403に送信する。なお、S1704において、追加情報を要求するオプション(opt:・・・)をプリンタ1402/スマートフォン1403に送信する場合、例えば、図25(a)と図25(d)を各送信の度に交互に送信してもよい。これにより、ウェアラブルデバイス1404、プリンタ1402/スマートフォン1403の消費電力をより抑えることができる。
S1705において、プリンタ1402/スマートフォン1403は、S1703のSCAN_REQとS1704で送信されたオプションを受信する。そして、図25(a)~(d)に示す前記オプションで要求された情報を図22のテーブルから取得する。取得した情報は、スキャン・レスポンスのペイロード内に含める。なお、S1705では、S1703のSCAN_REQを受信した後、S1704のオプションを受信する。
S1706において、プリンタ1402/スマートフォン1403は、図25(e)~(h)のいずれかに示すスキャン・レスポンスを送信する。
S1707において、ウェアラブルデバイス1404は、図25(e)~(h)のいずれかに示す前記スキャン・レスポンスを受信して、RAM104/153に保存し、S1708へ進み、処理を終了する。
なお、上記例では、スキャン・リクエスト(SCAN_REQ)とは別にオプション(opt:・・・)が送信されているが、本実施形態はこれに限定されない。スキャン・リクエストの中にオプションが含められる場合は、SCAN_REQとオプション(opt:・・・)を一緒に送信してもよい。つまり、BLEスキャナデバイスは、要求情報としてのオプションを含むスキャン・リクエストを送信してもよい。
(BLEアドバタイザデバイスの処理フロー)
次に、図17のS1705及びS1706におけるBLEアドバタイザデバイスの処理フローを、図18を用いて説明する。図18は、BLEのアドバタイザデバイスがアドバタイズパケット(スキャン・レスポンス)を送信する処理の一例を示すフローチャートである。図18のフローチャートに係るプログラムは、例えば、ROM104/152に記憶されており、RAM105/153に読み出され、CPU103/154により実行される。
図18(a)は、スマートフォン1403が、BLEのアドバタイザデバイスとして、アドバタイズパケット(スキャン・レスポンス)を送信する処理の一例を示すフローチャートである。
S1801では、スマートフォン1403が、ウェアラブルデバイス1404から送信された図25(a)、(b)に示すスキャン・リクエストを受信することにより、処理を開始する。
S1802において、スマートフォン1403は、受信したオプションに「位置」を要求するオプションの記号「place」が含まれているかを確認する。この記号が含まれている場合はS1803へ進み、この記号が含まれていない場合はS1804へ進む。
S1803において、スマートフォン1403は、GPS受信部112により取得した図22の「位置」で示す現在位置情報をメモリ内から取得する。
S1804において、スマートフォン1403は、受信したオプションに「高度」を要求するオプションの記号「elevation」が含まれているか確認する。この記号が含まれている場合はS1805へ進み、この記号が含まれていない場合はS1806へ進む。
S1805において、スマートフォン1403は、GPS受信部112により取得した図22の「高度」で示す現在高度情報をメモリ内から取得する。
S1806において、スマートフォン1403は、受信したオプションに「移動速度」を要求するオプションの記号「speed」と「真方位」を要求するオプションの記号「direction」が含まれているか確認する。これらの記号が含まれている場合はS1807へ進み、この記号が含まれていない場合はS1808へ進む。
S1807において、スマートフォン1403は、GPS受信部112により取得した図22の「移動速度」と「真方位」で示す現在の移動速度と真方位情報をメモリ内から取得する。
S1819において、スマートフォン1403は、受信したオプションに「使用形態」を要求するオプションの記号「type」の有無を確認し、この記号が有る場合はS1820へ進み、この記号が無い場合はS1808へ進む。
S1820において、スマートフォン1403は、使用形態登録部(不図示)で登録されてRAM105に保存されている使用形態情報を取得する。
S1808において、スマートフォン1403は、前記現在位置情報、前記現在高度情報、前記現在の移動速度と真方位情報、使用形態情報のうち、取得された情報をアドバタイズパケット(スキャン・レスポンス)にセットする。
S1809において、スマートフォン1403は、ウェアラブルデバイス1404等のBLEスキャナデバイスにアドバタイズパケット(スキャン・レスポンス)を送信する。
S1810において、スマートフォン1403は、アドバタイズパケット(スキャン・レスポンス)を全て送信した後、アドバタイズパケット(スキャン・レスポンス)の送信処理を終了する。
なお、上記のフローでは、位置情報、高度情報、移動速度及び真方位情報、使用形態情報のそれぞれを要求するオプションの記号がスキャン・リクエストの中に含まれているかを確認したが、本実施形態はこれに限定されない。位置情報と使用形態情報を要求するオプションの記号が含まれているかのみを確認してもよく、位置情報と高度情報と使用形態情報とを要求するオプションの記号が含まれているかのみを確認してもよい。以下、位置情報と高度情報と使用形態情報とを要求するオプションの記号が含まれているかを確認するフローについて説明する。
図18(b)は、プリンタ1402が、BLEのアドバタイザデバイスとして、アドバタイズパケット(スキャン・レスポンス)を送信する処理の一例を示すフローチャートである。
S1811において、BLEのアドバタイザデバイスであるプリンタ1402が、ウェアラブルデバイス1404から送信された図25(a)、(b)に示すスキャン・リクエストを受信することにより、処理を開始する。
S1812において、プリンタ1402は、受信したオプションに「位置」を要求するオプションの記号「place」が含まれているか確認を確認する。この記号が含まれているか場合はS1813へ進み、この記号が含まれていない場合はS1814へ進む。
S1813において、プリンタ1402は、設置位置登録部1902において登録されてRAM153に保存されている設置位置情報を取得する。
S1814において、プリンタ1402は、受信したオプションに「高度」を要求するオプションの記号「elevation」が含まれているか確認する。この記号が含まれている場合はS1815へ進み、この記号が無い場合はS1821へ進む。
S1815において、プリンタ1402は、設置高度登録部1903で登録されてRAM153に保存されている設置高度情報を取得する。
S1821において、プリンタ1402は、受信したオプションに「使用形態」を要求するオプションの記号「type」の有無を確認し、この記号が有る場合はS1822へ進み、この記号が無い場合はS1816へ進む。
S1822において、プリンタ1402は、使用形態登録部1904で登録されてRAM153に保存されている使用形態情報を取得する。
S1816において、プリンタ1402は、前記設置位置情報、前記設置高度情報、使用形態情報のうち取得された情報をアドバタイズパケット(スキャン・レスポンス)にセットする。
S1517において、プリンタ1402は、ウェアラブルデバイス1404等のBLEスキャナデバイスにアドバタイズパケット(スキャン・レスポンス)を送信する。
S1518において、プリンタ1402は、アドバタイズパケット(スキャン・レスポンス)を全て送信した後、アドバタイズパケット(スキャン・レスポンス)の送信処理を終了する。
以上説明した図18(a)(b)のフローにより、BLEアドバタイザデバイスは、要求があった場合にだけ、BLEアドバタイザデバイスの位置情報や使用形態情報等の要求された情報を送信することができる。よって、必要な場合にだけ必要な情報を送信するため、BLEデバイスの消費電力を低減することが可能となる。
(オプションを指定するための設定情報)
本実施形態では、BLEスキャナデバイスが、事前にオプションの情報を指定する。具体的には、BLEスキャナデバイスは、BLEアドバタイザデバイスがスキャン・レスポンスの中に位置情報や使用形態情報等を格納するために、あらかじめ設定情報を送信する。
図27は、オプションを指定するための設定情報の一例を示す図である。この設定情報は、BLEスキャナデバイスが送信する。図27(a)は、「位置」のオプションと、このオプションの「有効時間」を設定する例である。図27(b)は、「高度」のオプションと、このオプションの「有効時間」を設定する例である。図27(c)は、「移動速度」と「真方位」のオプションと、これらのオプションの「有効時間」を設定する例である。図27(d)は、「使用形態」のオプションと、このオプションの「有効時間」を設定する例である。「位置」のオプションの記号は「place」、「高度」のオプションの記号は「elevation」、「移動速度」のオプションの記号は「speed」、「真方位」のオプションの記号は「direction」である。「使用形態」のオプションの記号は「type」である。有効時間の記号は「time」であり、コロン「:」の後にその値がセットされている。有効時間の値の単位は「秒」である。有効時間が「0」の時はこのオプションを無効とし、有効時間が「9999」の時は有効時間が無期限であることを表す。
(設定情報の送信に関するシーケンス)
次に、設定情報の送信に関するシーケンスを説明する。図24は、GATT通信により、BLEアドバタイザデバイスが設定情報を送信してオプションの指定を行い、BLEアドバタイザデバイスに設定する一例を示すフローチャートである。図24のフローチャートに係るプログラムは、例えば、ROM104/152に記憶されており、RAM105/153に読み出され、CPU103/154により実行される。
S2401において、BLEアドバタイザデバイスであるプリンタ1402/スマートフォン1403は、アドバタイズパケットの送信処理を開始する。
S2402において、BLEアドバタイザデバイスは、ウェアラブルデバイス1404等のBLEスキャナデバイスにアドバタイズパケット(例:ADV_IND)を送信する。
S2403において、BLEスキャナデバイスは、前記アドバタイズパケットに含まれる情報から、デバイス情報(例えば、図5のデバイス名903)を取得して確認する。
S2404において、BLEスキャナデバイスは、前記BLEスキャナデバイスがアドバタイズパケット(スキャン・レスポンス)に追加情報を含めるためのオプションの機能をサポートしているデバイスであるかを確認する。サポートしている場合はS2405へ進み、サポートしていない場合はS2414へ進む。
S2405、S2606において、BLEスキャナデバイスとBLEアドバタイザデバイスは、ペアリングを実行する。なお、すでにペアリング済みの場合は、S2405とS2406はスキップしてもよい。
S2407において、BLEスキャナデバイスは、ペアリングの成否を確認し、成功した場合はS2408へ進み、失敗した場合はS2414へ進む。
S2408において、BLEスキャナデバイスは、BLEアドバタイザデバイスに図27(a)に示す設定情報を、BLEアドバタイザデバイスにGATT通信で送信する。設定情報は、上述したとおり、BLEアドバタイザデバイスが送信するスキャン・レスポンスの中に含める追加情報を指定するための情報である。ここでは、BLEスキャナデバイスは、図27(a)に示す、オプションとして位置情報を指定しており、且つ、有効時間として600秒有効であることを指定する設定情報を送信する。
S1409において、BLEアドバタイザデバイスは、前記設定情報を受信すると、アドバタイズパケット(スキャン・レスポンス)の中に位置情報を含めるオプションとそのオプションの有効時間を設定する。
S2410において、BLEスキャナデバイスは、BLEアドバタイザデバイスに図27(b)に示す設定情報をBLEアドバタイザデバイスにGATT通信で送信する。ここで、BLEスキャナデバイスは、図27(b)に示す、オプションとして高度情報を指定しており、且つ、有効時間として360秒有効であることを指定する設定情報をGATT通信で送信する。
S2411において、BLEアドバタイザデバイスは、前記設定情報を受信すると、アドバタイズパケット(スキャン・レスポンス)の中に高度情報を含めるオプションと、そのオプションの有効時間を設定する。
S2412において、BLEスキャナデバイスは、BLEアドバタイザデバイスに図27(c)に示す設定情報をBLEアドバタイザデバイスにGATT通信で送信する。ここでは、BLEスキャナデバイスは、図27(b)に示す、オプションとして移動速度と真方位情報を指定しており、且つ、有効時間として300秒有効を指定する設定情報をGATT通信で送信する。
S2413において、BLEアドバタイザデバイスは、前記設定情報を受信すると、アドバタイズパケット(スキャン・レスポンス)の中に移動速度と真方位情報を含めるオプションと、そのオプションの有効時間を設定する。
S2414において、BLEスキャナデバイスは、BLEアドバタイザデバイスに図27(d)に示す設定情報をBLEアドバタイザデバイスにGATT通信で送信する。ここでは、BLEスキャナデバイスは、図27(d)に示す、オプションとして使用形態情報を指定しており、且つ、有効時間として無期限を設定する。そのオプションの有効時間を設定する情報を、プリンタ1402/スマートフォン1403にGATT通信で送信する。
S2415において、プリンタ1402/スマートフォン1403は、前記情報を受信すると、アドバタイズパケット(スキャン・レスポンス)の中に使用形態情報を含めるオプションと、そのオプションの有効時間を設定する。
S2416において、BLEスキャナデバイスは、オプションを指定する設定情報の送信処理を終了する。
以上説明した図24のフローにより、BLEスキャナデバイスは、BLEアドバタイザデバイスに対して、取得を希望する情報をあらかじめ指定することができる。
<第4実施形態>
他の実施形態として、アドバタイズパケット(スキャン・レスポンス)に位置情報等の情報を含むことを間引く例もある。例えば、2回に1回位置情報を送ったり、速度センサーと連携させて、動いている速度を考慮して、大きく移動した時に送ったりする例等が考えられる。これにより、プリンタ1402、スマートフォン1403、ウェアラブルデバイス1404、ATM2801等のBLEデバイスの消費電力を抑える効果を得ることができる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、各実施形態について詳述したが、特定の実施形態に限定されるものではなく、本発明の要旨の範囲内において、様々な変更・変更が可能である。
前記第1実施形態では、アプリケーション3201の一例としてウェアラブルデバイス(腕時計)またはそれを装着しているユーザと、周辺のBLEデバイスの現在の相対位置を表示制御するアプリケーションを挙げた。しかしながら、この例に限られることなく、同様な機能を備える任意のアプリケーションで実現可能であり、有効である。
前記第2実施形態、前記第3実施形態では、アプリケーション2001、2004の一例として経路案内アプリケーションを挙げた。しかしながら、これらの例に限られることなく、同様な機能を備える任意のアプリケーションで実現可能であり、有効である。
前記第1実施形態、前記第2実施形態、前記第3実施形態では、通信方式としてBluetooth5.1を用いたが、この通信方式に限られることなく、同様な機能を備える任意の通信方式で実現可能であり、有効である。