以下に図面を参照して、本発明の好適な実施形態を例示的に説明する。ただし、本発明については、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて、以下に記載する実施形態に対して適宜変更、改良が加えられたものについても本発明の範囲に入ることが理解されるべきである。
(第1実施形態)
本実施形態の通信システムに含まれる情報処理装置及び通信装置について説明する。情報処理装置として、本実施形態ではスマートフォンを例示しているが、これに限定されない。例えば情報処理装置として、携帯端末、PC(パーソナルコンピュータ)、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、種々のものを適用可能である。また、通信装置として、本実施形態ではプリンタを例示しているが、これに限定されず、情報処理装置と無線通信を行うことが可能な装置であれば、種々のものを適用可能である。例えば、プリンタであれば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等に適用することができる。また、プリンタのみならず複写機やファクシミリ装置、携帯端末、スマートフォン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ、スマートスピーカ等にも適用可能である。その他、複写機能、FAX機能、印刷機能等の複数の機能を備える複合機にも適用可能である。
また、本実施形態では、情報処理装置は、Wi-Fi Easy Connect(以下、WEC)(登録商標)と呼ばれる機能に対応している場合は、当該機能を実行可能である。WECとは、Wi-Fi Allianceで策定されたDevice Provisioning Protocol(以下、DPP)を用いて、他の装置のネットワークセットアップを実行する機能である。なお他の装置のネットワークセットアップとは具体的には、他の装置をネットワークを形成するアクセスポイントと接続させる処理である。WECにおいては、「Configurator」という役割で動作する装置(以下、Configurator装置)と、「Enrollee」という役割で動作する装置(以下、Enrollee装置)との間で通信が行われる。Configurator装置はEnrollee装置からBootstrapping情報を取得する。Bootstrapping情報には、例えばEnrollee装置の識別情報(MACアドレス等)や、Enrollee装置とセキュアな通信を行うために用いられる公開鍵情報、DPPの通信に用いられるチャネル(待ち受けチャネル)を示す情報などが含まれる。本実施形態では、Bootstrapping情報を「WEC関連情報」として説明する。なお、他の情報もWEC関連情報として扱われて良い。そしてConfigurator装置は、取得したBootstrapping情報を用いてEnrollee装置との無線通信を実行する。具体的には例えば、Configurator装置は、Bootstrapping情報に含まれる公開鍵を用いてプロトコルキーを暗号化し、暗号化したプロトコルキーをEnrollee装置に送信する。そしてその暗号化したプロトコルキーに基づいて共通鍵を暗号化し、その共通鍵を用いて暗号化した情報を、Enrollee装置に送信する。なおここで送信される情報は具体的には例えば、DPPによるネットワークセットアップ要求やアクセスポイントに接続するための接続情報である。そしてEnrollee装置は、Configurator装置から受信した接続情報を使ってアクセスポイントとの無線接続を確立する。なお、本実施形態におけるWECによるネットワークセットアップ処理においては、WECに対応している情報処理装置は、Configurator装置として動作し、WECに対応している通信装置は、Enrollee装置として動作するものとして説明する。
まず、本実施形態の情報処理装置と、本実施形態の情報処理装置と通信可能な通信装置の構成について図1のブロック図を参照して説明する。また、本実施形態では以下の構成を例に記載するが、本実施形態は通信装置と通信を行うことが可能な装置に関して適用可能なものであり、特にこの図のとおりに機能を限定するものではない。
情報処理装置101は、本実施形態の情報処理装置である。情報処理装置101は、入力インタフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース107、表示部108、通信部110、近距離無線通信部111等を有する。CPU103、ROM104、RAM105等によって、情報処理装置101のコンピュータが形成される。
入力インタフェース102は、キーボード109等の操作部が操作されることにより、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースである。なお、操作部は、物理キーボードや物理ボタン等であっても良いし、表示部108に表示されるソフトキーボードやソフトボタン等であっても良い。すなわち、入力インタフェース102は、表示部108を介してユーザからの入力を受け付けても良い。
CPU103は、システム制御部であり、情報処理装置101の全体を制御する。
ROM104は、CPU103が実行する制御プログラムやデータテーブル、組み込みオペレーティングシステム(以下、OSという。)プログラム等の固定データを格納する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。
RAM105は、バックアップ電源を必要とするSRAM(Static Random Access Memory)等で構成される。なお、RAM105は、図示しないデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、情報処理装置101の設定情報や情報処理装置101の管理データ等を格納するメモリエリアもRAM105に設けられている。また、RAM105は、CPU103の主メモリとワークメモリとしても用いられる。
外部記憶装置106は、通信装置151のネットワークセットアップを実行するためのアプリケーションプログラム(以後、設定アプリ)、通信装置151が解釈可能な印刷情報を生成する印刷情報生成プログラム等を保存している。設定アプリとは、通信装置151の接続先のアクセスポイントの設定をWEC等で行うためのアプリケーションプログラムである。なお、設定アプリは、ネットワークセットアップ機能以外の他の機能を備えていても良い。例えば設定アプリは、通信装置151に印刷を実行させる機能や、通信装置151にセットされた原稿をスキャンさせる機能、通信装置151の状態を確認する機能等を備えていても良い。設定アプリは、例えば、通信部110を介したインターネット通信によって、外部のサーバからインストールされることにより、外部記憶装置106に格納される。また、外部記憶装置106は、通信部110を介して接続している通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムや、これらのプログラムが使用する各種情報を保存している。
出力インタフェース107は、表示部108がデータの表示や情報処理装置101の状態の通知を行うための制御を行うインタフェースである。
表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や情報処理装置101の状態の通知を行う。
通信部110は、通信装置151やアクセスポイント131等の装置と接続して、データ通信を実行するための構成である。例えば、通信部110は、通信装置151内のアクセスポイント(不図示)に接続可能である。通信部110と通信装置151内のアクセスポイントが接続することで、情報処理装置101と通信装置151は相互に通信可能となる。なお、通信部110は無線通信で通信装置151とダイレクトに通信しても良いし、情報処理装置101や通信装置151の外部に存在する外部装置を介して通信しても良い。なお、外部装置とは、情報処理装置101の外部及び通信装置151の外部に存在する外部アクセスポイント(アクセスポイント131等)や、アクセスポイント以外で通信を中継可能な装置を含む。本実施形態では、通信部110が用いる無線通信方式は、IEEE802.11シリーズに準拠する通信規格であるWi-Fi(WirelessFidelity)(登録商標)であるものとする。そして、前述したWECを、通信部110による通信により実行するものとする。また、アクセスポイント131としては、例えば、無線LANルーター等の機器などが挙げられる。なお、本実施形態において、情報処理装置101と通信装置151とが外部アクセスポイントを介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101と通信装置151とが外部アクセスポイントを介して接続する方式をインフラ接続方式という。
近距離無線通信部111は、通信装置151等の装置と近距離で無線接続して、データ通信を実行するための構成であり、通信部110とは異なる通信方式によって通信を行う。近距離無線通信部111は、例えば、通信装置151内の近距離無線通信部157と接続可能である。通信方式としては、例えば、Near Field Communication(NFC)、Bluetooth(登録商標) Classic、Bluetooth Low Energy(BLE)、Wi-Fi Aware等が挙げられる。
撮影部112は、カメラであり、撮影により画像データを取得する。本実施形態では撮影部112は、後述するように、QRコード(登録商標)を撮影することにより、QRコードを含む画像データを取得する。
本実施形態では、情報処理装置101は、設定アプリによるネットワークセットアップ処理の実行指示に基づいて情報処理装置101のOSの機能によりWECを実行する。
通信装置151は、本実施形態の通信装置である。通信装置151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、近距離無線通信部157等を有する。ROM152、RAM153、CPU154等によって、通信装置151のコンピュータが形成される。
通信部156は、通信装置151内部のアクセスポイントとして、情報処理装置101等の装置と接続するためのアクセスポイントを有している。なお、該アクセスポイントは、情報処理装置101の通信部110に接続可能である。通信部156が、該アクセスポイントを有効化することで、通信装置151がアクセスポイントとして動作することになる。なお、通信部156は情報処理装置101とダイレクトに無線接続しても良いし、アクセスポイント131を介して無線接続しても良い。本実施形態では、通信部156が用いる無線通信方式は、IEEE802.11シリーズに準拠する通信規格であるものとする。また以下の説明において、Wi-Fi(WirelessFidelity)(登録商標)とは、IEEE802.11シリーズに準拠する通信規格である。また、通信装置151がWECに対応しているのであれば、前述したWECを、通信部156による通信により実行するものとする。また、通信部156は、アクセスポイントとして機能するハードウェアを備えていてもよいし、アクセスポイントとして機能させるためのソフトウエアにより、アクセスポイントとして動作してもよい。
本実施形態の通信装置151は、通信部156を用いて通信を行うためのモード(状態)として、インフラストラクチャモード及びP2P(Peer to Peer)モードで動作可能である。
インフラストラクチャモードとは、通信装置151が、ネットワークを形成する外部装置(例えば、アクセスポイント131)を介して、情報処理装置101等の他の装置と通信する形態である。インフラストラクチャモードで動作する通信装置151によって確立される外部アクセスポイントとの接続を、インフラストラクチャ接続(以後、インフラ接続)という。本実施形態では、インフラ接続において、通信装置151が子局として動作し、外部アクセスポイントが親局として動作する。なお本実施形態において親局とは、親局が属するネットワークにおいて使用される通信チャネルを決定する装置であり、子局とは、子局が属するネットワークにおいて使用される通信チャネルを決定せず、親局が決定した通信チャネルを用いる装置である。
P2Pモードとは、通信装置151が、ネットワークを形成する外部装置を介さず、情報処理装置101等の他の装置と直接的に通信する形態である。本実施形態では、P2Pモードには、通信装置151がアクセスポイントとして動作するAPモードが含まれるものとする。APモード時に通信装置151内で有効化されるアクセスポイントの接続情報(SSIDやパスワード)は、ユーザが任意に設定可能であるものとする。なおP2Pモードには、例えば、通信装置151がWi-Fi Direct(WFD)によって通信するためのWFDモードが含まれていても良い。なお、複数のWFD対応機器のうちいずれが親局として動作するかは、例えば、Group Owner Negotiationというシーケンスに従って決定される。なお、Group Owner Negotiationが実行されずに、親局が決定されても良い。WFD対応機器であり且つ親局の役割を果たす装置を特に、Group Ownerという。P2Pモードで動作する通信装置151によって確立される他の装置との直接的な接続を、ダイレクト接続という。本実施形態では、ダイレクト接続において、通信装置151が親局として動作し、他の装置が子局として動作する。
またさらに、本実施形態では通信装置151は、ユーザから所定の操作を受け付けることで、通信装置151のネットワークセットアップを所定の通信プロトコル(セットアップ用通信プロトコル)で実行するための実行するためのモードであるネットワークセットアップモードとして動作可能である。通信装置151は、ネットワークセットアップモードとして動作する場合、通信部156を用いることにより、ネットワークセットアップモードとして動作中に有効なセットアップ用アクセスポイントとして動作する。当該セットアップ用アクセスポイントは、上述のAPモード時に有効化されるアクセスポイントとは異なるアクセスポイントである。また当該セットアップ用アクセスポイントのSSIDは、情報処理装置101の設定アプリが認識可能な所定の文字列を含むものとする。また、当該セットアップ用アクセスポイントは、接続にパスワードを必要としないアクセスポイントであるものとする。また、ネットワークセットアップモードとして動作している通信装置151は、セットアップ用アクセスポイントと接続している情報処理装置101との通信において、セットアップ用通信プロトコルを用いるものとする。セットアップ用通信プロトコルは具体的には例えば、SNMP(Simple Network Management Protocol)である。通信装置151は、ネットワークセットアップモードでの動作を開始した後、ネットワークセットアップモード用のタイムアウト時間が経過したら、ネットワークセットアップモードでの動作を停止し、セットアップ用アクセスポイントを無効化する。これは、セットアップ用アクセスポイントは上述したようにパスワードを必要としないアクセスポイントであるため、長時間有効化していると、適切でない装置から接続を要求されてしまう可能性が高まるためである。なおセットアップ用アクセスポイントは、パスワードを必要とするアクセスポイントであっても良い。その場合、セットアップ用アクセスポイントとの接続に用いられるパスワードは、設定アプリが予め把握している固定の(ユーザが変更できない)パスワードであるものとする。
またさらに、本実施形態では通信装置151は、ユーザから所定の操作を受け付けることで、通信装置151のネットワークセットアップを、セットアップ用通信プロトコルとは異なる通信プロトコルで実行するためのモードとしても動作可能である。本実施形態では、セットアップ用通信プロトコルとは異なる通信プロトコルは、上述したDPPであるものとし、当該モードを、DPPモードと呼ぶものとする。通信装置151がDPPモードで動作している状態において、情報処理装置101からDPPによるネットワークセットアップ要求が受信された場合、後述するようにしてDPPによるネットワークセットアップを実行する。そのためDPPモードとは言い換えれば、DPPによるネットワークセットアップ要求を待ち受けているモードである。また、通信装置151は、DPPモードでの動作を開始した後、DPPモード用のタイムアウト時間が経過したら、DPPモードでの動作を停止し、DPPによるネットワークセットアップ要求の待ち受けを停止する。なおDPPモード用のタイムアウト時間は、ネットワークセットアップモード用のタイムアウト時間と同じであっても良いし、ネットワークセットアップモード用のタイムアウト時間より長くても短くても良い。また本実施形態では、通信装置151は、DPPモードでの動作を、後述するWEC関連情報を情報処理装置101に取得させるための二次元コードの表示するための操作が行われたことに基づいて開始する。しかしDPPモードでの動作が開始されるタイミング・条件はこれに限定されない。例えば、ネットワークセットアップモードとしての動作を開始することや、ネットワークセットアップモードとして動作を開始するための操作が行われたことに基づいてDPPモードでの動作が開始されても良い。
近距離無線通信部157は、情報処理装置101等の装置と近距離で無線接続するための構成であり、例えば、情報処理装置101内の近距離無線通信部111と接続可能である。通信方式としては、例えば、NFC、Bluetooth Classic、BLE、Wi-Fi Aware等が挙げられる。
RAM153は、バックアップ電源を必要とするSRAM等で構成される。なお、RAM153は、図示しないデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、通信装置151の設定情報や通信装置151の管理データ等を格納するメモリエリアもRAM153に設けられている。また、RAM153は、CPU154の主メモリとワークメモリとしても用いられ、情報処理装置101等から受信した印刷情報を一旦保存するための受信バッファや各種の情報を保存する。
ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。本実施形態では、ROM152に格納されている各制御プログラムは、ROM152に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。
CPU154は、システム制御部であり、通信装置151の全体を制御する。
プリントエンジン155、RAM153に保存された情報や情報処理装置101等から受信した印刷ジョブに基づき、インク等の記録剤を紙等の記録媒体上に付加することで記録媒体上に画像を形成し、印刷結果を出力する。なお一般に、情報処理装置101等から送信される印刷ジョブのデータ量は大きいため、印刷ジョブの通信には、高速通信が可能な通信方式を用いることが求められる。そのため、通信装置151は、近距離無線通信部157よりも高速な通信が可能な通信部156を介して、印刷ジョブを受信する。
なお、通信装置151には、外付けHDDやSDカード等のメモリがオプション機器として装着されてもよく、通信装置151に保存される情報は、当該メモリに保存されても良い。
本実施形態では、上述したようにDPPを用いたネットワークセットアップを実行可能であるものとする。なお情報処理装置101は、DPPによるネットワークセットアップを通信装置151に実行させるためには、WEC関連情報を取得する必要がある。本実施形態では、通信装置151は、ユーザから所定の操作を受け付けた場合、情報処理装置101がWEC関連情報を取得するための二次元コード(本実施形態ではQRコード)を出力する。そして情報処理装置101が、出力されたQRコードの撮影及び撮影したQRコードの解析を実行することで、WEC関連情報を取得する。また通信装置151は、DPPによるネットワークセットアップを実行するためには、DPPモードで動作する必要がある。ところで、通信装置151が常時DPPモードで動作するような形態だと、通信装置151のユーザではないユーザが操作する情報処理装置からDPPによるネットワークセットアップ要求が受信されてしまったりする可能性が高くなる。そのため、DPPモードでの動作は、適切なタイミングで開始されることが望ましい。そこで本実施形態では、通信装置151が、DPPモードでの動作を、適切なタイミングで開始する形態について説明する。具体的には、通信装置151は、QRコードの出力を実行するタイミングにおいて、DPPモードでの動作を開始するものとする。これは、QRコードが出力されるタイミングは、通信装置151のユーザが通信装置151を操作したタイミングであり、通信装置151のユーザが操作する情報処理装置からDPPによるセットアップ要求が受信される可能性が高いタイミングであるためである。
図2を用いて、情報処理装置101と通信装置151によって実行される、DPPによるネットワークセットアップ処理を説明する。図2に示すシーケンスは、例えば、各装置のCPUが各装置のROMや外部記憶装置等に格納されたプログラムを各装置のRAMに読み出して実行することにより実現される。なお本シーケンスは、通信装置151がDPPモードで動作している状態で開始されるものとする。
まずS200において情報処理装置101は、OSの機能により、DPPを利用したWECを開始する。具体的にはまず情報処理装置101は、OS標準のWEC用アプリケーションプログラム(以下、WEC用アプリ)の起動指示を設定アプリからOSに指示することで、WEC用アプリを起動する。これにより、WEC用アプリがフォアグラウンドで動作し、設定アプリがバックグラウンドで動作することとなる。なお例えば当該指示の実行が、WECを実行するための指示に相当することとなる。これにより情報処理装置101は、WEC用アプリによるWEC開始画面を表示する。なおWEC用アプリは、情報処理装置101に予めインストールされているプログラムであり、情報処理装置101のOSベンダーによって提供されるプログラムである。また、WEC用アプリが起動された場合、設定アプリによって取得されたWEC関連情報が、WEC用アプリに提供される。図6は、WEC用アプリによって表示されるWEC開始画面の一例である。WEC開始画面600には領域601、602、603が表示されている。領域501は、WECによる設定対象として設定されているアクセスポイントを変更するための領域である。なお領域601が操作される前は、WECによる設定対象として設定されているアクセスポイントは、情報処理装置101が現在接続しているアクセスポイントである。情報処理装置101は、領域601が選択された場合、アクセスポイントのリストを表示し、リストからユーザによって選択されたアクセスポイントを、WECによる設定対象として新たに設定する。なおアクセスポイントのリストには例えば、情報処理装置101がAPサーチにより発見したアクセスポイントや、情報処理装置101が接続したことがあるアクセスポイント等が含まれるものとする。領域602は、WECの実行をキャンセルするための領域であり、領域603は、WECの実行を指示するための領域である。情報処理装置101は、領域602が操作された場合、本シーケンス図における処理を終了し、S217に進む。なおこの場合、WECが失敗したものとしてみなされる。また、情報処理装置101は、領域603が押下された場合、S201に進む。
S201では、WEC用アプリが、WEC関連情報やWECによる設定対象として設定されているアクセスポイントに関する情報を用いてWEC用のAPIを実行することにより、OSにWECの実行が指示される。そして、OSの機能により、情報処理装置101と通信装置151との間で、DPP Authenticationと呼ばれる処理が実行される。DPP Authenticationにおいては、情報処理装置101と通信装置151との間で、認証情報や、情報の暗号化に利用される情報などが通信されることで、装置間の通信の認証が行われる。なおDPP Authenticationにおける通信において情報処理装置101から送信される各種情報は、後述する処理により情報処理装置101によって予め取得されているWEC関連情報に基づき暗号化される。DPP Authenticationにおいては具体的にはまず情報処理装置101が、DPPによるネットワークセットアップ要求としてAuthentication Requestを送信する。次に、DPPモードとして動作する通信装置151は、Authentication Requestを待ち受けるモードであるDPPモードとして動作しているため、情報処理装置101から送信された当該Requestを受信する。Authentication Requestを受信した通信装置151は、受信したRequestを、自身が現在有している復号鍵による復号化を試みる。そして通信装置151は、当該復号化に成功した場合、Authentication responseを情報処理装置101に送信し、情報処理装置101との通信を認証する。なお、情報処理装置101が、正確なWEC関連情報を取得できておらず、正確に情報を暗号化できていなかった場合は、通信装置151における復号化が失敗するため、認証は失敗し、Authentication responseが送信されない。Authentication responseが情報処理装置101によって受信されることで、DPP Authenticationが完了する。またDPP Authenticationにおいては、DPPが用いられて通信が実行される。
次にS202において、OSの機能により、情報処理装置101と通信装置151との間で、DPP Configurationと呼ばれる処理が実行される。DPP Configurationにおいては、情報処理装置101は、WECによる設定対象として設定されているアクセスポイントと接続するための接続情報をWECにより通信装置151に送信する。なお接続情報には、WECによる設定対象として設定されているアクセスポイントのSSIDやパスワード、暗号化方式を示す情報等が含まれる。このとき送信されるパスワードは、情報処理装置101とアクセスポイントとの間の接続が確立される際にOS対応のアプリが表示する画面上においてユーザによって入力された情報である。そして、情報処理装置101とアクセスポイントとの間の接続が確立された際にOSにより保持された情報である。またパスワードは、設定アプリは保持していない情報である。また、このとき送信されるパスワードは、OSが既に保持している情報であり、且つDPP ConfigurationはOSによって実行される処理であるため、設定アプリが表示する画面上において新たにユーザによって入力される必要はない。本実施形態のようにWECによって接続情報を送信することで、設定アプリが表示する画面上においてユーザからパスワードの入力を新たに受け付けることなく且つ、セキュアな通信で、パスワードを通信装置151に送信することができる。なおDPP Configurationにおいても、DPPが用いられて通信が実行される。
なお本実施形態では、DPP Authentication及びDPP Configurationにおける通信は、各装置のビーコン送信によって行われる。また本実施形態では通信装置151は、インフラ接続用のネットワークインターフェースによって、DPP Authentication及びDPP Configurationにおいて情報処理装置101から送信されるビーコンを受信する。
S203では、通信装置151は、ネットワークセットアップモードを終了し、インフラストラクチャモードに移行する。そして通信装置151は、WECによって取得した接続情報を用いて、当該接続情報に対応するアクセスポイントとの接続を試みる。接続が成功した場合、以後、通信装置151は、接続したアクセスポイントが形成するネットワークを介して通信を実行可能となる。なお接続したアクセスポイントが形成するネットワークを介した通信は、DPPとは異なるプロトコル(具体的には例えば、Port9100やSNMP、通信装置151のベンダー独自のプロトコル)によって実行される。なお通信装置151は、WECによって取得した接続情報に対応するアクセスポイントとの接続の成否を示す情報を、情報処理装置101に送信しても良い。また、さらに、WECによって取得した接続情報に対応するアクセスポイントとの接続が失敗した場合は、失敗した原因を示す情報を、情報処理装置101に送信しても良い。またこれらの情報送信は、DPPが用いられて実行されてよい。なおWECによって取得した接続情報に対応するアクセスポイントとの接続が失敗する原因は、WECにおける通信のエラーや、当該アクセスポイントが発見されなかったことや、通信装置151から取得されたWEC関連情報が適切な情報でなかったこと等である。また例えば、WECによる設定対象として設定されているアクセスポイントとの接続に用いられる暗号化方式が通信装置151が対応していない暗号化方式であったこと等である。また例えば、WECによる設定対象として設定されているアクセスポイントとの接続に用いられる暗号化方式がWECが対応していない暗号化方式であったこと等である。
S204では、情報処理装置101は、WECの実行が終わったことに基づいて、フォアグラウンドで動作しているアプリを、WEC用アプリから設定アプリに切り替える。そして、情報処理装置101は、自身が属するネットワーク上で、通信装置151を検索する。本処理は、WECの実行が終わったことの通知をOSから受け取った設定アプリにより実現される。そして情報処理装置101は、通信装置151が発見された場合に、通信装置151にケーパビリティ情報を要求し、通信装置151はケーパビリティ情報を情報処理装置101に送信する。これにより、設定アプリ上に、通信装置151の情報を登録し、以後、設定アプリによって通信装置151との通信を実行可能とする。具体的には例えば、設定アプリによって通信装置151に印刷ジョブを送信可能とする。なおこのとき、WECによって通信装置151が接続したアクセスポイントによって形成されるネットワークに情報処理装置101が属している場合には、当該アクセスポイントを介して通信装置151との通信が実行可能となる。また、通信装置151が接続したアクセスポイントが、情報処理装置101が接続しているアクセスポイントでなかった場合等、情報処理装置101と通信装置151との間の通信が実行できない場合は、ケーパビリティ情報の要求や取得は省略される。なおS204における通信は、例えば、DPPともセットアップ用通信プロトコルとも異なる通信プロトコル(具体的には例えば、CHMP)が利用されて実行される。
なお上述では、WEC用アプリによってWEC開始画面が表示され、WEC用アプリがWEC用のAPIを実行することによりWECの実行をOSに指示する形態を説明したが、この形態に限定されない。例えば設定アプリによってWEC開始画面が表示されても良い。またWEC用のAPIを設定アプリが実行することによりWECの実行をOSに指示する形態であっても良い。
また上述したように、本実施形態では通信装置151は、DPPではなく、SNMPによってもネットワークセットアップを実行可能である。そのため次に図3を用いて、情報処理装置101と通信装置151によって実行されるSNMPによるネットワークセットアップ処理を説明する。図3に示すシーケンスは、例えば、各装置のCPUが各装置のROMや外部記憶装置等に格納されたプログラムを各装置のRAMに読み出して実行することにより実現される。なお上述したように、ネットワークセットアップモードとして動作する通信装置151と情報処理装置101との間のWi-Fi接続を介した通信では、セットアップ用通信プロトコルが用いられる。
S300では、情報処理装置101は、設定アプリにより、ネットワークセットアップモードとして動作する通信装置151と情報処理装置101との間のWi-Fi接続を介して、アクセスポイントのリストを通信装置151に要求する。
次にS301では、通信装置151は、ネットワークセットアップモードとして動作する通信装置151と情報処理装置101との間のWi-Fi接続を介して、アクセスポイントのリストを情報処理装置101に送信する。なおここで送信されるリストは、通信装置151がAPサーチを実行することにより発見された、通信装置151が接続可能な1または複数のアクセスポイントを示すリストである。
次にS302では、情報処理装置101は、ネットワークセットアップモードとして動作する通信装置151と情報処理装置101との間のWi-Fi接続を介して、受信したリストに含まれるいずれかのアクセスポイントの接続情報を通信装置151に送信する。なお本処理は、設定アプリが、受信したリストに含まれるいずれかのアクセスポイントの接続情報を送信するよう情報処理装置101を制御することで実現される。本処理において具体的には情報処理装置101は、受信したリストに、接続済みAPが含まれる場合、接続済みAPの接続情報を送信する。本実施形態では、リストには通信装置151が接続可能なアクセスポイントのみが含まれるため、受信したリストに接続済みAPが含まれる場合とはすなわち、接続済みAPに通信装置151が接続可能な場合である。また、受信したリストに、接続済みAPが含まれなかった場合、情報処理装置101は、受信したリストを表示し、リストからいずれかのアクセスポイントの選択をユーザから受け付ける。そして情報処理装置101は、選択されたアクセスポイントの接続情報を送信する。本実施形態では、リストには通信装置151が接続可能なアクセスポイントのみが含まれるため、受信したリストに接続済みAPが含まれない場合とはすなわち、接続済みAPに通信装置151が接続できない場合である。また、通信装置151に対応していない暗号化方式によって接続可能なアクセスポイントは、通信装置151が接続可能でないため、リストには含まれない。また、通信装置151に対応していない周波数帯よって接続可能なアクセスポイントは、通信装置151が接続可能でないため、リストには含まれない。そのため、S211-NOの場合や、S213-NOの場合に実行されるS224では、接続済みAPとは異なるアクセスポイントの接続情報が送信されることとなる。なお、S212-NOの場合は、接続済みAPと通信装置151が接続可能である場合もあるため、接続済みAPの接続情報が送信されることも、接続済みAPとは異なるアクセスポイントの接続情報が送信されることも起こりうる。なおこの形態に限定されず、必ずリストを表示してアクセスポイントの選択をユーザから毎回受け付けても良い。なお接続情報が送信される前に、情報処理装置101は、アクセスポイントと接続するためのパスワードの入力を設定アプリが表示する画面上でユーザから受け付ける。そして、受け付けたパスワードを接続情報に含めて、接続情報を送信する。
S303では、通信装置151は、ネットワークセットアップモードとして動作する通信装置151と情報処理装置101との間のWi-Fi接続を介して、接続情報を受信したことを情報処理装置101に通知する。
S304では、通信装置151は、ネットワークセットアップモードを終了し、インフラストラクチャモードに移行する。そして通信装置151は、S302で取得した接続情報を用いて、当該接続情報に対応するアクセスポイントとの接続を試みる。接続が成功した場合、以後、通信装置151は、接続したアクセスポイントが形成するネットワークを介して通信を実行可能となる。
S305では、情報処理装置101は、設定アプリにより、保存していた接続情報を用いて、設定操作が行われたときに情報処理装置101が接続していたアクセスポイントと再び接続する。なおこの形態に限定されない。例えば情報処理装置101は、設定操作が行われたときに情報処理装置101がWi-Fiによって接続していたアクセスポイントとは異なる他のアクセスポイントの接続情報を通信装置151に送信していた場合等は、当該他のアクセスポイントと接続しても良い。
S306では、情報処理装置101は、設定アプリにより、自身が属するネットワーク上で、通信装置151を検索する。そして情報処理装置101は、通信装置151が発見された場合に、通信装置151にケーパビリティ情報を要求し、通信装置151はケーパビリティ情報を情報処理装置101に送信する。これにより、設定アプリ上に、通信装置151の情報を登録し、以後、設定アプリによって通信装置151との通信を実行可能とする。具体的には例えば、設定アプリによって通信装置151に印刷ジョブを送信可能とする。なおこのとき、ネットワークセットアップによって通信装置151が接続したアクセスポイントによって形成されるネットワークに情報処理装置101が属している場合には、当該アクセスポイントを介して通信装置151との通信が実行可能となる。なお、通信装置151が接続したアクセスポイントが、情報処理装置101が接続しているアクセスポイントでなかった場合等、情報処理装置101と通信装置151との間の通信が実行できない場合は、ケーパビリティ情報の要求や取得は省略される。なおS306における通信は、例えば、DPPともセットアップ用通信プロトコルとも異なる通信プロトコル(具体的には例えば、CHMP)が利用されて実行される。その後情報処理装置101は、本シーケンス図における処理を終了する。
なお、上述のシーケンス図における処理の内容は、上述した内容に限定されない。例えば、アクセスポイントの接続情報を送信せず、通信装置151とアクセスポイントとの間の接続確立を試みなくても良い。代わりに、APモード時に通信装置151内で有効化されるアクセスポイントの接続情報を通信装置151から受信し、APモードで動作する通信装置151と情報処理装置101との間の接続確立を試みても良い。その形態の場合、通信装置151は、APモード時に通信装置151内で有効化されるアクセスポイントの接続情報を送信した後、ネットワークセットアップモードを終了し、APモードに移行する。なおこの処理は例えば、受信したリストに、設定操作が行われたときに情報処理装置101がWi-Fiによって接続していたアクセスポイントが含まれなかった場合に実行されるものであっても良い。
図4は、本実施形態のネットワークセットアップ処理において情報処理装置101が実行する処理の流れを示すフローチャートである。図4に示すフローチャートは、例えば、CPU103がROM104や外部記憶装置106等に格納された設定アプリをRAM105に読み出して実行することにより実現される。また、図4に示すフローチャートは、設定アプリが表示する画面において、ネットワークセットアップのための所定の操作(以下、設定操作)が行われたことに応じて開始される。
まずS400において、CPU103は、少なくとも設定操作が行われたときに情報処理装置101がWi-Fiによって無線接続していたアクセスポイント(以下、接続済みAP)に関する情報を取得する。なお本実施形態では、設定操作が行われた後に、情報処理装置101は接続先のアクセスポイントの切り替えを実行していないため、当該アクセスポイントは、S400において現在情報処理装置101が接続しているアクセスポイントでもある。当該情報には、情報処理装置101がWi-Fiによって無線接続しているアクセスポイントと接続するための情報(SSID、暗号化方式を示す情報等)が含まれる。なお取得された情報は、情報処理装置101のメモリの所定の記憶領域に保存される。なお設定操作が行われたときに情報処理装置101がWi-Fiによっていずれのアクセスポイントとも接続していない場合は、本処理は省略される。
次にS401において、CPU103は、情報処理装置101の周囲のアクセスポイントの検索を情報処理装置101のOSに指示し、その検索結果を設定アプリにより取得する。
次にS402において、CPU103は、S401で取得された検索結果のなかに、ネットワークセットアップモードとして動作する通信装置151が有効化しているアクセスポイントがあるか否かを判定する。上述したように本実施形態では、ネットワークセットアップモードとして動作する通信装置151が有効化しているアクセスポイントのSSIDには、設定アプリにより予め認識されている所定の文字列が含まれる。そのため本判定では具体的にはCPU103は、S401で取得された検索結果のなかに、当該所定の文字列を含むSSIDを有するアクセスポイントがあるか否かを判定する。CPU103は、YES判定の場合、S403に進み、NO判定の場合にS419に進む。
S403において、CPU103は、検索結果に含まれていた、ネットワークセットアップモードとして動作する通信装置151が有効化しているアクセスポイントと情報処理装置101との間のWi-Fi接続の確立を試みる。なお当該Wi-Fi接続は、当該ネットワークセットアップモードとして動作する通信装置151と情報処理装置101との間のWi-Fi接続に相当する。
次にS404において、CPU103は、S403によりWi-Fi接続の確立が成功したか否かを判定する。CPU103は、YES判定の場合、S405に進み、NO判定の場合にS419に進む。
S405において、CPU103は、OSから情報処理装置101のケーパビリティ情報を取得する。本実施形態では、ケーパビリティ情報には、情報処理装置101がWECに対応しているか否かを示す情報が含まれる。なおケーパビリティ情報の内容は、情報処理装置101の機種や型番等によって異なる。
次にS406において、CPU103は、設定操作が行われたときに情報処理装置101がWi-Fiによってアクセスポイントと接続しており、且つ、情報処理装置101がWECに対応しているか否かを判定する。ここでは例えば、設定操作が行われたときに情報処理装置101がWi-Fiによってアクセスポイントと接続していない場合、NO判定となる。また例えば、設定操作が行われたときに情報処理装置101がWi-Fiによってアクセスポイントと接続していたが、情報処理装置101がWECに対応していない場合、NO判定となる。なお設定操作が行われたときに情報処理装置101がWi-Fiによってアクセスポイントと接続していたか否かは、上述の所定の記憶領域に接続済みAPに関する情報が保存されているか否かに基づいて判定される。また、情報処理装置101がWECに対応しているか否かは、S405で取得されたケーパビリティ情報の内容に基づいて判定される。CPU103は、YES判定の場合、S407に進み、NO判定の場合にS424に進む。
S407において、CPU103は、ネットワークセットアップモードとして動作する通信装置151が有効化しているアクセスポイントと情報処理装置101との間のWi-Fi接続を介して、通信装置151から各種情報の取得を試みる。なお上述したようにネットワークセットアップモードとして動作する通信装置151が有効化しているアクセスポイントと情報処理装置101との間のWi-Fi接続を介した通信では、セットアップ用通信プロトコルが用いられる。また、これにより取得される情報には、例えば、上述のWEC関連情報や、通信装置151がWECに対応しているか否かを示す情報が含まれる。なお通信装置151がWECに対応していない場合は、通信装置151がWECに対応していないことを示す情報が取得され、WEC関連情報は取得されない。また、通信装置151がWECに対応していない場合は、WEC関連情報と通信装置151がWECに対応しているか否かを示す情報の両方が取得されないこともある。一般にWEC関連情報は、通信装置151がWEC関連情報に対応するQRコードを表示部に表示し、そのQRコードを情報処理装置101がカメラユニット等で読み取ることで取得されることも可能である。しかし本実施形態では、S407では、WEC関連情報が、ネットワークセットアップモードとして動作する通信装置151が有効化しているアクセスポイントと情報処理装置101との間のWi-Fi接続経由で取得される。この形態により、通信装置151がQRコードを表示するための表示部を有していなかったり、情報処理装置101がQRコードを読み取るためのカメラユニットを有していなかったりしても、情報処理装置101にWEC関連情報を取得させることができる。
次にS408において、CPU103は、通信装置151がWECに対応しているか否かを、S407で取得された情報に基づき判定する。通信装置151がWECに対応していることを示す情報が取得された場合、YES判定となり、通信装置151がWECに対応していることを示す情報が取得されなかった場合、NO判定となる。CPU103は、YES判定の場合、S409に進み、NO判定の場合にS424に進む。なおS407で情報を取得できなかった場合は、本判定の結果はNOとなる。
次にS409において、CPU103は、S407でWEC関連情報を通信装置151から取得できたか否かを判定する。CPU103は、YES判定の場合、S410に進み、NO判定の場合にS422に進む。なおNO判定となるケースとは例えば、通信装置151がWECに対応していることを示す情報は取得されたが、通信エラー等でWEC関連情報は取得されなかったケースである。
S410において、CPU103は、ネットワークセットアップモードとして動作する通信装置151が有効化しているアクセスポイントと情報処理装置101との間のWi-Fi接続を介して、通信装置151のケーパビリティ情報を取得する。本実施形態では、通信装置151のケーパビリティ情報には、通信装置151が対応している暗号化方式を示す情報や通信装置151が対応している周波数帯を示す情報が含まれているものとする。通信装置151が対応している暗号化方式は例えば、WPA(Wi-Fi Protected Access)、WPA2,WPA3である。また、通信装置151が対応している周波数帯を示す情報は、通信装置151が対応している周波数帯に対応する通信チャネルを示す情報であっても良い。なお、後述する、通信装置151が対応している暗号化方式に関する判定や、通信装置151が対応している周波数帯に関する判定が実行されない形態では、本処理は省略されても良い。なおケーパビリティ情報は、設定アプリに予め含まれていても良い。すなわち、CPU103は、設定アプリに予め含まれている各通信装置の種類や型番毎に用意されている複数のケーパビリティ情報の中から、通信装置151に対応するケーパビリティ情報を特定し、特定されたケーパビリティ情報を設定アプリから取得しても良い。
次にS411において、CPU103は、S410で取得されたケーパビリティ情報に基づいて、接続済みAPとの接続に利用されていた暗号化方式が、通信装置151が対応している暗号化方式か否かを判定する。なお本実施形態では、通信装置151が対応する暗号化方式がWPA、WPA2、WPA3であり、通信装置151が対応していない暗号化方式がWEP(Wired Equivalent Privacy)である。CPU103は、YES判定の場合、S412に進み、NO判定の場合にS424に進む。なお本判定は、他のタイミングで実行されても良い。具体的には例えば、本判定は、S404-YESの後に実行され、YES判定の場合、S405に進み、NO判定の場合にS424に進むのでも良い。
次にS412において、CPU103は、接続済みAPとの接続に利用されていた暗号化方式が、WECに対応する(DPPに対応する)暗号化方式か否かを判定する。なおWECに対応する暗号化方式とは、例えば、WPA2やWPA3であり、WECに対応していない暗号化方式とは、例えば、WPAやWEPである。なおCPU103は、WECに対応する暗号化方式がいずれであるかを、設定アプリが予め保持している情報により把握しても良いし、通信装置151から取得される情報によって把握しても良い。CPU103は、YES判定の場合、S413に進み、NO判定の場合にS424に進む。
次にS413において、CPU103は、S410で取得されたケーパビリティ情報に基づいて、接続済みAPとの接続に利用されていた周波数帯が、通信装置151が対応している周波数帯か否かを判定する。なお本実施形態では、通信装置151には、2.4GHzの周波数帯と5GHzの周波数帯の両方に対応する種類のものと、2.4GHzの周波数帯には対応するが5GHzの周波数帯には対応しない種類のものがあるものとする。そして、通信装置151は、対応していない周波数帯によっては、アクセスポイントと接続することはできない。そのため例えば、接続済みAPとの接続に利用されていた周波数帯が5GHzの周波数帯であり、且つ通信装置151が5GHzの周波数帯は対応しない場合は、本判定の結果がNO判定となる。CPU103は、YES判定の場合、S414に進み、NO判定の場合にS424に進む。
S414において、CPU103は、ネットワークセットアップモードとして動作する通信装置151が有効化しているアクセスポイントと情報処理装置101との間のWi-Fi接続を切断する。
次にS415において、CPU103は、設定操作が行われたときに情報処理装置101がWi-Fiによって接続していたアクセスポイントと情報処理装置101との間の接続を再び確立する。なおWECでは、WEC実行時に情報処理装置101が接続しているアクセスポイントに関する情報が送信される。そのため本処理は、S416のWECの実行に備えて実行される。
次にS416において、CPU103は、取得したWEC関連情報を用いてWECを実行するための処理を実行する。なお本実施形態では、設定アプリは、WECを直接的に実行するのではなく、WECを実行するための処理として、WEC用アプリを起動する処理を行う。そして、WEC用アプリによってWEC用のAPIが実行されて、OSにWECの実行要求が行われることにより、OSによりWECが実行される。なお設定アプリからWEC用のAPIが実行されて、OSにWECの実行要求が行われても良く、WECを実行するための処理は当該実行要求であっても良い。本処理において情報処理装置101が実行する処理詳細は、図2で説明した通りである。
S417において、CPU103は、実行されたWECによって、アクセスポイントと通信装置151との間の接続の確立が成功したか否かを判定する。本判定は、WECの実行がキャンセルされたか否かや、通信装置151から取得される、アクセスポイントとの接続の成否を示す情報に基づいて実行される。CPU103は、YES判定の場合、処理を終了し、NO判定の場合にS418に進む。
S418において、CPU103は、実行されたWECによって、アクセスポイントと通信装置151との間の接続の確立が成功しなかった原因が特定の原因であるかを判定する。なお本実施形態では、実行されたWECによって、アクセスポイントと通信装置151との間の接続の確立が成功しなかった原因に関する情報が、通信装置151から取得されるものとし、当該情報に基づいて本判定が実行されるものとする。また本実施形態では、特定の原因は、例えば、WECにおける通信がエラーになったこと(原因1)や、情報処理装置101とアクセスポイントとの接続に用いられる暗号化方式が通信装置151が対応していない暗号化方式であったこと(原因2)である。また例えば、情報処理装置101とアクセスポイントとの接続に用いられる暗号化方式がWECが対応していない暗号化方式であったこと(原因3)である。なお、原因2や原因3による接続の失敗は、S421-YESの後にWECが実行された場合に生じうる。これは、S421-YESの後にWECが実行される場合は、S415の後にWECが実行される場合と異なり、通信装置151のケーパビリティ情報が取得されておらず、S411やS412のような判定が実行されていないためである。CPU103は、YES判定の場合、S424に進み、NO判定の場合には処理を終了する。
なおS417やS418の処理は省略されても良い。具体的には例えば、S416の後に、S417やS418が実行されることなく処理が終了されても良い。また、S417-NOの場合に、S418が実行されることなく処理が終了されても良い。
次に、S402-NOの場合や、S404-NOの場合に実行されるS419について説明する。S419では、CPU103は、設定操作が行われたときに情報処理装置101がWi-Fiによってアクセスポイントと接続していたか否かを判定する。本判定は、上述の所定の記憶領域にアクセスポイントに関する情報が保存されているか否かに基づいて実行される。CPU103は、YES判定の場合、S420に進み、NO判定の場合に処理を終了する。
S420では、S407におけるWEC関連情報の取得方法とは異なる方法で、WEC関連情報の取得を試みる。具体的には例えば、上述した、QRコードの撮影・読み取りによるWEC関連情報の取得を試みる。図7は設定アプリが表示するQRコード撮影用の画面の一例である。QRコード撮影用の画面700には枠701が表示されており、さらに画面700には、情報処理装置101が備えるカメラユニットにより撮影されている画像が表示される。ユーザは、カメラユニットにより撮影されており、通信装置151が表示するQRコードが枠701に収まるように、情報処理装置101を操作する。枠701にQRコードが収まったことが検知された場合、CPU103は、QRコードの解析を行い、WEC関連情報を取得する。なおWEC関連情報の取得はこの形態に限定されず、例えば、NFCやBLEによって通信装置151からWEC関連情報を取得しても良い。なお、通信装置151が、WECに対応していない場合、QRコードの表示や、NFCやBLEによるWEC関連情報の送信を通信装置151は実行できない。その場合はCPU103は、ユーザから設定アプリ上でキャンセル操作を受け付けることで、処理を終了する。なおQRコード撮影用の画面700は、設定アプリでないアプリケーションプログラム(例えばWEC用アプリや、他の撮影用アプリケーションプログラム)によって表示されても良い。
次にS421では、S420においてWEC関連情報を取得できたか否かを判定する。CPU103は、YES判定の場合、S416に進み、NO判定の場合、処理を終了する。なお例えば、S420で読み取られたQRコードが、WEC関連情報を取得させるためのQRコードではなかった場合や、QRコードの読み取りが失敗した場合に、NO判定となる。またNO判定の場合、CPU103は、処理を終了せず、S424に進んでも良い。また、S421-YESの場合に、CPU103は、接続済みAPとの接続に利用されていた暗号化方式が、WECに対応する(DPPに対応する)暗号化方式か否かを判定しても良い。そしてCPU103は、YES判定の場合、S416に進み、NO判定の場合、処理を終了したり、S424に進んでも良い。なおこの場合CPU103は、WECに対応する暗号化方式がいずれであるかを、設定アプリが予め保持している情報により把握しているものとする。
次に、S409-NOの場合に実行されるS422について説明する。S422では、CPU103は、ネットワークセットアップモードとして動作する通信装置151が有効化しているアクセスポイントと情報処理装置101との間のWi-Fi接続を切断する。
次にS423では、CPU103は、設定操作が行われたときに情報処理装置101がWi-Fiによって接続していたアクセスポイントと情報処理装置101との間の接続を再び確立する。その後、CPU103は、前述したS420に進む。
このように本実施形態では、ネットワークセットアップモードとして動作する通信装置151と情報処理装置101との間のWi-Fi接続によってWEC関連情報が取得できない場合には、他の方法でWEC関連情報の取得を試みる。具体的には例えば、QRコードの読み取りでのWEC関連情報の取得を試みる。これにより、ネットワークセットアップモードとして動作する通信装置151と情報処理装置101との間のWi-Fi接続によってWEC関連情報が取得できない場合であっても、WECを実行することができる。
次に、S406-NOの場合や、S408-NOの場合、S412-NOの場合、S418-YESの場合に実行されるS424について説明する。S424では、CPU103は、WECと異なる方法によって、通信装置151のネットワークセットアップを実行する。本実施形態では、WECと異なる方法とは、WEC用のプロトコル(DPP)と異なるプロトコルであるセットアップ用通信プロトコルを用いて通信装置151のネットワークセットアップを実行する方法である。本処理において情報処理装置101が実行する処理の詳細は、図3で説明した通りである。その後処理を終了する。
なお上述のフローチャートにおける処理の内容は、上述した内容に限定されない。例えばCPU103は、ネットワークセットアップモードとして動作する通信装置151と情報処理装置101との間のWi-Fi接続によってWEC関連情報が取得できない場合、他の方法でWEC関連情報の取得を試みることなく処理を終了しても良い。ネットワークセットアップモードとして動作する通信装置151と情報処理装置101との間のWi-Fi接続によってWEC関連情報が取得できない場合とは具体的には例えば、S402-NOの場合や、S404-NOの場合、S409-NOの場合である。すなわち、S402-NOの場合や、S404-NOの場合、S409-NOの場合、その後の処理(S419~S423)が実行されることなく処理が終了されても良い。
また例えば、上述では、S407の後に、S408とS409の2つの判定が行われていたがこの形態に限定されない。例えば、S407の後に、S408とS409の2つの判定の代わりに、WEC関連情報が取得されたか否かの判定が実行されても良い。そして、判定結果がYESの場合にS410に進み、判定結果がNOの場合にS424に進み、S420~S422の処理は実行されない形態であっても良い。
なお本実施形態では、通信装置151が対応する暗号化方式のなかに、WECに対応する暗号化方式が包含されている。そのため、S411の判定が実行されない形態であっても良い。具体的には例えば、S410の後に、S411の判定が実行されず、S412の判定が実行されても良い。
また例えば、通信装置151が対応する暗号化方式がWPA3のみであり、WECに対応する暗号化方式がWPA2、WPA3である形態等、WECが対応する暗号化方式のなかに通信装置151に対応する暗号化方式が包含されている形態であっても良い。その場合は、S412の判定が実行されない形態であっても良い。具体的には例えば、S411―YESの後に、S412の判定が実行されず、S414の処理が実行されても良い。
図5は、通信装置151がDPPモードでの動作を開始し、DPPによるネットワークセットアップを実行する処理を示すフローチャートである。図5に示すフローチャートは、例えば、CPU154がROM152等に格納されたプログラムをRAM153に読み出して実行することにより実現される。また、図5に示すフローチャートは、QRコードを出力するための所定の指示が通信装置151によって受け付けられたことに基づいて開始される。なお当該指示は、通信装置151に対して所定の操作がユーザにより行われたことに基づいて受け付けられる指示であっても良いし、通信装置151に対して情報処理装置101等から所定の通信が行われたことに基づいて受け付けられる指示であっても良い。
S501にて、CPU154は、DPPによる通信の待ち受けチャネルを決定する。
S502にて、CPU154は、公開鍵を生成する。なおS501で決定される待ち受けチャネルとS502で生成される公開鍵は、所定の操作を受けるたびに新規で決定、生成される。
S503にて、CPU154は、S501で決定した待ち受けチャネルを示す情報とS502で生成した公開鍵情報を含むWEC関連情報を生成する。
S504にて、CPU154は、WEC関連情報を取得するためのQRコードを生成する。
S505にて、CPU154は、S504で生成したQRコードを出力する。なお本実施形態においてQRコードの出力とは、QRコードの印刷であるものとする。しかしこの形態に限定されず、QRコードの出力とは、通信装置151が備える表示部(不図示)へのQRコードの表示であっても良い。また、QRコードの印刷と表示の両方が実行されても良い。
S506にて、CPU154は、QRコードの出力が成功したか否かを判定する。なおQRコードの出力が失敗するケースとは例えば、通信装置151が備える、印刷に使用される記録媒体(用紙)や記録材(インクやトナー)が不足しているケースである。CPU154は、NOと判定した(QRコードの出力が失敗した)場合、S507に進み、YESと判定した(QRコードの出力が成功した)場合、S508に進む。
S507にて、CPU154は、QRコードの出力が失敗したことを示す第1エラー通知画面を表示する。なお第1エラー通知画面は、例えば、印刷に使用される記録媒体や記録材を通信装置151に補充するよう通知する画面であっても良い。その後CPU154は、S514に進む。
S508にて、CPU154は、通信装置151のDPPモードでの動作を開始させる。すなわちCPU154は、DPPによるセットアップ要求の待ち受けを、S501で決定された通信チャネルを用いて開始する。このように本実施形態では、QRコードの出力の成功(完了)に基づいて、DPPモードを開始する。なおこの形態に限定されず、QRコードの出力が行われるタイミングに近いタイミングでDPPモードが開始される形態であれば良い。そのため例えば、QRコードの出力開始に基づいて、QRコードの出力中にDPPモードが開始される形態であっても良いし、所定の操作が実行されたことに基づいて、QRコードの出力前にDPPモードが開始される形態であっても良い。またCPU154は、通信装置151がDPPモードでの動作を開始した場合に、DPPモードでの動作の経過時間をカウントし始める。
S509では、CPU154は、DPPによるセットアップ要求を情報処理装置101から受信したか否かを判定する。CPU154は、NOと判定した場合、S510に進み、YESと判定した場合、S511に進む。
S510では、CPU154は、カウントされた、DPPモードでの動作の経過時間がタイムアウト時間を超過したか否かを判定する。CPU154は、NOと判定した場合、S509に戻ってDPPによるセットアップ要求を待ち、YESと判定した場合、S512に進む。
S511では、CPU154は、DPPによるネットワークセットアップを実行する。なお本処理においてCPU154が実行する処理は、図2のS201~S204において、DPPによるセットアップ要求を情報処理装置101から受信した後に通信装置151が実行するものとして説明した処理である。その後CPU154は、S512に進む。
S512では、CPU154は、DPPによるネットワークセットアップが成功したか否かを判定する。なお例えば、S511において情報処理装置101から受信したWEC関連情報に含まれる公開鍵が、S502で生成された最新の公開鍵でない場合等に、DPPによるネットワークセットアップが失敗し、通信装置151はアクセスポイントと接続しない。なお本判定は、情報処理装置101から受信した情報に対応するアクセスポイントとの接続が成功したか否かの判定であっても良い。CPU154は、NOと判定した場合、S513に進み、YESと判定した場合、S514に進む。
S513では、CPU154は、DPPによるネットワークセットアップが失敗したことを示す第2エラー通知画面を表示する。なお第2エラー通知画面は、例えば、ネットワークセットアップモードによるネットワークセットアップを実行するよう通知する画面であっても良い。その後CPU154は、S514に進む。
S514では、CPU154は、通信装置151のDPPモードでの動作を終了する。すなわち、CPU154は、DPPによるセットアップ要求の待ち受けを停止する。
S515では、CPU154は、S503にて生成したWEC関連情報を無効化(削除)する。
このように本実施形態では、QRコードの出力が行われるタイミングに近いタイミングでDPPモードが開始される。これにより、ユーザがDPPによるネットワークセットアップを指示する可能性が高いタイミングにおいて、通信装置151がDPPモードでの動作を開始することができる。結果として、DPPによるネットワークセットアップが速やかに実行されることとなり、DPPによるネットワークセットアップにおけるユーザビリティが向上する。
(その他の実施形態)
上述の実施形態では、WECによって、接続済みAPの接続情報を送信するものとし、S411~S413のような各種判定では、接続済みAPに関して判定を行っていたが、この形態に限定されない。接続済みAPとは異なるAPの接続情報を送信したり、接続済みAPとは異なるAPに関して判定を行っても良い。具体的には接続済みAPとは異なるAPとは例えば、設定操作が行われたときには情報処理装置101が接続していなかったが、設定操作が行われる前のいずれかのタイミングにおいて情報処理装置101が接続したことがあるアクセスポイントであっても良い。また、情報処理装置101が接続したことがあるアクセスポイントのリストからユーザによって選択されたアクセスポイントであっても良い。情報処理装置101がいずれかのタイミングで接続したことがあるアクセスポイントの接続情報であり、OSが記憶している接続情報であれば、WECによって送信可能であるためである。
S424におけるネットワークセットアップは、Wi-Fiによる情報処理装置101と通信装置151との間の接続を介して接続情報が送信される形態を説明したが、この形態に限定されない。例えばネットワークセットアップは、BLE等、Wi-Fi以外の通信方式による情報処理装置101と通信装置151との間の接続を介して接続情報が送信されても良い。なおこの形態の場合、情報処理装置101は、接続済みAPとのWi-Fi接続を維持したまま、通信装置151とBLEによって接続することができる。すなわち、接続済みAPの接続情報として、現在接続しているアクセスポイントの接続情報を送信することができる。なおこの形態においても、DPPとは異なる通信プロトコルが用いられるものとする。
上述の実施形態では、S407では、ネットワークセットアップモードとして動作する通信装置151が有効化しているアクセスポイントと情報処理装置101との間のWi-Fi接続経由で各種情報が取得される形態を説明した。しかし、この形態に限定されない。S420のようなQRコードの読み取りで取得されても良いし、NFCやBLE等、他の通信方式による通信を介して取得されても良い。
上述の実施形態は、以下の処理を実行することによっても実現される。すなわち上述の実施形態の機能を実現するソフトウェア(プログラム)を、ネットワークまたは各種記憶媒体を介してシステムあるいは装置に共有し、そのシステムあるいは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは1つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしても良い。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしても良い。また、CPUも1つのCPUで全ての処理を行うものに限らず、複数のCPUが適宜連携をしながら処理を行うものとしても良い。
上述の実施形態は、DPPによってネットワークセットアップを実行していたが、この形態に限定されない。例えば、DPPの代わりにHTTP(Hyper Text Transfer Protocol)が用いられても良い。また通信装置151は、DPPモードの代わりに、DPPとは異なるプロトコルによるネットワークセットアップを実行するためのモードで動作しても良い。すなわちQRコードの読み取りによって取得される情報に基づいてネットワークセットアップを実行する機能であれば、WECとは異なる機能によってネットワークセットアップを実行する形態であっても良い。