以下に図面を参照して、本発明の実施形態を例示的に説明する。ただし、本発明については、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて、以下に記載する実施形態に対して適宜変更、改良が加えられたものについても本発明の範囲に入ることが理解されるべきである。
(第1実施形態)
本発明の一実施形態に係る通信システムに含まれる情報処理装置および通信装置について説明する。情報処理装置として、本実施形態ではスマートフォンを例示するが、これに限定されず、携帯端末、ノートPC、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、種々のものを適用可能である。また、通信装置として、本実施形態ではプリンタを例示するが、これに限定されず、情報処理装置と無線通信を行うことが可能な装置であれば、種々のものを適用可能である。また、プリンタとして、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等を用いることができる。また、通信装置として、プリンタのみならず複写機やファクシミリ装置、携帯端末、スマートフォン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ等も用いることができる。その他、複写機能、FAX機能、印刷機能等の複数の機能を備える複合機も用いることができる。
図1は、本実施形態に係る、情報処理装置と通信可能な通信装置とを有した情報処理システムを示すブロック図である。なお、本実施形態では図1に示す構成を例に挙げて説明するが、各装置は、図1に示すとおりの機能に限定するものではない。
情報処理装置101の一例は、スマートフォンである。この情報処理装置101は、入力インタフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース107、表示部108、通信部109、近距離無線通信部110等を有する。なお、これらはシステムバスを介して互いに接続されている。
入力インタフェース102は、物理キーボードやボタン、タッチパネル等の操作部(不図示)を介して、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースである。なお、後述の表示部108と操作部は、少なくとも一部が一体であってもよく、例えば画面の出力とユーザーからの操作の受け付けを同一の画面において行うような形態とすることができる。CPU103は、システム制御部であり、プログラムの実行やハードウェアの起動により、情報処理装置101の全体を制御する。ROM104は、CPU103が実行する制御プログラムやデータテーブル、組み込みオペレーティングシステム(以下、OSという。)プログラム等の固定データを格納する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に格納されている組み込みOSの管理下で、例えば、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。RAM105は、SRAM(Static Random Access Memory)やDRAM等で構成される。なお、RAM105は、図示しないデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、情報処理装置101の設定情報や情報処理装置101の管理データ等を格納するメモリエリアもRAM105に設けられている。また、RAM105は、CPU103の主メモリとワークメモリとしても用いられる。
外部記憶装置106は、印刷実行機能を提供するアプリケーション、通信装置151が解釈可能な印刷情報を生成する印刷情報生成プログラム等を保存している。また、外部記憶装置106は、通信部109を介して接続している通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムや、これらのプログラムが使用する各種情報を保持している。
出力インタフェース107は、表示部108がデータの表示や情報処理装置101の状態の通知を行うための制御を行うインタフェースである。表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、図7で後述される表示など、データの表示や情報処理装置101の状態の表示を行う。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを設定表示することで、表示部108を介してユーザーからの入力を受け付けても良い。
通信部109は、通信装置151等の外部装置と接続して、データ通信を実行するための構成である。例えば、通信部109は、通信装置151内のアクセスポイント(不図示)に接続可能である。通信部109と通信装置151内のアクセスポイントが接続することで、情報処理装置101と通信装置151は相互に通信可能となる。なお、通信部109は無線通信で通信装置151とダイレクトに通信しても良いし、情報処理装置101や通信装置151の外部に存在する外部アクセスポイント(アクセスポイント131)を介して通信しても良い。無線通信方式としては、例えば、Wi−Fi(WirelessFidelity)(登録商標)やBluetooth(登録商標)等が挙げられる。また、アクセスポイント131としては、例えば、無線LANルーター等の機器などが挙げられる。なお、本実施形態において、情報処理装置101と通信装置151とが外部アクセスポイントを介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101と通信装置151とが外部アクセスポイントを介して接続する方式をインフラストラクチャー接続方式という。
近距離無線通信部110は、図2以降で後述される、通信装置151等の装置と近距離で無線接続して、データ通信を実行するための構成であり、上述した通信部109とは異なる通信方式によって通信を行う。近距離無線通信部110は、通信装置151内の近距離無線通信部157と接続可能である。なお、本実施形態では、近距離無線通信部110の通信方式として、Bluetooth Low Energy(BLE)が用いられる。すなわち、近距離無線通信部110は、BLEユニットを有する。BLEユニットは、無線通信の処理を行うマイクロプロセッサであるマイコンと、無線通信によるデータの送受信を行う無線通信回路を含む。なお、マイコンは、RAMとフラッシュメモリが搭載されている。なお、近距離無線通信部110の通信方式として、例えば、NFC(Near Filed Communication)やWi−Fi Awareが用いられても良い。
一方、通信装置151の一例は、プリンタである。この通信装置151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、近距離無線通信部157等を有する。なお、これらはシステムバスを介して互いに接続されている。
通信部156は、通信装置151内部のアクセスポイントとして、情報処理装置101等の装置と接続するためのアクセスポイントを有している。なお、このアクセスポイントは、情報処理装置101の通信部109に接続可能である。なお、通信部156は無線通信で情報処理装置101とダイレクトに通信してもよいし、アクセスポイント131を介して通信してもよい。通信方式としては、例えば、Wi−Fi(登録商標)やBluetooth(登録商標)等が挙げられる。また、通信部156は、アクセスポイントとして機能するハードウェアを備えていてもよいし、アクセスポイントとして機能させるためのソフトウエアにより、アクセスポイントとして動作してもよい。
近距離無線通信部157は、情報処理装置101等の装置と近距離で無線接続するための構成である。本実施形態では、近距離無線通信部157の通信方式として、Bluetooth Low Energy(BLE)が用いられる。すなわち、近距離無線通信部157は、BLEユニットを有する。BLEユニットは、無線通信の処理を行うマイクロプロセッサであるマイコンと、無線通信によるデータの送受信を行う無線通信回路を含む。なお、マイコンは、RAMとフラッシュメモリが搭載されている。なお、近距離無線通信部157の通信方式として、例えば、NFCやWi−Fi Awareが用いられても良い。
RAM153は、SRAMやDRAM等で構成される。なお、RAM153は、図示しないデータバックアップ用の1次電池によってデータが保持されていてもよい。その場合、RAM153は、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、通信装置151の設定情報や通信装置151の管理データ等を格納するメモリエリアもRAM153に設けられている。また、RAM153は、CPU154の主メモリとワークメモリとしても用いられ、情報処理装置101等から受信した印刷情報を一旦保存するための受信バッファや各種の情報を保存する。ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。本実施形態では、ROM152に格納されている各制御プログラムは、ROM152に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。CPU154は、システム制御部であり、プログラムの実行やハードウェアの起動により、通信装置151の全体を制御する。
プリントエンジン155は、RAM153に保存された情報や情報処理装置101等から受信した印刷ジョブに基づき、インク等の記録剤を用いて紙等の被記録媒体上に画像形成し、印刷結果を出力する。この時、情報処理装置101等から送信される印刷ジョブは、送信データ量が大きく、高速な通信が求められるため、本実施形態では、近距離無線通信部157よりも高速に通信可能な通信部156を介して受信する。
なお、通信装置151には、外付けHDDやSDカード等のメモリがオプション機器として装着されてもよく、通信装置151に保存される情報は、当該メモリに保持されても良い。また、例として、情報処理装置101と通信装置151との処理分担を上記のように示したが、特にこの分担形態に限らず他の形態であってもよい。
本実施形態では、情報処理装置101がマスタ装置として動作し、通信装置151がスレーブ装置として動作する。
次に、スマートフォンとして例示される情報処理装置101の近距離無線通信部110と、プリンタとして例示される通信装置151の近距離無線通信部157との近距離無線通信について説明する。具体的には、通信装置151の近距離無線通信部157がスレーブ機器として動作し、この近距離無線通信部157が、BLE規格におけるアドバタイズ情報の送信およびGATT(Generic Attribute Profile)プロファイルによる通信の開始要求の受信の処理を行う。近距離無線通信部157は、BLE通信において、2.4GHzの周波数帯を40チャネル(0〜39ch)に分割して通信を行う。近距離無線通信部157は、そのうち、37〜39番目のチャネルをアドバタイズ情報の送信及びGATTプロファイルによる通信の開始要求(接続要求)の受信に利用し、0〜36番目のチャネルをBLE接続後のデータ通信に利用する。
図2は、37〜39番目のチャネルの1つにおけるアドバタイズ情報の送信とGATTプロファイルによる接続要求情報の受信のための消費電力を示す図である。図2において、縦軸は近距離無線通信部157の消費電力を、横軸は時間を示しており、1つのチャネルを利用してアドバタイズ情報を送信する際の消費電力を各処理別に示している。Tx205は、アドバタイズ情報をブロードキャストする処理(以下、「送信処理」ともいう)における総消費電力を示す。Rx206は、GATTプロファイルによる通信の開始要求を受信するための受信器を有効にしておく処理(以下、「受信処理」ともいう)受信処理の総消費電力を、それぞれ示す。送信電力202は送信処理による瞬間消費電力を示す。また、受信電力203は受信処理による瞬間消費電力を示す。また、マイコン動作電力801は、近距離無線通信部157内のマイコンが動作している場合の瞬間消費電力を示す。なお、Tx205とRx206の前後や間にもマイコンが動作しているのは、送信、受信処理の実行や停止のためには事前にマイコンが起動している必要があるためである。また、アドバタイズ情報の送信を複数チャネルで行う場合は、アドバタイズ情報の送信を行うチャネルの数だけ消費電力が増えることになる。また、マイコンが動作を行っておらず、近距離無線通信部157が省電力状態となっている間は、スリープ電力204が近距離無線通信部157の瞬間消費電力となる。
このように、通信装置151の近距離無線通信部157は、所定のチャネルを用いて送信処理を行った後、同一のチャネルを用いて一定時間受信処理を行うことで、情報処理装置101からGATTプロファイルによる通信の開始要求が送信されるのを待つ。
本実施形態では、情報処理装置101と通信装置151間で認証を行い、装置間でGATT(Generic Attribute Profile)通信によりデータの読み書きを実行するためのペアリング処理を実施する。なお、GATTとは、BLE規格において情報の読み書き(送受信)を司るプロファイルである。そして、GATT通信とは、情報処理装置101がGATTクライアント、通信装置151がGATTサーバの役割を担い、GATTベースのプロファイルにより、情報処理装置101から通信装置151に対し情報の読み書きが行われる通信である。情報処理装置101と通信装置151間でのペアリングが実行されていない状態では、通信装置151は、GATT通信による情報の読み書きを許可しない構成とする。このようにすることで、ペアリングを行っていない情報処理装置101と通信装置151が通信を行ってしまい、例えば、通信装置151が保持する情報がペアリングを行っていない情報処理装置101に不用意に取得されてしまうことを抑制することができる。
ペアリング処理の詳細について説明する。まず、情報処理装置101は、後述の印刷アプリケーションが起動され、印刷アプリケーションによって表示される初期画面(ホーム画面)が表示部108に表示された場合、特定の装置情報を有するアドバタイズ情報のサーチを開始する。なお、特定の装置情報とは、例えば、印刷アプリケーションに対応する装置(プリンタ等)のUUIDやMACアドレス等である。そして、情報処理装置101は、特定の装置情報を有するアドバタイズ情報を受信すると、当該アドバタイズ情報を送信した装置(ここでは、通信装置151)に、BLE接続要求(CONNECT_REQ)を送信し、装置間でBLE接続を確立する。そして、情報処理装置101は、通信装置151とのペアリングを完了していない場合は、ユーザにペアリングを促すための画面を表示部108に表示する。そして、情報処理装置101は、ペアリングの実行をユーザに指示された場合、セキュリティーマネージャプロトコルによる通信により、通信装置151に、ペアリング要求を送信する。なお、ペアリングが終了するまで、装置間の通信は、セキュリティーマネージャプロトコルによって行われるものとする。通信装置151は、ペアリング要求を受信すると、表示部160に、図13(a)に示すようなPINコード表示画面1300を表示する。PINコード表示画面1300には、PINコード1301と、ペアリング処理をキャンセルするためのCancelボタン1302が表示される。そして、情報処理装置101は、ペアリング要求を送信すると、表示部108に、図13(b)に示すようなPINコード入力画面1310を表示する。PINコード入力画面1310には、ユーザによるPINコード1301の入力を受け付けるためのPINコード入力領域1311と、入力されたPINコード1301を通信装置151に送信するためのOKボタン1313と、ペアリング処理をキャンセルするためのCancelボタン1312が表示される。PINコード入力領域1311にPINコード1301が入力された状態で、OKボタン1313が押下されると、情報処理装置101は、入力されたPINコード1301を含む情報を通信装置151に送信する。通信装置151は、受信した情報に含まれるPINコード1301が、PINコード表示画面1300に表示したPINコード1301と一致するか否かを判定し、一致すると判定した場合は、情報処理装置101にペアリングを許可する。具体的には、通信装置151は、PINコード1301をもとに所定の方法で作成されたリンクキーを、BLE規格のSMP(Security Manager Protocol)を利用して情報処理装置101と交換する。交換されたリンクキーは、情報処理装置101の持つ記憶領域(ROM104等)と通信装置151の持つ記憶領域(ROM152等)にそれぞれ保存される。これによりペアリングが完了し、以降、装置間でBLE通信を実行することが許可される。なお、情報処理装置101は、ペアリングが完了すると、PINコード表示画面1300を非表示とし、元の画面を再度表示する。
ペアリング完了後は、情報処理装置101は、通信装置151に対してGATT通信要求を送信する際には、ペアリング処理時に記憶領域に保存したリンクキーを通信装置151に通知する。通信装置151は、GATT通信要求を受信した場合、ペアリング処理時に記憶領域に保存したリンクキーと通知されたリンクキーを比較して、GATT通信要求を発信している装置が、ペアリング済みの装置であるかを確認する。そして、通信装置151は、ペアリング済みの装置であると確認できた場合は、情報処理装置101とのGATT通信による情報の読み書きを開始する。これにより、情報処理装置101は、一旦通信装置151とのペアリング処理を完了しておけば、以降はユーザによるPINコードの入力なしに通信装置151とのGATT通信を実行することができる。なお、上述では、PINコード入力領域1311に、PINコード入力画面1310に表示されているPINコード1301をユーザに入力させる形態を説明したが、この形態に限定されない。例えば、PINコード1310を固定の(ユーザーが任意に変更できない)情報とし、印刷アプリケーションのインストールと共に情報処理装置101に格納される形態とすることで、ユーザーの入力なしにPINコード1310が通信装置151に通知される形態としてもよい。また、ペアリング処理が開始されるタイミングも上述の形態に限定されず、例えば、印刷アプリケーションを介してユーザが印刷を指示したタイミングや、接続設定処理においてBLE接続が行われる前のタイミング等であっても良い。
図3は、本発明の第1実施形態に係る通信装置151の近距離無線通信部157によるアドバタイズ通信を説明する図である。
近距離無線通信部157は、図3に示すように、アドバタイズ情報の送信処理(Tx)とそれに関連した受信処理(Rx)を、3つのチャンネルについて時系列で順に行い、その後、マイコンの動作を停止させ一定時間省電力状態になる。アドバタイズ情報の送信処理(Tx)は、図4にて後述するアドバタイズパケットを用いる。ここで、チャネルごとのアドバタイズ情報の送信処理と受信処理の組み合わせをアドバタイズと言い、その時間をアドバタイズ時間と言う。また、チャネルごとのアドバタイズ情報を送信する時間間隔、すなわち、あるチャネルによってアドバタイズ情報を送信し、同じチャネルによって次にアドバタイズ情報を送信するまでの時間間隔をアドバタイズ間隔という。
本発明の第1実施形態は、図3に示すように、アドバタイズ間隔をおいた3つのチャンネルのアドバタイズ情報の送信処理と受信処理の組を、1つの送信電力202について3回繰り返す。そして、この繰り返しを、送信電力が、“強”、“中”、“弱”の3つの送信電力202の順に行い、合計9回のアドバタイズ情報の送信処理と受信処理の組を、上記アドバタイズ間隔で実施する。すなわち、図3において、個の図に示す3つのアドバタイズ情報の送信処理と受信処理の組が、送信電力を変えてさらに6つ繰り返されることになる。なお、送信電力について送信の順序は、上記の例では強、中、弱の順序であるが、この形態に限られず、どのような順序であってもよい。また、1つの送信電力についての繰り返しの回数は、例えば3回以下であれば任意に変更可能である。さらに具体的には、近距離無線通信部157は、CPU154の制御によってアドバタイズの送信電力202を、上記のとおり“強”、“中”、“弱”に切替え、3段階の電力でアドバタイズを送信する。これにより、3段階の送信電力に応じて、図6などで後述されるように、通信装置151からの距離に応じた情報処理装置に対してアドバタイズを送信することが可能となる。
なお、送信電力の変更を、上記のようにCPU154が予め設定された値に従って自動的に行う形態に限らず、ユーザーの指示に応じて、送信電力の値が設定されてもよい。例えば、ユーザーは、通信装置151の不図示のユーザインタフェースを介して送信電力を指定することができる。
次に、以上の通信装置151が送信するアドバタイズ情報を受信し、それに基づいた情報処理装置101の動作を説明する。
図4は、第1実施形態に係るアドバタイズ通信のアドバタイズパケットを示す図である。図4に示すように、アドバタイズパケット401は、主にヘッダー部402とデータ部403にて構成され、ヘッダー部402は、さらにアドバタイズの識別子部404と送信電力202の強度に関する情報405を含む。この情報405は、上述した3段階の送信電力の値である“強”、“中”、“弱”に対応したものである。すなわち、通信装置151のCPU154は、上述のように、予め決定されている、またはユーザーの指示によって決定された、アドバタイズの送信電力202に応じて、送信電力の強度に関する情報405を生成し、アドバタイズパケット401にその情報405を含める。これにより、アドバタイズパケット401を受信した情報処理装置101は、情報405を参照することにより、その受信したアドバタイズ情報の送信電力を取得することができる。すなわち、情報処理装置101は、図7にて後述されるように、受信したアドバタイ情報を送信した通信装置151との距離に関する判定を行うことができる。例えば、情報処理装置101は、情報405が“弱”の送信電力に対応するものである場合、通信装置151との距離が近いと判定することができる。なお、ヘッダー部402の送信電力の情報405は、強度を示す値(“強”、“中”、“弱”の具体的な値)そのもの、あるいは“強”、“中”、“弱”に対応したフラグとすることができる。情報405は、送信電力202を示していても良い。
情報処理装置101のCPU103は、後述するように、送信電力の情報405に応じた動作を実行する。送信電力の情報405が具体的な値を示すシステムである場合、情報処理装置101においては、後述する図6に示すように、送信電力の値に動作の種類が対応付けられている。また送信電力の情報405が、”強”、”中”、”弱”のいずれかのフラグを含むシステムである場合、そのフラグの値と動作の種類が対応づけられていてもよい。或いは、送信電力”強”、”中”、”弱”のそれぞれと、動作の種類が対応付けられていても良い。この場合、CPU103は、上記の送信電力の値、もしくはフラグにより、送信電力が”強”、”中”、”弱”のいずれであるか判断し、判断された送信電力に対応付けられている動作を特定する。
図5は、第1実施形態に係る、情報処理装置101上で動作するアプリケーションと通信装置151との短距離無線通信を用いた動作を説明するブロック図である。通信装置151の近距離無線通信部157は、図3にて上述したように、送信した送信電力の高い(“強”の)アドバタイズパケット502と、送信電力が中程度の(“中”の)アドバタイズパケット503と、送信電力の低い(“弱”の)アドバタイズパケット504と、を送信する。情報処理装置101の近距離無線通信部110は、その装置101の通信装置151からの距離に応じて上記3つのパケットの少なくとも1つを受信する。すなわち、情報処理装置101と通信装置151の距離が第1の距離未満の場合、情報処理装置101は、送信電力”強”、”中”、”弱”のそれぞれに対応するパケットを受信することが可能である。一方、情報処理装置101と通信装置151の距離が第1の距離より長い第2の距離以上の場合、情報処理装置101は、送信電力”強”に対応するパケットのみを受信することが可能である。また、情報処理装置101と通信装置151の距離が第1の距離以上であり第2の距離未満の場合、情報処理装置101は、送信電力”強”、”中”に対応するパケットのみを受信することが可能である。このとき、情報処理装置101上で動作するアプリケーション501は、近距離無線通信部110からアドバタイズの受信通知を受け取るとともに、上記距離に応じて受信したアドバタイズパケット502、503、504のいずれかにおける、識別子404、データ部403および送信電力に関する情報405を取得する。なお、アプリケーション501は近距離無線通信部110から直接通知を受ける形態でなく、情報処理装置101上で動作するオペレーションシステムから通知を受け取ってもよい。
図6は、本実施形態のアプリケーション501が、アドバタイズ情報を受信したときに参照するリストを示す図であり、アドバタイズパケット502、503、504の送信電力情報405とアプリケーション501の動作(処理)との関係を示している。リスト601は、アプリケーション501が情報処理装置101にインストールされたときに、ROM104などのメモリにおける、アプリケーション501によって参照可能な領域に記憶される。
リスト601において、定義603は、送信電力情報405が示す3段階の送信電力、すなわち3段階の距離範囲に対応しており、このうち、「閾値A以上」は、通信装置151が送信するアドバタイズ情報の送信電力の“強”に対応し、また通信装置151のBLEユニットによる通信可能範囲内の距離に対応している。同様にして、「閾値A未満、閾値B以上」は、通信装置151が送信するアドバタイズ情報の送信電力の“中”に対応し、また上記の第2の距離未満の距離に対応している。さらに、「閾値B未満」は、通信装置151が送信するアドバタイズ情報の送信電力の“弱”に対応し、また上記の第1の距離未満の距離に対応している。すなわち、アプリケーション501は、アドバタイズパケットから取得した情報405が示す“強”、“中”、“弱”のいずれかに対応した値によって3つの定義603のどの定義であるかを判断する。また、リスト601では、上記3つの定義603のそれぞれに応じてアプリケーションがアドバタイズパケット502、503、504を受信した際に行う動作602がそれぞれ定義されている。すなわち、それぞれのアプリケーション動作は、アドバタイズの送信電力情報405の定義603と紐付けられている。本実施形態のアプリケーション動作602は、「閾値A以上」の場合、「ユーザーへ告知を表示」である。同様に、「閾値A未満、閾値B以上」の場合、「機能F画面へ遷移」であり、「閾値B未満」の場合、「機能F画面のボタンを有効化」である。また、「閾値A以上」に紐付けられた動作として「アプリケーション501の自動起動」が実行されてもよい。
より詳細には、「閾値B未満」に対応する、3段階の距離範囲のうち最も短い距離範囲内にいるユーザーの情報処理装置101は、通信装置151の近距離無線通信部157から送信されるアドバタイズ情報の送信電力が“弱”の送信を、受信することができる。そして、この情報処理装置101のアプリケーション501は、受信したアドバタイズパケット504の情報405が示す“弱”に対応した定義「閾値B未満」に紐付けられた動作である「機能F画面のボタンを有効化」の表示を行う。このように、例えば、機能Fが、通信装置151の近傍に存在する装置に使用させるための通信装置151の機能である場合、その通信装置151の近傍の装置に限定して、上記ボタンを有効化させることができる。本実施形態では、機能Fは、プリントエンジン155による印刷実行である。これにより、情報処理装置101のユーザーは、通信装置151の近くにいるときに印刷実行が可能であることを認識でき、例えば、その印刷実行がユーザーが意図したものではない場合は、印刷の実行を回避できる。一方、印刷実行がユーザーが意図したものである場合は、印刷結果の近くにいるユーザーはそれを直ちに取得でき、印刷結果の第三者への漏えいを防止できる。
なお、上記のように3段階の距離範囲のうち最も短い距離範囲内にいるユーザーの情報処理装置101が“弱”の送信を受信できる場合、その情報処理装置は、同じタイミングの送信(図3にて上述した9回の送信)における、送信電力が“中”、“強”のアドバタイズ情報も受信する。この場合、アプリケーション501は、送信電力の3段階に応じたそれぞれのアドバタイズパケットから3つの送信電力情報405を取得するが、そのうち最も弱い送信電力の情報405を有効として、その後の処理を行う。以下で説明する、「閾値A未満、閾値B以上」の範囲で送信電力に関する2つの情報405を取得する場合も同様であり、より弱い方の送信電力の情報405を有効とする。
「閾値A以上」に対応する、3段階の距離範囲のうち最も長い距離範囲内にいるユーザーの情報処理装置101は、通信装置151の近距離無線通信部157から送信されるアドバタイズ情報の送信電力が“強”の送信を、受信することができる。そして、この情報処理装置101のアプリケーション501は、受信したアドバタイズパケット504の情報405が示す“強”に対応した定義「閾値A以上」に紐付けられた動作である「ユーザーへ告知を表示」を行う。このユーザーへの告知には、例えば、送信をした通信装置151の名称や、その通信装置の機能F(例えば印刷)を使用できる旨のメッセージを含めることができる。これにより、通信装置151から遠い情報処理装置のユーザーに対しても、通信装置151の存在またその機能Fが使用可能であることを報知することができる。その上で、該ユーザーは、例えばアプリケーション501を起動することができる。通信装置151の名称は、アドバタイズパケットに含まれており、アプリケーション501はアドバタイズパケットのその情報に基づいて通信装置151の名称を表示することができる。また、上記のメッセージについてもアドバタイズパケットに含まれていてもよいし、あるいはアプリケーション501が参照可能なデータとして通信装置151に予め記憶されていてもよい。なお、3段階の距離範囲のうち最も長い距離範囲の外にユーザー(情報処理装置)がいる場合、すなわち、近距離無線通信が不可能となる範囲にいる場合、その情報処理装置はアドバタイズ情報を受信しないことはもちろんである。
なお、通信装置151の名称がアドバタイズパケットに含まれている場合、情報処理装置101においてアプリケーション501が参照可能な記憶領域に、アプリケーション501において登録済みの装置の名称を記憶しておき、アドバタイズパケット内の名称が該記憶領域に記憶されていることを条件に、動作602が実行されてもよい。これにより、ユーザが把握していない未登録の通信装置からのアドバタイズパケットにより自動的な動作実行が行われてしまうことを防ぐことができる。なお上記の名称の登録は、例えばBLEのペアリングが完了したときにアドバタイズパケット内の名称が登録されてもよいし、また無線LAN等の他の通信方式により通信装置から取得された名称が登録されてもよいし、或いはアプリケーション501においてユーザが手動で名称を登録してもよい。
「閾値A未満、閾値B以上」に対応する、3段階の距離範囲のうち上述した最も長い距離範囲と最も短い距離範囲の間の距離範囲内にいるユーザーの情報処理装置101は、通信装置151の近距離無線通信部157から送信されるアドバタイズ情報の送信電力が“中”の送信を、受信することができる。そして、この情報処理装置101のアプリケーション501は、受信したアドバタイズパケット504の情報405が示す“中”に対応した定義「閾値A未満、閾値B以上」に紐付けられた動作である「機能F画面への遷移」を行い、機能Fの画面を表示する。これにより、アプリケーション501が起動されているが、機能Fの画面とは異なる画面が表示されていたとしても、機能Fの画面が自動的に表示される。すなわち、ユーザーが機能Fの選択指示を行わなくても、機能Fの画面が自動的に表示される。なお、この表示に代わり、または加えて、「さらに通信装置151に近づくことで機能Fの実行が可能になる」旨のメッセージを表示してもよい。
図7は、第1実施形態に係る、アドバタイズ情報を受信したときのアプリケーション501の動作を示すフローチャートである。図7に示す処理は、情報処理装置101のBLEユニットが有効になっている間に、例えば上記のアドバタイズ間隔よりも十分短い時間間隔で、定期的に実行される。
先ず、ステップ701で、アプリケーション501はアドバタイズ情報を受信し、ステップ702で、受信したアドバタイズパケットに含まれる送信電力情報405を取得する。そして、ステップ703において、アプリケーション501は、動作リスト601を参照して、取得した送信電力情報405に対応するアプリケーション動作602が有るか否かを判断し、ある場合はそれを取得する。図6に示した例では送信電力“強”、“中”、“弱”のそれぞれに対応する動作が定義されている。しかしながら、例えば“中”については動作が定義されていなくてもよく、この場合、ステップ703ではアプリケーション動作602が無いと判断される。
アプリケーション501は、送信電力情報405に対応するアプリケーション動作602が有ると判断すると、ステップ704で、対応するアプリケーション動作602の実行が必要か否かを判断する。本実施形態では、アプリケーション501の動作状態から上記実行の必要性を判断する。
例えば、送信電力が「閾値A以上」に対応し、アプリケーション動作602が「ユーザーへ告知を表示」の場合、および送信電力が「閾値A未満、閾値B以上」に対応し、アプリケーション動作602が「機能F画面へ遷移」の場合は、そのときのアプリケーション501の動作状態から以下の判断を行う。アプリケーション501によって、既により重要な内容が表示されている場合、または、前回の送信から予め定められた時間以内である場合は、アプリケーション動作602の実行は不要と判断する。
また、送信電力が「閾値B未満」に対応する場合は、アプリケーション501が起動されていること、または起動されており且つアプリケーション501の機能Fの画面が情報処理装置101に表示されていることを判断条件とすることができる。この判断条件が満たされたときに、アプリケーション動作602の実行が必要と判定する。例えば、アプリケーション動作602として「機能F画面へ遷移」が実行された後、ユーザーが機能Fは不要と判断して、アプリケーション501の停止、または他の機能もしくは他のアプリケーションの画面に遷移させたとする。この場合、アプリケーション501が起動されていないから、仮に、そのユーザーが機能Fの使用とは別の意図でさらに通信装置151に近づいたとしても、機能Fのためのボタンは有効化されない。これにより、ユーザーが意図せずに当該ボタンを押下してしまうことを防ぐことができる。なお、ステップ704で、アプリケーション動作の実行が必要では無いと判断した場合は、アプリケーションはアドバタイズの受信に起因する動作を完了する。
最後に、ステップ705で、対応するアプリケーション動作602を実行し、動作を終了する。
なお、図7に示したフローチャートにおいて、上述のペアリングやGATT通信は、ステップ701におけるアドバタイズ信号後に行われる。例えば図7に示した処理とは別に、並行して実行されてもよい。ペアリングが行われる場合、図13(b)に示した画面が優先されて表示されてもよいし、図6の動作602の表示が優先して行われてもよいし、また両者が同時に行われてもよい。
また、GATT通信により、無線LAN等の他の通信方式による通信のための通信情報を情報処理装置101が取得し、BLEから他の通信方式に切り替える、いわゆるハンドオーバーが行われてもよい。該通信情報としては、例えば情報処理装置101が通信装置151をLAN内で検索するためのMACアドレス、また通信装置151が接続可能なアクセスポイントに対応するSSID等である。
例えば、機能Fが印刷機能である場合、上記の機能F画面のボタンとして印刷指示ボタンが表示され、該ボタンが押下されたときに、無線LANによる接続処理が開始され、接続後、印刷対象の画像データが通信装置151に送信されてもよい。そして通信装置151のプリントエンジン155により該画像データに基づく画像が印刷される。或いは、上記印刷指示ボタンの押下に関わらず、図6のおける「ユーザへの告知の表示」、「機能F画面への遷移」、「機能F画面のボタン(印刷指示ボタン)の有効化」のいずれかが行われたことを条件に、無線LANによる接続処理が開始されてもよい。
特に、「機能F画面のボタン(印刷指示ボタン)の有効化」が行われたことを条件に無線LANによる接続処理が開始される場合、例えばユーザが印刷指示ボタンを押下するときに無線LANが接続済みであれば、情報処理装置101は迅速に画像データを送信することができる。一方で、印刷指示ボタンが有効化されていなければ、無線LANによる接続処理は開始されないため、ユーザが印刷指示の意思が無いにもかかわらず無駄に無線LAN接続が行われてしまうことを防ぐことができる。
以上の表示制御では、例えば、取得された距離に関する情報に基づき、距離が所定の距離以上(閾値B以上)の場合に、所定の機能Fを通信装置に実行させるための表示項目が情報処理装置の表示部に表示されず、上記距離が上記所定の距離未満(閾値B未満)の場合に、表示項目が表示部に表示されるように、表示部への表示を制御するといえる。また、例えば、表示制御では、距離に関する複数段階の情報にそれぞれ対応付けられた複数段階の表示項目のリストを参照して、上記距離が上記所定の距離以上か否かを判断する、といえる。
以上のとおり、本発明の第1実施形態によれば、ユーザーは、そのユーザーの情報処理装置と通信装置との距離の変化に応じた、通信装置の機能に関する表示内容の変化を認識できる。その結果、ユーザーはそのときの通信装置からの距離を認識しつつ、通信装置の機能に関する適切な操作などを行うことが可能となる。
例えば、第1実施形態によれば、ユーザーが情報処理装置101を持ちながら、通信装置151から離れた位置から徐々に通信装置151に近づいた場合、最初はユーザーへの告知が表示され、その後機能F画面への遷移が行われ、さらに機能F画面のボタンが有効化する。そのため該ユーザーは、通信装置151からの距離に応じて機能Fの存在を知り、その後画面を認識することができ、さらに機能Fが実行可能であることを認識することができる。
一方で、ユーザーの操作でアプリケーション501が起動されており且つアプリケーション501の機能Fの画面が情報処理装置101に表示されているときに情報処理装置101のBLEユニットが有効になったとする。そしてそのときにステップ701において”閾値B未満”の送信電力に対応するアドバタイズ信号を情報処理装置101受信したとする。このときも機能Fのボタンが有効化される。そのため、「閾値A以上」、「閾値A未満B以上」の動作が無駄に行われることなく、「閾値B未満」の処理が行われる。
また、情報処理装置101のBLEユニットが有効になったときに、ステップ701において”閾値B未満”の送信電力に対応するアドバタイズ信号を情報処理装置101受信した場合、”閾値A以上”、”閾値A未満、閾値B以上”それぞれに対応する動作を行い、さらに”閾値B未満”に対応する動作が行われても良い。上記のように”閾値A以上”に対応する動作として「アプリケーション501の自動起動」が行われても良い。この場合、通信装置151の近傍でユーザがBLEユニットを有効にすると、アプリケーション501の起動、機能Fの画面への遷移、機能F画面のボタンの有効化が自動的に行われる。
(第2実施形態)
上述した第1実施形態は、アドバタイズ情報の受信に対応してアプリケーション動作を実行するか否かを、アドバタイズ情報を送信した送信電力の情報を取得した後に判断したが、この形態に限られない。本発明の第2実施形態は、アドバタイズ情報を受信したときに、アプリケーション動作を実行するか否かを判断する。
図8は、本発明の第2実施形態に係る、アドバタイズ情報を受信したときのアプリケーション501の動作を示すフローチャートである。図8に示す処理は、情報処理装置101のBLEユニットが有効になっている間に、例えば上記のアドバタイズ間隔よりも十分短い時間間隔で、定期的に実行される。図8において、ステップ801、803、804、805は第1実施形態に関して図7に示したステップ701、702、703、705とそれぞれ同じ処理であり、これらの同じ処理の詳細な説明は省略する。
図8において、アプリケーション501は、ステップ801でアドバタイズ情報を受信した後、ステップ802で、アドバタイズ情報送信の送信電力の情報に応じたアプリケーション動作を実行するか否かを判断する。具体的には、前回のアドバタイズ情報の受信をトリガとしたアプリケーション動作602を実行して(または実行しないと判断して)からの経過時間が所定時間(t秒)以上経過しているか否かを判断する。アプリケーション501は、所定時間以上が経過していると判断した場合は、図7にて上述したのと同様のステップ803〜805の処理を行う。この処理によって、例えば、ステップ803以降の処理によって送信電力に応じた動作が実行された(もしくは実行されなかった)直後に、再びアドバタイズ情報を受信した場合、繰り返しステップ803以降の処理を行うことを防ぐことができる。上記の予め定められた時間t秒が十分短い場合、例えば、前回ステップ803以降の処理が行われた後、時間t秒が経過するまでは情報処理装置101と通信装置151との距離は大きく変化しない。そのため、ステップ803以降の処理が繰り返し無駄に行われることを防ぐことができる。なお、ステップ802の判断基準である所定時間の他の例として、アプリケーション動作602の実行回数を判断基準としてもよい。
(第3実施形態)
上述した第1および第2実施形態では、アプリケーション501はアドバタイズパケットに付与されている送信電力情報405に基づいてアプリケーション動作を決定する形態であるが、アプリケーション動作を対応付ける値は送信電力情報405に限られない。本発明の第3実施形態は、アプリケーション501を現在使用中のユーザーにまつわるユーザー情報に対応するセキュリティレベルとアプリケーション動作との関係を利用する。
図9は、アプリケーション501によって実行可能なアプリケーション動作に対してセキュリティレベル902を設定したセキュリティレベル・動作対応表901を示す図であり、図10は、このセキュリティレベル・動作対応表901を用いたアプリケーション501の構成を示すブロック図である。
図9において、セキュリティレベル902は、アプリケーション501を現在使用中のユーザーのユーザー情報1001の一部であり、セキュリティレベルの「Low」、「Mid」、「High」として定義されている。そして、セキュリティレベル・動作対応表901では、このセキュリティレベルに応じて、アプリケーションの動作が対応付けられている。情報処理装置101では、アプリケーション501は、アドバタイズ情報の受信に係る処理とは別に、次の処理を行う。すなわち、図10に示すように、報処理端末101の入力インタフェース102からアプリケーション501に対して操作が入力されると、入力された操作が現在のユーザーに許可されている操作かを判断する。このため、セキュリティレベル・動作対応表901とユーザー情報1001を参照し、セキュリティレベルに応じてアプリケーション501が行う動作1002を決定する。
アプリケーション501は、アドバタイズ情報を受信すると、そのアドバタイズパケットに含まれる送信電力情報405を取得し、送信電力情報/セキュリティレベル変換1003を行う。すなわち、送信電力情報405をセキュリティレベル902に変換する。具体的には、送信電力情報が“強”は、セキュリティレベル「Low」に変換される。同様に、送信電力情報が“中”は、セキュリティレベル「Mid」に変換され、送信電力情報が“弱”は、セキュリティレベル「High」に変換される。このように、アドバタイズ情報を受信した情報処理装置101(ユーザー)の通信装置151からの距離が遠いほど、低いセキュリティレベルに変換される。一方で、セキュリティレベル・動作対応表901では、アプリケーション動作の、「ユーザーへ告知を表示」、「機能F画面への遷移」、「機能F画面のボタンを有効化」に、セキュリティレベル「Low」、「High」、「Mid」がそれぞれ対応付けられている。
そして、アプリケーション501は、送信電力情報/セキュリティレベル変換1003によって上記のように得られたセキュリティレベル902によってセキュリティレベル・動作対応表901を参照し、アプリケーション動作を決定する。このように、ユーザー情報に対応するセキュリティレベルとアプリケーション動作との関係を利用することにより、通信装置151とユーザー(情報処理装置101)との距離に適したアプリケーション動作1002を実行することができる。
なお、利用する値はセキュリティレベルに限らず、情報処理端末101上で定義される値、または、情報処理端末101と通信が行える端末から取得される値であってもよい。また、セキュリティレベル・動作対応表901に登録されているアプリケーション501の動作は、入力インタフェース102の入力によって実行出来ない動作であってもよい。
(第4実施形態)
上述の第1実施形態では、図7のステップ704で、アプリケーション501の使用状態に基づいてアプリケーション動作602の実行可否を判別するものとしている。本発明の第4実施形態は、これに代わり、図6に示すアプリケーション動作602に対して優先度を付与し、その優先度に応じてアプリケーション動作の実行の可否を判断する。本実施形態は、図6に示す「機能F画面のボタンの有効化」、「機能F画面への遷移」、「ユーザーへ告知を表示」の順で高い優先度を付与する。
図11は、本発明の第4実施形態に係る、アドバタイズ情報の受信に応じて時系列で順次実行されるアプリケーション動作602の一例を優先度の内容で示す図である。本実施形態では、アプリケーション動作602を実行した際に、前回実行した動作として記憶する。そして、次のアドバタイズ情報の受信によってアプリケーション動作602を取得したときに、アプリケーション501が、記憶されている前回のアプリケーション動作602が無いと判断した場合、または取得したアプリケーション動作602が記憶されている前回のアプリケーション動作602よりも優先度が高いと判断した場合に、その取得したアプリケーション動作602を実行する。図11では不図示だが、「優先度中」の動作は、前回の動作が「優先度低」の場合に実行され、前回の動作が「優先度高」の場合には実行されない。
図11に示す例では、アプリケーション501は、最初に受信したアドバタイズ情報による動作1103が実行される。その後、同じ優先度の動作1102が取得されるアドバタイズ情報を連続して受信する。本実施形態では、上述したとおり、前回受信した動作の優先度以下の優先度を持つ動作は実行しない。このため、動作1102は実行しない。動作1104は優先度が前回受信した動作1102よりも高い。このため、その動作1104を実行する。さらに、その次に受信したアドバタイズ情報から得られる動作1105は直前の動作1104よりも優先度が低い。このため、この動作は実行しない。なお、図11に示す動作1101は、図12にて後述するステップ1205の実行要否の判定の対象となる動作であり、実行されない動作も含む。
図12は、第4実施形態に係る、アドバタイズ情報を受信したときのアプリケーション501の動作を示すフローチャートである。図12に示す処理は、情報処理装置101のBLEユニットが有効になっている間に、例えば上記のアドバタイズ間隔よりも十分短い時間間隔で、定期的に実行される。図12のステップ1201〜1203、1206、1208は、第1実施形態に関して図7に示すステップ701〜705の処理とそれぞれ同じであり、それらの詳細な説明は省略する。
アプリケーション501は、ステップ1204で、前回のアドバタイズ情報の受信によるアプリケーション動作602を実行しているか否かを判断する。実行しているアプリケーション動作602が無い場合、すなわち、本処理における初回の動作実行であると判断した場合は、ステップ1205の優先度確認をスキップする。アプリケーション501は、ステップ1205で、前回実行したアプリケーション動作602と今回実行するアプリケーション動作602の優先度を比較する。今回実行するアプリケーション動作602の優先度が前回のアプリケーション動作602の優先度以下の場合は、アプリケーション動作を実行せずに本処理を終了する。
ステップ1025で、今回実行するアプリケーション動作602の優先度が前回のアプリケーション動作602の優先度より高いと判断すると、ステップ1206で、図7のステップ704と同様に判定処理を行う。ステップ1207では、ステップ1206において実行が必要と判定された動作の情報を、「前回の動作」として、アプリケーション501が参照可能なRAM105の領域に記憶する。そして、ステップ1208で、実行が必要と判定されたアプリケーション動作602を実行する。
ステップ1203、1205、1206のいずれかにおいて「No」と判定された場合、もしくはステップ1208で動作が実行された後、ステップ1209に処理が進む。ステップ1209では、ステップ1207で記憶した「前回の動作」を削除する削除条件を満たすか否かを判断する。この削除条件は、例えば、アプリケーション501の終了指示の入力、または「優先度高」の動作の後に実行される所定の動作の完了である。「優先度高」の動作がリスト601における「ボタンの有効化」の場合、そのボタンの押下が上記所定の動作となり、ボタンが押下されることにより、削除条件が満たされたと判断する。ステップ1209で、削除条件が満たされたと判断すると、ステップ1210で、「前回の動作」の削除を行う。ステップ1209で削除条件が満たされないと判断した場合(ステップ1209でNo)、またはステップ1210の削除が行われた場合、本処理を終了する。
なお、ステップ1204で「前回実行した動作」がないと判定され、且つ「優先度高」または「優先度中」の動作が実行される場合、情報処理装置101は、該動作よりも優先度が低い動作を実行した後で、該動作を実行してもよい。これにより、例えば情報処理装置101のBLEユニットが有効になったときに、ステップ1201において”閾値B未満”の送信電力に対応するアドバタイズ信号を情報処理装置101受信した場合、アプリケーション501の起動、機能Fの画面への遷移、機能F画面のボタンの有効化が自動的に行われる。
(他の実施形態)
上述の実施形態では、図6などにて上述したように、最も距離が近い場合である「閾値B未満」のアプリケーション動作602が機能(印刷動作)を可能状態にするもの(ボタンを有効化)であるが、この形態限られない。例えば、自動的に機能(印刷)を実行という表示をさせる、というアプリケーション動作であってもよい。この場合、「閾値A未満、閾値B以上」のアプリケーション動作602を、例えば、機能の準備の表示(印刷動作の準備の表示)とする。これにより、ユーザーは、例えば、通信装置151からの距離に応じた、機能準備の表示(印刷動作の準備の表示)によって、通信装置151に比較低近いが、未だ印刷が実行される距離の範囲に至っていないことを知ることができる。そして、その後、より近い位置に至ったときに、機能(印刷)を実行という表示によって、印刷が実行していていることを確認することが可能となる。
(さらなる他の実施例)
本発明は、上述の各実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。