(実施例)
(システムの構成:図1)
図1に示されるように、通信システム2は、プリンタ10と、アクセスポイント(以下では「AP」と呼ぶ)60と、PC70と、携帯端末80、90と、を備える。プリンタ10は、PC70、携帯端末80等の周辺機器である。
携帯端末80、90は、可搬型の端末であり、例えば、スマートフォン、PDA端末、ノートPC、タブレットPC等を含む。プリンタ10と携帯端末80、90とは、それぞれ、後述のWi−Fi Directに従った無線通信機能を実行可能である。なお、以下では、Wi−Fi Directのことを「WFD」と呼び、WFDに従った接続のことを「WFD接続」と呼ぶ。プリンタ10は、携帯端末80、90とのWFD接続を確立可能であり、これにより、WFDネットワークが構築される。この結果、携帯端末80、90とプリンタ10とは、印刷データ等の通信対象の対象データの無線通信を実行可能になる。
プリンタ10は、WFDに従った無線通信機能に加えて、通常の無線通信機能(例えば、IEEE802.11に従った無線通信)を実行可能である。以下では、通常の無線通信のことを「非WFDの無線通信」と呼ぶ場合がある。プリンタ10は、通常の無線通信機能を実行して、AP60との接続(以下では「非WFD接続」と呼ぶ)を確立可能であり、これにより、非WFDネットワークが構築される。なお、PC70も、AP60との非WFD接続を確立可能である。なお、PC70は、WFDに従った無線通信機能を実行不可能である。ただし、変形例では、PC70は、WFDに従った無線通信機能を実行可能であってもよい。プリンタ10とPC70とは、AP60を介して、印刷データ等の通信対象の対象データの無線通信を実行可能である。
本実施例では、プリンタ10とAP60とPC70とが、例えば、特定の会社内に据え置きされる状況を想定している。即ち、特定の会社内では、プリンタ10とAP60とPC70とを含む非WFDネットワークが構築される。このために、PC70のユーザ(例えば特定の会社の社員)は、AP60を介して、プリンタ10に印刷を実行させることができる。そして、例えば、携帯端末80のユーザ(例えば特定の会社を訪問した者)は、携帯端末80とプリンタ10との間にWFD接続を一時的に確立することができる。即ち、携帯端末80のユーザは、携帯端末80とプリンタ10とを含むWFDネットワークを一時的に構築させることができる。これにより、携帯端末80のユーザは、AP60を介さずに、プリンタ10に印刷を実行させることができる。このように、本実施例では、非WFDネットワークが定常的に構築されるべきネットワークであり、WFDネットワークが一時的に構築されるべきネットワークである状況を想定している。
(プリンタ10の構成)
プリンタ10は、操作部12と、表示部14と、印刷実行部16と、無線インターフェイス18(図1では、「無線I/F」と記載)と、制御部26と、を備える。上記の各部12〜26は、バス線(符号省略)に接続されている。
操作部12は、複数のキーによって構成される。ユーザは、操作部12を操作して、様々な指示をプリンタ10に与えることができる。例えば、ユーザは、操作部12を操作して、WFDに従った無線通信を実行するための設定(以下では「WFDI/F設定」と呼ぶ)のONとOFFとを切換える操作を実行することができる。また、ユーザは、操作部12を操作して、自律G/Oモード(後述)の設定のONとOFFとを切換える操作を実行することもできる。表示部14は、様々な情報を表示するためのディスプレイである。印刷実行部16は、インクジェット方式、レーザ方式等の印刷機構を備え、制御部26からの指示に従って印刷を実行する。
無線インターフェイス18は、無線通信を実行するためのインターフェイスである。無線インターフェイス18は、物理的には1個のインターフェイスである。無線インターフェイス18は、1個のチップセット20を含む。チップセット20は、第1のBSS(Basic Service Set)処理部22と第2のBSS処理部24とを備える。第1のBSS処理部22と第2のBSS処理部24については、後で説明する。
制御部26は、CPU28とメモリ30とを備える。CPU28は、メモリ30に格納されているプログラムに従って、様々な処理を実行する。メモリ30は、ROM、RAM、ハードディスク等によって構成される。メモリ30は、CPU28によって実行される上記のプログラムを格納したり、CPU28が処理を実行する過程で取得又は生成されるデータを格納したりする。CPU28が上記のプログラムに従って処理を実行することによって、第1の応答処理部32、状態決定処理部34、第1の接続部36、特定処理部38、第2の接続部40、及び、第2の応答処理部42の各機能が実現される。
(第1のBSS処理部22及び第2のBSS処理部24)
第1のBSS処理部22及び第2のBSS処理部24は、制御部26によって制御される処理部であり、無線ネットワークに関係する通信処理(例えば、無線ネットワークの構築のための各種の信号の通信、無線ネットワークを利用した対象データの通信等)を実行するための処理部である。制御部26は、2個のBSS処理部22、24を適切に利用して、無線ネットワークに関係する処理を実行する。
制御部26は、プリンタ10の電源がONの間に、いつでも、第1のBSS処理部22を利用可能である。制御部26は、第1のBSS処理部22を介して、非WFDネットワークに関係する全ての処理(後述のAP検索処理、非WFD接続の確立処理、非WFDネットワークを利用した対象データの通信処理等)を実行可能である。さらに、制御部26は、第1のBSS処理部22を介して、WFD接続の確立に関係する各通信のうち、プリンタ10の状態が、WFDのGroup Owner状態(以下では「G/O状態」と呼ぶ)、及び、クライアント状態のどちらかに決定されるまでの各処理(後述のListen処理、G/Oネゴシエーション等)を実行可能である。
制御部26は、プリンタ10の状態が、WFDのG/O状態及びクライアント状態のどちらかに決定された後に、第2のBSS処理部24を介して、WFDネットワークに関係する各処理(後述のWPSネゴシエーション、監視処理、WFDネットワークを利用した対象データの通信処理等)を実行可能である。
制御部26は、第1のBSS処理部22を介して実行されるべき上記の各処理のうち、2個以上の処理を同時的に実行することができる。ただし、例外として、制御部26(即ち第1の応答処理部32及び特定処理部38)は、第1のBSS処理部22を介して、WFD接続の確立のためのListen処理と、非WFD接続の確立のためのAP検索処理と、を同時に適切に実行することができない。この理由は後で説明する。
なお、制御部26は、第1のBSS処理部22を介して実行されるべき処理と、第2のBSS処理部24を介して実行されるべき処理と、を同時に実行することができる。例えば、制御部26は、第1のBSS処理部22を介して、確立済みの非WFDネットワークを利用した対象データの無線通信を実行するとともに、第2のBSS処理部24を介して、確立済みのWFDネットワークを利用した対象データの無線通信を実行することができる。即ち、制御部26は、1個の無線インターフェイス18を利用して、WFDに従った無線通信機能と通常の無線通信機能との両方を同時に実行することができる。この結果、制御部26は、WFD接続と非WFD接続との両方が確立されている状態を形成することができる。
以下、本明細書では、第2のBSS処理部24を介して実行されるべき処理であることを明示しない限り、プリンタ10と他の機器(AP60、PC70、携帯端末80、90等)との間で実行される各処理は、第1のBSS処理部22を介して実行される処理である。
(WFD)
WFDは、Wi−Fi Allianceによって策定された規格である。WFDは、Wi−Fi Allianceによって作成された「Wi−Fi Peer−to−Peer(P2P) Technical Specification Version1.1」に記述されている。
上述したように、プリンタ10と携帯端末80とは、それぞれ、WFDに従った無線通信機能を実行可能である。以下では、WFDに従った無線通信機能を実行可能な機器のことを「WFD対応機器」と呼び、また、WFDに従った無線通信機能を実行不可能な機器のことを「WFD非対応機器」と呼ぶ。WFDの規格では、WFD対応機器の状態として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は、管理リストに登録されている携帯端末80(即ち、クライアント状態の携帯端末80)から印刷データを無線で受信可能であるが、管理リストに登録されていない機器から印刷データを無線で受信不可能である。
また、G/O状態の機器は、複数個のクライアント状態の機器の間の対象データ(印刷データ等)の無線通信を中継可能である。例えば、クライアント状態の携帯端末80がクライアント状態の他のプリンタに印刷データを無線で送信すべき場合には、携帯端末80は、まず、印刷データをG/O状態のプリンタ10に無線で送信する。この場合、プリンタ10は、携帯端末80から印刷データを無線で受信して、上記の他のプリンタに印刷データを無線で送信する。即ち、G/O状態の機器は、無線ネットワークのAP(アクセスポイント)の機能を実行可能である。
なお、WFDネットワークに参加していないWFD対応機器(即ち、管理リストに登録されていない機器)が、デバイス状態の機器である。デバイス状態の機器は、WFDネットワークに参加するためのデータ(Probe Request信号、Probe Response信号等の物理層のデータ等)の無線通信を実行可能であるが、WFDネットワークを介して対象データ(印刷データ等)の無線通信を実行不可能である。
(非WFD接続処理:図2)
続いて、プリンタ10によって実行される処理の内容について説明する。まず、図2を参照して、プリンタ10によって実行される非WFD接続処理の内容を説明する。
プリンタ10が電源ONされると、S10では、特定処理部38は、非WFD接続指示が入力されることを監視する。ユーザは、例えば、プリンタ10とAP60との間に非WFD接続が確立されることを望む場合に、プリンタ10の操作部12を操作して、予め決められている非WFD接続指示を操作部12に入力する。この場合、特定処理部38は、S10でYESと判断し、S14に進む。
S14では、特定処理部38は、WFDのListen処理が実行中であるか否かを判断する。後で説明するが、Listen処理では、第1の応答処理部32は、外部装置からProbe Request信号を無線で受信した場合に、Probe Response信号を無線で外部装置に送信する。第1の応答処理部32が上記のListen処理を実行している場合には、特定処理部38は、S14でYESと判断し、S16に進む。一方、第1の応答処理部32が上記のListen処理を実行していない場合には、特定処理部38は、S14でNOと判断し、S22に進む。
第1の応答処理部32が上記のListen処理を実行していない場合(S14でNO)として、例えば、以下の各場合が考えられる。例えば、プリンタ10のWFDI/F設定がOFFである場合には、第1の応答処理部32は、Listen処理を実行しない。また、プリンタ10と他の機器(例えば携帯端末80)との間でWFD接続が確立している場合にも、第1の応答処理部32は、Listen処理を実行しない。また、プリンタ10がG/O状態又はクライアント状態で動作すべきことが決定された場合にも、第1の応答処理部32は、Listen処理を実行しない。なお、プリンタ10がG/O状態で動作すべきことが決定される場合は、後述の図5のS112のG/Oネゴシエーションでプリンタ10がG/O状態に決定される場合のみならず、後述の自律G/Oモード設定がOFFからONに変更された際に、プリンタ10がG/O状態に決定される場合を含む。
S16では、特定処理部38は、Listen処理の中断を、第1の応答処理部32に指示する。これにより、第1の応答処理部32は、Listen処理を中断する(図4のS82でYES、S84)。即ち、第1の応答処理部32は、仮に、Probe Request信号を無線で受信しても、Probe Response信号を無線で送信しない。即ち、第1のBSS処理部22を介して実行されるListen処理が中断される。
次いで、S18では、特定処理部38は、非WFDのAP検索処理を実行する。AP検索処理は、プリンタ10の周囲に存在する各APを検索するための処理である。具体的には、S18では、特定処理部38は、1ch〜13chの13個の無線チャネルを順次利用して、所定のサーチパケットを無線で順次送信する。
例えば、プリンタ10の周囲にAP(以下では「特定のAP」と呼ぶ)が存在する場合には、特定のAPは、1ch〜13chのうちの1個のチャネルを利用することを予め決定している。なお、特定のAPは、WFDのG/O状態の機器も含む。特定のAPは、プリンタ10からサーチパケットを無線で受信すると、応答パケットをプリンタ10に無線で送信する。応答パケットは、特定のAPのSSID等を含む。この結果、特定処理部38は、特定のAPを見つけることができる。
上記の通り、本実施例では、特定処理部38は、Listen処理が実行されている状況において(S14でYES)、AP検索処理の開始のトリガである非WFD接続指示が入力される場合に、プリンタ10は、Listen処理を中断して、AP検索処理のみを実行する。仮に、プリンタ10の制御部26(即ち第1の応答処理部32及び特定処理部38)が、第1のBSS処理部22を介して、Listen処理とAP検索処理と、を同時に実行しようとしても、制御部26は、1個の第1のBSS処理部22を介して、Listen処理及びAP検索処理を同時的に実行することができない。特定処理部38は、AP検索処理において、1ch〜13chの13個のチャネルを順次利用して、所定のサーチパケットを無線で順次送信する。これに対し、第1の応答処理部32は、Listen処理において、1ch〜13chのうちの1個のチャネル(例えば6ch)を利用して、Probe Request信号を受信する。Listen処理では1個のチャネルのみが利用されるのに対し、AP検索処理では、1ch〜13chの13個のチャネルが順次利用される。しかしながら、第1のBSS処理部22は、1個のチャネルのみを利用して通信を実行可能に構成されており、異なる2個のチャネルを同時に利用して通信を実行することができない。従って、制御部26は、1個の第1のBSS処理部22を介して、異なるチャネルを利用するListen処理及びAP検索処理を同時的に実行することができない。これに対し、上記の通り、本実施例では、特定処理部38は、Listen処理が実行されている状況において(S14でYES)、AP検索処理の開始のトリガである非WFD接続指示が入力される場合に、プリンタ10は、Listen処理を中断して、AP検索処理のみを実行する。従って、本実施例のプリンタ10は、AP検索処理を適切に実行して、特定のAPを適切に見つけることができる。
S18のAP検索処理を終了した後に、S20では、特定処理部38は、S16で中断されたListen処理の再開を、第1の応答処理部32に指示する。これにより、第1の応答処理部32は、Listen処理を再開する(図4のS86でYES、S88)。S20を終えると、S24に進む。
一方、第1の応答処理部32がListen処理を実行していない場合(S14でNO)、S22では、特定処理部38は、非WFDのAP検索処理を実行する。S22の処理の内容は、S18の処理と同様である。このように、本実施例では、プリンタ10は、Listen処理が実行されていない状況において(S14でNO)、AP検索処理の開始のトリガである非WFD接続指示が入力されると、AP検索処理を適切に実行して、特定のAPを適切に見つけることができる。S22を終えると、S24に進む。
S24では、第2の接続部40は、S18又はS22で実行されたAP検索処理で見つかった1個以上のAPに関する情報(SSID等)を含むAPリストを、表示部14に表示させる。なお、AP検索処理でAPが見つからなかった場合には、S24がスキップされる。
次いで、S26では、第2の接続部40は、表示部14に表示されたAPリストに含まれる1個以上のAPの中から1個のAPが選択されること、及び、選択済みのAPと非WFD接続を確立するためのPINコードが入力されること、を監視する。ユーザは、操作部12を操作して、APリストに含まれる1個以上のAPの中から1個のAPを選択し、選択済みのAPと非WFD接続を確立するためのPINコードを入力する。この場合、第2の接続部40は、S26でYESと判断し、S28に進む。一方、表示部14にAPリストが表示されてから所定時間内に、ユーザによってAPが選択されない場合、又は、上記の所定時間内に、ユーザによってPINコードが入力されない場合には、第2の接続部40は、S26でNOと判断し、S14に戻る。なお、AP検索処理でAPが見つからなかった場合にも、第2の接続部40は、S26でNOと判断し、S14に戻る。
S28では、第2の接続部40は、認証のための通信を選択済みのAPと実行する。以下では、選択済みのAPがAP60である場合を例として説明する。S28で実行される通信では、第2の接続部40は、PINコード(即ち、S26で入力されたPINコード)を用いて、認証方式、暗号化方式等のデータを、AP60に送信する。なお、ここで送信される認証方式及び暗号化方式は、ユーザによって入力されたものであってもよいし、予め決められているものであってよい。AP60は、認証方式、暗号化方式、PINコード等の認証を実行して、認証が成功すれば、認証成功を示すデータを、プリンタ10に送信する。この場合、第2の接続部40は、S28でYESと判断する。認証が成功すると(S28でYES)、プリンタ10とAP60との間に非WFD接続が確立する。この結果、非WFD接続処理が終了する。一方、認証が失敗すると、第2の接続部40は、S28でNOと判断し、S14に戻る。
(非WFD再接続処理:図3)
続いて、図3を参照して、プリンタ10によって実行される非WFD再接続処理の内容を説明する。制御部26は、図2の処理でAPとの非WFD接続を確立すると、図3の処理を開始する。以下では、プリンタ10とAP60との間に非WFD接続が確立された場合を例として説明する。
プリンタ10とAP60とは、相互に生存確認を定期的に実行している。例えば、プリンタ10とAP60との間の電波状態が悪化したり、AP60の電源がOFFされたりすると、第2の接続部40は、生存確認を実行しても、AP60の生存を確認できない。この場合、第2の接続部40は、AP60との非WFD接続が切断されたと判断する。S40では、第2の接続部40は、AP60との非WFD接続が切断された状態が一定時間継続することを監視する。ここでYESの場合には、S42に進む。
S42では、特定処理部38は、WFDのListen処理が実行中であるか否かを判断する。S42の処理は、図2のS14の処理と同様である。第1の応答処理部32がListen処理を実行している場合には、特定処理部38は、S42でYESと判断し、S44に進む。一方、第1の応答処理部32がListen処理を実行していない場合には、特定処理部38は、S42でNOと判断し、S50に進む。
S44では、特定処理部38は、Listen処理の中断を、第1の応答処理部32に指示する。これにより、第1の応答処理部32は、Listen処理を中断する。
次いで、S46では、特定処理部38は、AP60(即ち、非WFD接続が切断されたAP60)を検索するためのAP検索処理を実行する。具体的には、S46では、特定処理部38は、特定のサーチパケットを無線で送信する。特定のサーチパケットは、AP60に関係する情報(SSID等)を含む。
AP60は、プリンタ10から特定のサーチパケットを受信することができれば、プリンタ10に応答パケットを送信する。これにより、特定処理部38は、AP60を見つけることができる。なお、仮に、AP60以外のAPが、プリンタ10から特定のサーチパケットを受信しても、特定のサーチパケットにAP60に関係する情報が含まれているために、プリンタ10に応答パケットを送信しない。
次いで、S48では、特定処理部38は、Listen処理の再開を、第1の応答処理部32に指示する。これにより、第1の応答処理部32は、Listen処理を再開する。S48を終えると、S52に進む。
一方、第1の応答処理部32がListen処理を実行していない場合(S42でNOの場合)には、S50では、特定処理部38は、AP60を検索するためのAP検索処理を実行する。S50の処理の内容は、S46の処理と同様である。S50を終えると、S52に進む。
S52では、第2の接続部40は、AP60が見つかったのか否かを判断する。具体的には、第2の接続部40は、AP60から応答パケットを受信したか否かを判断する。第2の接続部40は、AP60から応答パケットを受信した場合には、S52でYESと判断し、S54に進む。一方、第2の接続部40は、AP60から応答パケットを受信しなかった場合には、S52でNOと判断する。この場合、非WFD再接続処理は、エラー終了する。
S54では、第2の接続部40は、AP60との非WFD接続を再確立する。具体的には、第2の接続部40は、認証のための通信(図2のS28参照)をAP60と再度実行する。認証が成功すると、プリンタ10とAP60との間に非WFD接続が再確立される。この場合、S40に戻る。
(WFD処理:図4)
続いて、図4を参照して、プリンタ10によって実行されるWFD処理の内容について説明する。
プリンタ10が電源ONされた時点では、WFDI/Fの設定は、OFFである。ユーザは、操作部12を操作して、WFDI/Fの設定を、OFFからONに変更するための操作を実行することができる。この場合、第1の応答処理部32は、S70でYESと判断し、S72に進む。WFDI/Fの設定がONになると(S70でYES)、プリンタ10は、WFDのデバイス状態になる。次いで、S72では、第1の応答処理部32は、WFDのListen処理を開始する。Listen処理では、第1の応答処理部32は、1ch〜13chのうちの1個のチャネル(例えば6ch)を利用して、外部装置からProbe Request信号を無線で受信することを監視する。第1の応答処理部32は、外部装置からProbe Request信号を無線で受信した場合に、Probe Response信号を無線で外部装置に送信する。S72を終えると、制御部26は、S74、S78、S82、S90の各処理を実行する。
S74では、第1の接続部36は、接続要求信号を無線で受信することを監視する。なお、接続要求信号は、OSI参照モデルの物理層のデータを含み、物理層よりも上位層(例えばネットワーク層)のデータを含まない。第1の接続部36は、接続要求信号を受信すると、S74でYESと判断し、S76に進む。S76では、第1の接続部36は、接続要求信号の送信元の機器に関する情報を、メモリ30内の所定の記憶領域に記憶させる。具体的に言うと、接続要求信号は、送信元の機器のMACアドレス、送信元の機器のIPアドレス等を含む。第1の接続部36は、これらの情報を上記の所定の記憶領域に記憶させる。なお、S76を終えると、制御部26は、再び、S74、S78、S82、S90の各処理を実行する。
また、S78では、第1の接続部36は、WFD接続指示がプリンタ10に入力されることを監視する。ユーザは、例えば、プリンタ10と携帯端末80との間にWFD接続を確立させることを望む場合に、操作部12を操作して、予め決められているWFD接続指示をプリンタ10に入力する。この場合、第1の接続部36は、S78でYESと判断し、S80に進む。S80では、制御部26は、WFD接続処理(図5参照)を実行する。なお、S80を終えると、制御部26は、再び、S74、S78、S82、S90の各処理を実行する。
また、S82では、第1の応答処理部32は、特定処理部38からListen処理の中断が指示されることを監視する(図2のS16、図3のS44参照)。S82でYESの場合には、S84において、第1の応答処理部32は、Listen処理を中断する。即ち、第1の応答処理部32は、Probe Request信号を受信しても、Probe Response信号を送信しない。
次いで、S86では、第1の応答処理部32は、特定処理部38からListen処理の再開が指示されることを監視する(図2のS20、図3のS48参照)。S86でYESの場合には、S88において、第1の応答処理部32は、Listen処理を再開する。これにより、例えば、外部装置(例えば携帯端末80)は、Probe Request信号を送信する場合に、プリンタ10からProbe Response信号を受信することができる。この結果、外部装置は、プリンタ10を適切に見つけることができる。なお、S88を終えると、制御部26は、再び、S74、S78、S82、S90の各処理を実行する。
また、S90では、第1の応答処理部32は、WFDI/Fの設定を、ONからOFFに変更するための操作が実行されることを監視する。S90でYESの場合には、S92において、第1の応答処理部32は、Listen処理を終了する。この場合、プリンタ10は、WFDのG/O状態、クライアント状態、及び、デバイス状態のいずれの状態でもなくなる。S92を終えると、S70に戻る。
(WFD接続処理:図5)
続いて、図4のS80のWFD接続処理の内容を説明する。図5に示されるように、S100では、第1の接続部36は、図4のS76でメモリ30内の上記の所定の記憶領域に情報が記憶されたのか否かを判断する。上記の所定の記憶領域に情報が記憶されている場合は、WFD接続が確立されるべき機器(例えば携帯端末80;以下では「対象機器」と呼ぶ)から接続要求信号を受信済みであることを意味する。この場合、第1の接続部36は、S102〜S108をスキップして、S110に進む。一方において、上記の所定の記憶領域に情報が記憶されていない場合(S100でNOの場合)には、S102に進む。
S102では、制御部26は、Scan処理とListen処理とSearch処理を実行する。制御部26は、これらの3個の処理のうちの2個以上の処理を同時に実行することができず、1個の処理を実行した後に、他の1個の処理を実行する。即ち、制御部26は、Scan処理とListen処理とSearch処理を順次実行する。
Scan処理は、プリンタ10の周囲に存在するG/O状態の機器を検索するための処理である。具体的に言うと、制御部26は、Scan処理において、1ch〜13chの13個のチャネルを順次利用して、Probe Request信号を無線で順次送信する。なお、Scan処理時にプリンタ10から送信されるProbe Request信号は、WFD対応機器のみが応答可能である。従って、仮に、例えば、WFD非対応機器である図1のAP60は、プリンタ10からProbe Request信号を受信しても、Probe Response信号を送信しない。
Listen処理は、図4のS72で実行されるListen処理と同様である。即ち、第1の応答処理部32は、プリンタ10の周囲に存在するデバイス状態のWFD対応機器(以下では「特定のデバイス機器」と呼ぶ)からProbe Request信号を無線で受信すると、Probe Response信号を特定のデバイス機器に無線で送信する。このProbe Response信号は、プリンタ10がデバイス状態であることを示す情報と、プリンタ10のデバイス名と、プリンタ10の機種を示す情報と、プリンタ10のMACアドレスと、を含む。
Search処理では、制御部26は、1ch、6ch、11chの3個のチャネルを順次利用して、Probe Request信号を無線で順次送信する。これにより、制御部26は、特定のデバイス機器からProbe Response信号を無線で受信する。このProbe Response信号は、特定のデバイス機器がデバイス状態であることを示す情報と、特定のデバイス機器のデバイス名と、特定のデバイス機器の機種を示す情報と、特定のデバイス機器のMACアドレスと、を含む。この結果、制御部26は、特定のデバイス機器を見つけることができる。
S104では、第1の接続部36は、S102の処理の間に対象機器から接続要求信号を無線で受信したのか否かを判断する。S102の処理の間に接続要求信号を無線で受信した場合(S104でYESの場合)には、S106及びS108をスキップして、S110に進む。一方において、接続要求信号を受信しなかった場合(S104でNOの場合)には、S106に進む。
S106では、第1の接続部36は、機器リストを表示部14に表示させる。第1の接続部36は、S102のScan処理及びSearch処理で得られた情報を表示部14に表示させる。ユーザは、機器リストを見ることによって、プリンタ10の周囲に存在する機器を知ることができ、プリンタ10とどの機器との間で無線接続を確立させるのかを選択するための機器選択操作(即ち、対象機器(例えば携帯端末80)を選択するための操作)を操作部12に実行することができる。機器選択操作が実行されると、制御部26は、S108でYESと判断する。対象機器の選択後、ユーザは、プリンタ10及び対象機器のうちの一方に表示されるPINコードを、プリンタ10及び対象機器のうちの他方に入力する。
S110では、第1の接続部36は、プリンタ10の現在の状態がデバイス状態であり、かつ、対象機器の現在の状態がデバイス状態であるのか否かを判断する。S110でYESの場合(プリンタ10の現在の状態=デバイス状態、かつ、対象機器の現在の状態=デバイス状態)には、S112に進む。
なお、上記の対象機器は、以下のように決定される。接続要求信号が受信されている場合(図4のS74でYES、図5のS100でYES、又は、図5のS100でNO、S104でYES)には、接続要求信号の送信元の機器が、対象機器である。また、接続要求信号が受信されない場合(図5のS100でNO、及び、S104でNO)には、S106で表示される機器リストからユーザによって選択された機器(S108)が、対象機器である。
S112では、状態決定処理部34は、対象機器との間でG/Oネゴシエーションを実行する。上述したように、1個の無線ネットワークでは、G/O状態の機器が1個しか存在し得ない。従って、状態決定処理部34は、G/Oネゴシエーションを実行して、プリンタ10及び対象機器のどちらか一方の機器をG/Oとして決定し、他方の機器をクライアントとして決定する。
S112では、まず、状態決定処理部34は、対象機器に接続要求信号を無線で送信して、対象機器からOK信号を無線で受信する。次いで、状態決定処理部34は、プリンタ10のG/O優先度を示す情報を対象機器に無線で送信すると共に、対象機器のG/O優先度を示す情報を対象機器から無線で受信する。なお、プリンタ10のG/O優先度は、プリンタ10がG/Oになるべき程度を示す指標であり、プリンタ10において予め決められている。同様に、対象機器のG/O優先度は、対象機器がG/Oになるべき程度を示す指標であり、対象機器において予め決められている。例えば、CPU及びメモリの能力が比較的に高い機器(例えばPC)は、G/Oとして動作しながら、他の処理を高速で実行することができる。従って、このような機器は、通常、G/Oになるべき程度が高くなるように、G/O優先度が設定される。一方において、例えば、CPU及びメモリの能力が比較的に低い機器は、G/Oとして動作しながら、他の処理を高速で実行することができない可能性がある。従って、このような機器は、通常、G/Oになるべき程度が低くなるように、G/O優先度が設定される。
状態決定処理部34は、プリンタ10のG/O優先度と対象機器のG/O優先度とを比較して、優先度が高い方の機器(プリンタ10又は対象機器)をG/Oとして決定し、優先度が低い方の機器(対象機器又はプリンタ10)をクライアントとして決定する。対象機器は、プリンタ10と同じ手法を利用して、プリンタ10のG/O優先度と対象機器のG/O優先度とに基づいて、G/O及びクライアントを決定する。S112のG/Oネゴシエーションが終了すると、S114に進む。
なお、S112のG/Oネゴシエーションが終了すると、プリンタ10は、デバイス状態から決定済みの状態(即ちG/O状態又はクライアント状態)に移行する。また、対象機器も、デバイス状態から決定済みの状態(即ちクライアント状態又はG/O状態)に移行する。
また、S110において、対象機器の現在の状態がG/O状態であると判断された場合(S110でNOの場合)には、S112のG/Oネゴシエーションが実行されずに、プリンタ10は、デバイス状態からクライアント状態に移行する。1個の無線ネットワークではG/O状態の機器が1個しか存在し得ないために、プリンタ10がG/O状態になることが不可能だからである。また、S110において、プリンタ10の現在の状態がG/O状態であると判断された場合(S110でNOの場合)には、S112のG/Oネゴシエーションが実行されずに、プリンタ10の現在の状態であるG/O状態が維持される。この場合、対象機器は、デバイス状態からクライアント状態に移行する。S110でNOの場合には、S114に進む。ここで、S110でNOの場合は、過去のG/Oネゴシエーション(S112)によって、プリンタ10や対象機器がG/O状態に決定された場合のみならず、後述の自律G/Oモード設定がOFFからONに変更されることによって、プリンタ10や対象機器がG/O状態に決定された場合を含む。
S114では、第1の接続部36は、プリンタ10の現在の状態がG/O状態であり、かつ、対象機器の現在の状態がクライアント状態であるのか否かを判断する。S114でYESの場合(プリンタ10の現在の状態=G/O状態、かつ、対象機器の現在の状態=クライアント状態)には、S116に進む。一方において、S114でNOの場合(プリンタ10の現在の状態=クライアント状態、かつ、対象機器の現在の状態=G/O状態)には、S118に進む。
S116では、第1の接続部36は、G/O状態用のWPSネゴシエーションを実行する。即ち、第1の接続部36は、PINコードを用いて、無線接続を確立するために必要な情報(SSID、認証方式、暗号化方式等)を、対象機器に無線で送信する。第1の接続部36は、上記の情報を用いて、対象機器との間で様々な認証処理を実行する。全ての認証が成功した場合に、プリンタ10と対象機器との間に無線接続が確立される。なお、認証に失敗した場合には、プリンタ10と対象機器との間に無線接続が確立されることなく、WFD接続処理が終了する。
なお、S116で無線接続が確立されると、制御部26は、さらに、対象機器のMACアドレスを管理リストに追加する。これにより、G/O状態のプリンタ10は、クライアント状態の対象機器との間で、通信対象の対象データ(印刷データ等)の通信を実行することができるようになる。さらに、G/O状態のプリンタ10は、クライアント状態の対象機器と、プリンタ10の管理リストに登録されている他の機器と、の間の無線通信を中継することができるようになる。
一方において、S118では、第1の接続部36は、クライアント状態用のWPSネゴシエーションを実行する。即ち、第1の接続部36は、PINコードを用いて、無線接続を確立するために必要な情報(SSID、認証方式、暗号化方式等)を、対象機器から無線で受信する。第1の接続部36は、上記の情報を用いて、対象機器との間で様々な認証処理を実行する。全ての認証が成功した場合に、プリンタ10と対象機器との間に無線接続が確立される。この結果、クライアント状態のプリンタ10は、G/O状態の対象機器との間で、対象データ(印刷データ等)の無線通信を実行することができるようになる。さらに、クライアント状態のプリンタ10は、G/O状態の対象機器を介して、他の機器(即ち、対象機器の管理リストに登録されている他の機器)との間で、対象データの無線通信を実行することができるようになる。S116又はS118が終了すると、図5のWFD接続処理が終了する。
(自律G/Oモード)
なお、図4、及び、図5のフローチャートには示していないが、ユーザは、操作部12を操作して、自律G/Oモードの設定をOFFからONに切換える操作を実行することができる。自律G/Oモードの設定がONに切換えられると、制御部26は、上記のG/Oネゴシエーションを実行することなく、プリンタ10の状態を、G/O状態に移行させる。この場合、制御部26は、自律G/Oモードの設定がOFFに切り換えられるまで、プリンタ10の状態を、G/O状態に維持する。
(監視処理)
また、図4、及び、図5のフローチャートには示していないが、図5のS112においてプリンタ10の状態がG/O状態に決定された場合、又は、自律G/OモードがONに設定されて、プリンタ10の状態がG/O状態に決定された場合には、第2の応答処理部42は、第2のBSS処理部24を介して、WFDの監視処理を開始する。監視処理は、上記のListen処理とほぼ同様の処理であるが、第2のBSS処理部24を介して実行される点が上記のListen処理とは異なる。即ち、監視処理では、第2の応答処理部42は、外部装置からProbe Request信号を受信した場合に、Probe Response信号を外部装置に送信する。これにより、外部装置は、G/O状態のプリンタ10を適切に見つけることができる。
上記の通り、制御部26は、第1のBSS処理部22を介して実行されるべき処理と、第2のBSS処理部24を介して実行されるべき処理と、を同時的に実行することができる。そのため、第2の応答処理部42が第2のBSS処理部24を介して監視処理を実行している間に、特定処理部38は、第1のBSS処理部22を介してAP検索処理を実行したり、確立済みの非WFDネットワークを利用した対象データの無線通信を実行したりすることができる。
なお、第2の応答処理部42が監視処理を実行するために、外部装置(例えば携帯端末90)は、プリンタ10を見つけることができる。この場合、外部装置は、接続要求信号をプリンタ10に送信する。第1の接続部36は、第2のBSS処理部22を介して接続要求信号を受信すると、図4のS74でYESと判断し、S76で接続要求信号の送信元の外部装置(例えば携帯端末90)に関する情報をメモリ30内の所定領域に記憶する。その後、WFD接続指示が入力されると、第1の接続部36は、S78でYESと判断し、図5のS116で、当該外部装置との間で、上記と同様のG/O状態用のWPSネゴシエーションを実行し、当該外部装置との間でWFD接続を確立する。この際、プリンタ10と他の機器との間で実行される認証に用いられるSSID等の各種情報は、上記のS116のG/O状態用のWPSネゴシエーションで利用された情報と同じである。また、この場合のプリンタ10と他の機器との通信には、第2のBSS処理部22が用いられる。
(具体例)
続いて、図6〜図9を参照して、各機器10、60、80、90が実行する処理の様々なケースについて説明する。図6〜図9中の「第1BSS」は、プリンタ10が、第1のBSS処理部22を介して処理を実行していることを示し、「第2BSS」は、プリンタ10が、第2のBSS処理部24を介して処理を実行していることを示す。
(ケースA:図6)
図6に示すケースAは、プリンタ10のWFDI/F設定がOFFからONに切換えられた後に、非WFD接続指示が入力されるケースを示す。このケースでは、プリンタ10とAP60との間で非WFD接続が確立した後に、プリンタ10と携帯端末80との間でWFD接続が確立する。
ユーザが、WFDI/Fの設定を、OFFからONに変更するための操作を実行すると(図4のS70でYES)、プリンタ10がデバイス状態になる。この場合、デバイス状態のプリンタ10は、Listen処理を開始する(図4のS72)。従って、本実施例のプリンタ10は、ユーザの操作に従って、Listen処理を適切に実行し得る。次いで、ユーザが、非WFD接続指示をプリンタ10に入力すると(図2のS10でYES)、プリンタ10は、Listen処理を中断して、AP検索処理を開始する(図2のS14でYES、S16、S18、図4のS84)。即ち、プリンタ10は、AP60との非WFD接続が確立されるべき条件(即ち非WFD接続指示の入力)が満たされる場合に、Listen処理とAP検索処理とのうちのAP検索処理のみを適切に実行し得る。
AP60は、プリンタ10からサーチパケットを無線で受信すると、プリンタ10に応答パケットを無線で送信する。プリンタ10は、応答パケットを無線で受信する。次いで、プリンタ10は、Listen処理を再開する(図2のS20、図4のS88)。従って、本実施例のプリンタ10は、Listen処理を適切に再開することができる。次いで、プリンタ10は、APリストを表示部14に表示させる(図2のS24)。
図6のケースAでは、ユーザは、APリストの中から、所定時間内に1個のAPを選択しない(図2のS26でNO)。そのため、プリンタ10は、Listen処理を再度中断し、AP検索処理を再度実行する(図2のS14でYES、S16、S18、図4のS84)。次いで、プリンタ10は、AP60からの応答パケットを無線で受信し、Listen処理を再開する(図2のS20、図4のS88)。プリンタ10は、APリストを表示部14に再度表示させる(図2のS24)。このように、プリンタ10は、非WFD接続指示が入力される場合に、AP検索処理を繰り返し実行する。従って、プリンタ10は、AP60を適切に見つけることができ、この結果、AP60との間で非WFD接続を適切に確立することができる。
ユーザは、再度表示されたAPリストの中から、AP60を選択する。これにより、プリンタ10は、AP60との間で認証のための通信を実行する(図2のS28)。これにより、プリンタ10とAP60との間で非WFD接続が確立する。プリンタ10とAP60との間で非WFD接続が確立しても、プリンタ10は、Listen処理を継続して実行する。
次いで、デバイス状態の携帯端末80が上記のSearch処理を実行することにより、プリンタ10は、携帯端末80からProbe Request信号を無線で受信する。プリンタ10は、Listen処理を実行しているために、携帯端末80からProbe Request信号を無線で受信すると、Probe Response信号を無線で携帯端末80に送信する。これにより、携帯端末80の表示部に、プリンタ10を示す情報を含む機器リストが表示される。携帯端末80のユーザが、機器リストからプリンタ10を選択すると、携帯端末80は、接続要求信号をプリンタ10に無線で送信する。プリンタ10は、携帯端末80から接続要求信号を無線で受信すると、携帯端末80に関する情報をメモリ30の所定領域に記憶させる(図4のS74でYES、S76)。
次いで、ユーザが、プリンタ10にWFD接続指示を入力すると(図4のS78でYES)、プリンタ10は、携帯端末80との間でG/Oネゴシエーションを実行する(図5のS100でYES、S110でYES)。このケースでは、G/Oネゴシエーションの結果、プリンタ10がG/O状態で動作することが決定される。一方、携帯端末80がクライアント状態で動作することが決定される。これにより、プリンタ10は、デバイス状態からG/O状態に移行する。同時に、携帯端末80はデバイス状態からクライアント状態に移行する。
プリンタ10がG/O状態で動作すべきことが決定されると、プリンタ10は、第2のBSS処理部を介して監視処理を開始する。次いで、プリンタ10は、G/O状態用のWPSネゴシエーションを実行する(図5のS116)。これにより、プリンタ10と携帯端末80との間で、WFD接続が確立される。
(ケースB:図7、図8)
図7、図8のケースBは、プリンタ10にWFD接続指示が入力され、プリンタ10と携帯端末80との間でWFD接続が確立した後に、プリンタ10に非WFD接続指示が入力されるケースを示す。このケースでは、プリンタ10と携帯端末80との間でWFD接続が確立した後に、プリンタ10とAP60との間で非WFD接続が確立する。さらに、その後に、プリンタ10と携帯端末90との間でWFD接続が確立する。
ユーザが、WFDI/Fの設定をOFFからONに変更するための操作を実行すると(図4のS70でYES)、プリンタ10がデバイス状態になる。デバイス状態のプリンタ10は、Listen処理を開始する(図4のS72)。その後、ユーザがWFD接続指示を入力すると(図4のS78でYES)、プリンタ10は、Scan処理、Listen処理、Search処理を順次実行する(図5のS100でNO、S102)。プリンタ10は、Search処理を実行している間に、Probe Request信号を無線で携帯端末80に送信すると、デバイス状態の携帯端末80からProbe Response信号を無線で受信する。同様に、Probe Request信号を無線で携帯端末90に送信すると、プリンタ10は、デバイス状態の携帯端末90からProbe Response信号を無線で受信する。
プリンタ10は、Scan処理、Listen処理、Search処理を終了すると、表示部14に機器リストを表示させる(図5のS106)。機器リストは、携帯端末80、90等に関する情報を含む。このケースでは、ユーザは、機器リストから、携帯端末80を選択する(図5のS108でYES)。プリンタ10は、携帯端末80との間でG/Oネゴシエーションを実行する(S110でYES、S112)。このケースでは、G/Oネゴシエーションの結果、プリンタ10がG/O状態で動作することが決定される。一方、携帯端末80がクライアント状態で動作することが決定される。
上記のケースA(図6)の場合と同様に、プリンタ10がG/O状態で動作すべきことが決定されると、プリンタ10は、第2のBSS処理部24を介して監視処理を開始する。プリンタ10は、G/O状態用のWPSネゴシエーションを実行し、携帯端末80とのWFD接続を確立する(図5のS116)。
続いて、ケースBでは、図8に示すように、プリンタ10が監視処理を実行する間に、ユーザが、非WFD接続指示をプリンタ10に入力する。この場合、プリンタ10は、監視処理を中断することなく、第1のBSS処理部22を介してAP検索処理を実行する(図2のS10でYES、S14でNO、S22)。このように、プリンタ10は、監視処理を実行している状況において、非WFD接続指示が入力される場合に、監視処理とAP検索処理とを同時に適切に実行することができる。
プリンタ10は、AP60から応答パケットを無線で受信する。次いで、プリンタ10は、AP60に関する情報(SSID等)を含むAPリストを表示部14に表示させる(図2のS24)。
ユーザは、表示されたAPリストの中からAP60を選択する。これにより、プリンタ10は、AP60との間で認証のための通信を実行する(図2のS28)。これにより、プリンタ10とAP60との間で非WFD接続が確立する。この結果、プリンタ10と携帯端末80との間でWFD接続が確立しているとともに、プリンタ10とAP60との間で非WFD接続が確立している状態が形成される。
プリンタ10は、G/O状態で動作すべきことが決定された後、監視処理を継続して実行している。従って、デバイス状態の携帯端末90が上記のScan処理を実行することにより、G/O状態のプリンタ10は、携帯端末90からProbe Request信号を無線で受信する場合に、Probe Response信号を無線で携帯端末90に送信する。これにより、携帯端末90の表示部に、プリンタ10(G/O状態)を示す情報を含む機器リストが表示される。携帯端末90のユーザが、機器リストからプリンタ10を選択すると、携帯端末90は、接続要求信号をプリンタ10に無線で送信する。次いで、携帯端末90は、デバイス状態からクライアント状態に移行する。プリンタ10は、携帯端末90から接続要求信号を無線で受信すると、携帯端末90に関する情報をメモリ30の所定領域に記憶させる(図4のS74でYES、S76)。次いで、ユーザが、プリンタ10にWFD接続指示を入力すると(図4のS78でYES)、プリンタ10は、携帯端末90との間で、G/O状態用のWPSネゴシエーションを実行し、携帯端末90とのWFD接続を確立する(図5のS116)。これにより、携帯端末90は、プリンタ10と携帯端末80とのを含むWFDネットワークに新たに参加することができる。
(ケースC:図9)
図9のケースCは、プリンタ10とAP60との間で非WFD接続が確立された後、WFDI/F設定がOFFからONに切換えられ、その後、プリンタ10とAP60との間の非WFD接続が切断するケースを示す。
このケースでは、プリンタ10とAP60との間には既に非WFD接続が確立している。この場合に、ユーザが、WFDI/Fの設定をOFFからONに変更するための操作を実行すると(図4のS70でYES)、プリンタ10は、Listen処理を開始する(図4のS72)。
次いで、プリンタ10とAP60との間で確立されていた非WFD接続が切断された状態で、一定時間が経過すると(図3のS40でYES)、プリンタ10は、Listen処理を中断して、AP60を検索するためのAP検索処理を開始する(図3のS42でYES、S44、S46、図4のS84)。
AP60は、プリンタ10からサーチパケットを無線で受信すると、プリンタ10に応答パケットを送信する。これにより、プリンタ10は、AP60を見つけることができる。次いで、プリンタ10は、Listen処理を再開する(図3のS48、図4のS88)。次いで、プリンタ10は、AP60との非WFD接続を再確立する(図4のS54)。なお、プリンタ10は、Listen処理を継続して実行している。従って、デバイス状態のプリンタ10は、デバイス状態の携帯端末80からProbe Request信号を無線で受信すると、Probe Response信号を無線で携帯端末80に送信する。
(実施例の効果)
上記の通り、本実施例のプリンタ10は、1個の第1のBSS処理部22を介して、Listen処理とAP検索処理とを同時に実行することができない。本実施例では、図6のケースAに示すように、プリンタ10は、Listen処理が実行されている状況において、非WFD接続指示が入力される場合に(図2のS10でYES)、Listen処理を中断して、AP検索処理のみを実行する(図2のS14でYES、S16、S18、図4のS84)。このために、プリンタ10は、AP60を適切に見つけることができる。このために、プリンタ10とAP60との間に非WFD接続を適切に確立することができる。また、プリンタ10は、AP検索処理が終了すると、Listen処理を再開する(図2のS20、図4のS88)。このために、携帯端末80は、プリンタ10を適切に見つけることができる。このために、プリンタ10と携帯端末80との間にWFD接続を適切に確立することができる。
(対応関係)
プリンタ10、携帯端末80、AP60、携帯端末90が、それぞれ、「無線通信装置」、「第1のデバイス」、「第2のデバイス」、「第3のデバイス」の一例である。WFD接続、非WFD接続が、それぞれ、「第1種の接続」、「第2種の接続」の一例である。Listen処理、監視処理、AP検索処理が、それぞれ、「第1の応答処理」、「第2の応答処理」、「特定処理」の一例である。Probe Request信号、Probe Response信号が、それぞれ、「検索信号」、「応答信号」の一例である。WFDのG/O状態、クライアント状態が、それぞれ、「親局状態」、「子局状態」の一例である。
WFDI/Fの設定を、OFFからONに変更するための操作が実行されること(図4のS70でYES)が「第1の条件」の一例である。WFDI/Fの設定OFF、WFDI/Fの設定ONが、それぞれ、「第1の設定」、「第2の設定」の一例である。非WFD接続指示が入力される場合(図2のS10でYES)と、AP60との間で確立されていた非WFD接続が切断した状態が一定時間継続する場合(図3のS40でYES)とが、「第2の条件」の一例である。また、プリンタ10のWFDI/F設定がOFFの場合、プリンタ10と他の機器(例えば携帯端末80)との間でWFD接続が確立している場合、プリンタ10がG/O状態又はクライアント状態で動作すべきことが決定された場合(後述の自律G/Oモード設定がONに切換えられた場合も含む)が、「特定の状況」の一例である。自律G/Oモードが「特定のモード」の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)特定処理部38は、上記のAP検索処理に代えて、プリンタ10の周囲の各APが定期的に送信するビーコン信号を受信するビーコン受信処理を実行してもよい。ビーコン信号は、APに関する情報(SSID等)を含む。特定処理部38は、AP60からビーコン信号を受信することによって、AP60を見つけることができる。本変形例では、ビーコン受信処理が「特定処理」の一例である。
(変形例2)第1の応答処理部32及び特定処理部38は、AP検索処理が実行されている状況において、Listen処理を開始するトリガであるWFDI/F設定をONに切換える操作が実行される場合に(図4のS70でYES)、AP検索処理を中断して、Listen処理のみを実行してもよいし、Listen検索処理を開始せずに、AP検索処理のみを実行してもよい。また、第1の応答処理部32及び特定処理部38は、Listen処理が実行されている状況において、AP検索処理を開始するトリガである非WFD接続指示が入力される場合に(図2のS10でYES)、AP検索処理を開始せずに、Listen処理のみを実行してもよい。一般的に言うと、第1の応答処理部及び特定処理部は、第1の応答処理及び特定処理のうちの一方の処理が実行されている状況において、第1の条件又は第2の条件が満たされる特定の場合に、第1の応答処理及び特定処理のうちの1個の処理のみを実行すればよい。
(変形例3)第1の応答処理部32は、例えば、他の機器(例えば携帯端末80)からListen処理の開始指示が与えられる場合に、Listen処理を実行してもよい。この場合、他の機器からListen処理の開始指示が与えられることが「第1の条件」の一例である。また、第1の応答処理部32は、例えば、予め決められているタイミングが到来すると、Listen処理を実行するように、構成されていてもよい。この場合、予め決められているタイミングが到来することが「第1の条件」の一例である。また、プリンタ10は、例えば、Webサーバ機能を備えていてもよい。この場合、特定処理部38は、他の機器(例えばPC70)から、プリンタ10のWebサーバを介して、AP検索処理の開始指示が与えられる場合に、AP検索処理を実行してもよい。この場合、他の機器からAP検索処理の開始指示が与えられることが「第2の条件」の一例である。また、特定処理部38は、例えば、予め決められているタイミングが到来すると、AP検索処理を実行するように、構成されていてもよい。この場合、予め決められているタイミングが到来することが「第2の条件」の一例である。
(変形例4)「無線通信装置」は、プリンタ10に限られず、無線通信可能な他の機器、例えば、携帯端末、PC、サーバ、FAX装置、コピー機、スキャナ、多機能機等の機器であってもよい。また、「第1のデバイス」、「第2のデバイス」、及び「第3のデバイス」は、携帯端末80、AP60、及び、携帯端末90に限られず、無線通信可能な他の機器、例えば、PC、サーバ、プリンタ、FAX装置、コピー機、スキャナ、多機能機等の機器であってもよい。
(変形例5)無線通信装置は、第1の応答処理部32がListen処理を実行している間、又は、特定処理部38がAP検索処理を実行している間に、Listen処理とAP検索処理のいずれとも異なる他の処理を、Listen処理又はAP検索処理と同時的に実行してもよい。一般的に言うと、第1の応答処理部及び特定処理部が「第1の応答処理及び特定処理のうちの1個の処理のみを実行する」は、「第1の応答処理と特定処理とを同時的に実行しない(第1の応答処理と特定処理のうちの一の処理を選択的に実行する)」と言い換えてもよく、無線通信装置が、第1の応答処理(又は特定処理)と他の処理とを同時的に実行することを除外するものではない。
(変形例6)上記の各実施例では、プリンタ10のCPU28がソフトウェアに従って処理を実行することによって、各部32〜42が実現される。これに代えて、各部32〜42のうちの少なくとも一部は、論理回路等のハードウェアによって実現されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。