(通信システム2の構成)
図1に示されるように、通信システム2は、複数個のMFP(Multi-Function Peripheralの略)10,50と、携帯端末110と、パーソナルコンピュータ(以下では「PC(Personal Computerの略)」と呼ぶ)120と、を備える。
(各機器10,50,110,120が実行可能な無線通信の種類)
各機器10,50,110,120は、WFD(Wi-Fi Direct(登録商標)の略)方式に従った無線通信(以下、「WFD通信」と呼ぶ)と、を実行可能である。
(WFD通信)
WFD方式は、Wi−Fi Allianceによって作成された規格書「Wi−Fi Peer−to−Peer(P2P) Technical Specification Version1.1」に記述されている無線通信方式である。WFD方式は、例えば、IEEE(The Institute of Electrical and Electronics Engineers, Inc.の略)の802.11の規格、及び、それに準ずる規格(例えば、802.11a,11b,11g,11n等)に従って、無線通信を実行するための無線通信方式である。
各機器10,50,110,120は、WFDネットワーク(以下では「WFDNW」と呼ぶ)に所属することによって、当該WFDNWに所属する他の機器と目的データのWFD通信を実行することができる。目的データは、OSI参照モデルのネットワーク層の情報、及び、ネットワーク層よりも上位層(例えばアプリケーション層)の情報を含むデータであり、例えば、印刷データ、スキャンデータ等を含む。
各機器10,50,110,120のように、WFD通信を実行可能な機器のことを「WFD対応機器」と呼ぶ。上記のWFDの規格書では、WFD対応機器の状態として、Group Owner状態(以下では「G/O状態」と呼ぶ)、クライアント状態(以下では「CL状態」と呼ぶ)、及び、デバイス状態の3つの状態が定義されている。WFD対応機器は、上記の3つの状態のうちの1つの状態で選択的に動作可能である。
デバイス状態の第1及び第2のWFD対応機器は、無線ネットワークを新たに形成すべき際に、通常、G/Oネゴシエーションと呼ばれる無線通信を実行する。G/Oネゴシエーションでは、第1のWFD対応機器(例えばMFP10)は、第1のWFD対応機器のG/O優先度を示す情報を第2のWFD対応機器(例えばPC120)に送信し、第2のWFD対応機器のG/O優先度を示す情報を第2のWFD対応機器から受信する。第1のWFD対応機器のG/O優先度は、第1のWFD対応機器がG/O状態になるべき程度を示す指標であり、第1のWFD対応機器において予め決められている。同様に、第2のWFD対応機器のG/O優先度は、第2のWFD対応機器がG/O状態になるべき程度を示す指標である。
第1のWFD対応機器は、2つのG/O優先度を比較して、優先度が高い方の機器がG/O状態になることを決定し、優先度が低い方の機器がCL状態になることを決定する。同様に、第2のWFD対応機器は、2つの優先度を比較して、G/O状態及びCL状態を決定する。
例えば、第1のWFD対応機器がG/O状態になり、第2のWFD対応機器がCL状態になることを想定する。この場合、第1のWFD対応機器は、まず、WFDNWで利用されるべきWFD無線設定情報を準備する。WFD無線設定情報は、認証方式、暗号化方式、パスワード、SSID(Service Set Identifierの略)、BSSID(Basic Service Set Identifierの略)等を含む。WFD無線設定情報に含まれる認証方式、暗号化方式、及び、パスワードは、WFDNWにおいて、認証及び暗号化のために利用される情報である。WFD無線設定情報に含まれるSSIDは、WFDNWを識別するためのネットワーク識別子である。WFD無線設定情報に含まれるBSSIDは、G/O機器(即ち第1のWFD対応機器)のMACアドレスである。なお、以下では、WFD無線設定情報のことを「WFDWSI(WFD Wireless Setting Informationの略)」と呼ぶ。
第1のWFD対応機器(即ちG/O機器)がWFDWSIを準備する手法は、以下のとおりである。即ち、第1のWFD対応機器は、予め決められている認証方式及び暗号化方式を特定する。第1のWFD対応機器は、予め決められているパスワードを特定するか、あるいは、パスワードを新たに生成することによって、パスワードを準備する。第1のWFD対応機器は、予め決められているSSIDを特定するか、あるいは、SSIDを新たに生成することによって、SSIDを準備する。第1のWFD対応機器は、第1のWFD対応機器に予め割り当てられているMACアドレスをBSSIDとして特定する。
第1のWFD対応機器は、準備済みのWFDWSIを第2のWFD対応機器に供給する。これにより、第1及び第2のWFD対応機器は、WFDWSIに従った認証通信(即ちAuthentication Request信号、Association Request信号等の通信)を実行する。第1のWFD対応機器(即ちG/O機器)が第2のWFD対応機器(即ちCL機器)の認証を実行して、当該認証が成功すれば、第1及び第2のWFD対応機器の間に接続が確立される。第1のWFD対応機器は、第2のWFD対応機器のMACアドレスを、第1のWFD対応機器の管理リストに記述する。管理リストは、G/O機器がCL機器を管理するために、CL機器のMACアドレスが記述されるリストである。
上記の各処理の結果、第1のWFD対応機器は、G/O機器としてWFDNWに新たに所属し(即ち、WFDNWを新たに形成し)、第2のWFD対応機器は、CL機器としてWFDNWに新たに所属する。
G/OネゴシエーションによってWFDNWが新たに形成された段階では、1個のG/O機器及び1個のCL機器のみがWFDNWに所属している。ただし、G/O機器は、他の機器と接続を確立して、当該他の機器をCL機器としてWFDNWに新たに参加させることができる。この場合、2個以上のCL機器がWFDNWに所属している状態になる。即ち、WFDNWでは、1個のG/O機器と1個以上のCL機器とが存在し得る。G/O機器は、1個以上のCL機器を管理する。具体的に言うと、G/O機器は、1個以上のCL機器のMACアドレスを、G/O機器のメモリ内の管理リストに記述する。また、G/O機器は、CL機器がWFDNWから離脱すると、CL機器のMACアドレスを管理リストから消去する。
G/O機器は、他装置を介さずに、CL機器と目的データの無線通信を実行可能である。また、G/O機器は、一対のCL機器の間の目的データの無線通信を中継可能である。換言すると、一対のCL機器は、G/O機器を介して、目的データの無線通信を実行可能である。
上述したように、WFDNWでは、目的データの送信元のWFD対応機器と、目的データの送信先のWFD対応機器と、の間で、これらのWFD対応機器とは別体に構成されているアクセスポイント(以下では「AP(Access Pointの略)」と呼ぶ)を介さずに、目的データの無線通信を実行することができる。即ち、WFD通信、WFD方式は、それぞれ、APを介さない無線通信、APが利用されない無線通信方式であると言える。なお、APは、無線アクセスポイント、無線LANルータ等と呼ばれる通常のAPであり、WFD方式のG/O機器やいわゆるSoftAPとは異なる。
また、G/O機器は、目的データの無線通信をデバイス機器(即ちデバイス状態のWFD対応機器)と実行不可能であるが、接続を確立するための接続用データの無線通信をデバイス機器と実行可能である。即ち、G/O機器は、接続用データの無線通信をデバイス機器と実行することによって、デバイス機器と接続を確立して、デバイス機器をWFDNWに新たに参加させることができる。換言すると、デバイス機器は、接続用データの無線通信をG/O機器と実行することによって、G/O機器と接続を確立して、WFDNWに新たに参加することができる。この場合、デバイス機器は、デバイス状態からCL状態に移行する(即ち、CL機器としてWFDNWに参加する)。接続用データは、OSI参照モデルのネットワーク層よりも下位層(例えば、物理層、データリンク層)の情報を含むデータ(即ち、ネットワーク層の情報を含まないデータ)であり、例えば、Probe Request信号、Probe Response信号、Association Request信号、Association Response信号、Authentication Request信号、4-Way Handshake信号、Invitation Request信号、Invitation Response信号等を含む。
また、G/O機器は、目的データの無線通信をWFD非対応機器と実行不可能であるが、接続用データの無線通信をWFD非対応機器と実行可能である。WFD非対応機器は、WFD方式に従って動作することが不可能な機器(即ち、WFD方式の3つの状態のいずれかで選択的に動作することが不可能な機器)である。G/O機器は、接続用データの無線通信をWFD非対応機器と実行することによって、WFD非対応機器と接続を確立して、WFD非対応機器をWFDNWに新たに参加させることができる。換言すると、WFD非対応機器は、接続用データの無線通信をG/O機器と実行することによって、G/O機器と接続を確立して、WFDNWに新たに参加することができる。WFD非対応機器は、3つの状態(即ち、G/O状態、CL状態、デバイス状態)のいずれかの状態で選択的に動作するものではないが、WFDNWに所属している間には、CL状態と同様の状態で動作する。
(MFP10の構成)
続いて、MFP10の構成について説明する。なお、MFP50は、MFP10と同様の構成を備える。MFP10は、印刷機能及びスキャン機能を含む多機能を実行可能な周辺機器である。MFP10は、操作部12と、表示部14と、印刷実行部16と、スキャン実行部18と、無線LANインターフェース(以下ではインターフェースのことを「I/F」と記載する)20と、制御部30と、を備える。各部12〜30は、バス線(符号省略)に接続されている。
操作部12は、複数のキーを備える。ユーザは、操作部12を操作することによって、様々な指示をMFP10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。印刷実行部16は、インクジェット方式、レーザ方式等の印刷機構である。スキャン実行部18は、CCD、CIS等のスキャン機構である。
無線LANI/F20は、WFD通信を実行するためのインターフェースである。無線LANI/F20には、WFD通信で利用されるMACアドレス(以下では「WFD用MACアドレス」と呼ぶ)が割り当てられる。
なお、MFP50にも、WFD用MACアドレスが割り当てられる。MFP10のWFD用MACアドレスと、MFP50のWFD用MACアドレスと、は異なる。
制御部30は、CPU32とメモリ34とを備える。メモリ34は、ROM、RAM、ハードディスク等によって構成される。CPU32は、メモリ34に格納されているプログラムに従って、様々な処理を実行する。なお、MFP50は、制御部30と同様の制御部60を備える。制御部60は、CPU32と同様のCPU62と、メモリ34と同様のメモリ64と、を備える。
メモリ34は、さらに、WFDに関するMFP10の現在の状態(即ち、G/O状態、CL状態、及び、デバイス状態のいずれかの状態)を示すWFD状態値を格納する。MFP10がWFDNWに所属している場合(即ち、WFD状態値がG/O状態又はCL状態を示す場合)には、メモリ34は、さらに、当該WFDNWで現在利用されているWFDWSIを格納する。
(携帯端末110の構成)
携帯端末110は、例えば、携帯電話(例えばスマートフォン)、PDA、ノートPC、タブレットPC、携帯型音楽再生装置、携帯型動画再生装置等の可搬型の端末装置である。携帯端末110は、MFP10,50と同様に、WFD通信を実行可能である。携帯端末110に割り当てられているWFD用MACアドレスは、MFP10,50のWFD用MACアドレスとは異なる。
(PC120の構成)
PC120は、OS(Operating Systemの略)プログラムを備えている。PC120は、OSプログラムに従って、WFD通信を実行可能である。PC120に割り当てられているMACアドレスは、MFP10,50、携帯端末110のWFD用MACアドレスとは異なる。
(WFDNWが形成される様子;図2)
次に、図2を参照して、WFDNWが形成される様子を説明する。図2の初期状態では、WFDNWが形成されておらず、各機器10,50,110,120は、デバイス状態である。
S200では、ユーザは、MFP50をWFDNWに所属させるためのWFD接続操作を、MFP50の操作部に加える。具体的に言うと、ユーザは、MFP50の表示部に表示される画面に含まれる複数個の項目の中から、「WFD方式の無線接続」を示す項目を選択する。S202では、ユーザは、PC120をWFDNWに所属させるためのWFD接続操作(即ち「WFD方式の無線接続」を示す項目の選択操作)を、PC120に加える。
S204では、MFP50のCPU62は、PC120とG/Oネゴシエーションを実行する。S206では、PC120は、G/Oネゴシエーションの結果として、PC120がG/O状態になることを決定する。また、S208では、CPU62は、G/Oネゴシエーションの結果として、MFP50がCL状態になることを決定する。即ち、CPU62は、メモリ64内のWFD状態値を、デバイス状態を表す値からCL状態を表す値に変更する。
S210では、PC120は、WFDNWで利用されるべきWFDWSI(以下では「WS1」と呼ぶ)を準備して、WS1をMFP50に供給する。この結果、PC120とMFP50との間に接続が確立される。これにより、PC120は、G/O機器としてWFDNW(以下では「第1のWFDNW」と呼ぶ)を新たに形成し、MFP50は、CL機器として第1のWFDNWに参加する。CPU62は、WS1と、をメモリ64に格納する。これにより、PC120が、第1のWFDNWにG/O機器として所属し、MFP50が、第1のWFDNWにCL機器として所属する状態が構築される。
MFP50は、G/Oネゴシエーションを実行してデバイス状態からCL状態に移行するので、第1のWFDNWに最も先に所属するCL機器である。従って、S212では、CPU62は、参加リスト及び優先リストを生成する。参加リストは、第1のWFDNWに所属している各CL機器のMACアドレスが記述されるリストである。参加リストでは、WFDNWに早く所属したCL機器(即ち、WFD接続操作が先に実行されたCL機器)のMACアドレスが上位に記述される。例えば、G/O機器(例えばPC120)と、第1のCL機器(例えばMFP10)と、第2のCL機器(例えばMFP110)と、が所属しているWFDNWが形成されている状況を想定する。最初に、第1のCL機器がWFDNWに所属し、次いで、第2のCL機器がWFDNWに所属した場合には、参加リストの最上位には、第1のCL機器のMACアドレスが記述され、参加リストの上位2番目には、第2のCL機器のMACアドレスが記述される。なお、G/O機器のMACアドレスは、参加リストに記述されない。上述したように、G/O機器は、各CL機器のMACアドレスが記述される管理リストを所持している。参加リストは、各CL機器によって所持されるリストである点において、管理リストとは異なる。
また、後で詳述するが、優先リストは、優先的にG/O機器としてWFDNWに所属すべき機器の順位を示すリストである。優先リストには、各機器のMACアドレスと、当該機器がG/O機器としてWFDNWに所属すべき順位と、が記述される。
CPU62は、MFP50のWFD用MACアドレスが最上位に記述されている参加リストを生成する。また、MFP50は、PC120が最上位に記述されている優先リストを生成する。図2以降の各図(図2〜図8)では、符号が付されていない四角のボックスで参加リスト及び優先リストを表現している。参加リストでは、MACアドレスが、WFDNWに参加した順番に記載されている。優先リストでは、G/O機器として所属すべき優先度を表す順位が、各機器のMACアドレスに対応付けられた丸の中の数字で表現されている。各リスト内の「MFP10」、「MFP50」、「携帯端末110」、「PC120」は、それぞれ、MFP10のMACアドレス、MFP50のMACアドレス、携帯端末110のMACアドレス、PC120のMACアドレスが、各リストに記述されていることを意味する。
次いで、S220では、ユーザは、MFP10を第1のWFDNWに所属させるためのWFD接続操作を、MFP10に加える。この場合、MFP10のCPU32は、G/O機器であるPC120に接続要求を送信する。また、S221では、ユーザは、G/O機器であるPC120にも、WFD接続操作を加える。これにより、S222では、PC120は、MFP10から接続要求を受信すると、第1のWFDNWで現在利用されているWS1を、MFP10に供給する。S223では、CPU32は、WS1をメモリ34に格納する。この結果、PC120とMFP10との間に接続が確立される。これにより、S224では、MFP10は、デバイス状態からCL状態に移行して、CL機器として第1のWFDNWに新たに参加する。即ち、CPU32は、メモリ34内のWFD状態値を、デバイス状態を表す値からCL状態を表す値に変更する。
次いで、S225では、CPU32は、MFP10のMACアドレスを含む参加通知をブロードキャストする。参加通知は、MFP10がWFDNWに新たに参加したことを、WFDNWの他のCL機器に示すための通知である。
MFP50のCPU62は、PC120を介して、MFP10から参加通知を受信する。CPU62は、MFP50が最先のCL機器(即ち参加リストの最上位に記述されているCL機器)であるので、S226において、MFP10のMACアドレスを参加リストの最下位に追加する。なお、CPU62は、MFP10から参加通知を受信しても、優先リストを変更しない。次いで、S227では、CPU62は、MFP10のMACアドレスを送信先に指定して、参加リスト及び優先リストを、PC120に送信する。なお、変形例では、CPU62は、参加リスト及び優先リストを、第1のWFDNWにブロードキャストしてもよい。
MFP10のCPU32は、PC120を介して、MFP50から参加リスト及び優先リストを受信する。そして、S228では、CPU32は、参加リスト及び優先リストをメモリ34に格納する。さらに、S228では、CPU32は、受信された参加リスト及び優先リストを用いて、優先リストを更新する。具体的には、CPU32は、メモリ34内の参加リストの中に、MFP10のMACアドレスよりも上位に、他の機器のMACアドレスが記述されているか否かを確認する。CPU32は、MFP10のMACアドレスよりも上位に、MFP50のMACアドレスが記述されていることを確認すると、MFP50のMACアドレスを、メモリ34内の優先リストに記述する。これにより、優先リストが更新される。即ち、優先リストでは、WFDNWに先に所属している機器の順に、優先的にG/O機器としてWFDNWに所属すべき機器の順位が与えられている。なお、変形例では、優先リストの順位は、例えば、機器の種類(PC、MFP、携帯端末)で決定されてもよい。この場合、S226において、CPU62は、MFP50が管理する優先リストを更新してもよい。
次いで、S230では、ユーザは、携帯端末110を第1のWFDNWに所属させるためのWFD接続操作を、携帯端末110に加える。携帯端末110は、G/O機器であるPC120に接続要求を送信する。S231では、ユーザは、G/O機器であるPC120にも、WFD接続操作を加える。これにより、S232では、PC120は、携帯端末110から接続要求を受信すると、第1のWFDNWで現在利用されているWS1を、携帯端末110に供給する。この結果、PC120と携帯端末110との間に接続が確立される。これにより、S234では、携帯端末110は、CL状態に移行して、CL機器として第1のWFDNWに新たに参加する。この結果、PC120が、第1のWFDNWにG/O機器として所属し、MFP50,10及び携帯端末110が、第1のWFDNWにCL機器として所属する状態が構築される。S236では、携帯端末110は、携帯端末110のMACアドレスを含む参加通知をブロードキャストする。
MFP10のCPU32は、PC120を介して、携帯端末110から参加通知を受信する。CPU32は、MFP10が最先のCL機器ではないので、参加通知を受信しても、参加リストを更新しない。
一方、MFP50のCPU62は、PC120を介して、携帯端末110から参加通知を受信する。S238では、CPU62は、MFP50が最先のCL機器であるので、携帯端末110のMACアドレスを参加リストの最下位に記述して、更新済みの参加リストを生成する。次いで、S240では、CPU62は、更新済みの参加リストの中で、携帯端末110のMACアドレスよりも上位に記述されているMACアドレス(即ちMFP50,10のMACアドレス)のうち、MFP50のMACアドレス以外のMACアドレス(即ちMFP10のMACアドレス)に、更新済みの参加リストを送信する。S242では、MFP10のCPU32は、PC120を介して、MFP50から参加リストを受信すると、メモリ34内の参加リストを更新する。
また、S244では、MFP50のCPU62は、更新済みの参加リストのうち、最下位に記述されているMACアドレス(即ち、携帯端末110のMACアドレス)を送信先に指定して、参加リスト及び優先リストを、PC120に送信する。S246において、携帯端末110は、PC120を介して、MFP50から参加リスト及び優先リストを受信すると、参加リスト及び優先リストを携帯端末110のメモリに格納する。また、S246では、携帯端末110は、携帯端末110のメモリに格納された参加リスト及び優先リストを用いて、優先リストを更新する。優先リストの更新方法は、S228と同様である。なお、変形例では、CPU62は、参加リスト及び優先リストを、第1のWFDNWにブロードキャストしてもよい。この場合、MFP10のCPU32は、受信された参加リストとメモリ34内の参加リストとが異なっている場合には、メモリ34内の参加リストを更新すると共に、受信された優先リストを破棄してもよい。一方、CPU32は、受信された参加リストとメモリ34内の参加リストとが同じ場合には、受信された参加リスト及び優先リストを破棄してもよい。
上述したように、図2の各処理が実行されると、PC120がG/O機器であり、かつ、MFP10,50及び携帯端末110がCL機器である第1のWFDNWが形成される。これにより、例えば、携帯端末110は、MFP10に印刷を実行させるために、第1のWFDNWを利用して、PC120(即ちG/O機器)を介して、印刷データをMFP10に送信することができる。この場合、MFP10のCPU32は、第1のWFDNWを利用して、PC120(即ちG/O機器)を介して、携帯端末110から印刷データを受信する。そして、CPU32は、印刷データを印刷実行部16に供給して、印刷実行部16に印刷を実行させる。
(G/O機器が第1のWFDNWから離脱するケース;図3,4)
続いて、図3,4を参照して、第1のWFDNWから離脱する場合の各デバイス10,50,110,120の処理の内容を説明する。図3の初期状態は、図2の最終状態と同一の状態、即ち、PC120がG/O機器であり、かつ、MFP10,50及び携帯端末110がCL機器である第1のWFDNWが形成されている状態である。
図示省略しているが、参加リストの最上位に記述されているMACアドレスのMFP50では、CPU62は、MFP50とは異なる各CL機器の存在確認を実行する。CPU62は、存在が確認できないCL機器がある場合、当該CL機器のMACアドレスを、参加リストから消去する。
また、各CL機器は、WFDNWに所属している間、定期的に、G/O機器の存在確認を実行している。S300では、MFP10のCPU32は、PC120の存在確認を実行している。具体的には、CPU32は、メモリ34内のWS1に含まれているPC120のBSSID(即ちMACアドレス)を送信先に指定して、第1のWFDNWを利用して、G/O存在確認信号をPC120に送信する。S300のG/O存在確認信号が送信される段階では、PC120は、第1のWFDNWから離脱していない。従って、S302では、PC120は、MFP10からG/O存在確認信号を受信すると、第1のWFDNWを利用して、PC120のMACアドレスを含む応答信号をMFP10に送信する。
S304では、MFP10のCPU32は、PC120から応答信号を受信するので、PC120が第1のWFDNWに所属していること、即ち、PC120が無線通信可能であることを確認する。図3では示していないが、MFP50と携帯端末110のそれぞれも、MFP10と同様に、第1のWFDNWを利用して、PC120の存在確認を繰り返し実行する。
例えば、PC120がMFP50等と無線通信を実行することができない場所まで移動された結果として、S310において、PC120は、第1のWFDNWから離脱する。その後、S312では、MFP10のCPU32は、第1のWFDNWを利用して、G/O存在確認信号をPC120に送信しようとする。しかしながら、PC120は、G/O存在確認信号を受信しないので、応答信号を送信しない。
なお、図3では示していないが、MFP50と携帯端末110のそれぞれも、第1のWFDNWを利用して、G/O存在確認信号をPC120に送信するが、応答信号を受信しない。この場合、S316では、MFP10のCPU32は、PC120から応答信号を受信しないので、PC120が第1のWFDNWに所属していないこと(即ちPC120が第1のWFDNWから離脱したこと)、即ち、PC120と無線通信を実行することができないことを確認する。そして、CPU32は、MFP10の状態をCL状態からデバイス状態に移行させる。即ち、CPU32は、メモリ34内のWFD状態値を、CL状態を示す値から、デバイス状態を示す値に変更する。なお、メモリ34内のWFDWSI、参加リスト及び優先リストは、メモリ34から削除されずに、メモリ34内に維持される。
同様に、S318では、MFP50のCPU62は、PC120が第1のWFDNWから離脱したことを確認して、MFP50の状態をCL状態からデバイス状態に移行させる。また、S320では、携帯端末110は、PC120が第1のWFDNWから離脱したことを確認して、MFP110の状態をCL状態からデバイス状態に移行させる。各機器10,50,110は、デバイス状態で動作しているために、目的データの無線通信を実行することができない。例えば、携帯端末110は、MFP10(又はMFP50)に印刷データを送信することができない。
上述したように、MFP10,50のようなCL機器は、第1のWFDNWを利用して、PC120(即ちG/O機器)にG/O存在確認信号を送信して、PC120から応答信号を受信するのか否かを判断することによって、PC120(即ちG/O機器)が第1のWFDNWから離脱したのか否かを適切に確認することができる。以下では、PC120(即ちG/O機器)が第1のWFDNWから離脱する場合に、CL機器がどのような処理を実行するのかについて説明する。
図4の初期状態は、図3の最終状態、即ち、PC120が、第1のWFDNWから離脱した状態であり、MFP10,50及び携帯端末110は、デバイス状態である。なお、PC120は、G/O状態で維持されている。S400では、MFP50のCPU62は、メモリ64内の参加リストの最上位にMFP50のMACアドレスが記述されているのか否かを判断する。即ち、CPU62は、MFP50が第1のWFDNWの最先のCL機器であったのか否かを判断する。S400では、CPU62は、MFP10が最先のCL機器であったと判断する。
一方において、S402では、MFP10のCPU32は、MFP10が第1のWFDNWの最先のCL機器でなかったと判断する。なお、S403において、携帯端末110も、携帯端末110が第1のWFDNWの最先のCL機器でなかったと判断する。この場合、MFP10及び携帯端末110は、第1のWFDNWの最先のCL機器(即ちMFP50)から、Invitation Request信号(以下では「Ireq信号」と呼ぶ)を受信するまで待機する。Ireq信号は、G/O機器によって送信される信号である。Ireq信号は、Ireq信号の送信先機器(例えばMFP10)が、Ireq信号の送信元機器(即ちG/O機器)が所属している既存のWFDNWに、CL機器として新たに所属するように要求するための信号である。
S404では、MFP50のCPU62は、MFP50の状態をデバイス状態からG/O状態に移行させる。上述したように、WFDNWが新たに形成されるべき際には、通常、G/Oネゴシエーションが実行されて、G/O機器及びクライアント機器が決定される。しかしながら、S404では、CPU62は、G/Oネゴシエーションを実行せずに、MFP50の状態をCL状態からG/O状態に移行させる。S404が実行されると、MFP50がG/O機器になるが、クライアント機器が存在しない。換言すれば、S404が実行されると、G/O機器(即ちMFP50)のみが所属しているWFDNW(以下では「第2のWFDNW」と呼ぶ)が新たに形成されると言える。この構成によれば、G/O機器であるPC120と、第1のWFDNWを利用して、無線通信を実行することができない場合に、新たなWFDNWにG/Oとして所属すべきであるのか否かを適切に決定することができる。
具体的には、S404では、CPU62は、メモリ64内のWFD状態値を、デバイス状態を示す値から、G/O状態を示す値に変更する。CPU62は、さらに、第2のWFDNWで利用されるべきWFDWSI(以下では「WS2」と呼ぶ)を準備して、WS2をメモリ64に格納する。
CPU62は、S404を実行するので、G/O機器として動作する。このために、CPU62は、後述のS406,S420において、G/O機器のみが送信可能なIreq信号を送信することができ、この結果、MFP10及び携帯端末110を第2のWFDNWに参加させることができる。
S406では、CPU62は、メモリ64内の参加リストの上位2番目に記述されているMFP10のMACアドレスを抽出する。そして、CPU62は、MFP10のMACアドレスを送信先に指定して、Ireq信号を送信する。Ireq信号は、参加リストに記述されている最上位の機器がG/O機器になった後に、当該G/O機器から、参加リストに記述されている上位2番目以下の各機器に送信される信号である。この際に、最上位の機器(即ちG/O機器)は、最初に、参加リストの上位2番目の機器にIreq信号を送信し、次いで、上位3番目以下の各機器にIreq信号を順に送信する。これにより、MFP50は、MFP10及び携帯端末110が第2のWFDNWにCL機器として新たに所属するように要求することができる。
S408では、MFP10のCPU32は、MFP50からIreq信号を受信すると、Invitation Response信号(以下では「Ires信号」と呼ぶ)をMFP50に送信する。MFP50のCPU62は、MFP10からIres信号を受信すると、S410において、WS2をMFP10に供給する。この結果、MFP50とMFP10との間に接続が確立される。S411では、CPU32は、WS2をメモリに格納する。S412では、CPU32は、MFP10の状態をデバイス状態からCL状態に移行させる。これにより、MFP10は、CL機器として第2のWFDNWに新たに参加する。言い換えると、MFP50が、第2のWFDNWにG/O機器として所属し、MFP10が、第2のWFDNWにCL機器として所属する状態が構築される。
S414では、CPU32は、MFP10がデバイス状態からCL状態に移行し、さらに、参加リストの上位2番目である状態でIreq信号を受信してCL状態に移行したと判断する。S416では、CPU32は、MFP10のMACアドレスが最上位に記述されている新たな参加リストを生成して、MFP10のMACアドレスが上位2番目以降に記述されている古い参加リストに代えて新たな参加リストをメモリ34に格納する。
次いで、MFP50のCPU62は、MFP10の場合と同様に、携帯端末110を第2のWFDNWに参加させる。即ち、S420では、CPU62は、MFP50のメモリ内の参加リストの上位3番目(即ち最下位)に記述されている携帯端末110のMACアドレスを送信先に指定して、Ireq信号を送信する。S422では、CPU62は、携帯端末110からIres信号を受信する。S424では、CPU62は、WS2を携帯端末110に供給する。この結果、MFP50と携帯端末110との間に接続が確立される。
S426では、携帯端末110は、携帯端末110の状態をデバイス状態からCL状態に移行させる。これにより、携帯端末110は、CL機器として第2のWFDNWに新たに参加する。言い換えると、MFP50が、第2のWFDNWにG/O機器として所属し、MFP10及び携帯端末110が、第2のWFDNWにCL機器として所属する状態が構築される。
S428では、携帯端末110は、デバイス状態からCL状態に移行し、さらに、参加リストの上位3番目である状態でIreq信号を受信してCL状態に移行した。携帯端末110は、携帯端末110のMACアドレスを含む参加通知を第2のWFDNWにブロードキャストする。MFP10のCPU32は、MFP50(即ちG/O機器)を介して、携帯端末110から参加通知を受信する。この場合、S430において、CPU32は、MFP10が最先のCL機器(即ち参加リストの最上位に記述されているCL機器)であるので、携帯端末110のMACアドレスを参加リストの最下位に追加して、更新済みの参加リストを生成する。次いで、S432では、CPU32は、更新済みの参加リストを、携帯端末110のMACアドレスを送信先として、MFP50に送信する。
S434において、携帯端末110は、MFP10から参加リストを受信すると、古い参加リストに代えて受信済みの参加リストを携帯端末110のメモリ(図示省略)に格納する。
(ケースA PC120が通信可能な状態に戻るケース;図5)
図5のケースAの初期状態は、図4の最終状態と同様である。この状態では、第2のWFDNWのG/O機器であるMFP50のCPU62は、第1のWFDNWのG/O機器であったPC120を検索する(S500)。具体的には、CPU62は、メモリ64内のWS1に含まれているPC120のSSIDとBSSID(即ちPC120のMACアドレス)と、を用いて、Probe Request信号を発信する。CPU62は、定期的にProbe Request信号を発信することによって、PC120を検索する。CPU62は、Probe Request信号を発信してから所定の期間内に、Probe Request信号に対する応答としてProbe Response信号を受信しない場合、PC120を発見することができないと判断する、即ち、MFP50とPC120とは、無線通信を実行することができないと判断する。なお、CPU62は、WFDNWを利用せずに、Probe Request信号を発信する。
例えば、PC120が移動されてMFP50に近づいたために、PC120とMFP50とが、無線通信を実行することができない状態から実行することができる状態に移行する場合がある。PC120とMFP50とが、無線通信を実行できる状態では、PC120は、MFP50から発信されたProbe Request信号を受信する(S502)。S504では、PC120は、受信されたProbe Request信号に対して、Probe Response信号を送信する。
CPU62は、PC120からProbe Response信号を受信することによって、PC120を発見する。これにより、CPU62は、MFP50とPC120とが無線通信を実行可能であると判断する。この場合、S506において、CPU62は、第2のWFDNWを解散するための解散処理を、MFP10と実行する。
具体的には、CPU62は、第2のWFDNWを利用して、PC120のSSIDとMACアドレスとを含む元G/O確認信号を、MFP10に送信する。MFP10のCPU32は、MFP50から元G/O確認信号を受信する。CPU32は、元G/O確認信号に含まれているSSIDと同一のSSIDと、元G/O確認信号に含まれているMACアドレスと同一のBSSIDと、を含むWFDWSIが、メモリ34に格納されているのか否かを判断する。メモリ34には、WS1とWS2とが格納されている。CPU32は、元G/O確認信号に含まれているSSID及びMACアドレスと同一のSSID及びBSSIDを含むWFDWSI(即ちWS1)が、メモリ34に格納されていると判断する。この場合、CPU32は、元G/O確認信号に対する応答として、OKを示す信号を、MFP50に送信する。この構成によれば、MFP10は、元のG/O機器であるPC120が、MFP50によって発見されたことを知ることができる。
MFP50のCPU62は、OKを示す信号を受信すると、第2のWFDNWを利用して、Deauthentication信号をMFP10に送信する。Deauthentication信号は、G/O機器がWFDNWを解散する際、即ち、G/O機器がG/O状態から他の状態(例えばデバイス状態)に移行する際に、WFDNWに所属する各CL機器との接続を解除するために、G/O機器からCL機器に送信される信号である。MFP10のCPU32は、Deauthentication信号をMFP50から受信すると、Deauthentication信号の応答として、第2のWFDNWを利用して、Disassociation信号をMPF50に送信する。Disassociation信号は、CL機器がG/O機器との接続を切断する際に、CL機器からG/O機器に送信される信号である。S508では、CPU62は、S506と同様に、携帯端末110と解散処理を実行する。なお、CPU62は、元G/O確認信号を、第2のWFDNWにブロードキャストしてもよい。この構成によれば、携帯端末110は、元のG/O機器であるPC120が、MFP50によって発見されたことを知ることができる。
S510では、CPU64は、管理リストに記述されている全てのMACアドレスのCL機器(即ちMFP10、携帯端末110)と共に解散処理を実行すると、MFP50の状態をG/O状態からデバイス状態に移行させる。S512では、MFP10のCPU32は、MFP10の状態をCL状態からデバイス状態に移行させる。また、S514では、携帯端末110は、携帯端末110の状態をCL状態からデバイス状態に移行させる。
続いて、S520では、MFP50のCPU62は、PC120と再接続処理を実行する。具体的には、最初に、CPU62は、PC120と無線通信可能であるかを確認するために、PC120を検索する。PC120は、検索に対する応答を、MFP50に送信する。再接続処理における検索及び応答は、S502及びS504において、CPU62及びPC120が実行する処理と同様である。
CPU62は、PC120から応答を受信すると、WS1を用いて、MFP50とPC120との接続を確立するための通信を、PC120と実行する。本通信は、通常のWFDWSIに従った認証通信と同様である。即ち、CPU62は、WS1を用いて生成したAuthentication Request信号を、PC120に送信する。PC120は、MFP50からAuthentication Request信号を受信すると、Authentication Request信号を用いた認証処理を実行する。PC120は、認証処理が成功すると、Authentication Request信号に対する応答として、OKを示す信号を、MFP50に送信する。続いて、CPU62は、Authentication Request信号に対して、OKを示す信号を受信すると、PC120にAssociation Request信号を送信する。PC120は、MFP50からAssociation Request信号を受信すると、OKを示す信号を、MFP50に送信する。CPU62が、Association Request信号に対してOKを示す信号を受信すると、PC120とMFP50との間に接続が確立される。
S522では、CPU62は、MFP50の状態をデバイス状態からCL状態に移行させる。この結果、PC120は、G/O機器としてWFDNW(以下では「第3のWFDNW」と呼ぶ)を新たに形成し、MFP50は、CL機器として第3のWFDNWに参加する。これにより、PC120が、第3のWFDNWにG/O機器として所属し、MFP50が、第3のWFDNWにCL機器として所属する状態が構築される。
MFP50は、元のG/O機器であるPC120を発見してデバイス状態からCL状態に移行するので、最先のCL機器である。従って、S524において、CPU62は、参加リストを生成する。なお、CPU62は、既に優先リストがメモリ64に格納されているため、優先リストを生成しない。
次いで、S530では、PC120とMFP10とは、S520と同様の再接続処理を実行する。この結果、S532では、MFP10のCPU32は、MFP10の状態をデバイス状態からCL状態に移行させる。これにより、PC120が、第3のWFDNWにG/O機器として所属し、MFP10,50が、第3のWFDNWにCL機器として所属する状態が構築される。さらに、S540では、PC120と携帯端末110とは、S520と同様の再接続処理を実行する。なお、図示省略したが、MFP10及び携帯端末110のそれぞれは、図2のS225,S236と同様に、デバイス状態からCL状態に移行して、CL機器として第3のWFDNWに新たに参加すると、自器のMACアドレスを含む参加通知を、第3のWFDNWにブロードキャストする。この結果、CPU62は、図2のS226,S227,S238,S240,S244と同様に、参加リストを更新して、更新済みの参加リストを、MFP10及び携帯端末110に送信する。さらに、CPU62は、図2のS227,S244と同様に、優先リストを、MFP10及び携帯端末110に送信する。MFP10のCPU32は、MFP50から参加リスト及び優先リストが受信されると、図2のS228と同様に、参加リストをメモリ34に格納する。携帯端末110は同様に、MFP50から参加リスト及び優先リストが受信されると、図2のS246と同様に、参加リストを携帯端末110のメモリに格納する。なお、MFP50及び携帯端末110は、メモリ内に優先リストが格納されているために、受信済みの優先リストをメモリに格納せずに、消去する。
ケースAでは、MFP50は、第1のWFDNWのG/O機器であったPC120が、無線通信を実行できない状態から実行できる状態に移行する場合に、PC120が、第3のWFDNWにG/O機器として所属し、MFP50が第3のWFDNWにCL機器として所属する状態を構築することができる。この構成によれば、MFP50が無線ネットワークに親局として所属する事態を少なくすることができる。G/O機器は、WFDNWに所属するCL機器間の無線通信を中継する処理、CL機器がWFDNWに所属しているのか否かを定期的に確認する処理等、CL機器と比較して、実行すべき処理が多い。このため、MFP50が、G/O機器としてWFDNWに所属する場合、MFPが有する機能(例えば印刷機能、スキャン機能)を実行すると共に、WFDNWのための処理を実行しなければならず、MFP50の処理負荷が高くなる。ケースAでは、MFP50が、G/O機器としてWFDNWに所属すべき事態を、抑制することができる。これにより、MFP50の処理負荷を低減することができる。
また、MFP50は、S506,S508において、解散処理を実行した後で、S520の再接続処理を実行する。この構成によれば、MFP50が、複数のWFDNWに同時に所属すべき事態を回避することができる。また、MFP50は、S500、S502において、SSIDを用いてPC120を検索する。この構成によれば、MFP50は、デバイス状態のPC120を検索せず、G/O状態のPC120を検索することができる。この結果、MFP50とPC120とは、G/Oネゴシエーションを行うことなく、WFDNWを形成することができる。また、第1のWFDNWと同様のWFDNWを再び形成することができる可能性が高い。
(ケースB G/O機器が第2のWFDNWから離脱するケース:図6)
図6のケースBの初期状態は、図4の最終状態と同様である。S600では、CL機器であるMFP10、携帯端末110は、定期的に、G/O機器であるMFP50の存在確認を実行する。なお、存在確認の手法は、図3のS300と同様に、WS2内に含まれるBSSIDを送信先に指定して、第2のWFDNWを利用して、G/O存在確認信号をMFP50に送信する。S600のG/O存在確認信号が送信される段階では、MFP50は、第2のWFDNWから離脱していない。従って、S602では、MFP50のCPU62は、MFP10からG/O存在確認信号を受信して、第2のWFDNWを利用して、MFP50のMACアドレスを含む応答信号を、MFP10に送信する。
例えば、G/O機器であるMFP50が省電力のために、スリープ状態に移行された結果として、S606において、MFP50は、第2のWFDNWから離脱する。その後、S608では、MFP10のCPU32は、第2のWFDNWを利用して、G/O存在確認信号をMFP50に送信する。MFP50は、G/O存在確認信号を受信しないので、応答信号を送信しない。
なお、図6では示していないが、携帯端末110も、第2のWFDNWを利用して、G/O存在確認信号をMFP50に送信するが、応答信号を受信しない。この結果、MFP50及び携帯端末110は、それぞれに、MFP50と無線通信を実行することができないことを確認する。この場合、S610では、MFP10のCPU32は、MFP50から応答信号を受信しないので、MFP50が第2のWFDNWに所属していないこと、即ち、PC120と無線通信を実行することができないことを確認する。そして、CPU32は、MFP10の状態をCL状態からデバイス状態に移行させる。なお、メモリ34内のWFDWSI、参加リスト及び優先リストは、メモリ34から削除されずに、メモリ34内に維持される。
同様に、S612では、携帯端末110は、MFP50が第2のWFDNWから離脱したことを確認して、MFP110の状態をCL状態からデバイス状態に移行させる。各機器10,110は、デバイス状態で動作しているために、目的データの無線通信を実行することができない。このため、携帯端末110は、MFP10に印刷データを送信することができない。
S614では、CPU32は、MFP10がCL状態からデバイス状態に移行すると、メモリ34内の参加リストの最上位にMFP10のMACアドレスが記述されているのか否かを判断する。即ち、CPU32は、MFP10が第2のWFDNWの最先のCL機器であったのか否かを判断する。S614では、CPU32は、MFP10が最先のCL機器であったと判断する。一方において、S616では、携帯端末110は、携帯端末110のメモリ内の参加リストを確認することによって、携帯端末110が第2のWFDNWの最先のCL機器でなかったと判断する。この場合、携帯端末110は、第2のWFDNWの最先のCL機器(即ちMFP10)から、Ireq信号を受信するまで待機する。この構成によれば、G/O機器であるMFP50と、第2のWFDNWを利用して、無線通信を実行することができない場合に、新たなWFDNWにG/O機器として所属すべきであるのか否かを適切に決定することができる。
この場合、CPU32は、S618〜S624の処理を実行する。S618〜S624の処理は、図4のS404〜S410の処理と同様である。なお、S618〜S624では、S404〜S410のCPU62の処理を、CPU32が実行し、S404〜S410のCPU32の処理を、携帯端末110が実行する。S626の処理は、図4のS426の処理と同様である。この結果、MFP10がG/O機器として所属しており、携帯端末110がCL機器として所属している新たなWFDNW(以下では「第4のWFDNW」と呼ぶ)が形成される。言い換えると、第4のWFDNWに、MFP10がG/O機器として所属しており、携帯端末110がCL機器として所属している状態を構築される。この結果、MFP10のメモリ34と、携帯端末110のメモリのそれぞれには、WS1、WS2及びWS3が格納される。
S628では、携帯端末110は、携帯端末110がデバイス状態からCL状態に移行し、さらに、参加リストの上位2番目である状態でIreq信号を受信してCL状態に移行したと判断する。S630では、携帯端末110は、携帯端末110のMACアドレスが最上位に記述されている新たな参加リストを生成して、携帯端末110のMACアドレスが上位2番目以降に記述されている古い参加リストに代えて新たな参加リストを携帯端末110のメモリに格納する。
なお、S640では、G/O機器であるMFP10のCPU32は、WS1を用いて、定期的に、第1のWFDNWのG/O機器であったPC120を検索する。さらに、S640では、CPU32は、WS2を用いて、定期的に、第2のWFDNWのG/O機器であったMFP50を検索する。S640のCPU32の処理は、図5のS500におけるCPU64の処理と同様である。
(ケースB−1 MFP10が通信可能な状態に戻るケース;図7)
図7のケースB−1の初期状態は、図6の最終状態と同様である。この状態では、第3のWFDNWのG/O機器であるMFP10のCPU32は、第1のWFDNWのG/O機器であったPC120を検索する(S700)。さらに、CPU32は、第2のWFDNWのG/O機器であったMFP50を検索する(S702)。S700、S702の処理は、図6のS640の処理と同様である。
例えば、MFP50がスリープ状態から非スリープ状態に移行したために、MFP50とMFP10とが、無線通信を実行できない状態から実行できる状態に移行する場合がある。MFP50は、G/O状態で維持されている。MFP50とMFP10が、無線通信を実行できる状態では、MFP50は、MFP10から発信されたProbe Request信号(S704)を受信する。S706では、PC120は、受信されたProbe Request信号に対して、Probe Response信号を送信する。
CPU32は、MFP50からProbe Response信号を受信することによって、MFP50を発見する。これにより、CPU32は、MFP10とMFP50とが、無線通信を実行可能であると判断する。そして、図示省略したが、CPU32は、メモリ34内の優先リストを用いて、MFP50のMACアドレスよりも、G/O機器になるべき優先度が高い機器のMACアドレスが存在するのか否かを確認する。優先リストでは、MFP50のMACアドレスよりも、PC120のMACアドレスの方が上位に対応付けてられている。この場合、S708において、S702と同様に、CPU32は、MFP50が発見された後、PC120を検索する。
CPU32は、Probe Request信号を送信してから所定の期間が経過しても、PC120からProbe Response信号を受信しない。即ち、CPU32は、PC120を発見することができない。この結果、CPU32は、MFP10とPC120とが、無線通信を実行可能でないと判断する。この場合、CPU32は、MFP50がG/O機器として所属する新たなWFDNW(以下では「第5のWFDNW」と呼ぶ)に、CL機器として所属するために、携帯端末110とS710の解散処理を実行し、S712の処理を実行し、MFP50とS720の再接続処理を実行し、かつ、S722の処理を実行する。なお、S710の解散処理は、図5のS506の解散処理と同様である。
但し、S710では、S506のCPU62の処理を、CPU32が実行し、S506のCPU32の処理を、携帯端末110が実行する。なお、S710では、CPU32は、解散処理の最初に、MFP50のSSID及びMACアドレスを送信する。これにより、携帯端末110は、MFP50と無線通信を実行可能であると知ることができる。また、S712の処理は、図5のS510と同様であり、S720の再接続処理は、S520の再接続処理と同様であり、S722の処理は、図5のS522の処理と同様である。但し、S712,S720,S722では、S510,S520,S522のCPU62の処理を、CPU32が実行し、S520のPC120の処理を、MFP50のCPU64が実行する。なお、携帯端末110が実行するS714の処理は、S514の処理と同様である。
これにより、MFP50は、G/O機器として第5のWFDNWを新たに形成し、MFP10は、CL機器として第5のWFDNWに参加する。言い換えると、MFP50が、第5のWFDNWにG/O機器として所属し、MFP10が、第5のWFDNWにCL機器として所属する状態が構築される。
MFP10は、元のG/O機器であるMFP50を発見してデバイス状態からCL状態に移行するので、最先のCL機器である。従って、S724において、CPU32は、参加リストを生成する。なお、CPU32は、既に優先リストがメモリ34に格納されているため、優先リストを生成しない。
次いで、S730では、MFP50と携帯端末110とは、MFP10,50が実行するS720の再接続処理と同様の再接続処理を実行する。この結果、S732では、携帯端末110は、携帯端末110の状態をデバイス状態からCL状態に移行させる。これにより、MFP50が、第5のWFDNWにG/O機器として所属し、MFP10及び携帯端末110が、第5のWFDNWにCL機器として所属する状態が構築される。
ケースB−1では、第2のWFDNWのG/O機器であったMFP50が、MFP10と無線通信を実行できない状態から実行できる状態に移行する場合に、MFP50が、第5のWFDNWにG/O機器として所属し、MFP10が第5のWFDNWにCL機器として所属する状態を構築することができる。この構成によれば、MFP10が無線ネットワークにG/O機器として所属する事態を少なくすることができる。これにより、MFP10の処理負荷を低減することができる。
また、MFP10は、S710において、解散処理を実行した後で、S720の再接続処理を実行する。この構成によれば、MFP10が、複数のWFDNWに同時に所属すべき事態を回避することができる。
(ケースB−2 PC120が通信可能な状態に戻るケース;図8)
図8のケースB−2の初期状態は、図6の最終状態と同様である。図8のS800〜S808の処理は、図7のS700〜S708の処理と同様である。
CPU32は、S808において、PC120にProbe Request信号を送信してから所定の期間内に、PC120からProbe Response信号を受信する。これにより、CPU32は、PC120を発見する。この結果、CPU32は、MFP10とPC120とが、無線通信を実行可能であると判断する。この状況では、PC120の方が、MFP50よりもG/O機器としての優先度が高いために、CPU32は、PC120がG/O機器として所属する新たなWFDNW(以下では「第6のWFDNW」と呼ぶ)に、CL機器として所属するために、携帯端末110とS810の解散処理を実行し、S812の処理を実行する。S810,S812の処理は、図7のS710,S712の処理と同様である。
CPU32は、さらに、PC120とS820の再接続処理を実行し、かつ、S822の処理を実行する。S822に続いて、MFP10のCPU32は、S824の処理を実行する。S820の再接続処理及びS822,S824の処理は、図5のS520の再接続処理及びS522,S524の処理と同様である。但し、S820〜S824では、S520〜S524のCPU62の処理を、CPU32が実行する。PC120と携帯端末110とは、S830の再接続処理を実行し、携帯端末110は、S832の処理を実行する。S810〜S832の処理は、S710〜S732の処理と同様である。但し、S810〜S832では、S710〜S732のCPU32の処理を、携帯端末110が実行する。
これにより、PC120は、G/O機器として第6のWFDNWを新たに形成し、MFP10と携帯端末110とは、CL機器として第6のWFDNWに参加する。言い換えると、PC120が、第6のWFDNWにG/O機器として所属し、MFP10と携帯端末110が、第6のWFDNWにCL機器として所属する状態が構築される。
ケースB−2では、ケースB−1と同様に、MFP10は、第1のWFDNWのG/O機器であったPC120が、無線通信を実行できない状態から実行できる状態に移行する場合に、PC120が、第6のWFDNWにG/O機器として所属し、MFP10が第6のWFDNWにCL機器として所属する状態を構築することができる。この構成によれば、MFP10が無線ネットワークにG/O機器として所属する事態を少なくすることができる。これにより、MFP10の処理負荷を低減することができる。
また、ケースB−2では、MFP10は、第1のWFDNWのG/O機器であったPC120と、第2のWFDNWのG/O機器であったMFP50とが、無線通信を実行できない状態から実行できる状態に移行する場合に、PC120が、第6のWFDNWにG/O機器として所属し、MFP10及び携帯端末110が第6のWFDNWにCL機器として所属する状態を構築することができる。これにより、MFP50が、G/O機器としてWFDNWに所属すべき事態を、抑制することができる。これにより、MFP50の処理負荷を低減することができる。
また、MFP10は、S810において、解散処理を実行した後で、S820の再接続処理を実行する。この構成によれば、MFP10が、複数のWFDNWに同時に所属すべき事態を回避することができる。
また、ケースB−1及びケースB−2によれば、過去に、MFP10がCL機器として所属していたWFDNWに、G/O機器として所属していた機器(即ち、PC120、MFP50)が、MFP10によって発見される場合に、G/O機器として所属していた機器が、新たなWFDNWにG/O機器として所属しており、MFP10が、新たなWFDNWにCL状態として所属している状態を構築することができる。このため、MFP10は、G/O状態としてWFDNWに所属すべき事態を抑制することができる。
(ネットワーク制御処理;図9)
続いて、図9を参照して、MFP10が実行するネットワーク制御処理について説明する。MFP50及び携帯端末110も、MFP10と同様に、ネットワーク制御処理を実行する。ネットワーク制御処理は、WFDNWに、CL機器として所属すると開始される処理である。即ち、WFDNWに、CL機器として所属しない機器は、ネットワーク制御処理を実行しない。
S10では、CPU32は、G/O機器から送信されるWFDWSIを、メモリ34に格納する(図2のS223)。次いで、S12では、CPU32は、MFP10が所属するWFDNW(以下では「元のWFDNW」)のG/O機器と通信可能であるのか否かの判断を、元のWFDNWのG/O機器と通信可能でないと判断されるまで、繰り返し実行する。(図3のS300、S304)。G/O機器と通信可能でないと判断される場合(S12でNO)、S14において、CPU32は、MFP10をCL状態からデバイス状態に移行する(図3のS316、図6のS610)。次いで、S16では、CPU32は、MFP10がG/O状態に移行すべきであるのか否かを判断する(図4のS402、図6のS614)。具体的には、CPU32は、メモリ34に格納されている参加リストの最上位に、MFP10のMACアドレスが記述されている場合に、G/O状態に移行すべきであると判断し(図6のS614)(S16でYES)、参加リストの最上位以外に、MFP10のMACアドレスが記述されている場合に、G/O状態に移行すべきでないと判断する(図4のS402)(S16でNO)。
S16でYESの場合、CPU32は、MFP10をデバイス状態からG/O状態に移行して(図6のS618)、S18に進む。S18では、CPU32は、参加リストに記述されているMACアドレスの機器(即ち、元のWFDNWにCL機器として所属していた機器)と、接続を確立する(図6のS624)。次いで、S20では、元のWFDNWのG/O機器(以下では「元G/O機器」と呼ぶ)を検索する(図6のS640、図7のS700,S704,S708、図8のS800,S804,S808)。
S22では、CPU32は、S18の検索の結果、元G/O機器が発見されたのか否かを判断する。具体的には、図7のS706、図8のS806,S809に示されるように、S18において送信されたProbe Request信号に対する応答が受信される場合に、元G/O機器が発見されたと判断し(S22でYES)、Probe Request信号に対する応答が受信されない場合に、元G/O機器が発見されなかったと判断する(S22でNO)。
S22でNOの場合に、S20に戻る。一方、S22でYESの場合、S24において、解散処理(図7のS710、図8のS810)を実行する。次いで、S26では、CPU32は、MFP10をG/O状態からデバイス状態に移行して(図7のS712、図8のS812)、S36に進む。
S16でNOの場合(即ちMFP10がG/O状態に移行すべきでないと判断される場合)、S28において、CPU32は、元のWFDNWに所属していたCL機器であって、G/O状態に移行した機器(例えばMFP50)(以下では「新G/O機器」と呼ぶ)と、接続を確立する(図4のS410)。次いで、S29では、CPU32は、G/O機器から送信されるWFDWSIを、メモリ34に格納する(図4のS411)。そして、S30では、S12と同様に、CPU32は、新G/O機器と通信可能であるのか否かを判断する。新G/O機器と通信可能でない場合(S30でNO)、S14に進む。
一方、新G/O機器と通信可能である場合(S30でYES)、S32において、CPU32は、新G/O機器が解散処理(図5のS506)を実行するのか否かを判断する。具体的には、CPU32は、元G/O機器のSSIDを、新G/O機器から受信する場合に、新G/O機器が解散処理(図5のS506)を実行すると判断する。この構成によれば、CPU32は、元G/O機器のSSIDを、受信することによって、元G/O機器が無線通信可能であると知ることができる。CPU32は、新G/O機器が解散処理を実行する場合(S32でYES)、S34に進み、新G/O機器が解散処理を実行しない場合(S32でNO)、S30に戻る。
S34では、CPU32は、MFP10をCL状態からデバイス状態に移行して(図5のS512)、S36に進む。S36では、CPU32は、元G/O機器と接続するための再接続処理(図5のS530、図7のS720、図8のS820)を実行する。なお、S20において、複数個の元G/O機器が発見された場合(例えばPC120とMFP50)、CPU32は、複数個の元G/O機器のうち、メモリ34に格納されている優先リストにおいて上位に記述されている元G/O機器(例えばPC120)と、再接続処理を実行する。次いで、S38では、CPU32は、MFP10を、デバイス状態からCL状態に移行して(図5のS532、図7のS722、図8のS822)、S10に戻る。
(リスト管理処理;図10)
続いて、図10を参照して、MFP10が実行するリスト管理処理について説明する。MFP50及び携帯端末110も、MFP10と同様に、リスト管理処理を実行する。リスト管理処理は、CL機器によって実行される処理である。即ち、G/O機器及びデバイス機器は、リスト管理処理を実行しない。
S40では、CPU32は、MFP10の状態がデバイス状態からCL状態に移行したのか否かを判断する。上述したように、リスト管理処理は、デバイス機器によって実行されないが、CL機器によって実行される処理である。従って、MFP10がデバイス状態からCL状態に移行した結果として、リスト管理処理が開始された後に、1回目のS40が実行される場合には、CPU32は、S40でYESと判断して、S42に進む。
S42では、CPU32は、MFP10がG/Oネゴシエーションを実行してCL状態に移行したのか否かを判断する。CPU32は、MFP10がG/Oネゴシエーションを実行してS40でCL状態に移行した場合(例えば、MFP50が図2のS208においてCL状態に移行する場合)には、S42でYESと判断して、S44に進む。なお、G/Oネゴシエーションの結果としてWFDNWが新たに形成されるために、MFP10が当該G/Oネゴシエーションを実行してCL機器としてWFDNWに所属したということは(即ち、S42でYESと判断されるということは)、当該WFDNWに所属した最初のCL機器がMFP10であることを意味する。
S42では、CPU32は、さらに、メモリ34内の参加リストの上位2番目に、MFP10のWFD用MACアドレスが記述されている状態(以下では「MFP10が上位2番目である状態」と呼ぶ)で、MFP10がIreq信号を受信してS10でCL状態に移行したのか否かを判断する(図4のS414)。CPU32は、MFP10が上位2番目である状態でIreq信号を受信してCL状態に移行した場合(例えば図4のS412の移行の場合)には、S42でYESと判断して、S44に進む。
即ち、図4に示すように、MFP10が、第1のWFDNWにCL機器として所属している状態から、デバイス状態に移行し、さらに、第2のWFDNWにCL機器として所属する場合に、S40でYESと判断され、S42の判断が実行される。S42の判断の対象の参加リストは、第1のWFDNWに所属中にメモリ34に格納され、デバイス状態に移行しても削除されずにメモリ34に維持されている参加リストである(例えば図2のS242で更新された参加リスト)。
S42では、CPU32は、さらに、元G/O機器を発見し、再接続処理が実行することによってS40でCL状態に移行したのか否かを判断する。CPU32は、元G/O機器を発見し、再接続処理によってCL状態に移行した場合(例えば図7のS722、図8のS822の移行の場合)には、S42でYESと判断して、S44に進む。
上述したように、S42でYESと判断されるということは、WFDNWに所属した最初のCL機器(最先のCL機器)がMFP10であることを意味する。このような状況では、S44において、CPU32は、MFP10のMACアドレスが記述された新たな参加リストを生成して、新たな参加リストをメモリ34に格納する。S44の時点では、新たな参加リストは、MFP10のMACアドレスのみを含む。即ち、MFP10のMACアドレスは、参加リストの最上位に記述される。なお、S44が開始される際に、メモリ34に古い参加リストが格納されている場合には、制御部30は、古い参加リストをメモリ34から削除して、新たな参加リストをメモリ34に格納する。
さらに、S44では、CPU32は、メモリ34に優先リストが格納されていない場合に、G/O機器のMACアドレスが記述された優先リストを生成して、メモリ34に格納する。一方、S44では、CPU32は、メモリ34に優先リストが格納されている場合に、新たに優先リストを生成しない。S44を終えると、S40に戻る。
一方において、CPU32は、MFP10が、G/Oネゴシエーションを実行せず、さらに、Ireq信号を受信せずに、CL状態に移行した場合には、S42でNOと判断して、S46に進む。S42でNOと判断される状況は、図2のS224及び図5のS532において、MFP10がCL状態に移行される状況を含む。
上記のどちらの状況でも、デバイス状態のMFP10がWFDNWに新たに参加する際には、当該WFDNWにはCL機器が既に所属している。従って、MFP10は、当該WFDNWに最も早く参加した最先のCL機器ではなく、参加リストは、生成済みである。
S46では、CPU32は、参加通知を、WFDNWにブロードキャストする(図2のSS225)。S48では、CPU32は、最先のCL機器から送信された参加リストと優先リストとを受信する(図2のS227)。上述したように、受信済みの参加リストでは、MFP10のMACアドレスが、最下位に記述されている。S48では、CPU32は、さらに、受信済みの参加リストと優先リストとをメモリ34に格納する。なお、メモリ34に古い参加リストが格納されている場合には、CPU32は、古い参加リストをメモリ34から削除して、受信済みの参加リストをメモリ34に格納する。また、メモリ34に既に優先リストが格納されている場合には、CPU32は、受信済みの優先リストをメモリ34に格納しない。
次いで、S49では、S48において、メモリ34に優先リストが受信された場合、CPU32は、受信済みの参加リストを用いて、受信済みの優先リストを更新して(図2のS228)、S40に戻る。なお、CPU32は、S48において、優先リストが受信される前に、既に、メモリ34に優先リストが格納されている場合、S49をスキップして、S40に戻る。
S50では、CPU32は、参加通知を受信することを監視している。CPU32は、G/O機器を介して、新規CL機器から参加通知を受信すると(図2のS236、図4のS428)、S50でYESと判断して、S52に進む。
S52では、CPU32は、メモリ34内の参加リストの最上位にMFP10のMACアドレスが記述されているのか否かを判断する。即ち、CPU32は、MFP10が最先のCL機器であるのか否かを判断する。CPU32は、MFP10が最先のCL機器である場合には、S52でYESと判断して、S54に進む。CPU32は、MFP10が最先のCL機器でない場合(図2のS236で参加通知を受信する場合)には、S52でNOと判断して、S54、S56をスキップしてS40に戻る。
S54では、CPU32は、参加通知に含まれるMACアドレス(即ち新規CL機器のMACアドレス)を参加リストの最下位に記述して、更新済みの参加リストを生成する(図4のS430)。これにより、メモリ34内に更新済みの参加リストが格納される。
次いで、S56では、CPU32は、更新済みの参加リストを、WFDNWに所属する他のCL機器(例えば携帯端末110)に送信する(図4のS432)。S56を終えると、S40に戻る。
S60では、CPU32は、参加リストを受信することを監視している。上記のS56又は後述のS78において、MFP10とは異なる最先のCL機器は、参加リストをWFDNWのCL機器に送信し得る。この場合、CPU32は、G/O機器を介して、最先のCL機器から参加リストを受信し(図2のS240)、この結果、S60でYESと判断して、S62に進む。
S62では、CPU32は、古い参加リストをメモリ34から削除して、受信済みの参加リストをメモリ34に格納する(図2のS242)。これにより、CPU32は、参加リストを更新することができる。S62を終えると、S40に戻る。
S70では、CPU32は、メモリ34内の参加リストの最上位にMFP10のMACアドレスが記述されているのか否かを判断する。即ち、CPU32は、MFP10が最先のCL機器であるのか否かを判断する。CPU32は、MFP10が最先のCL機器である場合には、S70でYESと判断して、S72に進む。
S72では、CPU32は、最先のCL機器であるMFP10とは異なる各CL機器の存在確認を実行する。S74では、CPU32は、離脱機器が存在するのか否かを判断する。制御部30は、離脱機器が存在する場合には、S74でYESと判断して、S76に進む。一方において、CPU32は、離脱機器が存在しない場合には、S74でNOと判断して、S76及びS78をスキップしてS10に戻る。
S76では、CPU32は、メモリ34内の参加リストから離脱機器のMACアドレスを消去して、更新済みの参加リストを生成する。
次いで、S78では、CPU32は、更新済みの参加リストをWFDNWにブロードキャストする。参加リストは、G/O機器を介して、WFDNWに所属している各CL機器(即ちMFP10とは異なる各CL機器であって、離脱機器以外の各CL機器)に送信される。この結果、上記の各CL機器は、参加リストを更新する(S62)。
CPU32は、S70でYESと判断する毎に、S72〜S78を実行する。即ち、CPU32は、CL機器の生存確認を繰り返し実行する。例えば、S70の判断を実行するためのインタバールがほぼ一定である状況では、CPU32は、CL機器の存在確認を定期的に実行する。S78を終えると、S70に戻る。
上述したように、S70〜S78では、最先のCL機器であるMFP10が、CL機器の存在確認を実行する。換言すると、最先のCL機器がMFP10とは異なる他のCL機器である場合には、上記の他のCL機器が存在確認を実行する。但し、上記の他のCL機器が、WFDNWから離脱する可能性がある。この場合、存在確認を実行するCL機器がいなくなり、この結果、参加リストが更新されなくなる。このような事態が発生するのを抑制するために、CPU32は、後述のS80及びS82を実行する。
S80では、CPU32は、MFP10が上位2番目の状態(即ち、MFP10のWFD用MACアドレスが、参加リストの上位2番目に記述されている状態)であるのか否かを判断する。CPU32は、MFP10が上位2番目の状態である場合には、S80でYESと判断して、S82に進む。一方において、CPU32は、MFP10が上位2番目の状態でない場合には、S80でNOと判断して、S82をスキップしてS40に戻る。
S82では、CPU32は、CL存在確認信号を受信しない状態が所定時間継続したのか否かを判断する。最先のCL機器がWFDNWから離脱した場合には、最先のCL機器からCL存在確認信号が送信されない。この場合、CPU32は、上記の所定時間に亘ってCL存在確認信号を受信しないために、S82でYESと判断して、S72〜S78を実行する。
即ち、CPU32は、最先のCL機器に代わってCL存在確認信号を送信し(S72)、この結果、最先のCL機器がWFDNWから離脱したと判断する(S74でYES)。そして、CPU32は、メモリ34内の参加リストから最先のCL機器のMACアドレスを消去して、更新済みの参加リストを生成する(S76)。この結果、更新済みの参加リストでは、MFP10のWFD用MACアドレスが最上位に記述される。即ち、MFP10が最先のCL機器になる。次いで、CPU32は、更新済みの参加リストをWFDNWにブロードキャストする(S78)。
なお、MFP50及び携帯端末110は、MFP10と同様に、図10のリスト管理処理を実行する。例えば、MFP50がリスト管理処理を実行する場合には、MFP50のCPUが、CPU32の代わりに、図10の各処理を実行する。各機器10,50,110がリスト管理処理を実行するので、各機器10等がCL機器である場合には、各機器10等は、各機器10等のMACアドレスが記述されている参加リストを所持することができる。
(対応関係)
MFP10、PC120、携帯端末110、MFP50が、それぞれ、「通信装置」、「第1のデバイス」、「第2のデバイス」、「第3のデバイス」の一例である。メモリ34が「メモリ」の一例であるが、「メモリ」は、「通信装置」とは別体で設けられていてもよい。第1のWFDNW、第2のWFDNW、第4のWFDNWが、それぞれ、「第1の無線ネットワーク」、「第4の無線ネットワーク」、「第2の無線ネットワーク」の一例である。図7のケースB−1では、第5のWFDNWが、「第5の無線ネットワーク」の一例であり、MFP50が、「対象デバイス」の一例である。図8のケースB−2では、第6のWFDNWが、「第3の無線ネットワーク」及び「第5の無線ネットワーク」の一例であり、PC120が、「対象デバイス」の一例である。
WS1、WS2が、それぞれ、「第1の通信情報」、「第2の通信情報」の一例であり、携帯端末110のMACアドレスが、「第2のデバイスの識別情報」の一例である。
図9のS10の処理を実行するCPU32が、「第1の記憶制御部」の一例であり、S29の処理を実行するCPU32が、「第3の記憶制御部」の一例である。図9のS12、S30の処理を実行するCPU32が、「確認部」の一例であり、S18、S36の処理を実行するCPU32が「構築部」の一例であり、S20の処理を実行するCPU32が、「検索部」の一例であり、S24の処理を実行するCPU32が、「離脱部」、「通知部」の一例であり、S28の処理を実行するCPU32が、「確立部」の一例であり、S16を実行するCPU32が、「決定部」の一例である。また、図10のS48を実行するCPU32が「第2の記憶制御部」の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(1)例えば、図5のケースAにおいて、PC120(即ちG/O機器)は、PC120の電源をOFFするための操作が加えられた場合に、第1のWFDNWからPC120が離脱することを示す離脱信号を、各CL機器10,50,110に送信してもよい。即ち、WFDNWのG/O機器は、WFDNWから離脱する場合に、離脱信号を、各CL機器に送信してもよい。この場合、各CL機器10,50,110は、PC120から離脱信号を受信する場合に、デバイス状態に移行してもよい。即ち、各機器10,50,110は、G/O存在確認信号(図4参照)を送信しなくても、第1のWFDNWからPC120が離脱することを知ることができる。本変形例では、離脱信号が受信される場合が、「第1の無線ネットワークを利用して、第1のデバイスと無線通信可能でないことが確認される場合」の一例である。
(2)例えば、図7のケースB−1において、MFP50は、MFP50が無線通信可能であることを示す通信可能信号を、発信していてもよい。通信可能信号は、MFP50のMACアドレスを含んでいてもよい。MFP10のCPU32は、通信可能信号が受信されることを監視していてもよい。そして、CPU32は、通信可能信号を受信することによって、MFP50を発見してもよい。即ち、CPU32は、MFP50を検索するために、Probe Request信号を発信しなくてもよい。本変形例では、通信可能信号が受信されることを監視する処理が、「検索部」の一例である。
(3)図7のケースB−1において、MFP10のCPU32は、MFP50との間で、再接続処理を実行した後、即ち、第4のWFDNWが形成された後で、第3のWFDNWの解散処理を実行してもよい。この場合、MFP10は、複数個のWFDに所属するための構成、例えば、複数個の無線LANI/Fを備えていてもよい。
(4)上記の各実施例では、携帯端末110からMFP10に印刷データが送信される例を説明している。ただし、上記の各実施例の技術は、印刷データとは異なるデータの通信にも適用可能である。例えば、MFP10から携帯端末110にスキャンデータが送信されてもよい。また、上記の各実施例の技術は、印刷データ及びスキャンデータとは異なる種類のデータ(例えば音声データ、動画データ等)の通信にも適用可能である。
(5)CL機器(例えばMFP10)が、他のCL機器(例えば携帯端末110)のMACアドレスを取得するための手法は、図10のリスト管理処理を実行する手法に限られない。例えば、携帯端末110及びMFP10,50がCL機器として所属しているWFDNWが形成されている場合に、MFP10のCPU32は、所定のタイミング(例えば定期的に)で、MACアドレスの要求パケットをWFDNWにブロードキャストしてもよい。この場合、携帯端末110は、要求パケットを受信する場合に、携帯端末110のMACアドレスを含む応答パケットを、MFP10に送信する。これにより、CPU32は、G/O機器を介して、携帯端末110からMACアドレスを受信することができる。CPU32は、同様に、MFP50からMACアドレスを受信することができる。また、MFP50のCPUも、所定のタイミング(例えば定期的に)で、MACアドレスの要求パケットをWFDNWにブロードキャストしてもよい。この場合、MFP50のCPUは、G/O機器を介して、各CL機器10,50から、MACアドレスを受信することができる。
(6)「親局」は、WFDのG/O機器に限られず、無線ネットワークに属する各機器を管理する機器(例えば、無線ネットワークに属する各機器の間の無線通信を中継可能な機器)であれば、どのような機器であってもよい。また、「子局」は、WFDのCL機器に限られず、無線ネットワークの親局から管理される状態であれば、どのような機器であってもよい。また、各機器は、APを介して通信を行う無線LAN(例えば、通常のWi−Fi(登録商標)通信ネットワーク)に接続できてもよい。この場合、APが「第1のデバイス」の一例であり、通常Wi−Fi通信ネットワークが「第1の無線ネットワーク」の一例であってもよい。また、この場合、APと通信できない状況で、MFP50をG/O機器とするWFDNWを一時的に形成し、APと通信可能になった場合に、通常Wi−Fi通信ネットワークを新たに形成してもよい。
(7)「通信装置」及び「第1のデバイス」〜「第3のデバイス」は、MFP10,50、携帯端末110及びPC120に限られず、他の通信装置(例えば、プリンタ、スキャナ、FAX装置、コピー機、電話機、デスクトップPC、サーバ等)であってもよい。
(8)上記の実施例では、MFP10のCPU32がメモリ34内のプログラム(即ちソフトウェア)を実行することによって、図9,10の各処理S10〜S82が実現される。これに代えて、図9,10の各処理S10〜S82のうちの少なくとも1つは、論理回路等のハードウェアによって実現されてもよい。
(9)例えば、図7のケースB−1において、MFP10のCPU32は、MFP50を発見する場合、CL機器である携帯端末110に、MFP50が発見されたことを示す情報を、第4のWFDNWを利用して送信してもよい。そして、CPU32は、S710の解散処理を実行してもよい。即ち、CPU32は、解散処理とは別に、MFP50が発見されたことを示す情報を、携帯端末110に送信してもよい。本変形例では、MFP50が発見されたことを示す情報の送信処理を実行するCPU32が、「通知部」の一例である。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
以下に、本明細書に開示される技術の特徴を列挙する。
(特徴1)
通信装置であって、
第1のデバイスが、第1の無線ネットワークに親局として所属しており、前記通信装置が、前記第1の無線ネットワークに子局として所属している第1の所属状態で、前記第1のデバイスと無線通信を実行するための第1の通信情報を、メモリに記憶させる第1の記憶制御部と、
第2のデバイスを含む1個以上のデバイスが、第1の無線ネットワークに子局として所属している前記第1の所属状態で、前記第2のデバイスの識別情報を、前記メモリに記憶させる第2の記憶制御部と、
前記第1の無線ネットワークを利用して、前記第1のデバイスと無線通信可能であるのか否かを確認する確認部と、
前記第1の無線ネットワークを利用して、前記第1のデバイスと無線通信可能でないことが確認される場合に、前記通信装置及び前記第2のデバイスが第2の無線ネットワークに所属している第2の所属状態を構築する構築部であって、前記通信装置は、前記第2の無線ネットワークに親局として所属しており、前記第2のデバイスは、前記第2の無線ネットワークに子局として所属している、前記構築部と、
前記メモリ内の前記第1の通信情報を用いて、前記第1のデバイスを検索する検索部と、
前記検索の結果として、前記第1のデバイスが発見される場合に、前記通信装置を、前記第2の無線ネットワークから離脱させる離脱部と、を備え、
前記構築部は、前記通信装置が、前記第2の無線ネットワークから離脱される場合に、前記通信装置及び前記第1のデバイスが第3の無線ネットワークに所属している第3の所属状態を構築し、前記通信装置は、前記第3の無線ネットワークに子局として所属しており、前記第1のデバイスは、前記第3の無線ネットワークに親局として所属している、通信装置。
(特徴2)
前記構築部は、前記通信装置が、前記第2の無線ネットワークから離脱された後に、前記第3の所属状態を構築する、特徴1に記載の通信装置。
(特徴3)
前記通信装置は、さらに、前記検索の結果として、前記第1のデバイスが発見される場合に、前記第2の無線ネットワークを利用して、前記第2のデバイスに、前記第1のデバイスが発見されたことを通知する通知部を備える、特徴1又は2に記載の通信装置。
(特徴4)
前記通信装置は、さらに、
前記第1の無線ネットワークを利用して、前記第1のデバイスと無線通信可能でないことが確認される場合であって、前記第1の無線ネットワークに子局として所属している前記1個以上のデバイスのうち、前記第2のデバイスと第3のデバイスとが、第4の無線ネットワークに所属している第4の所属状態であって、前記第3のデバイスは、前記第4の無線ネットワークに親局として所属しており、前記第2のデバイスは、前記第4の無線ネットワークに子局として所属している、前記第4の所属状態である場合に、前記通信装置が、前記第4の無線ネットワークに子局として所属するために、前記第3のデバイスとの無線接続を確立する確立部と、
前記通信装置が、前記第4の無線ネットワークに子局として所属している状態で、前記第3のデバイスと無線通信を実行するための第2の通信情報を、前記メモリに記憶させる第3の記憶制御部と、を備え、
前記確認部は、さらに、前記第4の無線ネットワークを利用して、前記第3のデバイスと無線通信可能であるのか否かを確認し、
前記構築部は、前記第1の無線ネットワークを利用して、前記第1のデバイスと無線通信可能でないことが確認される場合であって、かつ、前記第4の無線ネットワークを利用して、前記第3のデバイスと無線通信可能でないことが確認される場合に、前記第2の所属状態を構築し、
前記検索部は、さらに、前記メモリ内の前記第2の通信情報を用いて、前記第3のデバイスを検索し、
前記離脱部は、前記検索の結果として、前記第1のデバイスと前記第3のデバイスとのいずれか一方のデバイスである対象デバイスが発見される場合に、前記通信装置を、前記第2の無線ネットワークから離脱させ、
前記構築部は、前記通信装置が、前記第2の無線ネットワークから離脱される場合に、前記通信装置及び前記対象デバイスが第5の無線ネットワークに所属している第5の所属状態を構築し、前記通信装置は、前記第5の無線ネットワークに子局として所属し、前記対象デバイスは、前記第5の無線ネットワークに親局として所属している、特徴1から3のいずれか一項に記載の通信装置。
(特徴5)
通信装置は、さらに、前記第1の無線ネットワークを利用して、前記第1のデバイスと無線通信可能でないことが確認される場合に、前記第1の無線ネットワークに所属している前記1個以上の子局のうち、前記通信装置が親局として無線ネットワークに所属している状態を構築すべきであるのか否かを決定する決定部を備え、
前記構築部は、前記通信装置が親局として無線ネットワークに所属している状態を構築すべきであると決定される場合に、前記第2の所属状態を構築する、特徴1から4のいずれか一項に記載の通信装置。
(特徴6)
前記第1の通信情報は、SSIDを含む、特徴1から5のいずれか一項に記載の通信装置。
(特徴7)
通信装置のためのコンピュータプログラムであって、
前記通信装置に搭載されるコンピュータに、以下の各処理、即ち、
第1のデバイスが、第1の無線ネットワークに親局として所属しており、前記通信装置が、前記第1の無線ネットワークに子局として所属している第1の所属状態で、前記第1のデバイスと無線通信を実行するための第1の通信情報を、メモリに記憶させる第1の記憶制御処理と、
第2のデバイスを含む1個以上のデバイスが、第1の無線ネットワークに子局として所属している前記第1の所属状態で、前記第2のデバイスの識別情報を、前記メモリに記憶させる第2の記憶制御処理と、
前記第1の無線ネットワークを利用して、前記第1のデバイスと無線通信可能であるのか否かを確認する確認処理と、
前記第1の無線ネットワークを利用して、前記第1のデバイスと無線通信可能でないことが確認される場合に、前記通信装置及び前記第2のデバイスが第2の無線ネットワークに所属している第2の所属状態を構築する構築処理であって、前記通信装置は、前記第2の無線ネットワークに親局として所属しており、前記第2のデバイスは、前記第2の無線ネットワークに子局として所属している、前記構築処理と、
前記メモリ内の前記第1の通信情報を用いて、前記第1のデバイスを検索する検索処理と、
前記検索の結果として、前記第1のデバイスが発見される場合に、前記通信装置を、前記第2の無線ネットワークから離脱させる離脱処理と、を実行させ、
前記構築処理では、前記通信装置が、前記第2の無線ネットワークから離脱される場合に、前記通信装置及び前記第1のデバイスが第3の無線ネットワークに所属している第3の所属状態を構築し、前記通信装置は、前記第3の無線ネットワークに子局として所属しており、前記第1のデバイスは、前記第3の無線ネットワークに親局として所属している、コンピュータプログラム。