以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態では、IEEE802.11規格シリーズに準拠した無線LANの通信機能を有するユーザ機器とプリンタとの間で、通信を行う。このとき、ユーザ機器は、WiFi AllianceのNeighbor Awareness Network(NAN)によってプリンタを検出し、検出されたプリンタへ無線LANを用いて印刷データを送信する。NANでの通信は、所定の周期で所定の短期間のDiscovery Window(DW)が設定されることにより間欠的な通信であるため、消費電力を低く抑えることができる。また、NANでの通信は、IEEE802.11規格シリーズに準拠した通信であるため、IEEE802.11規格シリーズに準拠した無線LANでの他の通信のための通信用回路を用いて実行されうる。このため、BLE等の通信用回路を共用できない通信が用いられる場合と比して、通信装置のコストを低く抑えることもできる。以下では、まずシステム及び装置の構成について説明し、その後に処理の流れのいくつかの例について説明する。
(システム構成)
図1は、本実施形態に係る無線通信システムの構成例を示す図である。本無線通信システムは、例えば、ユーザ機器100、プリンタ101、及び他装置102を含む。これらの装置は本実施形態における通信装置の一例である。本実施形態では、これらの装置は、いずれも、IEEE802.11規格シリーズに準拠し、低消費電力のNANの通信機能と相対的に高消費電力の無線LANの通信機能とを有するものとする。なお、各装置は、IEEE802.11規格シリーズ以外の無線通信規格による無線通信機能を有していてもよい。すなわち、無線通信ハードウェアを共有可能な複数の無線通信方式であって、少なくとも1つが低消費電力の無線通信方式であるような複数の無線通信方式をサポートする通信装置であれば、以下の議論を適用することができる。
ユーザ機器100は、例えば、液晶画面とタッチパネル等のユーザインタフェースを有し、電池駆動のモバイル機器であるがこれに限られない。ユーザ機器100は、例えば、可搬型の又は据え置き型の、主電源に接続された又は電池駆動の、通信機能付きの任意のタイプの装置でありうる。ユーザ機器100として用いられうるモバイル機器は、例として、スマートフォン、携帯電話、タブレットPC(Personal Computer)、ラップトップPC、ノートPC、携帯ゲーム機でありうる。また、本実施形態では、ユーザ機器100は、周辺のプリンタを検索し、検出したプリンタへ画像などのコンテンツデータを送信して印刷させる機能を有する。この機能を実現するための処理等のユーザ機器100において実行される処理は、OS(Operating System)及びその上で動作するアプリケーションのソフトウェアを、プロセッサ等のハードウェアによって動作させることにより実現されうる。
プリンタ101は、ユーザ機器100等の他の装置に対して印刷サービスを提供する。なお、プリンタ101は、無線通信機能のみならず、有線通信機能を有していてもよく、有線ネットワークを介して接続された装置による印刷要求に応じて、印刷サービスを提供しうる。なお、本実施形態では、印刷サービスを提供するプリンタ101が用いられる例について説明するが、プリンタ101は、例えばデータを蓄積するストレージサービスを実行する記憶装置等、他の任意のサービスを提供する装置と置き換えられてもよい。
上述のように、ユーザ機器100は、プリンタの検索に係る通信を低消費電力のNANで行い、印刷データの送信に係る通信を高速で相対的に消費電力の大きい無線LANで行う。ユーザ機器100と検索対象のプリンタとによるNANの通信は、2.4GHzの周波数帯域のチャネル6(2.437GHz)において、周期的に到来する所定長の期間として設定されるDWにおいて、双方向通信として実行される。なお、DWのスケジュールを共有している通信装置の集合は、NANクラスタと呼ばれる。DWは、512TUごとに16TUの期間として設定される。なお、「TU」は、Time Unitの頭字語であり、1TUは1024マイクロ秒である。ユーザ機器100とプリンタ101とが同じNANクラスタ110に属するときに、ユーザ機器100は、プリンタ101とDW期間において通信を行うことができる。なお、図1における1つ以上の他装置102も、同一のNANクラスタ110に属しうる。
NANクラスタには、NANクラスタに属していない端末に当該NANクラスタを認識させるための信号であるDiscovery Beaconを繰り返し送信する役割であるMasterとして動作する装置が含まれる。Discovery Beaconは、例えば100msごとにDW期間外のタイミングで送信される。また、Masterとして動作する装置は、各端末がDWを識別し、同期するためのビーコンであるSynchronization Beacon(以下では、Sync Beaconと呼ぶ。)をDW期間内に送信する。また、NANでは、Masterの他に、Non-Master Sync、Non-Master Non-Syncといった役割が定義されているが、ここでは説明を省略する。
本実施形態では、プリンタ101がNANクラスタ110のMasterとして動作するものとする。ユーザ機器100は、プリンタ101からDiscovery Beaconを受信することによってNANクラスタ110を認識し、さらにSync Beaconを受信することによってNANクラスタ110のDW期間を検出する。なお、NANクラスタ内でMasterとして動作する装置の変更は許容されているため、この後に、ユーザ機器100がMasterとして動作しうる。また、ユーザ機器100が、MasterとしてDiscovery Beaconを送信し、近くに存在するプリンタがそのDiscovery Beaconを受信することにより、NANクラスタ110が構成されてもよい。また、他装置102がMasterとして動作し、プリンタ101とユーザ機器100が他装置102から送信されたDiscovery Beaconを受信して、NANクラスタ110に参加するようにしてもよい。
ユーザ機器100とプリンタ101は、NANクラスタ110のDW期間内に印刷サービスの有無に関する情報を送受信する。ユーザ機器100は、サービスを検出または要求するためのメッセージであるSubscribeメッセージをDW期間内に送信することにより、印刷サービスを提供中の機器を検索していることを通知する。これに対して、プリンタ101は、サービスを提供していることを通知するためのメッセージであるPublishメッセージをDW期間内に送信することにより、印刷サービスを提供していることをユーザ機器100へ通知する。ユーザ機器100とプリンタ101は、さらに、追加の情報をFollow-upメッセージによって送受信してもよい。Publish、Subscribe、Follow-upといったメッセージは、Service Discovery Frame(SDF)と呼ばれるフレーム形式で送信される。なお、ユーザ機器100は、印刷サービスではないサービスを提供中の機器を検索する場合には、そのサービスを指定したSubscribeメッセージを送信する。それに対して、そのサービスを提供中の機器は、サービス提供中であることを示すPublishメッセージを送信する。
図2に、SDF200のフレーム構成を示す。SDF200は、IEEE802.11規格シリーズで規定されるMACフレームの一種であり、その送信元のNANデバイスのアドレスであるTransmitter Address201と、1つ以上のNAN Attribute202とを含む。なお、以下では、Transmitter AddressをTAと表記する。NAN Attributeには、複数の種別があり、その種別はAttribute IDにより定義され、種別ごとにAttribute Body Fieldの内容が定められる。Attribute IDの値が0x03のときのNAN Attributeは、Service Descriptor Attributeと呼ばれる。Service Descriptor AttributeのAttribute Body Fieldには、Service ID、Service Control、及び、Service Infoの各フィールドが含まれる。Service IDには、印刷サービス等のサービスの種別を表す情報を含めることができる。Service Controlには、Publish、Subscribe、Follow-upといったメッセージ種別を表す情報を含めることができる。Service Infoには、任意の情報を含めることができる。また、他の情報を送るためのNAN Attributeも定義されている。
ユーザ機器100は、プリンタ101から印刷サービスを提供中であることを示すPublishメッセージをDW期間内に受信すると、NANとは別の無線LAN接続をプリンタ101と確立する。例えば、プリンタ101が無線LANのアクセスポイント(AP)として動作し、ユーザ機器100が無線LANのステーション(STA)として動作してプリンタ101に接続しうる。なお、プリンタ101がSTAとして動作すると共にユーザ機器100がAPとして動作してもよいし、ユーザ機器100とプリンタ101が共にSTAとして動作して外部のAPに接続してもよい。すなわち、ユーザ機器100とプリンタ101とのうち、一方がアクセスポイントとして動作し、他方がステーションとして動作して通信することができれば足り、どちらがアクセスポイントとして動作するかについては限定されない。さらに、ユーザ機器100とプリンタ101は、Wi-Fi Direct規格に基づいて、P2P接続(直接接続)してもよい。このように、NANで接続相手を発見した後にNANとは別のネットワークにおいてデータ通信用の無線接続を確立することを、一般にPost NANと呼ぶ。ユーザ機器100とプリンタ101は、Post NANの無線接続を用いて、ユーザ機器100からプリンタ101へ印刷データを伝送する。なお、ユーザ機器100とプリンタ101は、NANのDW期間内の通信によってタイミング情報を交換し、好感されたタイミング情報に基づいてDW期間外で印刷データの通信を行うように構成されてもよい。すなわち、Post NANの無線接続を用いて印刷データを送信するのではなく、NANによる通信を用いて印刷データが送信されてもよい。このとき、DWの通信で用いられていた周波数チャネル(例えば6ch)が継続して用いられてもよいし、異なる周波数チャネルが用いられてもよい。異なる周波数チャネルが用いられることにより、印刷データの通信期間の一部がDWと重なってしまっても、信号の干渉による影響を抑えることができる。
印刷データの送信にPost NANを用いる場合は、ユーザ機器100とプリンタ101は、NANの規格に基づいて、Post NANで無線接続を確立するために必要な情報をSDFでやり取りする。例えば、プリンタ101が無線LANのAPである場合、プリンタ101は、SDFにNAN Attributeの一種であるWLAN Infrastructure Attributeを含める。そして、プリンタ101は、そのAttribute Body FieldにBSSID(Basic Service Set Identifier)を含めたSDFを送信する。ユーザ機器100は、受信したSDFに含まれているそれらの情報を用いて無線LAN接続を確立する。NAN Attributeの別の一種であるService Descriptor Attribute内のService InfoにBSSIDが含められてもよい。また、BSSID以外の、無線接続を確立するために必要な接続設定情報についても、NANの規格に基づいてSDFでやり取りされうる。
(ユーザ機器の構成)
続いて、ユーザ機器100の構成例について、図3を用いて説明する。ユーザ機器100は、一例において、制御部301、無線通信部302、表示部303、入力部304、タイマ305、メモリ306を有する。
制御部301は、例えば1つ以上のプロセッサによって構成され、メモリ306に記憶されている制御プログラムを実行することにより、ユーザ機器100全体を制御する。プロセッサは、一例において、CPU(Central Processing Unit)やMPU(Micro Processing Unit)であるが、これに限られない。例えば、FPGA(Field Programmable Gate Array)や、DSP(Digital Signal Processor)がプロセッサとして用いられてもよい。例えば、制御部301は、所定のコンパイラ及び所定の処理に対応するプログラムを用いてFPGA等のGate Array上の専用回路を自動的に生成して実行するように構成されうる。また、例えば、一部の処理をFPGA等によって実現し、他の処理をCPU等で実現するなど、複数のプロセッサ等の組み合わせによって制御部301が構成されてもよい。なお、制御部301は、制御プログラムを実行中に変数の値を記憶する際等、情報を記憶する様々な状況において1つ以上のメモリ306を使用することができ、また、メモリ306以外の記憶装置や、制御部301に内蔵されたメモリに情報を記憶させてもよい。また、制御部301は、タイマ305を用いて時間を計測することができる。
無線通信部302は、制御部301の制御により、無線LANおよびNANの規格に準拠した通信方式によって、他の装置(例えばプリンタ101)との間で、データの送信と受信との少なくともいずれかを行う。無線通信部302は、例えば、アンテナ、変復調回路、メディアアクセス制御等のためのプロセッサ等、無線LANおよびNANによる通信を行うために必須の構成及び機能を有する。上述の通り、無線LANによる通信及びNANによる通信では、無線通信部302を構成する通信用回路やアンテナ等の少なくとも一部が共用される。
表示部303は、制御部301の制御により、画像などのコンテンツ情報や、ユーザが入力部304を用いてユーザ機器100を操作するために必要な情報等の任意の情報をユーザに対して視覚的に提示する。例えば、表示部303は液晶画面や有機ELディスプレイである。なお、表示部303は、ディスプレイに代えて又はこれに加えて、聴覚や触覚等を通じてユーザに情報を提示するスピーカや振動子をさらに有してもよい。入力部304は、ユーザによる操作を受け付ける受付機能を有する任意のハードウェアでありうる。例えば、入力部304は、キーボードやマウスでありうる。また、入力部304と表示部303が一体化されたタッチパネル式ディスプレイが用いられてもよい。タイマ305は、例えば、制御部301によって与えられた契機により計時を開始し、計時開始時からの経過時間を測定する一般的なタイマである。メモリ306は、制御部301の制御プログラム、制御部301が制御プログラムを実行中に出力される変数の値、及び、画像等のコンテンツ情報等、様々な情報を保持する。
(処理の流れ)
続いて、上述のシステム及び装置の構成において実行される処理の流れのいくつかの例について、主としてユーザ機器100の観点から説明する。本処理は、例えば、ユーザ機器100において所定のアプリケーションが実行されたことに応じて開始される。
<処理例1>
ユーザ機器100によって実行される処理の第1の例について、図4を用いて説明する。処理が開始されると、制御部301は、無線通信部302を制御して無線LANをオフの状態とし、ユーザによるプリンタ検索操作を待ち受ける(S401、S402)。なお、ここでオフとされる対象は無線LANの一部の通信機能、例えば高速大容量通信機能のみであってもよいが、NANの通信機能もオフとされてもよい。制御部301は、S402において、アプリケーションの終了操作や、印刷等の所定のサービスに関する所定の終了処理が行われたと判定した場合には、図4の処理を終了する。このときの表示部303の表示内容の一例を、図5(A)及び図5(B)を用いて説明する。図5(A)の画面500は、所定のアプリケーションXが実行され、画像コンテンツが表示されている時の表示部303の表示内容である。図4の処理は、例えばこのアプリケーションXが開始されることによって、又は、このアプリケーションXにおいて画像コンテンツが表示された等の所定の処理が行われたことに応じて、開始されうる。制御部301は、表示中の画像コンテンツに対する操作を行うためのメニューボタン501がタップされると、表示部303を制御して図5(B)の画面502に遷移してメニューを表示させる。さらに、メニューの中の印刷ボタン503がタップされると、制御部301は、ユーザによってプリンタ検索操作が行われたと判定する。
制御部301は、プリンタ検索操作を検出すると、無線通信部302を制御してNANクラスタに参加させ、Discovery BeaconとSync Beaconとを受信してDW期間を検出させる(S403)。続いて、制御部301は、無線通信部302を制御して、そのDW期間に行う通信において、このNANクラスタに存在するプリンタを検索させる(S404)。ここで、S404で実行されるプリンタ検索処理について、図6を用いて説明する。
制御部301は、まず、メモリ306にあらかじめ保持されている印刷サービスを表す文字列を読み出す(S601)。この文字列は、NAN規格においてService Nameと呼ばれる文字列である。文字列は、例えば「print_service」でありうるが、他の文字列が用いられてもよい。また、例えば、「org.organization_xxx.print_service」のようにドメイン名を含む文字列が用いられてもよい。続いて、制御部301は、この文字列についてのハッシュ値を計算する(S602)。制御部301は、例えば、文字列をハッシュ関数SHA-256の入力とし、このハッシュ関数の出力結果の先頭48ビット(6バイト)を、ハッシュ値としうる。なお、ハッシュ値の計算は、制御部301が行うのではなく、無線通信部302が行うようにしてもよい。また、別の計算方法によってハッシュ値が計算されてもよい。また、場合によっては、文字列そのもの等の、文字列に対応するがハッシュ値ではない所定の値が用いられてもよい。
次に、制御部301は、タイマを起動し(S603)、所定期間の間、以下のS604~S607の処理を繰り返し実行する。S604では、所定期間は、例えば10秒間であるが、これに限られず、任意の時間長が所定期間として用いられうる。制御部301は、無線通信部302を制御して、DW期間において、Subscribeメッセージを送信させる(S604)。ここでのSubscribeメッセージは、Service ControlにSubscribeメッセージであることを特定する情報が設定され、S602で取得したハッシュ値と一致するService IDを含んだSDFによって送信される。
続いて、制御部301は、無線通信部302を制御して、DW期間において、上述のハッシュ値と一致するService IDを含んだPublishメッセージを受信させる(S605)。例えば、無線通信部302は、Service IDに基づいてフィルタする機能を有する場合には、上述のハッシュ値をService IDに設定されていないPublishメッセージを遮断するように設定されうる。無線通信部302は、Service IDが一致するPublishメッセージを受信すると、そのことを制御部301に通知する。制御部301は、無線通信部302からこの通知を受け取ると、そのPublishメッセージの送信元の装置が印刷サービスを提供しているプリンタであると判定する。そして、制御部301は、このPublishメッセージのTAと、同じTAから受信したNAN Attributeの内容とを関連付けてメモリ306に記憶させ、これをプリンタ検索結果として保存する。制御部301は、所定時間の間、S604~S607の処理を実行した後に図6の処理を終了する。
なお、NANの規格では、Publishメッセージの送信方法として、2つの動作が規定されている。Subscribe信号に応答する形でPublish信号が送信されるSolicited Publishと、Subscribe信号がなくても繰り返しPublish信号が送信されるUnsolicited Publishである。図6の処理において、Unsolicited Publishを行うプリンタのみを検索する場合は、S604におけるSubscribeメッセージの送信は省略されてもよい。
図7に、S404のプリンタ検索処理によってメモリに保存されるプリンタ検索結果700の例を示す。例えば、TA=01-23-45-67-89-BBの装置から、S602で計算されたハッシュ値と一致するService IDを含むPublishメッセージを受信したものとする。さらに、このPublishメッセージのService Infoに、プリンタ名を表す情報として「13階オフィス南側プリンタ」という文字列が含まれていたものとする。また、同じTAの送信元から、NAN Attributeの1つであるWLAN Infrastructure Attributeにおいて、BSSID=「BB-BB-BB-BB-BB-BB」という情報を受信したものとする。この場合、情報701に示すように、TA、プリンタ名、及びBSSIDが関連付けられた情報がメモリ306に保存される。他のTAの装置からも同様の情報を受信した場合は、TAごとに、情報701のような情報を記憶する。保存されるNAN Attributeの内容は、受信した情報の一部または全部でありうる。図7のプリンタ検索結果700は、4台のプリンタが発見された場合の例である。
図4に戻り、プリンタ検索処理によって1台以上のプリンタを検出した場合(S405でYES)、制御部301は、その検索結果に基づいてプリンタ選択画面を表示部303に表示させ、接続すべきプリンタのユーザ選択を待ち受ける(S406)。そして、制御部301は、無線通信部302を制御して、S401においてオフとしていた無線LANの高速大容量の通信機能をオンとして、ユーザに選択されたプリンタとのNANとは別の無線LANの接続を確立する(S407)。なお、プリンタ検索処理(S404)でプリンタが検出されなかった場合(S405でNO)、制御部301は、プリンタが発見されなかったことを、例えば表示部303を介した情報提示によって、ユーザに通知し(S409)、処理をS401に戻す。
図8(A)に、S406で表示されるプリンタ選択画面800の例を示す。プリンタ選択画面800では、プリンタ検索結果700として記憶されているNAN Attributeのプリンタ名の情報が、TA別に一覧表示される。これらの情報は、アルファベット順や文字コード順等の任意の順序で表示されうる。また、制御部301は、過去にユーザに選択されたTAをメモリ306に記憶しておき、選択されたことのあるTAを最上位に示す等の選択が容易になる形式で表示するようにしてもよい。すなわち、過去の接続履歴情報に基づく表示制御を行ってもよい。制御部301は、ユーザが表示された情報のうちの1つの情報801をタップしたことを検出すると、プリンタ検索結果700のうちの対応する情報701を参照し、その情報701に対応するBSSIDを取得する。そして、制御部301は、無線通信部302を制御して、このBSSIDを宛先とするProbe Requestを送信させる。無線通信部302は、その後、Probe Responseを受信し、それに続いて、AuthenticationとAssociationの手続きを行うことによって、無線LANの接続を確立する。なお、Probe Requestの送信等、無線LANの接続確立のための手続きは、一般的な無線LANの接続手順と同様であるため、説明を省略する。なお、無線通信部302は、ここで用いるセキュリティキーとして、NAN Attributeによってプリンタ101から受信されたものを用いてもよいし、入力部304を介したユーザ入力によって取得されたものを用いてもよい。また、取得されたセキュリティキーは、BSSIDと関連付けてメモリ306に保持されてもよい。この場合、無線通信部302は、後に同じBSSIDのプリンタと接続する際にメモリ306を参照することにより、2回目以降のユーザ入力を省略することができる。
なお、制御部301は、S406において表示される画面として、図8(B)に示すような、プリンタのみならず、その他の種別の機器についての検索結果をも含んだ画面810を表示させてもよい。プリンタ以外の種類の機器は、図6のS604およびS605で用いられるハッシュ値の計算に入力する文字列を、プロジェクタやスピーカ等、印刷サービス以外のサービスに対応する文字列とすることによって検索される。その他の処理はプリンタの検索処理の場合と同様である。このとき、検索処理が文字列ごとに行われるため、制御部301は、プリンタとそれ以外の機器の検索結果を、画面810に示すように、それぞれ別個に表示することができる。また、S406では、S607におけるタイムアウトを待ってから検索結果を表示するのではなく、所望のサービスを提供している装置が発見された時点で、その都度、検索結果の表示を行うようにしてもよい。その場合、例えば、図8(A)で表示される検索結果の一覧は、リアルタイムに更新されていくように表示されることになる。このように表示することで、S607のタイムアウトの経過を待たなくとも、ユーザは使用するプリンタを選択できるようになる。
制御部301は、S407の無線LANの接続確立の後、さらに無線通信部302を制御して、その無線接続を用いてプリンタに印刷データを送信する(S408)。制御部301は、印刷データの送信を完了すると、処理をS401に戻す。ここで送信される印刷データは、例えば、図5の画面500でプリンタ検索操作がなされた場合、画面500に含まれる画像コンテンツである。なお、印刷データは、図5の画面500によらない方法でプリンタ検索操作がなされた場合、S408の時点で確定していない場合がありうる。この場合、制御部301は、S408において、印刷対象をユーザに選択させるメニューを表示部303に表示させてもよい。また、この場合、制御部301は、メニューを表示させた後に所定時間にわたって印刷すべきデータが確定されない場合や、ユーザがキャンセル操作を行った場合に、印刷データを送信せずに処理をS401に戻してもよい。また、制御部301は、S408において印刷すべきデータの選択を受け付けるメニューを表示するのではなく、S407の無線LANの接続処理の前にメニューを表示するように制御を行ってもよい。この場合、制御部301は、印刷データが確定されるまで、S407の無線LANの接続処理を実行せずに待機するように無線通信部302を制御してもよい。
続いて、無線通信システムにおける処理の流れの例について、図9を用いて説明する。図9の開始時点において、プリンタ101は、Discovery BeaconとSync Beaconとを繰り返し送信しており、またユーザ機器の無線LANはオフの状態である(F901、S401)。その後、ユーザが、ユーザ機器100に対してプリンタ検索操作を実行する(F902)。ユーザ機器100は、このプリンタ検索操作に応答して、Discovery BeaconとSync Beaconとを受信し(F903、F904)、DW期間を検出し、NANクラスタに参加する(S402、S403)。そして、ユーザ機器100は、DW期間においてSubscribeメッセージを送信し(F905)、Publishメッセージを受信する(F906)ことにより、プリンタを検索する(S404)。そして、ユーザ機器100は、プリンタを検索した結果を表示し(F907)、ユーザのプリンタ選択操作を待ち受ける(S406)。そして、ユーザ機器100は、プリンタ選択操作を検出すると(F908)、無線LANの高速大容量通信機能をオンにして、プリンタ101に対してProbe Requestを送信する(F909)。その後、ユーザ機器100は、Probe Responseを受信して(F910)、プリンタ101との間で無線LANの高速大容量通信のための接続を確立し(F911、S407)、印刷データを送信する(F912、S408)。そして、ユーザ機器100は、印刷データの送信を完了すると、無線LANをオフとして(S401)、ユーザによるプリンタ検索操作を待ち受ける状態に戻る(S402)。なお、F909~F912のPost NANの接続は、プリンタ101が無線LANのAP、ユーザ機器100が無線LANのSTAとして確立されうるが、これに限られない。例えば、ユーザ機器100とプリンタ101は、Attribute ID=0x06のNAN AttributeによってP2P Device Role等のP2P接続に必要な情報を取得し、この情報を用いて無線LANのP2P接続を行ってもよい。また、Post NANを用いずにNANの接続を用いて印刷データの送信を行ってもよい。すなわち、ユーザ機器100とプリンタ101は、NAN Attributeによって通信タイミング情報をやりとりし、無線LAN接続を確立することに代えて、NANの接続を維持して、DW期間外の期間において印刷データの伝送を行ってもよい。
図9を用いて説明したように、ユーザ機器100は、プリンタ選択操作の後から印刷データの送信を完了するまでの期間でのみ、無線LANの高速大容量通信機能をオンとしており、それ以外の期間ではこの機能はオフとされる。また、ユーザ機器100は、プリンタ検索操作の際に周辺にプリンタが存在しない場合は、無線LANの高速大容量通信機能はオンとはならない。すなわち、ユーザ機器100の無線LANの機能のうち、比較的消費電力の大きい機能は、プリンタと接続する必要があり、かつ、プリンタと接続可能な期間においてのみオンとなる。また、ユーザ機器100は、通信用回路等を共有できないBLE等の他の無線通信方式を用いずに、プリンタ等の接続相手装置の検出を行う。したがって、本処理例のユーザ機器100は、装置のコストを抑えながら、かつ、低消費電力で、通信相手装置(例えばプリンタ101)との無線接続を確立することができる。また、その後に通信方式を切り替えて大容量のデータの伝送を行うことができる。
なお、本処理例では、ユーザ機器100は、DW期間に送信されたSDFによって、Service IDを含むNAN Attributeを受信し、そのService IDの値に基づいてプリンタを検索するものとした。しかしながら、Discovery BeaconやSync Beaconにも、Service IDを伴うNAN Attributeが含められる場合がある。このため、ユーザ機器100は、Discovery BeaconやSync Beaconを受信した際にService IDを検出した場合、そのBeaconに含まれるTAとService IDとを、プリンタ検索結果700に加えてもよい。これにより、ユーザ機器100は、Discovery BeaconやSync BeaconでService IDを送信しているプリンタを発見することができる。
なお、上での説明では、アプリケーションXが開始されることによって、又は、このアプリケーションXにおいて画像コンテンツが表示された等の所定の処理が行われたことに応じて、図4の処理が開始されると説明したが、これに限られない。例えば、ユーザ機器100の電源が投入されたことやスリープ状態からの復帰操作によって、図4の処理が開始されてもよい。また、上での説明では、ユーザによるプリンタ検索操作が明示的に行われるものとしたが、これに限られない。例えば、上述の図4の処理が開始される条件が満たされたことによってプリンタ検索操作があったものとみなし、例えばユーザ機器100が動作している間は常にNANクラスタに参加した状態を維持してもよい。この場合、制御部301は、例えば印刷データが確定したことに応じて、S404のプリンタ検索操作を実行してもよい。また、S404のプリンタ検索操作のうちのS604~S606の処理をバックグラウンド処理として行っておき、制御部301は、印刷データが確定した時点で、S405の処理を実行するようにしてもよい。
<処理例2>
本処理例では、ユーザ機器100が、過去に無線LANの高速大容量通信機能を用いて通信を行ったことがあるプリンタが存在する場合に、まずそのプリンタとの接続を試行して、接続の確立に成功しなかった場合に、図4と同様の処理を実行する。一方、ユーザ機器100が、過去に無線LANの高速大容量通信機能を用いて通信を行ったことがあるプリンタとの接続の確立に成功した場合、図4のような処理を実行せずに、そのプリンタに対して印刷データを送信する。これにより、不必要にプリンタを探索することがなくなる。この処理の流れについて、図10を用いて説明する。
制御部301は、S402においてプリンタ検索操作を検出すると、無線LANの高速通信機能をオンにして、過去に高速大容量通信機能によって接続したプリンタとの接続を試行する(S1001)。ここで、過去に接続したプリンタが複数存在する場合には、直近に接続したプリンタから優先的に接続を試行するようにしてもよい。又は、過去に接続した複数のプリンタを表示し、接続を試行するプリンタをユーザに選択させるようにしてもよい。そして、制御部301は、S1001における接続に成功した場合(S1002でYES)、その接続によってプリンタに印刷データを送信する(S408)。一方、制御部301は、この接続に成功しなかった場合(S1002でNO)は、無線LANの高速通信機能をオフとする(S1003)。そして、制御部301は、処理例1と同様に、NANによってプリンタを検索し、発見したプリンタと高速大容量通信機能による接続を確立して印刷データを送信する(S403~S408)。制御部301は、プリンタに印刷データを送信した後に、無線LANをオフとする前に、このプリンタとの接続を確立した際に使用した接続設定情報をメモリに保存する(S1004)。
このように、本処理例2では、ユーザ機器100が、ユーザ機器が以前接続したことがあるプリンタと通信可能な場所に存在する場合は、S403~S407の処理を省略する。これにより、ユーザ機器100は、より短時間でプリンタと接続確立して印刷を行うことができる。また、ユーザによるプリンタ選択も省略されうるため、ユーザの操作を簡略化することができる。なお、S1004において保存する情報には、プリンタ検索結果700のようにNAN Attributeで取得したプリンタ名などの情報が追加されてもよい。
ここでは、S402におけるプリンタ検索操作を待つ際の画面表示は、図5(A)の画面500に代えて、図11(A)の画面1100のようなものが用いられうる。図5(A)のアプリケーションXでは、コンテンツが選択された後にユーザ機器100がプリンタと接続するが、図11(A)のアプリケーションYでは、ユーザ機器100がプリンタと接続した後にコンテンツが選択される。制御部301は、例えば、S402において図11(A)のアプリケーションYが起動されたことにより、プリンタ検索操作が行われたと認識しうる。そして、制御部301は、前回接続したプリンタとの接続を試行し(S1001)、成功した場合(S1002でYES)に、情報1101のように、接続が確立されたプリンタの情報を画面に表示させる。このとき、情報1101として、例えばS1004で保存されたNAN Attributeの情報を参照して、プリンタ名などが表示されてもよい。
S408で送信する印刷データは、メニュー1103においてユーザが選択した内容に基づいて決定される。なお、ユーザ機器100は、確立された接続によって、印刷データをプリンタへ送信することに代えて、プリンタでスキャンした画像等のコンテンツデータをプリンタから受信するように構成されてもよい。
また、ユーザ機器100は、画面1100にボタン1102を設け、他のプリンタを検索する操作が検出された場合に、処理をS403に移行させて、プリンタ検索処理を実行するようにしてもよい。さらに、ユーザ機器100は、プリンタ検索処理を開始する前に、図11(B)の画面1110を表示し、複数のプリンタ検索手法の中でNANが選択された場合に、S403以降の処理を行うようにしてもよい。
<処理例3>
本処理例では、ユーザ機器100は、NAN機能の許可/不許可や、NAN機器を検索するための端末設定メニューを有するように構成される。本処理例では、制御部301は、図4のS402でプリンタ検索操作を待ち受ける際に、所定の操作に応じて、図12(A)の画面1200に示すような、端末設定メニューを開くように制御する。例えば、ユーザ機器100がスマートフォンである場合、図5(A)の画面500の上部をフリックすることにより、図12(A)の画面1200のような端末設定メニューが開かれるような制御が行われる。また、例えば図5(A)の画面500において、端末設定メニューに対応するボタンを表示し、そのボタンがタップされたときに端末設定メニューを開くなど、他の方法で端末設定メニューが開くようにユーザ機器100が構成されてもよい。なお、画面1200は、端末設定メニューの表示例に過ぎず、同様の趣旨の情報を提示する他の表示が行われてもよい。
画面1200において、「アイコン3」は、NANを示すアイコンであり、この「アイコン3」のタップが検出される度に、ユーザ機器100におけるNAN機能の許可/不許可が変更される。例えば、許可状態のときは、画面1210のように、アイコン3はそのまま表示され、不許可状態のときには、画面1200のように、アイコン3に斜線1201が重ねられた表示が行われる。制御部301は、これにより、ユーザに対して、現在のNAN機能が有効とされているか否かの状態を提示する。なお、画面1200及び画面1210は一例に過ぎず、例えばアイコンをグレーアウト表示するなど、他の任意の表示手法によって、NAN機能の許可/不許可の状態が提示されてもよい。制御部301は、例えば、メモリ306に、NANの許可/不許可の状態を示す情報を記憶しておき、例えば図4のS402でプリンタ検索操作が行われたことを検出した際にNAN機能が不許可状態である場合、処理をS403に進めずにS409へ進める。また、この場合、制御部301は、S409において、プリンタが発見されない理由として、NAN機能が不許可状態であることを示す情報をユーザに提示してもよい。また、この場合、制御部301は、S409において、画面1200をポップアップ表示して、NAN機能を有効化するようにユーザに促してもよい。
また、制御部301は、画面1200の「アイコン1」により、無線LANの高速大容量通信の許可/不許可を変更できるようにしうる。この場合、制御部301は、無線LANの高速大容量通信の許可/不許可の状態を示す情報を記憶しておく。そして、制御部301は、無線LANの高速大容量通信機能が不許可状態の場合、図4のS407において、この機能をオンにせずに処理を終了してもよい。また、この場合に、制御部301は、無線LANの高速大容量通信機能がオンとされなかった理由として、無線LANの高速大容量通信が不許可状態であることを表示してもよい。また、制御部301は、NAN機能の許可/不許可と無線LANの高速大容量通信機能の許可/不許可とについて、同一のアイコンによって情報の提示又はその切り替え操作の受付を行ってもよい。また、画面1200におけるNAN機能を表す文字またはボタン1202は、無線LANの高速大容量通信機能と共用とされてもよい。すなわち、制御部301は、ボタン1202によって、NAN機能や無線LANの高速大容量通信機能等の機能種別の選択を受け付け、アイコンがタップされたことに応じて、選択された機能の許可/不許可を切り替える制御を行ってもよい。
なお、制御部301は、画面1200においてNANを表す文字またはボタン1202がタップされた場合、プリンタ検索操作が行われたと判定して、図4のS403以降の処理を行うように制御してもよい。すなわち、制御部301は、NAN機能が有効化されるという、NANによる周辺機器の検索を開始するための操作があったことに応じて、図4のS403以降の処理を行いうる。
本処理例によれば、航空機内や病院など、電波の発信を抑制すべき場所において、ユーザの意図に反してユーザ機器からNANや無線LANの通信のための電波が発信されることを抑制することができる。
なお、上述の各処理例では、NAN Attributeに含まれるService IDに基づいて、所定のサービスを提供する装置を検索する例について説明したが、これに限られない。例えば、NAN Attributeに含まれるService Infoの値に基づいて、所定のサービスを提供する装置が検索されてもよい。また、上述の各処理例では、Service IDやService Infoの情報が、ユーザ機器100の保持する所定値のハッシュ値と一致するか否かの判定を行ったが、これに限られない。すなわち、Service IDやService Infoの情報が、ハッシュ値とは異なる所定の値であるか否か等、他の基準で判定が行われてもよい。
上述の各処理例によれば、ユーザ機器100は、少なくとも一部の通信用回路を共用できる複数の無線通信方式のうち、消費電力の低い第1の方式で所定のサービスを提供する他の装置を検索する。そして、ユーザ機器100は、検索した結果に基づいて、上述の複数の無線通信方式のうち、相対的に消費電力が高く、高速大容量通信が可能な第2の方式での接続を、発見された他の装置との間で確立して通信を行う。これにより、ユーザ機器100は、装置のコストを抑えながら、かつ、低消費電力で、通信相手装置を発見することができる。例えば、NANと無線LANの高速大容量通信とでは、物理層の構成やパケット構造が同じであるため、BLE等の別の無線通信方式を用いる場合と比較して、ユーザ機器100及びプリンタ101の部品コストを低減することができる。すなわち、無線LAN通信機能を有する無線チップは、ファームウェア更新によりNANにも対応できる場合がある。この場合、部品コストは増大しない。また、NANは間欠通信方式であるため、ユーザ機器側のバッテリ消費も、BLE等と同様に抑えることができる。
<その他の実施形態>
上述の各処理例では、プロセッサである制御部301が、メモリ306のような記憶装置に記憶されたプログラムを実行することによって、図4等の処理を実行すると説明したがこれに限られない。例えば、上述の各処理は、その一部又は全部が専用のハードウェアによって行われてもよい。また、例えば、無線通信部302に含まれるプロセッサ等の制御によって、上述の各処理例の一部又は全部が実行されてもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。