以下に図面を参照して、本発明の好適な実施形態を例示的に説明する。ただし、本発明については、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて、以下に記載する実施形態に対して適宜変更、改良が加えられたものについても本発明の範囲に入ることが理解されるべきである。
(第1実施形態)
本実施形態の通信システムに含まれる情報処理装置及び通信装置について説明する。本実施形態では、情報処理装置としてスマートホン、通信装置としてプリンタを例に挙げて説明する。なお、情報処理装置として、本実施形態ではスマートホンを例示しているが、これに限定されず、携帯端末、ノートPC、タブレット端末、PDA(PersonalDigital Assistant)、デジタルカメラ等、種々のものを適用可能である。また、通信装置として、本実施形態ではプリンタを例示しているが、これに限定されず、情報処理装置と無線通信を行うことが可能な装置であれば、種々のものを適用可能である。例えば、プリンタであれば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等に適用することができる。また、プリンタのみならず複写機やファクシミリ装置、携帯端末、スマートホン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ等にも適用可能である。その他、複写機能、FAX機能、印刷機能等の複数の機能を備える複合機にも適用可能である。
まず、本実施形態の情報処理装置と、通信装置の構成について図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次電池によってデータが保持されていても良い。その場合、RAM105は、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、情報処理装置101の設定情報や情報処理装置101の管理データ等を格納するメモリエリアもRAM105に設けられている。また、RAM105は、CPU103の主メモリとワークメモリとしても用いられる。
外部記憶装置106は、印刷実行機能を提供するアプリケーション、通信装置151が解釈可能な印刷ジョブを生成する印刷ジョブ生成プログラム等を保存している。また、外部記憶装置106は、通信部109を介して接続している通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムや、これらのプログラムが使用する各種情報を保存している。
出力インタフェース107は、表示部108がデータの表示や情報処理装置101の状態の通知を行うための制御を行うインタフェースである。
表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や情報処理装置101の状態の通知を行う。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを設置することで、表示部108を介してユーザからの入力を受け付けても良い。
通信部109は、通信装置151やアクセスポイント131等の装置と接続して、データ通信を実行するための構成部である。通信部109は、例えば、通信装置151内のアクセスポイント(不図示)に接続可能である。通信部109と通信装置内のアクセスポイントが接続することで、情報処理装置101と通信装置151は相互に通信可能となる。なお、通信部109は無線通信で通信装置151とダイレクトに通信しても良いし、情報処理装置101や通信装置151の外部に存在する外部装置を介して通信しても良い。なお、外部装置とは、情報処理装置101や通信装置151の外部に存在するアクセスポイント(アクセスポイント131等)や、アクセスポイント以外で通信を中継可能な装置を含む。無線通信方式としては、例えば、Wi−Fi(WirelessFidelity)(登録商標)やBluetooth(登録商標)等が挙げられる。また、アクセスポイント131としては、例えば、無線LANルーター等の機器などが挙げられる。なお、本実施形態において、情報処理装置101と通信装置151とが外部アクセスポイントを介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101と通信装置151とが外部アクセスポイントを介して接続する方式をインフラストラクチャー接続方式という。本実施形態では、情報処理装置101は、通信部109を介して、通信装置151に印刷を行わせるための印刷ジョブを送信する。なお、送信されるジョブは、印刷ジョブに限定されず、通信装置151にスキャンを行わせるためスキャンジョブや、通信装置151の設定を変更するための設定コマンド等であっても良い。
近距離無線通信部110は、通信装置151等の装置と近距離で無線接続して、データ通信を実行するための構成部であり、通信部109とは異なる通信方式によって通信を行う。近距離無線通信部110は、通信装置151内の近距離無線通信部157と接続可能である。なお、本実施形態では、近距離無線通信部110の通信方式として、Bluetooth(登録商標) Low Energy(BLE)が用いられる。すなわち、近距離無線通信部110は、BLEユニットを有する。すなわち、近距離無線通信部110は、BLEユニットを有する。BLEユニットは、無線通信の処理を行うマイクロプロセッサであるマイコンと、無線通信によるデータの送受信を行う無線通信回路を含む。なお、マイコンは、RAMとフラッシュメモリが搭載されている。そのため、近距離無線通信部110は、後述するアドバタイズ情報の受信や、近距離無線通信部157とのGATT通信に利用される。なお、近距離無線通信部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接続要求の受信、近距離無線通信部110とのGATT通信に利用される。
入力インタフェース158は、物理キーボードやボタン、タッチパネル等の操作部(不図示)を介して、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースである。なお、後述の表示部160と操作部とは、少なくとも一部が一体であってもよく、例えば、画面の出力とユーザからの操作の受け付けを同一の画面において行うような形態としても良い。出力インタフェース159は、表示部160がデータの表示や通信装置151の状態の通知を行うための制御を行うインタフェースである。
表示部160は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や通信装置151の状態の通知を行う。なお、表示部160上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトウェアキーボードを設置することで、表示部160を介してユーザからの入力を受け付けても良い。
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に保存される情報は、当該メモリに保存されても良い。
また、本実施形態の通信装置151は、後述の接続設定処理により接続モードが設定され、設定された接続モードに基づいた接続形態により、情報処理装置と通信を行う。本実施形態の通信装置は、インフラストラクチャー接続により通信を行う場合は、接続モードとしてインフラストラクチャー接続モードが設定され、ダイレクト接続により通信を行う場合は、接続モードとしてダイレクト接続モードが設定される。
本実施形態では、情報処理装置101がマスタ装置として動作し、通信装置151がスレーブ装置として動作する。ここでは、例として情報処理装置101と通信装置151との処理分担を上記のように示したが、特にこの分担形態に限らず他の形態であってもよい。
ここで、BLE規格におけるアドバタイズ情報の送信及びBLE接続要求の受信の処理について説明する。本実施形態では、近距離無線通信部157がスレーブ機器として動作するため、近距離無線通信部157が上記処理を行うものとする。
近距離無線通信部157は、後述のGATT通信(BLE通信)において、2.4GHzの周波数帯を40チャネル(0〜39ch)に分割して通信を行う。近距離無線通信部157は、そのうち、37〜39番目のチャネルをアドバタイズ情報の送信やBLE接続要求の受信に利用し、0〜36番目のチャネルをBLE接続後のデータ通信に利用している。図2では、縦軸が近距離無線通信部157の消費電力を、横軸が時間を示しており、1つのチャネルを利用してアドバタイズ情報を送信する際の消費電力を各処理別に示している。Tx205は、アドバタイズ情報をブロードキャストする処理(以下「送信処理」という。)における総消費電力を、Rx206は、BLE接続要求を受信するための受信器を有効にしておく処理(以下、「受信処理」という。)における総消費電力を示している。送信電力202は送信処理による瞬間消費電力を示している。また、受信電力203は受信処理による瞬間消費電力を示している。また、マイコン動作電力201は、近距離無線通信部157内のマイコンが動作している場合の瞬間消費電力を示している。なお、Tx205とRx206の前後や間にもマイコンが動作しているのは、送信・受信処理の実行や停止のためには事前にマイコンが起動している必要があるからである。また、アドバタイズ情報の送信を複数チャネルで行う場合は、アドバタイズ情報の送信を行うチャネルの数だけ消費電力が増えることになる。また、マイコンが動作を行っておらず、近距離無線通信部157が省電力状態となっている間は、スリープ電力204が近距離無線通信部157の瞬間消費電力となる。このように、近距離無線通信部157は、所定のチャネルを用いて送信処理を行った後、同一のチャネルを用いて一定時間受信処理を行うことで、情報処理装置101からBLE接続要求が送信されるのを待つ。近距離無線通信部157は、情報処理装置101からBLE接続要求を受信した場合、BLE接続を確立し、情報処理装置101とGATT通信を行う。
また、近距離無線通信部157は、図3に示すように、アドバタイズ情報の送信処理と受信処理を、チャネル別に3回繰り返した後、マイコンの動作を停止させ一定時間省電力状態になる。以下、所定のチャネルによるアドバタイズ情報の送信処理と受信処理の組み合わせをアドバタイズと言う。また、所定のチャネルによってアドバタイズ情報を送信する時間間隔、すなわち、あるチャネルによってアドバタイズ情報を送信し、同じチャネルによって次にアドバタイズ情報を送信するまでの時間間隔をアドバタイズ間隔という。なお、1回目のアドバタイズを行ってから省電力状態になるまでに繰り返すアドバタイズの回数は、3回以下であれば任意に変更可能である。
また、本実施形態では、情報処理装置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に、図4(a)に示すようなPINコード表示画面400を表示する。PINコード表示画面400には、PINコード401と、ペアリング処理をキャンセルするためのCancelボタン402が表示される。そして、情報処理装置101は、ペアリング要求を送信すると、表示部108に、図4(b)に示すようなPINコード入力画面410を表示する。PINコード入力画面410には、PINコード入力領域411と、OKボタン413と、Cancelボタン412が表示される。PINコード入力領域411は、ユーザによるPINコード401の入力を受け付けるための領域である。OKボタン413は、入力されたPINコード401を通信装置151に送信するためボタンである。Cancelボタン412は、ペアリング処理をキャンセルするためボタンである。PINコード入力領域411にPINコード401が入力された状態で、OKボタン413が押下されると、情報処理装置101は、入力されたPINコード401を含む情報を通信装置151に送信する。通信装置151は、受信した情報に含まれるPINコード401が、PINコード表示画面400に表示したPINコード401と一致するか否かを判定し、一致すると判定した場合は、情報処理装置101にペアリングを許可する。具体的には、通信装置151は、PINコード401をもとに所定の方法で作成されたリンクキーを、BLE規格のSMP(Security Manager Protocol)を利用して情報処理装置101に送信する。このようにして、リンクキーは、情報処理装置101の持つ記憶領域(ROM104等)と通信装置151の持つ記憶領域(ROM152等)にそれぞれ保存される。これによりペアリングが完了し、以降、装置間でBLE通信を実行することが許可される。なお、情報処理装置101は、ペアリングが完了すると、PINコード表示画面400を非表示とし、元の画面を再度表示する。
ペアリング完了後は、情報処理装置101は、通信装置151に対してGATT通信要求を送信する際には、ペアリング処理時に記憶領域に保存したリンクキーを通信装置151に通知する。通信装置151は、GATT通信要求を受信した場合、ペアリング処理時に記憶領域に保存したリンクキーと通知されたリンクキーを比較して、GATT通信要求を発信している装置が、ペアリング済みの装置であるかを確認する。そして、通信装置151は、ペアリング済みの装置であると確認できた場合は、情報処理装置101とのGATT通信による情報の読み書きを開始する。これにより、情報処理装置101は、一旦通信装置151とのペアリング処理を完了しておけば、以降はユーザによるPINコードの入力なしに通信装置151とのGATT通信を実行することができる。なお、上述では、PINコード入力領域411に、PINコード入力画面410に表示されているPINコード401をユーザに入力させる形態を説明したが、この形態に限定されない。例えば、PINコード401を固定の(ユーザが任意に変更できない)情報とし、後述の印刷アプリのインストールと共に情報処理装置101に格納される形態としても良い。これにより、ユーザの入力なしにPINコード401が通信装置151に通知される。また、ペアリング処理が開始されるタイミングも上述の形態に限定されず、例えば、印刷アプリを介してユーザが印刷を指示したタイミングや、後述の接続設定処理においてBLE接続が行われる前のタイミング等であっても良い。
ここで、通信装置151のネットワーク状態を設定する処理(接続設定処理)について説明する。接続設定処理とは、どのような接続形態で情報処理装置101等の他の装置と接続させるかを通信装置151に設定する処理である。本実施形態では、上述したインフラストラクチャー接続形態で他の装置と接続させる場合、接続設定処理によって、インフラストラクチャー接続モードを通信装置151に設定する。そして、上述したダイレクト接続形態で他の装置と接続させる場合、接続設定処理によって、ダイレクト接続モードを通信装置151に設定する。また、本実施形態では、接続設定処理において、少なくとも2つの異なる通信方式による通信を利用する。そこで、本実施形態では、近距離無線通信部110および近距離無線通信部157はBLEによって通信を行うものとして説明する。なお、本実施形態では、近距離無線通信部157が、後述のアドバタイズ情報をブロードキャストするアドバタイザ(又はスレーブ)として機能し、近距離無線通信部110が、アドバタイズ情報を受信するスキャナ(又はマスタ)として機能する。また、通信部109および通信部156は無線LAN(Wi−Fi)によって通信を行うものとして説明する。情報処理装置101は、ROM104や外部記憶装置106等に格納されている所定のアプリケーションを用いて、接続設定処理を行う。所定のアプリケーションとは、通信装置151の接続先のアクセスポイントの設定を行ったり、通信装置151に情報処理装置101内の画像データや文書データ等を印刷させるためのアプリケーションであり、以後印刷用アプリという。なお、印刷用アプリは、通信装置151の接続先のアクセスポイントを設定する機能や印刷機能以外に、他の機能を備えていても良い。例えば、印刷用アプリは、通信装置151がスキャン機能を備えている場合に、通信装置151にセットされた原稿をスキャンさせる機能や、通信装置151の他の設定を行う機能、通信装置151の状態を確認する機能等を備えていても良い。
図7は、印刷用アプリが起動されると表示部108に表示される画面の一例である。起動画面700を介して、ユーザは、所望の画像の印刷や通信装置の設定等、通信装置の備える機能を利用することができる。情報処理装置101は、プリンタセットアップボタン703が押下されたことを検知すると、接続設定処理を開始する。なお、本実施形態では、通信装置151に対して接続設定処理を行うためには、通信装置151を接続設定モードに移行させる必要があるものとする。接続設定モードとは、通信装置151に対して接続モードを設定する場合に、通信装置151に設定されるモードであり、通信装置151が備える操作部に対してユーザから所定の入力が行われた場合等に、通信装置151に設定される。通信装置151は、接続設定モードである場合、近距離無線通信部157を介してアドバタイズ情報の送信を開始する。なお、通信装置151がアドバタイズ情報の送信を開始するタイミングは、上述の形態に限定されず、例えば、通信装置151の電源がONになったタイミングや、BLE機能を有効にするための所定の操作が行われたタイミング等であっても良い。この場合は、通信装置151に対して接続設定処理を行うために、通信装置151に接続設定モードが設定される必要はない。
図5は、本実施形態における情報処理装置101が実行する接続設定処理を示すフローチャートである。図5のフローチャートが示す処理は、例えば、CPU103がROM104等のメモリに格納されたプログラムをRAM105に読み出して実行することにより実現される。また、図5のフローチャートが示す処理は、情報処理装置101と通信装置151との間でペアリングが完了している状態で、プリンタセットアップボタン703が押下された場合に開始されるものとする。また、このとき、通信装置151は、接続設定モードに移行しているものとする。
S501では、CPU103は、近距離無線通信部110を介して、通信装置151から発せられるアドバタイズ情報の受信を検知する。このとき、CPU103は、受信したアドバタイズ情報に含まれるアドバタイズタイプが、通信装置151に対する接続要求を許可するADV_IND、もしくはADV_DIRECT_INDであるか否かを確認する。CPU103は、該当するタイプのアドバタイズ情報を受信した場合に、アドバタイズ情報を受信したものとみなす。また、このアドバタイズ情報は、通信装置151によって常に発信され続けられてもよいし、通信装置151が、通信装置151が備える操作部に対するBLE通信を有効にするための所定のユーザ操作を検知した場合等に発信が開始されてもよい。
S502では、CPU103は、近距離無線通信部110を介して通信装置151にBLE接続要求を送信し、近距離無線通信部110と通信装置151とのBLE接続を確立し、GATT通信を開始する。
S503では、CPU103は、近距離無線通信部110を介したGATT通信によって、通信装置151のネットワーク情報を取得する。通信装置151のネットワーク情報とは、通信装置151が備える通信部156が外部アクセスポイントと接続されているか否か、通信装置151内部のアクセスポイント機能が有効になっているか否かを示す情報(接続状態情報)である。なお、通信装置151内部のアクセスポイント機能が有効になっていることとは、通信装置151内部のアクセスポイントと情報処理装置101等の他の装置との接続が可能な状態(接続可能状態)になっていることである。また、通信装置151のネットワーク情報には、例えば、接続されているアクセスポイントの情報(SSID(Service Set Identifier)やMACアドレス、IPアドレス、接続に必要なパスワード等)が含まれる。なお、通信装置151のネットワーク情報は、例えば、通信装置151が備える通信部156が外部アクセスポイントと接続されているか否か、通信装置151内部のアクセスポイント機能が有効になっているか否かを示すフラグであっても良い。
S504では、CPU103は、情報処理装置101のネットワーク情報を取得する。情報処理装置101のネットワーク情報には、情報処理装置101が備える通信部109と情報処理装置101の外部のアクセスポイントとの接続状況の情報が含まれる。具体的には、通信部109が外部アクセスポイントに接続されているか否か、通信部109が通信装置151内部のアクセスポイントに接続されているか否か、通信部109がいずれのアクセスポイントとも接続されていないか等の情報が含まれる。また、通信部109がいずれかのアクセスポイントに接続している場合は、情報処理装置101のネットワーク情報には、通信部109と接続しているアクセスポイントの情報(SSIDやMACアドレス、IPアドレス、接続に必要なパスワード等)も含まれる。
S505では、CPU103は、S503で取得した通信装置151のネットワーク情報を参照し、通信装置151の接続モードが設定されているか否かを判定する。具体的には、CPU103は、通信部156が外部アクセスポイントや他の外部装置に接続されている、もしくは通信装置151内部のアクセスポイント機能が有効である場合には、通信装置151の接続モードが設定されていると判定する。そして、CPU103は、通信部156が外部アクセスポイントに接続されておらず、且つ通信装置151内部のアクセスポイント機能が有効でない場合は、通信装置151の接続モードが設定されていないと判定する。これは、通信装置151にインフラストラクチャー接続モードが設定されていれば、通信部156は、外部アクセスポイントに接続しているためである。また、通信装置151にダイレクト接続モードが設定されていれば、通信装置151内部のアクセスポイント機能が有効に設定されているためである。なお、このとき、CPU103は、他の方法によって、通信装置151の接続モードが設定されているか否かを判定しても良い。例えば、CPU103は、通信部156が外部アクセスポイントや情報処理装置101以外の外部装置、通信部109に接続されている場合には、通信装置151の接続モードが設定されていると判定しても良い。そして、CPU103は、通信部156がそれらのいずれにも接続していない場合には、通信装置151の接続モードが設定されていないと判定しても良い。これは、通信装置151にインフラストラクチャー接続モードが設定されていれば、通信部156は、外部アクセスポイントと接続しているためである。また、通信装置151にダイレクト接続モードが設定されていれば、通信部156は、情報処理装置101以外の外部装置や通信部109と接続しているためである。
CPU103は、通信装置151の接続モードが設定されていると判定した場合はS506に進み、通信装置151の接続モードが設定されていないと判定した場合にはS508に進む。
S506では、CPU103は、S503、504でそれぞれ取得したネットワーク情報を参照することにより、通信部109と通信部156が通信可能か否かを判定する。具体的には、CPU103は、通信部109と通信部156が同じ外部アクセスポイントに接続している、もしくは通信部109が通信装置151内部のアクセスポイントに接続している場合には、通信部109と通信部156が通信可能と判定する。一方、CPU103は、通信部109と通信部156がそれぞれ異なる外部アクセスポイントに接続している場合には、通信部109と通信部156が通信可能でないと判定する。また、CPU103は、通信装置151内部のアクセスポイントが有効だが、通信部109が当該アクセスポイントに接続していない場合も、通信部109と通信部156が通信可能でないと判定する。CPU103は、通信部109と通信部156が通信可能であると判定した場合には接続設定処理を終了し、通信可能でないと判定した場合にはS507に進む。
S507では、CPU103は、通信部109と通信部156が通信可能となるようにネットワーク状態を設定する。具体的には、CPU103は、通信部156が外部アクセスポイントに接続している場合には、通信部109を、通信部156が接続しているアクセスポイントに接続させる。また、CPU103は、通信装置151内部のアクセスポイント機能が有効であれば、通信部109を、通信装置151内部のアクセスポイントに接続させる。このとき、CPU103は、情報処理装置101の記憶領域に、接続対象のアクセスポイントとの接続に必要な接続情報が既に保持されている場合は、当該接続情報を使い、ユーザの操作なしに通信部109をアクセスポイントへ接続させる。なお、情報処理装置101の記憶領域に接続情報が既に保持されている場合とは、例えば、情報処理装置101が接続対象のアクセスポイントと既に接続したことがある場合や、S503で受信したネットワーク情報に接続情報が格納されている場合である。一方、CPU103は、情報処理装置101の記憶領域に、接続対象のアクセスポイントとの接続に必要な接続情報が保持されていない場合には、接続情報の入力を受け付けるための画面を表示部108に表示し、ユーザから接続情報の入力を受け付ける。なお、情報処理装置101の記憶領域に接続情報が既に保持されていない場合とは、例えば、情報処理装置101が接続対象のアクセスポイントと接続したことがない場合や、S503で受信したネットワーク情報に接続情報が格納されていない場合である。CPU103は、ユーザから接続情報の入力を受け付けた場合、入力された接続情報を用いてアクセスポイントに接続する。なお、このとき、CPU103は、通信部156が接続しているアクセスポイントや通信装置151内部のアクセスポイントに接続するための接続情報を、近距離無線通信部110を介したGATT通信により、通信装置151から受信しても良い。このような形態とすることで、情報処理装置101の記憶領域に、接続対象のアクセスポイントとの接続に必要な接続情報が予め保持されていない場合でも、ユーザからの入力を受け付けることなく通信部109をアクセスポイントへ接続させることができる。なお、CPU103は、情報処理装置101の記憶領域に、接続対象のアクセスポイントとの接続に必要な接続情報が既に保持されている場合でも、例えばOSによる制限により接続情報の入力が必要な場合は、ユーザから接続情報の入力を受け付けても良い。
S508では、CPU103は、S503で取得したネットワーク情報を参照して、通信部109が外部アクセスポイントに接続しているか否かを判定する。ここで、通信部109がアクセスポイントを介してネットワークに接続している場合は、通信部156も同様のアクセスポイントに接続して、装置間でインフラストラクチャー接続を確立することが好ましい。これは一般に、ダイレクト接続では無線LANによるインターネット通信ができない一方、インフラストラクチャー接続では、通信を中継するアクセスポイントがインターネットに接続していれば、無線LANによるインターネット通信が可能なためである。また、インフラストラクチャー接続では、情報処理装置101及び通信装置151が、通信を中継するアクセスポイントに接続している他の装置と通信することが可能なためである。一方、通信部109がアクセスポイントと接続していない場合は、装置の周囲に外部アクセスポイントが存在しない可能性が高いため、装置間でダイレクト接続を確立することが好ましい。そのため、CPU103は、通信部109が外部アクセスポイントに接続していると判定した場合には、情報処理装置101と通信装置151間でインフラストラクチャー接続が実行可能か確認するために、S509に進む。一方、CPU103は、外部アクセスポイントに接続していないと判定した場合には、情報処理装置101と通信装置151との接続方式としてダイレクト接続方式が適当であると判断し、S515に進む。
S509では、CPU103は、通信部156が接続可能な外部アクセスポイントの一覧を、近距離無線通信部110を介したGATT通信により、通信装置151に対して要求する。このとき要求される一覧は、通信部156が接続可能な外部アクセスポイントを識別するための情報の一覧であり、外部アクセスポイントを識別するための情報は、例えば、SSIDなどである。
S510では、CPU103は、通信部156が接続可能な外部アクセスポイントの一覧を、近距離無線通信部110を介したGATT通信により、通信装置151から取得する。
S511では、CPU103は、S510にて通信装置151から取得した一覧の中に、通信部109が現在接続している外部アクセスポイントが含まれるか否かを判定する。すなわち、CPU103は、通信部109が現在接続している外部アクセスポイントが、通信部156が接続可能な外部アクセスポイントであるか否かを判定する。CPU103は、一覧の中に通信部109が現在接続している外部アクセスポイントが含まれると判定した場合は、情報処理装置101と通信装置151の接続方式としてインフラストラクチャー接続方式が適当であると判断し、S512に進む。一方、CPU103は、一覧の中に通信部109が現在接続している外部アクセスポイントが含まれないと判定した場合は、情報処理装置101と通信装置151との接続方式としてダイレクト接続方式が適当であると判断し、S515に進む。
S512では、CPU103は、通信部109が現在接続している外部アクセスポイントを情報処理装置101と通信装置151間でのインフラストラクチャー接続に用いるか否かの選択を受け付ける画面を表示部108に表示し、ユーザから選択を受け付ける。そして、CPU103は、受け付けた選択の結果に応じて、通信部109が現在接続している外部アクセスポイントを、情報処理装置101と通信装置151間でのインフラストラクチャー接続に利用するか否かを判定する。CPU103は、通信部109が現在接続している外部アクセスポイントを、情報処理装置101と通信装置151間でのインフラストラクチャー接続に利用すると判定した場合、S514に進む。一方、CPU103は、通信部109が現在接続している外部アクセスポイントを、情報処理装置101と通信装置151間でのインフラストラクチャー接続に利用しないと判定した場合、S513に進む。
S513では、CPU103は、情報処理装置101と通信装置151間でのインフラストラクチャー接続に利用するアクセスポイントを、通信部156が接続可能な外部アクセスポイントからユーザに選択させる。このとき、CPU103は、S510で取得した一覧に基づいて、当該選択のための画面を表示し、ユーザからアクセスポイントの選択を受け付ける。また、ユーザによって選択されたアクセスポイントとの接続にパスワードの入力等の認証処理が必要であれば、このとき、CPU103は、パスワードの入力もユーザから受け付ける。
S514では、CPU103は、インフラストラクチャー接続モードを通信装置151に設定するためのコマンドを、近距離無線通信部110を介したGATT通信によって通信装置151に送信する。具体的には、このとき、CPU103は、S512でYesと判定された後の処理であれば、通信部109が現在接続している外部アクセスポイントの情報を、近距離無線通信部110を介したGATT通信によって通信装置151に送信する。通信部109が現在接続している外部アクセスポイントの情報には、例えば、当該アクセスポイントのSSIDや当該アクセスポイントに接続するために必要なパスワード等が含まれる。なお、通信部109が現在接続している外部アクセスポイントと接続するための接続情報は、通信部109と当該アクセスポイントとの接続時に、情報処理装置101の記憶領域に保持されるものとする。なお、通信部109が現在接続している外部アクセスポイントと接続するための接続情報が、情報処理装置101の記憶領域に保持されていない場合には、CPU103は、接続情報の入力を受け付けるための画面を表示部108に表示する。そして、通信部109が現在接続している外部アクセスポイントと接続するための接続情報の入力をユーザから受け付け、入力された情報を通信装置151に送信する。なお、接続情報が情報処理装置101の記憶領域に保持されていない場合でも、通信部109が現在接続している外部アクセスポイントがパスワード認証を必要としない場合には、CPU103は、接続情報の入力を受け付けなくても良い。また、CPU103は、S513の後の処理であれば、S513でユーザによって選択されたアクセスポイントの情報を、近距離無線通信部110を介したGATT通信によって通信装置151に送信する。なお、S513でユーザによって選択されたアクセスポイントの情報には、例えば、当該アクセスポイントのSSIDやS513で入力されたパスワード等の接続情報が含まれる。S514の処理により、通信装置151は、インフラストラクチャー接続モードに移行する。
S515では、CPU103は、ダイレクト接続モードを通信装置151に設定するためのコマンドを、近距離無線通信部110を介したGATT通信によって通信装置151に送信する。具体的には、このとき、CPU103は、近距離無線通信部110を介したGATT通信によって、通信装置151内部のアクセスポイントを有効化するように通信装置151に対して要求する。S515の処理により、通信装置151は、ダイレクト接続モードに移行する。
S516では、CPU103は、通信装置151内部のアクセスポイントに接続するための接続情報を用いて、通信部109を通信装置151内部のアクセスポイントに接続させる。このときCPU103は、通信装置151内部のアクセスポイントに接続するための接続情報を保持していなければ、近距離無線通信部110を介したGATT通信によって通信装置151から受信する。なお、CPU103は、通信装置151内部のアクセスポイントに接続するための接続情報が情報処理装置101の記憶領域に予め保持されていれば、それを用いて、接続を行う。また、CPU103は、通信装置151内部のアクセスポイントに接続するための接続情報の入力をユーザから受け付けるための画面を表示部108に表示し、接続情報の入力を受け付けても良い。また、通信装置151のネットワーク情報に、通信装置151内部のアクセスポイントに接続するための接続情報が含まれる構成とし、CPU103は、S503で取得したネットワーク情報を参照して、接続を行っても良い。S514の処理を実行した後、CPU103は、接続設定処理を終了する。CPU103は、接続設定処理を終了した場合、近距離無線通信部110と通信装置151とのBLE接続を切断する。
なお、情報処理装置101は、図5の処理を終え、通信装置151に設定した接続モードに応じた接続形態での接続を通信装置151と確立した後は、確立した接続を介して通信装置151にジョブを送信することができる。例えば、情報処理装置101は、印刷対象の画像を選択させるための画面を表示部108に表示し、ユーザから画像の選択及び印刷の実行の指示を受け付けた場合には、印刷ジョブを生成して、確立した接続を介して通信装置151に送信する。これより、情報処理装置101は、通信装置151に印刷を実行させることができる。
図8は、本実施形態における通信装置151が実行する接続設定処理を示すフローチャートである。図8のフローチャートが示す処理は、例えば、CPU154がROM152等のメモリに格納されたプログラムをRAM153に読み出して実行することにより実現される。また、図8のフローチャートが示す処理は、情報処理装置101と通信装置151との間でペアリングが完了している状態で、接続設定モードに移行した場合に開始されるものとする。
S801では、CPU154は、アドバタイズ情報を近距離無線通信部157によって一定期間ごとにブロードキャストする状態であるアドバタイズ状態となる。なお、ここでのブロードキャストとは、情報の送信先を特定せず一定の範囲に情報を送信することを指す。
続いて、S802では、CPU154は、近距離無線通信部157を介して、情報処理装置101からBLE接続要求を受信したか否かを判定する。CPU154は、近距離無線通信部157がBLE接続要求を受信したと判定した場合、S804の処理を行う。一方、CPU154は、近距離無線通信部157がBLE接続要求を受信していないと判定した場合、S803の処理を行い、接続設定モードに移行してから所定の時間が経過したか(タイムアウトしたか)否かを判定する。CPU103は、タイムアウトしていないと判定した場合、S802の処理を再び行う。一方、CPU103は、タイムアウトしたと判定した場合、接続設定処理を終了する。
S804では、CPU154は、BLE接続を確立してGATT通信を行うために、近距離無線通信部157を介したアドバタイズ情報の送信を一旦停止する。これは、近距離無線通信部157は、BLE接続の確立とアドバタイズ情報の送信を同時に実行することができないためである。なお、近距離無線通信部157が、BLE接続の確立とアドバタイズ情報の送信を同時に実行可能であれば、この処理が実行される必要はない。すなわち、CPU154は、近距離無線通信部157を介したアドバタイズ情報の送信を継続させても良い。
続いて、S805では、CPU154は、近距離無線通信部157と情報処理装置101とのBLE接続を確立させ、近距離無線通信部157を介したGATT通信を開始する。
続いて、S806では、CPU154は、近距離無線通信部157を介したGATT通信により、通信装置151のネットワーク情報を情報処理装置101に送信する。なお、上述したように、近距離無線通信部157が発するアドバタイズ情報に、通信装置151のネットワーク情報が含まれている形態であれば、この処理は必要ない。
続いて、S807では、CPU154は、近距離無線通信部157を介したGATT通信により、通信部156が接続可能な外部アクセスポイントの一覧の要求を、情報処理装置101から受信したか否かを判定する。CPU154は、一覧の要求を受信したと判定した場合、S808に進み、一覧の要求を受信していないと判定した場合、S809に進む。なお、CPU154は、情報処理装置101が行う処理にかかる時間を考慮して、S806とS807の間で一定時間のウェイトを実行しても良い。
S808では、CPU154は、通信部156が接続可能な外部アクセスポイントを検索し、通信部156が接続可能な外部アクセスポイントの一覧を生成する。なお、CPU154は、Wi−Fi通信方式に基づくビーコンを通信部156によって検知することで、通信部156が接続可能な外部アクセスポイントの検索を実行する。一覧の生成が完了した後、CPU154は、近距離無線通信部157を介したGATT通信により、生成された一覧を情報処理装置101に送信する。なお、CPU154は、通信部156が接続可能な外部アクセスポイントの一覧を予め生成済みであれば、通信部156が接続可能な外部アクセスポイントの検索を行うことなく、生成済みの一覧を情報処理装置101に送信しても良い。
S809では、CPU154は、近距離無線通信部157を介したGATT通信により、接続モードを通信装置151に設定するためのコマンドを、情報処理装置101から受信したか否かを判定する。CPU154は、コマンドを受信したと判定した場合、S810の処理を行う。一方、CPU154は、接続設定情報を受信していないと判定した場合、S811の処理を行い、GATT通信を開始してから所定の時間が経過した(タイムアウトした)か否かを判定する。CPU154は、タイムアウトしていないと判定した場合、S809の処理を再び行う。一方、CPU154は、タイムアウトしたと判定した場合、S812の処理を行う。
S810では、CPU154は、受信したコマンドに応じて、通信装置151の接続モードを設定する。受信したコマンドが、インフラストラクチャー接続モードを通信装置151に設定するためのコマンドであれば、CPU154は、通信装置151をインフラストラクチャー接続モードに移行させる。具体的には、CPU154は、受信したコマンドに格納されたSSIDで示されるアクセスポイント(ここでは、アクセスポイント131であるとする。)を、通信装置151の接続先として登録する。CPU154は、適切にアクセスポイントの登録が終了したら、コマンドに格納される接続情報を用いて、通信部156をアクセスポイント131に接続させる。接続が成功した場合、アクセスポイント131を介した、情報処理装置101と通信装置151とのインフラストラクチャー接続が確立される。また、インフラストラクチャー接続モードが通信装置151に設定されることで、アクセスポイント131に接続している他の情報処理装置とも以後、通信を行うことができるようになる。なお、このとき、CPU154は、アクセスポイント131との接続が成功したか否かをGATT通信で情報処理装置101に通知してもよい。そして、情報処理装置101は、アクセスポイントとの接続に失敗したことの通知を通信装置151から受け付けた場合には、接続設定処理を最初から再度実行するような構成としてもよい。
一方、受信したコマンドが、ダイレクト接続モードを通信装置151に設定するためのコマンドであれば、CPU154は、通信装置151をダイレクト接続モードに移行させる。具体的には、CPU154は、通信装置151内部のアクセスポイント機能を有効に設定し、情報処理装置101が、通信装置151内部のアクセスポイントに接続できる状態とする。そして、CPU154は、通信装置151内部のアクセスポイントへの接続要求を情報処理装置101から受け付けた場合にはそれを許可し、通信部156を介して情報処理装置101と通信可能な状態とする。また、ダイレクト接続モードが通信装置151に設定されることで通信装置151内部のアクセスポイントが有効になるため、情報処理装置101との接続が切断された後にも、他の装置とのダイレクト接続が行われれば、当該他の装置と通信を行うことができる。なお、ダイレクト接続モードが設定された場合、通信装置151内部のアクセスポイントが有効になる形態を説明したが、この形態に限定されない。例えば、CPU154は、通信装置151をダイレクト接続モードに移行させる場合、WiFiダイレクトによる接続を行うためのシーケンス制御を実行しても良い。この場合、CPU154は、情報処理装置101とネゴシエーションを行い、ネゴシエーションの結果に基づいて、通信装置151内部のアクセスポイントを有効にするか、通信部156を情報処理装置101内部のアクセスポイントに接続させるかを決定する。そして、通信装置151内部のアクセスポイントを有効にすると決定した場合、当該アクセスポイントを有効に設定し、当該アクセスポイントと通信部109との接続を確立する。一方、通信部156を情報処理装置101内部のアクセスポイントに接続させると決定した場合、当該アクセスポイントと通信部156との接続を確立させる。
S812では、CPU154は、近距離無線通信部157と情報処理装置101とのBLE接続を切断し、GATT通信を終了させる。なお、近距離無線通信部157は、BLE接続が切断された場合、アドバタイズ情報の送信を再開する。
このような形態とすることで、情報処理装置101は、通信装置151の接続モードを設定するとともに、設定した接続モードに応じた接続形態によって通信装置151と接続することができる。
また、本実施形態では、情報処理装置101は、通信装置151の接続モードが設定されていた場合には、通信装置151の接続モードの設定を行わず、既に設定されている接続モードに応じた接続形態にて通信装置151と接続を行う。また、情報処理装置101は、通信装置151の接続モードの設定を行うか行わないかを、通信装置151から取得するネットワーク情報に応じて自動で決定する。これにより、情報処理装置101は、通信装置151の接続モードが設定されていた場合には、通信装置151の接続モードの設定処理を省略することができ、情報処理装置101にかかる負荷を軽減できる。また、通信装置151の接続モードが変更されてしまうことにより、以前に接続モードの設定処理を実行した他の情報処理装置が、通信装置151と通信できなくなってしまうことを抑制できる。
なお、例えば、外部アクセスポイントを通信装置151のネットワーク環境下に新たに設置した等の理由により、ユーザが、通信装置151の接続モードをあえて変更するというユースケースも存在する。そのため、通信装置151は、設定されている接続モードをリセットし、接続モードが設定されていない状態に戻る初期化機能を有していても良い。ユーザは、初期化機能を実行してから、上述の接続モード設定処理を実行することで、通信装置151の接続モードを、新たなネットワーク環境に応じたものに変更することができる。
なお、接続設定処理の詳細は、上述した形態に限定されない。
例えば、S501では、CPU103は、通信装置151に対する接続要求を許可するタイプのアドバタイズを受信した場合に、アドバタイズ情報を受信したものとみなしているが、この形態に限定されない。例えば、CPU103は、S501では、アドバタイズタイプ以外にもアドバタイズ情報に含まれる詳細なデータを確認してもよい。具体的には例えば、CPU103は、受信したアドバタイズ情報に、通信装置151のネットワーク状態が未設定であることが示される情報が含まれている場合に、S502の処理に進む形態としても良い。この場合、CPU103は、受信したアドバタイズ情報に、通信装置151のネットワーク状態が未設定であることが示される情報が含まれていない場合には、アドバタイズ情報を受信したものとみなさなくてもよい。
また、情報処理装置101が、複数の通信装置からアドバタイズ情報を受信する場合がある。その場合には、CPU103は、S501では、上述した条件に合致する複数のアドバタイズ情報を受信したことを検知する。そして、CPU103は、S501のあと、図6に示すような、受信した複数のアドバタイズ情報に対応する複数の通信装置の一覧を示す画面を表示部108に表示し、接続設定処理を行う対象の通信装置をユーザに選ばせてもよい。図6では、3つの通信装置からアドバタイズ情報を受信した場合に表示される画面の例を示している。図6に示す画面では、ユーザが通信装置を識別可能とするために、それぞれの通信装置のデバイス名と、それぞれの通信装置が備える近距離無線通信部のデバイスアドレス(BD_ADDR)が表示されている。なお、これらの情報は、それぞれの通信装置から送信されるアドバタイズ情報に含まれているものとする。
また、S503では、CPU103は、通信装置151とのGATT通信により、通信装置151のネットワーク情報を取得しているが、この形態に限定されない。例えば、通信装置151が送信するアドバタイズ情報には、通信装置151のネットワーク情報が含まれるものとし、通信装置151のネットワーク情報を参照する処理においては、受信したアドバタイズ情報が参照されるものとしても良い。この場合は、S503の処理は不要になる。
また、S509〜S510では、CPU103は、情報処理装置101と通信装置151のGATT通信を確立したまま、通信装置151が接続可能な外部アクセスポイント一覧を通信装置151から取得しているが、この形態に限定されない。例えば、S509では、CPU103は、通信部156が接続可能な外部アクセスポイントの一覧を通信装置151に対して要求した後、BLE接続を一端解除しても良い。この場合、CPU103は、BLE接続を解除した後、通信部156が接続可能な外部アクセスポイントの一覧の生成が完了したことを示す情報を含むアドバタイズ情報を、近距離無線通信部110を介して受信するのを待つ。そして、CPU103は、当該アドバタイズ情報を近距離無線通信部110を介して受信した場合、再度BLE接続を確立し、近距離無線通信部110を介したGATT通信により、通信部156が接続可能な外部アクセスポイントの一覧を取得する。これは、情報処理装置101以外の他の装置が、近距離無線通信部157が発するアドバタイズ情報を受信できる時間をできるだけ確保するためである。通信装置151は、通信部156が接続可能な外部アクセスポイントの一覧の要求を受信した場合、当該一覧の生成を開始するが、当該一覧の生成を完了するのに時間を要する場合がある。そして、近距離無線通信部157は、BLE接続を確立している間は、アドバタイズ情報を送信できない。そのため、BLE接続が確立された状態では、通信部156が接続可能な外部アクセスポイントの一覧を通信装置151が生成している間は、情報処理装置101以外の他の装置は、近距離無線通信部157が発するアドバタイズ情報を受信できない。そこで、上述のように、BLE接続を一旦解除する形態とすることで、外部アクセスポイントの一覧を通信装置151が生成している間、情報処理装置101以外の他の装置に、近距離無線通信部157が発するアドバタイズ情報を受信させることができる。なお、BLE接続が解除されても、外部アクセスポイントの一覧を通信装置151が生成している間、近距離無線通信部157は、アドバタイズを停止しても良い。このような形態とすることで、情報処理装置101以外の他の装置に近距離無線通信部157が発するアドバタイズ情報を受信させることはできなくなるが、近距離無線通信部157が消費する電力を低減することができる。
また、CPU103は、S511の判定にて、一覧の中に通信部109が現在接続している外部アクセスポイントが含まれないと判定した場合は、通信装置151にダイレクト接続モードを設定しているが、この形態に限定されない。例えば、CPU103は、一覧の中に通信部109が現在接続している外部アクセスポイントが含まれないと判定した場合においても、インフラストラクチャー接続モードを設定しても良い。この場合、CPU103は、一覧の中に通信部109が現在接続している外部アクセスポイントが含まれないと判定した場合、通信部156が接続可能な外部アクセスポイントの一覧を表示部108に表示し、一覧の中のいずれかをユーザに選択させる。
そして、CPU103は、ユーザによって選択された外部アクセスポイントの情報を、インフラストラクチャー接続モードを通信装置151に設定するためのコマンドとして、近距離無線通信部110を介したGATT通信によって通信装置151に送信する。このとき、CPU103は、ユーザによって選択された外部アクセスポイントと接続するための接続情報の入力を受け付けるための画面を表示部108に表示し、接続情報の入力をユーザから受け付けても良い。その場合、CPU103は、入力された接続情報を格納して、インフラストラクチャー接続モードを通信装置151に設定するためのコマンドを送信する。その後、CPU103は、通信部109の接続先を、ユーザによって選択された外部アクセスポイントに切り替える。このとき、CPU103は、上述のようにして入力された接続情報を利用しても良い。このようにすることで、CPU103は、通信装置151に、インフラストラクチャー接続モードを設定しつつ、通信装置151と通信部109を介して通信することができる。
また、例えば、CPU103は、一覧の中に通信部109が現在接続している外部アクセスポイントが含まれないと判定した場合、インフラストラクチャー接続モードとダイレクト接続モードのどちらを設定するかユーザに選択させても良い。この場合。例えば、CPU103は、通信部156が接続可能な外部アクセスポイントの一覧とダイレクト接続モードを設定するためのボタンとを表示部108に表示する。そして、CPU103は、一覧の中のいずれかのアクセスポイントが選択された場合は、選択されたアクセスポイントを介して接続するインフラストラクチャー接続モードを通信装置151に設定する。一方、CPU103は、ダイレクト接続を設定するためのボタンが選択された場合は、ダイレクト接続モードを通信装置151に設定する。
また、本実施形態では、近距離無線通信部110による通信を用いて、通信部109の接続先に関する設定処理を行っている。そのため、情報処理装置101は、通信部109の接続先を変更することなく、通信部109の接続先に関する設定処理を実行できる。
なお、上述の実施形態では、ダイレクト接続において、通信装置151内のアクセスポイントに情報処理装置101が接続する形態としたが、これに限定されない。例えば、情報処理装置101内のアクセスポイントに、通信装置151が接続する形態であっても良い。この場合、情報処理装置101は、情報処理装置101内のアクセスポイントのSSIDやパスワードを格納した接続設定情報を、近距離無線通信部110を介したGATT通信によって通信装置151に送信する。そして、通信装置151は、受信した接続設定情報に含まれる情報処理装置101内のアクセスポイントのSSIDやパスワードを利用して、通信部156と情報処理装置101内のアクセスポイントとを接続させる。
また、上述の実施形態では、接続設定処理によって、インフラストラクチャー接続モードとダイレクト接続モードの2種類の接続モードを設定可能であるが、この形態に限定されない。例えば、インフラストラクチャー接続モードとダイレクト接続モードのうち、どちらか一方のみ設定可能な装置に本実施形態を適用しても良い。この場合、CPU103は、S505の判定において、設定可能な接続モードが通信装置151に設定されているか否かを判定すれば良い。具体的には、CPU103は、設定可能な接続モードがダイレクト接続モードであれば、通信装置151内部のアクセスポイント機能が有効か否かや、通信部156が情報処理装置101以外の外部装置や通信部109と接続しているか否かを判定すれば良い。また、CPU103は、設定可能な接続モードがインフラストラクチャー接続モードであれば、通信部156が外部アクセスポイントと接続しているか否かを判定すれば良い。また、CPU103は、S505にて通信装置151の接続モードが設定されていないと判定した後は、通信部109の接続状態によらず、設定可能な接続モードを通信装置151に設定する処理を行う。具体的には、CPU103は、設定可能な接続モードがダイレクト接続モードであれば、S505にて通信装置151の接続モードが設定されていないと判定した後、S508の処理を省略して、S515以降の処理を行う。また、CPU103は、設定可能な接続モードがインフラストラクチャー接続モードであれば、S505にて通信装置151の接続モードが設定されていないと判定した後、S508の処理を省略して、S509以降の処理を行う。
また、上述の実施形態では、通信部109が外部アクセスポイントと接続しているかや、通信部109が接続しているアクセスポイントに通信装置151が接続可能かに応じて、通信装置151に設定される接続モードが決定されるが、この形態に限定されない。例えば、複数種類の接続モードのうちユーザに選択されたモードを一意に設定する形態であっても良い。この場合、CPU103は、S505にて通信装置151の接続モードが設定されていないと判定した後は、通信部109の接続状態によらず、ユーザに選択された接続モードを通信装置151に設定する処理を行う。具体的には、CPU103は、ユーザに選択された接続モードがダイレクト接続モードであれば、S505にて通信装置151の接続モードが設定されていないと判定した後、S508の処理を省略して、S515以降の処理を行う。また、CPU103は、ユーザに選択された接続モードがインフラストラクチャー接続モードであれば、S505にて通信装置151の接続モードが設定されていないと判定した後、S508の処理を省略して、S509以降の処理を行う。
また、例えば、CPU103は、S501にてアドバタイズ情報を受信した場合、受信したアドバタイズ情報に含まれる装置情報を参照して、受信したアドバタイズ情報を送信した装置が、登録済み装置か否かを判定しても良い。登録済み装置とは、印刷アプリを用いて通信を行う装置として、情報処理装置101によって登録された装置である。CPU103は、装置を登録する場合、登録する装置の装置情報を、ROM104等のメモリに保存する。CPU103は、保存した情報と、受信したアドバタイズ情報に含まれる装置情報を比較することで、受信したアドバタイズ情報を送信した装置が、登録済み装置か否かを判定する。CPU103は、受信したアドバタイズ情報を送信した装置が、登録済み装置であると判定した場合、S506以降の処理を行う。これは、装置の登録には、当該装置と情報処理装置101との接続が必要であるため、登録済み装置には、すでに接続モードが設定されている可能性が高いためである。これにより、CPU103は、受信したアドバタイズ情報を送信した装置が、登録済み装置である場合には、BLE接続を確立する処理やGATT通信を実行する処理を省略できる。なお、CPU103は、S506にて、Noと判定した場合には、BLE接続を確立して、通信装置151のネットワーク状態を取得する。また、CPU103は、受信したアドバタイズ情報を送信した装置が、登録済み装置でないと判定した場合、S502以降の処理を行う。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。