(第1実施例)
(システムの構成)
図1に示されるように、通信システム2は、アクセスポイント(以下では「AP」と呼ぶ)4と、PC6と、携帯端末8と、プリンタ10(PC6、携帯端末8等の周辺機器)と、を備える。携帯端末8とプリンタ10とは、それぞれ、後述のWi−Fi Directに従った無線通信機能を実行可能である。なお、以下では、Wi−Fi Directのことを「WFD」と呼び、WFDに従った接続のことを「WFD接続」と呼ぶ。プリンタ10は、携帯端末8とのWFD接続を確立可能であり、これにより、WFDネットワークが構築される。この結果、携帯端末8とプリンタ10とは、印刷データ等の通信対象の対象データの無線通信を実行可能になる。
プリンタ10は、WFDに従った無線通信機能に加えて、通常の無線通信機能(例えば、IEEE802.11に従った無線通信)を実行可能である。即ち、プリンタ10は、AP4との接続(以下では「非WFD接続」と呼ぶ)を確立可能であり、これにより、非WFDネットワークが構築される。なお、PC6も、AP4との非WFD接続を確立可能である。この結果、プリンタ10とPC6とは、AP4を介して、印刷データ等の通信対象の対象データの無線通信を実行可能になる。
本実施例では、AP4とPC6とプリンタ10とが、例えば、特定の会社内に据え置きされる状況を想定している。即ち、特定の会社内では、AP4とPC6とプリンタ10とを含む非WFDネットワークが構築される。このために、PC6のユーザ(例えば特定の会社の社員)は、AP4を介して、プリンタ10に印刷を実行させることができる。そして、例えば、携帯端末8のユーザ(例えば特定の会社を訪問した者)は、携帯端末8とプリンタ10との間にWFD接続を一時的に確立させることができる。即ち、携帯端末8のユーザは、携帯端末8とプリンタ10とを含むWFDネットワークを一時的に構築させることができる。これにより、携帯端末8のユーザは、AP4を介さずに、プリンタ10に印刷を実行させることができる。このように、本実施例では、非WFDネットワークが定常的に構築されるべきネットワークであり、WFDネットワークが一時的に構築されるべきネットワークである状況を想定している。
(プリンタ10の構成)
プリンタ10は、操作部12と、表示部14と、印刷実行部16と、無線インターフェイス18と、制御部20と、を備える。上記の各部12〜20は、バス線(符号省略)に接続されている。操作部12は、複数のキーによって構成される。ユーザは、操作部12を操作して、様々な指示をプリンタ10に与えることができる。表示部14は、様々な情報を表示するためのディスプレイである。印刷実行部16は、インクジェット方式、レーザ方式等の印刷機構を備え、制御部20からの指示に従って印刷を実行する。
無線インターフェイス18は、制御部20が無線通信を実行する際に利用されるインターフェイスである。無線インターフェイス18は、物理的には1個のインターフェイスである。ただし、無線インターフェイス18には、WFD接続で利用されるべきMACアドレスと、非WFD接続で利用されるべきMACアドレスと、の両方が割り当てられている。従って、制御部20は、無線インターフェイス18を利用して、WFDに従った無線通信機能と通常の無線通信機能との両方を同時的に実行し得る。この結果、後で詳しく説明するが、制御部20は、WFDネットワークと非WFDネットワークとの両方が構築されている状態を形成し得る。
制御部20は、CPU22とメモリ24とを備える。CPU22は、メモリ24に格納されているプログラムに従って、様々な処理を実行する。メモリ24は、ROM、RAM、ハードディスク等によって構成される。メモリ24は、CPU22によって実行される上記のプログラムを格納したり、CPU22が処理を実行する過程で取得又は生成されるデータを格納したりする。CPU22が上記のプログラムに従って処理を実行することによって、各部30〜42の機能が実現される。
(AP4の構成)
AP4は、非WFDネットワークを構成する各機器(例えばPC6、プリンタ10)の間の無線通信を中継する。AP4は、さらに、非WFDネットワークを構成する各機器IPアドレスを割り当てるDHCP(Dynamic Host Configuration Protocol)サーバとして機能する。AP4は、非WFDネットワークで利用されるべきプリンタ10のIPアドレス(以下では「プリンタ10の非WFD用IPアドレス」と呼ぶ)を決定して、プリンタ10の非WFD用IPアドレスをプリンタ10に割り当てる。同様に、AP4は、PC6の非WFD用IPアドレスをPC6に割り当てる。これにより、プリンタ10(即ち第2の構築部32)は、AP4から割り当てられたプリンタ10の非WFD用IPアドレス(さらには、AP4のIPアドレス、PC6のIPアドレス)を利用して、印刷データ等の通信をPC6と実行することができる。本実施例では、このようにして、IPアドレスを利用した通信を開始することが、AP4とPC6とプリンタ10とを含む非WFDネットワークを構築することを意味する。なお、非WFDネットワークでは、IPv4(Internet Protocol version 4)のIPアドレスが利用される。
(PC6の構成)
PC6は、AP4との非WFD接続を確立することができる。PC6は、図示省略のCPU、メモリ、ディスプレイ等を備える。PC6のメモリは、プリンタ10のためのプリンタドライバプログラムを格納している。PC6のCPUは、プリンタドライバプログラムを利用して、印刷対象の印刷データを生成することができる。プリンタ10とAP4との間に非WFD接続が確立されていると共に、PC6とAP4との間に非WFD接続が確立されている状態では、PC6は、AP4を介して、印刷データをプリンタ10に無線で送信可能である。
(携帯端末8の構成)
携帯端末8は、可搬型の端末であり、例えば、スマートフォン、PDA端末、ノートPC、タブレットPC等を含む。携帯端末8は、WFDに従った無線通信機能を実行可能である。携帯端末8は、プリンタ10とのWFD接続を確立可能である。携帯端末8は、図示省略のCPU、メモリ、ディスプレイ等を備える。携帯端末8のメモリは、プリンタ10のためのプリンタドライバプログラムを格納している。携帯端末8のCPUは、プリンタドライバプログラムを利用して、印刷対象の印刷データを生成することができる。プリンタ10と携帯端末8との間にWFD接続が確立されている状態では、携帯端末8は、AP4を介さずに、印刷データをプリンタ10に無線で送信可能である。
(WFD)
WFDは、Wi−Fi Allianceによって策定された規格である。WFDは、Wi−Fi Allianceによって作成された「Wi−Fi Peer−to−Peer(P2P) Technical Specification Version1.1」に記述されている。
上述したように、プリンタ10と携帯端末8とは、それぞれ、WFDに従った無線通信機能を実行可能である。以下では、WFDに従った無線通信機能を実行可能な機器のことを「WFD対応機器」と呼ぶ。WFDの規格では、WFD対応機器の状態として、Group Owner状態(以下では「G/O状態」と呼ぶ)、クライアント状態、及び、デバイス状態の3つの状態が定義されている。WFD対応機器は、上記の3つの状態のうちの1つの状態で選択的に動作可能である。
G/O状態の機器とクライアント状態の機器とによって、1個のWFDネットワークが構成される。1個のWFDネットワークでは、G/O状態の機器が1個しか存在し得ないが、クライアント状態の機器が1個以上存在し得る。G/O状態の機器は、1個以上のクライアント状態の機器を管理する。具体的に言うと、G/O状態の機器は、1個以上のクライアント状態の機器のそれぞれの識別情報(即ちMACアドレス)が記述された管理リストを生成する。G/O状態の機器は、クライアント状態の機器がWFDネットワークに新たに参加すると、当該機器の識別情報を管理リストに追加し、クライアント状態の機器がWFDネットワークから離脱すると、当該機器の識別情報を管理リストから削除する。
G/O状態の機器は、管理リストに登録されている機器、即ち、クライアント状態の機器との間で、通信対象の対象データ(例えば、OSI参照モデルのネットワーク層の情報を含むデータ(印刷データ等))の無線通信を実行可能である。しかしながら、G/O状態の機器は、管理リストに登録されていない機器との間で、WFDネットワークに参加するためのデータ(例えば、ネットワーク層の情報を含まないデータ(Probe Request信号、Probe Response信号等の物理層のデータ)の無線通信を実行可能であるが、上記の対象データの無線通信を実行不可能である。例えば、G/O状態のプリンタ10は、管理リストに登録されている携帯端末8(即ち、クライアント状態の携帯端末8)から印刷データを無線で受信可能であるが、管理リストに登録されていない機器から印刷データを無線で受信不可能である。
また、G/O状態の機器は、複数個のクライアント状態の機器の間の対象データ(印刷データ等)の無線通信を中継可能である。例えば、クライアント状態の携帯端末8がクライアント状態の他のプリンタに印刷データを無線で送信すべき場合には、携帯端末8は、まず、印刷データをG/O状態のプリンタ10に無線で送信する。この場合、プリンタ10は、携帯端末8から印刷データを無線で受信して、上記の他のプリンタに印刷データを無線で送信する。即ち、G/O状態の機器は、無線ネットワークのAP(アクセスポイント)の機能を実行可能である。
G/O状態の機器は、さらに、クライアント状態の機器にIPアドレスを割り当てるDHCPサーバとして機能する。例えば、G/O状態のプリンタ10は、WFDネットワークで利用されるべきプリンタ10のIPアドレス(以下では「プリンタ10のWFD用IPアドレス」と呼ぶ)を決定する。また、G/O状態のプリンタ10は、クライアント状態の携帯端末8のIPアドレス(以下では「携帯端末8のWFD用IPアドレス」と呼ぶ)を決定して、携帯端末8のWFD用IPアドレスを携帯端末8に割り当てる。これにより、プリンタ10は、プリンタ10のWFD用IPアドレス(さらには、携帯端末8のWFD用IPアドレス)を利用して、印刷データ等の通信を携帯端末8と実行することができる。本実施例では、このようにして、IPアドレスを利用した通信を開始することが、携帯端末8とプリンタ10とを含むWFDネットワークを構築することを意味する。なお、WFDネットワークでも、IPv4のIPアドレスが利用される。
なお、WFDネットワークに参加していないWFD対応機器(即ち、管理リストに登録されていない機器)が、デバイス状態の機器である。デバイス状態の機器は、WFDネットワークに参加するためのデータ(Probe Request信号、Probe Response信号等の物理層のデータ等)の無線通信を実行可能であるが、WFDネットワークを介して対象データ(印刷データ等)の無線通信を実行不可能である。
(WFDネットワーク構築処理;図2)
図2を参照して、プリンタ10によって実行されるWFDネットワーク構築処理の内容を説明する。ユーザが予め決められているWFDネットワーク構築指示を操作部12に入力する場合に、制御部20は、図2のWFDネットワーク構築処理を開始する。
図2のフローチャートでは図示省略しているが、第1の構築部30は、WFDネットワーク構築指示がプリンタ10に入力される場合に、プリンタ10の周囲に存在するデバイス状態の各機器(例えば携帯端末8)を検索するためのSearch処理を実行する。さらに、第1の構築部30は、Search処理で見つかった各機器に関する情報(例えば、デバイス名、機種名、MACアドレス等)を含む機器リストを、表示部14に表示させる。プリンタ10のユーザは、機器リストの中から、プリンタ10との接続が確立されるべき機器を指定する。第1の構築部30は、ユーザの指示に従って、機器を選択する。以下では、携帯端末8が選択された場合を例として、説明を続ける。
また、デバイス状態の携帯端末8は、WFDネットワーク構築指示が携帯端末8に入力される場合に、プリンタ10と同様に、Search処理を実行する。これにより、携帯端末8の表示部に、プリンタ10に関する情報を含む機器リストが表示される。携帯端末8のユーザは、機器リストの中から、携帯端末8との接続が確立されるべき機器を選択する。以下では、プリンタ10が選択された場合を例として、説明を続ける。
S10では、第1の構築部30は、G/Oネゴシエーションを実行して、プリンタ10及び携帯端末8のうちの一方の機器をG/Oとして決定し、プリンタ10及び携帯端末8のうちの他方の機器をクライアントとして決定する。具体的に言うと、第1の構築部30は、まず、メモリ24に保存されているプリンタ10のIntent値を、携帯端末8に送信する。また、第1の構築部30は、携帯端末8に保存されている携帯端末8のIntent値を、携帯端末8から受信する。Intent値は、G/Oになるべき程度を示す設定値である。Intent値は、0〜15の数値範囲の中のいずれかの値である。Intent値が大きい程、G/Oになり易い。換言すると、Intent値が小さい程、クライアントになり易い。
例えば、CPU及びメモリの能力が比較的に高い機器(例えばPC)は、G/Oとして動作しながら、他の処理を高速で実行することができる。従って、このような機器には、通常、G/Oになり易いように、比較的に大きなIntent値が設定される。一方において、例えば、CPU及びメモリの能力が比較的に低い機器は、G/Oとして動作しながら、他の処理を高速で実行することができない可能性がある。従って、このような機器には、通常、G/Oになり難いように(即ち、クライアントになり易いように)、比較的に小さなIntent値が設定される。
本実施例では、プリンタ10のIntent値(即ちデフォルトのIntent値)として、「2」が利用される。プリンタ10は、通常、PC等と比べて、CPU及びメモリの能力が比較的に低い。このために、プリンタ10には、比較的に小さいデフォルトのIntent値が設定される。従って、S10では、第1の構築部30は、通常、プリンタ10のIntent値「2」を携帯端末8に送信する。ただし、詳しくは後述するが、図2のS34及び図4のS82が実行されると、プリンタ10のIntent値が「2」から「14」に変更される。従って、図2のS34及び図4のS82が実行された直後のS10では、第1の構築部30は、プリンタ10のIntent値「14」を携帯端末8に送信する。
S10では、第1の構築部30は、さらに、プリンタ10のIntent値と、携帯端末8のIntent値と、を比較して、G/O及びクライアントを決定する。例えば、プリンタ10のIntent値が、携帯端末8のIntent値よりも大きい場合には、第1の構築部30は、プリンタ10がG/Oになるべきことを決定すると共に、携帯端末8がクライアントになるべきことを決定する。また、例えば、プリンタ10のIntent値が、携帯端末8のIntent値よりも小さい場合には、第1の構築部30は、プリンタ10がクライアントになるべきことを決定すると共に、携帯端末8がG/Oになるべきことを決定する。なお、第1の構築部30は、プリンタ10のIntent値と、携帯端末8のIntent値と、が一致する場合には、プリンタ10のIntent値を変更し、変更後のIntent値を利用して、G/Oネゴシエーションを再び実行してもよいし、WFDネットワークを構築することができないことを示す情報を、表示部14に表示させてもよい。
携帯端末8は、プリンタ10と同じ手法を利用して、プリンタ10のIntent値と携帯端末8のIntent値とに基づいて、G/O及びクライアントを決定する。S10のG/Oネゴシエーションが終了すると、S12に進む。
S12では、第1の構築部30は、WPS(Wi-Fi Protected Setup)ネゴシエーションを実行して、携帯端末8とのWFD接続を確立する。なお、プリンタ10がG/Oになるべきことが決定された場合には、第1の構築部30は、G/O状態用のWPSネゴシエーションを実行する。一方において、プリンタ10がクライアントになるべきことが決定された場合には、第1の構築部30は、クライアント状態用のWPSネゴシエーションを実行する。
(G/O状態用のWPSネゴシエーション)
G/O状態用のWPSネゴシエーションでは、第1の構築部30は、WFD接続を確立するために必要な無線プロファイル(SSID、認証方式、暗号化方式、パスワード等)を示すデータを生成する。なお、認証方式及び暗号化方式は、予め決められている。また、第1の構築部30は、S12の処理の際にパスワードを生成する。なお、SSIDは、S12の処理の際に、第1の構築部30によって生成されてもよいし、予め決められていてもよい。続いて、第1の構築部30は、無線プロファイルを示すデータを、携帯端末8に送信する。
無線プロファイルがプリンタ10から携帯端末8に送信されることにより、プリンタ10及び携帯端末8が同じ無線プロファイルを利用することができる。第1の構築部30は、無線プロファイルを利用して、Authentication Request、Authentication Response、Association Request、Association Response、及び、4way handshakeの無線通信(以下では「特定の無線通信」と呼ぶ)を、携帯端末8と実行する。上記の特定の無線通信の過程で、SSIDの認証、認証方式及び暗号化方式の認証、パスワードの認証等の様々な認証処理が実行される。全ての認証が成功した場合に、プリンタ10及び携帯端末8の間にWFD接続が確立される。なお、第1の構築部30は、携帯端末8の識別情報(即ち、携帯端末8のMACアドレス)を管理リストに追加する。
(クライアント状態用のWPSネゴシエーション)
一方において、クライアント状態用のWPSネゴシエーションでは、第1の構築部30は、無線プロファイルを示すデータを、携帯端末8から受信する。次いで、第1の構築部30は、無線プロファイルを利用して、上記の特定の無線通信を、携帯端末8と実行する。これにより、プリンタ10及び携帯端末8の間にWFD接続が確立される。なお、携帯端末8は、プリンタ10の識別情報(即ち、プリンタ10のMACアドレス)を管理リストに追加する。S12のWPSネゴシエーションが終了すると、S14に進む。
S14では、第1の構築部30は、非WFDネットワークが構築中であるのか否かを判断する。非WFDネットワークが構築中である場合(S14でYESの場合)には、S24に進み、非WFDネットワークが構築中でない場合(S14でNOの場合)には、S16に進む。
S16では、第1の構築部30は、プリンタ10の現在の状態が、G/O状態であるのか、クライアント状態であるのか、を判断する。プリンタ10の現在の状態がG/O状態である場合(S16でYESの場合)には、S18に進み、プリンタ10の現在の状態がクライアント状態である場合(S16でNOの場合)には、S22に進む。
上述したように、G/O状態のプリンタ10は、DHCPサーバとして機能する。従って、S18では、決定部34は、プリンタ10のWFD用IPアドレスとして、予め準備されているデフォルトのIPアドレス(例えば192.168.1.1)を決定する。S18では、さらに、決定部34は、WFDネットワークで利用されるべきサブネットマスク(以下では「WFD用サブネットマスク」)を決定する。WFD用サブネットマスクも、予め準備されているデフォルトのサブネットマスク(例えば255.255.255.0)である。S18では、さらに、決定部34は、プリンタ10のDHCPサーバが割り当て可能なIPアドレスの範囲を決定する。ここで決定されるアドレス範囲も、予め準備されているデフォルトのアドレス範囲(例えば192.168.1.2-16)である。S18では、さらに、決定部34は、携帯端末8のWFD用IPアドレスとして、上記のアドレス範囲に含まれる1個のIPアドレス(例えば192.168.1.2)を決定する。
次いで、S20において、決定部34は、S18で決定された携帯端末8のWFD用IPアドレス(さらにはプリンタ10のWFD用IPアドレス)と、S18で決定されたWFD用サブネットマスクと、を携帯端末8に通知(即ち送信)する。即ち、決定部34は、携帯端末8のWFD用IPアドレスを携帯端末8に割り当てる。これにより、第1の構築部30は、プリンタ10のWFD用IPアドレス(さらには携帯端末8のWFD用IPアドレス)を利用して、携帯端末8と無線通信を開始する。即ち、第1の構築部30は、携帯端末8とプリンタ10とを含むWFDネットワークを構築する。この結果、G/O状態のプリンタ10(即ち第1の構築部30)は、OSI参照モデルの物理層よりも上位層であるネットワーク層のデータを含む対象データ(印刷データ等)の通信を、クライアント状態の携帯端末8と実行する。なお、G/O状態のプリンタ10(即ち第1の構築部30)は、クライアント状態の携帯端末8と、管理リストに登録されているクライアント状態の他の機器と、の間の無線通信を中継することができる。S20が終了すると、図2のWFDネットワーク構築処理が終了する。
なお、S16でNOの場合(即ち、プリンタ10の現在の状態がクライアント状態である場合)には、G/O状態の携帯端末8がDHCPサーバとして機能する。従って、携帯端末8は、プリンタ10のWFD用IPアドレスと、WFD用サブネットマスクと、を決定する。S22では、取得部36は、携帯端末8から、プリンタ10のWFD用IPアドレス(さらには携帯端末8のWFD用IPアドレス)と、WFD用サブネットマスクと、を取得する。これにより、第1の構築部30は、プリンタ10のWFD用IPアドレス(さらには携帯端末8のWFD用IPアドレス)を利用して、携帯端末8と無線通信を開始する。即ち、第1の構築部30は、携帯端末8とプリンタ10とを含むWFDネットワークを構築する。S22が終了すると、図2のWFDネットワーク構築処理が終了する。
一方において、S14でYESの場合(即ち、非WFDネットワークが構築中である場合)には、S24において、第1の構築部30は、プリンタ10の現在の状態が、G/O状態であるのか、クライアント状態であるのか、を判断する。プリンタ10の現在の状態がG/O状態である場合(S24でYESの場合)には、S26に進み、プリンタ10の現在の状態がクライアント状態である場合(S24でNOの場合)には、S28に進む。
(IPアドレス動的決定処理;図3)
S26では、決定部34は、IPアドレス動的決定処理を実行する。図3に示されるように、S50において、決定部34は、非WFDネットワークで現在利用されているサブネットマスク(以下では「非WFD用サブネットマスク」と呼ぶ)のマスク部分の桁数が、図2のS18で利用されるデフォルトのサブネットマスクのマスク部分の桁数以上であるのか否かを判断する。例えば、非WFD用サブネットマスクが「255.255.0.0」である場合には、非WFD用サブネットマスクのマスク部分の桁数は、16ビット(255.255)に相当する桁数である。また、例えば、デフォルトのサブネットマスクが「255.255.255.0」である場合には、デフォルトのサブネットマスクのマスク部分の桁数は、24ビット(255.255.255)に相当する桁数である。
非WFD用サブネットマスクのマスク部分の桁数が、デフォルトのサブネットマスクのマスク部分の桁数以上である場合(S50でYESの場合)には、S52において、決定部34は、決定用サブネットマスクとして、デフォルトのサブネットマスクを決定する。一方において、非WFD用サブネットマスクのマスク部分の桁数が、デフォルトのサブネットマスクのマスク部分の桁数よりも小さい場合(S50でNOの場合)には、S54において、決定部34は、決定用サブネットマスクとして、非WFD用サブネットマスクを決定する。即ち、S50〜S54において、決定部34は、非WFD用サブネットマスクとデフォルトのサブネットマスクとのうち、マスク部分の桁数が少ないサブネットマスクを、決定用サブネットマスクとして決定する。
S52又はS54が終了すると、S56において、決定部34は、非WFDネットワークで現在利用されているプリンタ10の非WFD用IPアドレスのうち、決定用サブネットマスクによってマスクされている値を算出する。第1の例では、プリンタ10の非WFD用IPアドレスが「192.168.1.2」であり、S52で決定された決定用サブネットマスクが「255.255.255.0」である。この場合、S56では、決定部34は、「192.168.1」を算出する。また、第2の例では、プリンタ10の非WFD用IPアドレスが「192.168.1.2」であり、S54で決定された決定用サブネットマスクが「255.255.0.0」である。この場合、S56では、決定部34は、「192.168」を算出する。
次いで、S58において、決定部34は、S56で算出された値とは異なる値(ただしS56で算出された値と同じ桁数を有する値)を決定する。上記の第1の例では、S58おいて、決定部34は、例えば、「192.169.1」を決定する。なお、この例では、9〜16ビット目の値が変更されているが、1〜8ビット目の値が変更されてもよいし(例えば「193.168.1」)、17〜24ビット目の値が変更されてもよい(例えば「192.168.2」)。また、上記の第2の例では、S58において、決定部34は、例えば、「192.169」を決定する。なお、この例では、9〜16ビット目の値が変更されているが、1〜8ビット目の値が変更されてもよい(例えば「193.168」)。
次いで、S60において、決定部34は、プリンタ10のWFD用IPアドレスとしてS58で算出された値を含むIPアドレスを決定する。上記の第1の例では、S60において、決定部34は、例えば、「192.169.1」を含むIPアドレス「192.169.1.1」を決定する。また、上記の第2の例では、S60において、決定部34は、例えば、「192.169」を含むIPアドレス「192.169.1.1」を決定する。なお、図2のS18と同様に、S60では、決定部34は、WFD用サブネットマスクとして、デフォルトのサブネットマスク(例えば「255.255.255.0」)を決定する。S60では、決定部34は、さらに、プリンタ10のDHCPサーバが割り当て可能なIPアドレスの範囲を決定する。具体的には、決定部34は、プリンタ10のWFD用IPアドレス(例えば「192.169.1.1」)のうち、デフォルトのサブネットマスクでマスクされているネットワークアドレス(例えば「192.169.1」)を算出する。そして、決定部34は、ネットワークアドレス(例えば「192.169.1」)を含むアドレス範囲であって、プリンタ10のWFD用IPアドレス(例えば「192.169.1.1」)を含まないアドレス範囲(例えば「192.169.1.2-16」)を決定する。S60では、決定部34は、さらに、携帯端末8のWFD用IPアドレスとして、上記のアドレス範囲に含まれる1個のIPアドレス(例えば192.169.1.2)を決定する。
なお、図3のS50〜S54において、マスク部分の桁数が少ないサブネットマスクを決定用サブネットマスクとして利用するのは、以下の理由である。例えば、プリンタ10の非WFD用IPアドレスが「192.168.1.4」であり、非WFD用サブネットマスクが「255.255.255.0」である状況を想定する。即ち、非WFDネットワークで利用可能なIPアドレスの範囲が「192.168.1.1-255」である状況を想定する。なお、上記と同様に、WFD用サブネットマスク(即ちデフォルトのサブネットマスク)は、「255.255.0.0」である。
上記の状況において、仮に、プリンタ10が、非WFD用IPアドレス「192.168.1.4」と、マスク部分の桁数が大きい非WFD用サブネットマスク「255.255.255.0」と、を利用して、S56及びS58を実行すると、S56で「192.168.1」を算出し、S58で「192.168.2」を決定し得る。この場合、プリンタ10は、プリンタ10のDHCPサーバが割り当て可能なIPアドレスの範囲として、例えば、算出済みの「192.168.2」のうち、WFD用サブネットマスク「255.255.0.0」でマスクされているネットワークアドレス「192.168」を含むアドレス範囲(例えば「192.168.1-255.1-255」)を決定し得る。この場合、WFDネットワークで利用可能なIPアドレスの範囲「192.168.1-255.1-255」と、非WFDネットワークで利用可能なIPアドレスの範囲「192.168.1.1-255」と、が重複してしまう。従って、非WFDネットワークで利用可能なIPアドレスの範囲「192.168.1.1-255」に含まれるIPアドレス(例えば「192.168.1.5」)が、携帯端末8のIPアドレスとして決定され得る。
上記の事象が発生すると、プリンタ10は、例えば、IPアドレス「192.168.1.5」を送信先として携帯端末8にデータを送信すべき際に、WFDネットワーク及び非WFDネットワークのうちのどちらのネットワークにデータを送信すればよいのかを適切に判断することができず、この結果、データ通信を適切に実行することができない。また、プリンタ10は、例えば、IPアドレス「192.168.1.6」を送信先としてPC6にデータを送信すべき際に、どちらのネットワークにデータを送信すればよいのかを適切に判断することができず、この結果、データを適切に送信することができない。このような事象が発生するのを抑制するために、本実施例のプリンタ10は、マスク部分の桁数が少ないサブネットマスクを決定用サブネットマスクとして利用して、非WFDネットワークで利用可能なIPアドレスの範囲と、WFDネットワークで利用可能なIPアドレスの範囲と、が重複しないように、IPアドレス割当機能(即ちDHCPサーバ機能)を実行する。従って、プリンタ10は、携帯端末8のWFD用IPアドレス(さらにはプリンタ10のWFD用IPアドレス)を適切に決定することができる。この結果、プリンタ10は、WFDネットワークを利用して、携帯端末8にデータを適切に送信することができ、非WFDネットワークを利用して、AP4を介してPC6にデータを適切に送信することができる。
S60が終了すると、図3のIPアドレス動的決定処理(図2のS26)が終了する。この場合、図2のS20に進み、上記と同様に、決定部34は、携帯端末8のWFD用IPアドレスを携帯端末8に割り当てる。従って、第1の構築部30は、S26で決定されたプリンタ10のWFD用IPアドレス(さらには携帯端末8のWFD用IPアドレス)を利用して、携帯端末8と通信を開始する(即ち、WFDネットワークを構築する)。非WFDネットワークが既に構築されているために、WFDネットワークと非WFDネットワークとの両方が構築されている状態が形成される。
一方において、図2のS24でNOの場合(即ち、プリンタ10の現在の状態がクライアント状態である場合)には、携帯端末8がDHCPサーバとして機能する。このために、決定部34は、S26のIPアドレス動的決定処理を実行しない。この場合、S28において、取得部36は、携帯端末8から、プリンタ10のWFD用IPアドレス(さらには携帯端末8のWFD用IPアドレス)と、WFD用サブネットマスクと、を取得する。
次いで、S30において、第1の判断部38は、S28で取得されたプリンタ10のWFD用IPアドレスが、非WFDネットワークで利用可能なIPアドレスの範囲に含まれるのか否かを判断する。具体的に言うと、第1の判断部38は、まず、図3のS50〜S54と同様に、決定用サブネットマスク(例えば「255.255.0.0」)を決定する。次いで、第1の判断部38は、S28で取得されたプリンタ10のWFD用IPアドレス(例えば「192.168.1.4」)のうち、決定用サブネットマスクでマスクされている部分の値(例えば「192.168」)を算出する。第1の判断部38は、さらに、プリンタ10の非WFD用IPアドレス(例えば「192.168.1.2」)のうち、決定用サブネットマスクでマスクされている部分の値(例えば「192.168」)を算出する。第1の判断部38は、算出済みの2個の値が一致しない場合に、プリンタ10のWFD用IPアドレスが上記の範囲に含まれない(S30でNO)と判断してS32に進み、算出済みの2個の値が一致する場合に、プリンタ10のWFD用IPアドレスが上記の範囲に含まれる(S30でYES)と判断してS34に進む。
S32では、第1の構築部30は、WFDネットワークで利用されるプリンタ10のIPアドレスとして、S28で取得されたプリンタ10のWFD用IPアドレスを採用する。即ち、第1の構築部30は、S28で取得されたプリンタ10のWFD用IPアドレスを利用して、携帯端末8と通信を開始する(即ち、WFDネットワークを構築する)。非WFDネットワークが既に構築されているために、WFDネットワークと非WFDネットワークとの両方が構築されている状態が形成される。
一方において、S34では、第1の構築部30は、WFDネットワークで利用されるプリンタ10のIPアドレスとして、S28で取得されたプリンタ10のWFD用IPアドレスを採用しない。S34では、さらに、変更部42は、プリンタ10のIntent値を「2」から「14」に変更する。なお、変形例では、変更部42は、プリンタ10のIntent値を「14」とは異なる数値(例えば「13」、「15」等)に変更してもよい。即ち、変更部42は、プリンタ10のIntent値を、デフォルトのIntent値「2」よりも増加させればよい(この点は、後述の図4のS82でも同様である)。
S34が実行されることにより、次回のG/Oネゴシエーション(S10)では、プリンタ10のIntent値として「14」が利用される。なお、フローチャートには示していないが、変更部42は、プリンタ10のIntent値が「2」から「14」に変更された後に、1回のG/Oネゴシエーションが実行されると、プリンタ10のIntent値を「14」から「2」に戻す。S34では、さらに、第1の構築部30は、プリンタ10の状態をクライアント状態からデバイス状態に変更する。従って、プリンタ10と携帯端末8との間のWFD接続(即ち、S12のWPSネゴシエーションで確立されたWFD接続)が切断される。この結果、非WFDネットワークのみが構築されている状態が形成される。
なお、S34において、プリンタ10が、非WFDネットワークを切断して、WFDネットワークを構築する構成を採用することが考えられる。しかしながら、上述したように、非WFDネットワークは、定常的に構築されるべきネットワークであり、このようなネットワークが切断されると、PC6のユーザは、プリンタ10に印刷を実行させることができなくなる。このような事象が発生するのを抑制するために、本実施例では、S34において、現在構築されている非WFDネットワークを維持して、WFDネットワークを構築しない構成を採用している。即ち、本実施例では、一時的に構築されるべきWFDネットワークではなく、定常的に構築されるべき非WFDネットワークを優先する構成を採用している。S34が終了すると、図2のWFDネットワーク構築処理が終了する。
(非WFDネットワーク構築処理;図4)
続いて、図4を参照して、プリンタ10によって実行される非WFDネットワーク構築処理の内容を説明する。ユーザが予め決められている非WFDネットワーク構築指示を操作部12に入力する場合に、制御部20は、図4の非WFDネットワーク構築処理を開始する。
図4のフローチャートでは図示省略しているが、第2の構築部32は、非WFDネットワーク構築指示がプリンタ10に入力される場合に、プリンタ10の周囲に存在する各APを検索するためのScan処理を実行する。次いで、第2の構築部32は、Scan処理で見つかった各APに関する情報(例えば、SSID等)を含むAPリストを、表示部14に表示させる。プリンタ10のユーザは、APリストの中から、プリンタ10との接続が確立されるべきAPを指定する。第2の構築部32は、ユーザの指示に従って、APを選択する。以下では、AP4が選択された場合を例として、説明を続ける。
第2の構築部32は、第1の構築部30とは異なり、G/Oネゴシエーションを実行しない。S70において、第2の構築部32は、認証のための通信をAP4と実行する。ここで実行される通信では、第2の構築部32は、認証方式、暗号化方式、パスワード等のデータを、AP4に送信する。これにより、AP4は、認証方式、暗号化方式、パスワード等の認証を実行して、認証が成功すれば、認証成功を示すデータを、プリンタ10に送信する。これにより、プリンタ10とAP4との間に非WFD接続が確立される。
上述したように、本実施例では、AP4がDHCPサーバとして機能する。AP4は、プリンタ10の非WFD用IPアドレスと、非WFD用サブネットマスクと、を決定する。S72では、第2の構築部32は、プリンタ10の非WFD用IPアドレス(さらにはAP4の非WFD用IPアドレス)と、非WFD用サブネットマスクと、をAP4から取得する。
次いで、S74において、第2の構築部32は、プリンタ10の非WFD用IPアドレス(さらにはAP4の非WFD用IPアドレス)を利用して、AP4と無線通信を開始する。即ち、第2の構築部32は、AP4とプリンタ10とを含む非WFDネットワークを構築する。PC6がAP4に非WFD接続されている場合には、プリンタ10は、AP4を介してPC6と対象データの通信を実行することができる。
次いで、S76において、第1の構築部30は、WFDネットワークが構築中であるのか否かを判断する。WFDネットワークが構築中である場合(S76でYESの場合)には、S78に進み、WFDネットワークが構築中でない場合(S76でNOの場合)には、図4の非WFDネットワーク構築処理が終了する。
S78では、第2の判断部40は、WFDネットワークで利用されているプリンタ10の現在のWFD用IPアドレスが、非WFDネットワークで利用可能なIPアドレスの範囲に含まれるのか否かを判断する。S78の処理は、図2のS30と同様である。プリンタ10の現在のWFD用IPアドレスが上記の範囲に含まれない場合(S78でNOの場合)には、図4の非WFDネットワーク構築処理が終了する。即ち、決定部34は、S84のIPアドレス動的決定処理を実行しない。一方において、プリンタ10の現在のWFD用IPアドレスが上記の範囲に含まれる場合(S78でYESの場合)には、S80に進む。
S80では、第1の構築部30は、プリンタ10の現在の状態が、G/O状態であるのか、クライアント状態であるのか、を判断する。プリンタ10の現在の状態がG/O状態である場合(S80でYESの場合)には、S84に進み、プリンタ10の現在の状態がクライアント状態である場合(S80でNOの場合)には、S82に進む。
S82の処理は、図2のS34の処理と同様である。即ち、変更部42は、プリンタ10のIntent値を「2」から「14」に変更する。また、第1の構築部30は、プリンタ10の状態をクライアント状態からデバイス状態に変更して、WFDネットワークを切断する。この結果、非WFDネットワークのみが構築されている状態が形成される。ここでも、定常的に確立されるべき非WFDネットワークを優先する構成を採用している。
S84の処理は、図2のS26の処理(即ち図3の各処理)と同様である。即ち、決定部34は、非WFDネットワークで利用可能なIPアドレスの範囲に含まれないプリンタ10の新たなWFD用IPアドレスと、プリンタ10のDHCPサーバが割り当て可能なIPアドレスの新たな範囲と、携帯端末8の新たなWFD用IPアドレスと、を決定する(図3のS60)。
次いで、S86において、決定部34は、プリンタ10の現在のWFD用IPアドレスを、S84で決定されたプリンタ10の新たなWFD用IPアドレスに変更する。さらに、決定部34は、S84で決定された携帯端末8の新たなWFD用IPアドレスを、携帯端末8に割り当てる。これにより、携帯端末8は、携帯端末8の現在のWFD用IPアドレスに代えて、携帯端末8の新たなWFD用IPアドレスを利用する。第1の構築部30は、プリンタ10の新たなWFD用IPアドレス(さらには携帯端末8の新たなWFD用IPアドレス)を利用して、携帯端末8と無線通信を開始する。即ち、第1の構築部30は、非WFDネットワークを再構築する。この結果、WFDネットワークと非WFDネットワークとの両方が構築されている状態が形成される。S86が終了すると、図4の非WFDネットワーク構築処理が終了する。
(具体例)
続いて、図5〜図8を参照して、各機器4,8,10が実行する処理の様々なケースについて説明する。なお、図5〜図8のシーケンスは、プリンタ10が図2〜図4のフローチャートに従って処理を実行することによって実現される。なお、以下では、プリンタ10は、デフォルトのWFD用サブネットマスクとして「255.255.255.0」を採用する。
(ケースA1;図5及び図6)
ケースA1は、非WFDネットワークを構築させ、その後、WFDネットワークを構築させるケースを示す。プリンタ10に非WFDネットワーク構築指示が入力されると、プリンタ10は、認証のための通信をAP4と実行する(図4のS70)。次いで、プリンタ10は、プリンタ10の非WFD用IPアドレス「192.168.1.2」と、非WFD用サブネットマスク「255.255.0.0」と、をAP4から取得する(S72)。この結果、非WFDネットワークが構築される(S74)。
続いて、プリンタ10にWFDネットワーク構築指示が入力されると、プリンタ10は、G/Oネゴシエーション及びWPSネゴシエーションを携帯端末8と実行する(図2のS10,S12)。プリンタ10は、S14でYESと判断し、次いで、プリンタ10の現在の状態がG/O状態であれば、S24でYESと判断する。
次いで、プリンタ10は、プリンタ10の非WFD用IPアドレス「192.168.1.2」を参照して、プリンタ10のWFD用IPアドレス「192.169.1.1」と、携帯端末8のWFD用IPアドレス「192.169.1.2」と、を決定する(S26)。次いで、プリンタ10は、携帯端末8のWFD用IPアドレス「192.169.1.2」と、WFD用サブネットマスク「255.255.255.0」と、を携帯端末8に通知する(S20)。この結果、WFDネットワークが構築される(S20)。
上記のケースでは、非WFDネットワークで利用可能なIPアドレスの範囲「192.168.1-255.1-255」と、WFDネットワークで利用可能なIPアドレスの範囲「192.169.1.1-255」と、が重複しない。このために、プリンタ10は、非WFDネットワークで利用可能なIPアドレスの範囲に含まれない携帯端末8及びプリンタ10のIPアドレスを適切に決定することができる。従って、非WFDネットワークとWFDネットワークとの両方が構築されている状態において、プリンタ10は、それぞれのネットワークを利用して、適切な通信を実行することができる。
一方において、プリンタ10は、プリンタ10の現在の状態がクライアント状態であれば、S24でNOと判断する。この場合、プリンタ10は、プリンタ10のWFD用IPアドレスと、WFD用サブネットマスク「255.255.255.0」と、を携帯端末8から取得する(S28)。例えば、プリンタ10の非WFD用IPアドレスが「192.169.1.4」であれば、プリンタ10は、S30でNOと判断し、プリンタ10のWFD用IPアドレス「192.169.1.4」を利用して、WFDネットワークを構築する(S32)。このケースでも、非WFDネットワークで利用可能なIPアドレスの範囲「192.168.1-255.1-255」と、WFDネットワークで利用可能なIPアドレスの範囲「192.169.1.1-255」と、が重複しない。従って、プリンタ10は、それぞれのネットワークを利用して、適切な通信を実行することができる。
一方において、携帯端末8から取得されたプリンタ10のWFD用IPアドレスが「192.168.1.4」であれば、図6に示されるように、プリンタ10は、S30でYESと判断する。この場合、プリンタ10は、プリンタ10のIntent値を「2」から「14」に変更し(S34)、プリンタ10の状態をクライアント状態からデバイス状態に変更する(S34)。即ち、プリンタ10は、WFDネットワークを構築しない。
続いて、プリンタ10にWFDネットワーク構築指示が再び入力されると、プリンタ10は、G/Oネゴシエーション及びWPSネゴシエーションを携帯端末8と実行する(図2のS10,S12)。ここでのG/Oネゴシエーションでは、通常、プリンタ10がG/Oになるべきことが決定される。プリンタ10のIntent値として「14」が利用されるからである。従って、プリンタ10は、S14でYESと判断し、次いで、S24でYESと判断する。この後の処理は、図5に示されるS24でYESの場合の処理と同様である。このケースでは、プリンタ10のIntent値を「2」から「14」に変更するために、プリンタ10がG/Oになるべきことが決定され易い。このために、プリンタ10は、非WFDネットワークで利用可能なIPアドレスの範囲に含まれない携帯端末8及びプリンタ10のIPアドレスを適切に決定することができる。従って、プリンタ10は、それぞれのネットワークを利用して、適切な通信を実行することができる。
(ケースB;図7及び図8)
ケースBは、WFDネットワークを構築させ、その後、非WFDネットワークを構築させるケースを示す。プリンタ10にWFDネットワーク構築指示が入力されると、プリンタ10は、G/Oネゴシエーション及びWPSネゴシエーションを携帯端末8と実行する(図2のS10,S12)。次いで、プリンタ10は、S14でNOと判断し、プリンタ10の現在の状態がG/O状態であれば、S16でYESと判断する。
この時点では、非WFDネットワークが構築されていないために、プリンタ10には、非WFD用IPアドレスが割り当てられていない。従って、プリンタ10は、プリンタ10の非WFD用IPアドレスを参照せずに、プリンタ10のWFD用IPアドレス「192.168.1.1」と、携帯端末8のWFD用IPアドレス「192.168.1.2」と、を決定する(S18)。次いで、プリンタ10は、携帯端末8のWFD用IPアドレス「192.168.1.2」と、WFD用サブネットマスク「255.255.255.0」と、を携帯端末8に通知する(S20)。この結果、WFDネットワークが構築される(S20)。
続いて、プリンタ10に非WFDネットワーク構築指示が入力されると、プリンタ10は、認証のための通信をAP4と実行する(図4のS70)。次いで、プリンタ10は、プリンタ10の非WFD用IPアドレスと、非WFD用サブネットマスク「255.255.0.0」と、をAP4から取得する(S72)。この結果、非WFDネットワークが構築される(S74)。プリンタ10の非WFD用IPアドレスが「192.169.1.4」であれば、プリンタ10は、S78でNOと判断し、プリンタ10のWFD用IPアドレス「192.168.1.1」を継続して利用して、WFDネットワークが構築されている状態を維持する。このケースでも、非WFDネットワークで利用可能なIPアドレスの範囲「192.169.1-255.1-255」と、WFDネットワークで利用可能なIPアドレスの範囲「192.168.1.1-255」と、が重複しない。従って、プリンタ10は、それぞれのネットワークを利用して、適切な通信を実行することができる。
一方において、例えば、AP4から取得されたプリンタ10の非WFD用IPアドレスが「192.168.1.4」であれば、プリンタ10は、S78でYESと判断し、次いで、S80でYESと判断する。この場合、プリンタ10は、プリンタ10の非WFD用IPアドレス「192.168.1.4」を参照して、プリンタ10の新たなWFD用IPアドレス「192.169.1.1」と、携帯端末8の新たなWFD用IPアドレス「192.169.1.2」と、を決定する(S84)。次いで、プリンタ10は、携帯端末8の新たなWFD用IPアドレス「192.169.1.2」と、WFD用サブネットマスク「255.255.255.0」と、を携帯端末8に通知する(S86)。この結果、WFDネットワークが再構築される(S86)。このケースでも、非WFDネットワークで利用可能なIPアドレスの範囲「192.168.1-255.1-255」と、WFDネットワークで利用可能なIPアドレスの範囲「192.169.1.1-255」と、が重複しない。このために、プリンタ10は、非WFDネットワークで利用可能なIPアドレスの範囲に含まれない携帯端末8及びプリンタ10のIPアドレスを適切に決定することができる。従って、プリンタ10は、それぞれのネットワークを利用して、適切な通信を実行することができる。
一方において、プリンタ10は、プリンタ10の現在の状態がクライアント状態であれば、図8に示されるように、S16でNOと判断する。この場合、プリンタ10は、プリンタ10のWFD用IPアドレス「192.168.1.3」と、WFD用サブネットマスク「255.255.255.0」と、を携帯端末8から取得する(S22)。この結果、WFDネットワークが構築される(S22)。
続いて、プリンタ10に非WFDネットワーク構築指示が入力されると、プリンタ10は、認証のための通信をAP4と実行する(図4のS70)。次いで、プリンタ10は、プリンタ10の非WFD用IPアドレスと、非WFD用サブネットマスク「255.255.0.0」と、をAP4から取得する(S72)。この結果、非WFDネットワークが構築される(S74)。例えば、AP4から取得されたプリンタ10の非WFD用IPアドレスが「192.169.1.4」であれば、プリンタ10は、S78でNOと判断し、プリンタ10のWFD用IPアドレス「192.168.1.3」を継続して利用して、WFDネットワークが構築されている状態を維持する。このケースでも、非WFDネットワークで利用可能なIPアドレスの範囲「192.169.1-255.1-255」と、WFDネットワークで利用可能なIPアドレスの範囲「192.168.1.1-255」と、が重複しない。従って、プリンタ10は、それぞれのネットワークを利用して、適切な通信を実行することができる。
一方において、例えば、AP4から取得されたプリンタ10の非WFD用IPアドレスが「192.168.1.4」であれば、プリンタ10は、S78でYESと判断する。この場合、プリンタ10は、プリンタ10のIntent値を「2」から「14」に変更し(S82)、プリンタ10の状態をクライアント状態からデバイス状態に変更する(S82)。即ち、プリンタ10は、WFDネットワークを切断する。
続いて、プリンタ10にWFDネットワーク構築指示が再び入力されると、プリンタ10は、G/Oネゴシエーション及びWPSネゴシエーションを携帯端末8と実行する(図2のS10,S12)。ここでのG/Oネゴシエーションでは、通常、プリンタ10がG/Oになるべきことが決定される。プリンタ10のIntent値として「14」が利用されるからである。従って、プリンタ10は、S14でYESと判断し、次いで、S24でYESと判断する。この後の処理は、図5又は図6に示されるS24でYESの場合の処理と同様である。このケースでも、非WFDネットワークで利用可能なIPアドレスの範囲「192.168.1-255.1-255」と、WFDネットワークで利用可能なIPアドレスの範囲「192.169.1.1-255」と、が重複しない。このために、プリンタ10は、非WFDネットワークで利用可能なIPアドレスの範囲に含まれない携帯端末8及びプリンタ10のIPアドレスを適切に決定することができる。従って、プリンタ10は、それぞれのネットワークを利用して、適切な通信を実行することができる。
(第1実施例の効果)
本実施例によると、図5のケースA1に示されるように、プリンタ10は、非WFDネットワークが構築されている状態で、WFDネットワークが構築されるべき場合に、プリンタ10の非WFD用IPアドレス「192.168.1.2」を参照して、携帯端末8のWFD用IPアドレス「192.169.1.2」を決定する。また、図7のケースBに示されるように、プリンタ10は、WFDネットワークが構築されている状態で、非WFDネットワークが構築されるべき場合に、プリンタ10の非WFD用IPアドレス「192.168.1.4」を参照して、携帯端末8のWFD用IPアドレス「192.169.1.2」を決定する。いずれのケースでも、プリンタ10は、非WFDネットワークで利用可能なIPアドレスの範囲に含まれない携帯端末8のWFD用IPアドレスを適切に決定することができる。即ち、プリンタ10は、非WFDネットワークで利用可能なIPアドレスの範囲と、WFDネットワークで利用可能なIPアドレスの範囲と、が重複しないように、IPアドレス割り当て機能を適切に実行することができる。従って、WFDネットワークと非WFDネットワークとの両方が構築されている状態において、プリンタ10は、WFDネットワークを利用して、携帯端末8にデータを適切に送信することができ、さらに、非WFDネットワークを利用して、AP4を介してPC6にデータを適切に送信することができる。
(対応関係)
プリンタ10、携帯端末8、AP4が、それぞれ、「通信装置」、「第1のデバイス」、「第2のデバイス」の一例である。また、AP4が、「通信装置とは異なるデバイス」の一例である。WDFネットワーク、非WDFネットワークが、それぞれ、「第1種のネットワーク」、「第2種のネットワーク」の一例である。プリンタ10の非WFD用IPアドレス、携帯端末8のWFD用IPアドレスが、それぞれ、「特定のIPアドレス」、「対象のIPアドレス」の一例である。図3のS60で決定されるプリンタ10のWFD用IPアドレスが、「第1のIPアドレス」の一例である。図2のS28で携帯端末8から取得されるプリンタ10のWFD用IPアドレスが、「第2のIPアドレス」の一例である。図4のS78の判断対象のプリンタ10のWFD用IPアドレスが、「第3のIPアドレス」の一例である。
図2のS24でYESの場合、NOの場合が、それぞれ、「第1の場合」、「第2の場合」の一例である。図4のS78でYESの場合、NOの場合が、それぞれ、「第3の場合」、「第4の場合」の一例である。また、図2のS14でNOの場合が、「別の場合」の一例である。G/O状態、クライアント状態が、それぞれ、「親局状態」、「子局状態」の一例である。G/Oネゴシエーションが、「状態決定処理」の一例である。図2のS26(又は図4のS84)のIPアドレス動的決定処理、及び、図2のS20(又は図4のS86)で携帯端末8のWFD用IPアドレスを通知することが、「IPアドレス動的決定処理」の一例である。Intent値「2」、Intent値「14」が、それぞれ、「第1の設定値」、「第2の設定値」の一例である。また、図3の例では、「255.255.255」、「255.255」が、それぞれ、「第1の桁数」、「第2の桁数」の一例である。S52を経て実行されるS56で算出される「192.168.1」、S52を経て実行されるS58で算出される「192.169.1」が、それぞれ、「第1の値」、「第2の値」の一例である。S54を経て実行されるS56で算出される「192.168」、S54を経て実行されるS58で算出される「192.169」が、それぞれ、「第3の値」、「第4の値」の一例である。
(第2実施例)
第1実施例と異なる点を説明する。本実施例では、図2のWFDネットワーク構築処理の代わりに、図9のWFDネットワーク構築処理が実行される。S100において、第1の構築部30は、非WFDネットワークが構築中であるのか否かを判断する。非WFDネットワークが構築中である場合(S100でYESの場合)には、S114に進み、非WFDネットワークが構築中でない場合(S100でNOの場合)には、S102に進む。S102〜S112は、図2のS10,S12,S16〜S22と同様である。
S114では、第1の構築部30は、プリンタ10を自律G/Oモードに設定する。自律G/Oモードは、G/O状態で動作することをプリンタ10に維持させるモードである。従って、S114の段階ではWFD接続が確立されていないが、プリンタ10は、G/O状態に設定されている。この段階では、プリンタ10が管理している管理リストには、クライアント状態の機器の識別情報が記述されていない。
S114でプリンタ10が自律G/Oモードに設定されると、プリンタ10は、G/Oネゴシエーションを実行しない。上述したように、携帯端末8は、WFD接続指示が携帯端末8に入力される場合に、携帯端末8の周囲に存在するクライアント状態の機器を検索するSearch処理を実行するが、それに加えて、携帯端末8の周囲に存在するG/O状態の機器(即ちプリンタ10)を検索するScan処理を実行する。これにより、携帯端末8の表示部に、プリンタ10に関する情報を含む機器リストが表示される。携帯端末8のユーザが機器リストの中からG/O状態のプリンタ10を選択すると、携帯端末8は、G/Oネゴシエーションを実行せずに、携帯端末8がクライアントになるべきことを決定する。
次いで、S116において、第1の構築部30は、G/O状態用のWPSネゴシエーションを実行する。これにより、プリンタ10と携帯端末8との間にWFD接続が確立される。次いで、S118において、決定部34は、IPアドレス動的決定処理を実行する。S118は、図3の各処理と同様である。S118が終了すると、S110に進む。
(具体例;図10)
本実施例では、図5及び図6のケースA1の代わりに、図10のケースA2が実現される。非WFDネットワークが構築されるまでの各処理は、図5のケースA1と同様である。続いて、プリンタ10にWFDネットワーク構築指示が入力されると、プリンタ10は、プリンタ10を自律G/Oモードに設定し(図9のS114)、G/O状態用のWPSネゴシエーションを実行する(S116)。この後の処理は、図5に示されるS24でYESの場合の処理と同様である。
(第2実施例の効果)
図10のケースA2に示されるように、非WFDネットワークが構築されている状態で、WFDネットワークが構築されるべき場合に、プリンタ10は、プリンタ10を自律G/Oモードに設定する。従って、第1実施例の図5のケースA1のように、プリンタ10がクライアント状態で動作する状況(図2のS24でNO)が発生しない。このために、プリンタ10は、IPアドレス動的決定処理(図10のS116)を確実に実行することができ、この結果、非WFDネットワークで利用可能なIPアドレスの範囲に含まれない携帯端末8のWFD用IPアドレスを適切に決定することができる。本実施例では、図9のS114でプリンタ10を自律G/Oモードに設定することが「特定の処理」の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)「通信装置」は、プリンタ10に限られず、通信可能な他の機器(例えば、携帯端末、PC、サーバ、FAX装置、コピー機、スキャナ、多機能機等)であってもよい。また、「第1のデバイス」及び「第2のデバイス」は、携帯端末8及びAP4に限られず、通信可能な他の機器(例えば、PC、サーバ、プリンタ、FAX装置、コピー機、スキャナ、多機能機等)であってもよい。
(変形例2)上記の各実施例では、第1の構築部30は、WFDネットワークを構築し、第2の構築部32が、AP4を含むインフラストラクチャの非WFDネットワークを構築する。例えば、第1の構築部30が、WFDネットワークの代わりに、アドホックの非WFDネットワーク(「第1種のネットワーク」の一例)を構築し、第2の構築部32が、インフラストラクチャの非WFDネットワーク(「第2種のネットワーク」の一例)を構築してもよい。本変形例でも、第1の構築部30は、インフラストラクチャの非WFDネットワークで利用されるプリンタ10のIPアドレスを参照して、アドホックの非WFDネットワークで利用される携帯端末8のIPアドレスを動的に決定することができる。また、例えば、第1の構築部30が、WFDネットワーク(「第1種のネットワーク」の一例)を構築し、第2の構築部32が、インフラストラクチャの非WFDネットワークの代わりに、アドホックの非WFDネットワーク(「第2種のネットワーク」の一例)を構築してもよい。また、例えば、第1の構築部30が、WFDネットワーク(「第1種のネットワーク」の一例)を構築し、第2の構築部32が、無線ネットワークである非WFDネットワークの代わりに、有線ネットワーク(「第2種のネットワーク」の一例)を構築してもよい。
(変形例3)決定部34は、図3のIPアドレス動的決定処理に代えて、以下のIPアドレス動的決定処理を実行してもよい。例えば、決定部34は、決定用サブネットマスクとして、予め決められている「255.255.0.0」を採用してもよい。即ち、決定部34は、非WFD用サブネットマスク及びWFD用サブネットマスクを参照せずに、予め決められているサブネットマスク「255.255.0.0」を参照して、携帯端末8のWFD用IPアドレスを決定してもよい。一般的なネットワークでは、通常、「255.255.0.0」よりもマスク部分の桁数が少ないサブネットマスク(例えば「255.0.0.0」)は利用されない。従って、決定部34は、決定用サブネットマスクとして「255.255.0.0」を採用すれば、非WFDネットワークで利用可能なIPアドレスの範囲に含まれない携帯端末8のWFD用IPアドレスを適切に決定することができる。また、例えば、決定部34は、決定用サブネットマスクとして、非WFD用サブネットマスクを必ず採用してもよい。即ち、決定部34は、WFD用サブネットマスク(デフォルトのサブネットマスク)を参照せずに、非WFD用サブネットマスクを参照して、携帯端末8のWFD用IPアドレスを決定してもよい。なお、この場合、決定部34は、決定部34は、WFD用サブネットマスクとして、デフォルトのサブネットマスクに代えて、非WFD用サブネットマスクと同じ値を採用してもよい。このようにしても、決定部34は、非WFDネットワークで利用可能なIPアドレスの範囲に含まれない携帯端末8のWFD用IPアドレスを適切に決定することができる。一般的に言うと、決定部は、少なくとも特定のIPアドレスを参照して、対象のIPアドレスを決定すればよい。
(変形例4)上記の各実施例では、AP4が、DHCPサーバとして機能して、プリンタ10の非WFD用IPアドレスを決定する。これに代えて、AP4とは別体である特定のDHCPサーバを含む非WFDネットワークが構築されてもよい。即ち、上記の特定のDHCPサーバが、プリンタ10の非WFD用IPアドレスを決定してもよい。この場合、上記の特定のDHCPサーバが、「通信装置とは異なるデバイス」の一例である。
(変形例5)「親局状態」は、WFDのG/O状態に限られず、無線ネットワークを構成する他のデバイスを管理(例えば、他のデバイスに関する情報のリストを管理すること、他のデバイス間の無線通信を中継すること等)する状態であればよい。また、「子局状態」は、WFDのクライアント状態に限られず、親局状態の機器によって管理される状態であればよい。従って、「第1種のネットワーク」は、WFDネットワークではなく、他の種類の無線ネットワークであってもよい。
(変形例6)上記の第1実施例では、図2のS34及び図4のS82において、変更部42は、プリンタ10のIntent値を「2」から「14」に変更する。これに代えて、図2のS34及び図4のS82において、第1の構築部30は、プリンタ10を自律G/Oモードに設定してもよい。本変形例でも、WFDネットワーク構築指示がプリンタ10に再び入力される場合に、プリンタ10がG/O状態で動作するために、プリンタ10は、携帯端末8のWFD用IPアドレスを適切に決定することができる。また、図2のS34及び図4のS82において、第1の構築部30は、Intent値を変更せずに(さらには自律G/Oモードの設定を実行せずに)、WFDネットワークを構築することができないことを、ユーザに通知してもよい(例えば表示部14にエラーを表示してもよい)。本変形例では、プリンタ10のユーザは、WFDネットワークが構築することができないことを知ることができ、WFDネットワークを構築させるための対策を実行することができる。例えば、ユーザは、プリンタ10の操作部12を操作して(即ち手動で)、プリンタ10を自律G/Oモードに設定することができる。
(変形例7)上記の第2実施例では、図9のS114において、第1の構築部30は、プリンタ10を自律G/Oモードに設定することに代えて、プリンタ10のIntent値を携帯端末8に送信する前に、携帯端末8のIntent値を受信し、携帯端末8のIntent値よりも大きいIntent値をプリンタ10のIntent値として利用してもよい。本変形例でも、プリンタ10がG/O状態で動作するために、プリンタ10は、携帯端末8のWFD用IPアドレスを適切に決定することができる。本変形例では、「携帯端末8のIntent値よりも大きいIntent値を利用すること」が、「特定の処理」の一例である。
(変形例8)また、図9のS114において、第1の構築部30は、プリンタ10を自律G/Oモードに設定することに代えて、プリンタ10のIntent値を、デフォルトのIntent値(例えば「2」)よりも大きい値(例えば「14」)に変更してもよい。本変形例でも、プリンタ10がG/O状態で動作し易くなるために、プリンタ10は、携帯端末8のWFD用IPアドレスを適切に決定することができる。本変形例では、「プリンタ10のIntent値を変更すること」が、「特定の処理」の一例である。
(変形例9)上記の各実施例では、G/Oネゴシエーション(図2のS10参照)において、第1の構築部30は、プリンタ10のIntent値が、携帯端末8のIntent値よりも大きい場合に、プリンタ10がG/Oになるべきことを決定する。これに代えて、第1の構築部30は、プリンタ10のIntent値が、携帯端末8のIntent値よりも小さい場合に、プリンタ10がG/Oになるべきことを決定してもよい。上記の各実施例では、「第2の設定値」が「第1の設定値」よりも大きい値であるが、本変形例では、「第2の設定値」が「第1の設定値」よりも小さい値であってもよい。
(変形例10)上記の各実施例では、IPv4のIPアドレスが利用される。これに代えて、IPv6のIPアドレスが利用されてもよい。即ち、決定部は、第2種のネットワーク(例えば非WFDネットワーク)で利用される通信装置(例えばプリンタ10)のIPv6アドレスを参照して、第2種のネットワークで利用可能なIPv6アドレスの範囲に含まれないIPv6アドレスを決定し、決定済みのIPv6アドレスを第1のデバイス(例えば携帯端末8)に割り当てるアドレス決定処理を実行してもよい。
(変形例11)上記の各実施例では、プリンタ10のCPU22がソフトウェアに従って処理を実行することによって、各部30〜42が実現される。これに代えて、各部30〜42のうちの少なくとも一部は、論理回路等のハードウェアによって実現されてもよい。