(実施例)
(通信システム2の構成;図1)
図1に示すように、通信システム2は、AP(Access Pointの略)6と、PC(Personal Computerの略)8と、多機能機(以下では「MFP(Multi-Function Peripheralの略)」と呼ぶ)10と、携帯端末50、80と、認証カード100と、を備える。MFP10と携帯端末50、80と認証カード100とは、それぞれ、NFC規格の通信方式(即ちNFC方式)の通信を実行可能である。近距離無線通信は、NFC方式に従った無線通信である。本実施例では、ISO/IEC21481又はISO/IEC18092の国際標準規格に基づいて、NFC方式の無線通信が実行される。
また、PC8とMFP10と携帯端末50、80とは、それぞれ、後述のWi−Fi Directの方式(以下では「WFD方式」と呼ぶ)に従った無線通信を実行可能である。WFD方式では、IEEE(The Institute of Electrical and Electronics Engineers, Inc.)の802.11の規格、及び、それに準ずる規格(例えば802.11a,11b,11g,11n等)に基づいて、無線通信が実行される。NFC方式とWFD方式とは、無線通信方式(即ち無線通信の規格)が異なる。また、WFD方式の無線通信の通信速度は、NFC方式の無線通信の通信速度よりも速い。
例えば、MFP10は、WFD方式に従って、携帯端末50との接続(以下では「WFD接続」と呼ぶ)を確立することによって、WFDネットワークを構築することができる。同様に、MFP10は、PC8とのWFD接続を確立することによって、WFDネットワークを構築することができる。
PC8とMFP10と携帯端末50、80とは、さらに、WFD方式に従った無線通信とは異なる通常Wi−Fiに従った無線通信を実行可能である。一般的に言うと、通常Wi−Fiに従った無線通信とは、AP6が利用される無線通信であり、WFD方式に従った無線通信とは、AP6が利用されない無線通信である。例えば、MFP10は、通常Wi−Fiに従って、AP6との接続(以下では「通常Wi−Fi接続」と呼ぶ)を確立することによって、通常Wi−Fiネットワークに属することができる。MFP10は、AP6を介して、通常Wi−Fiネットワークに属している他のデバイス(例えばPC8、携帯端末50)と無線通信を実行することができる。また、NFC方式と通常Wi−Fiとは、無線通信方式(即ち無線通信の規格)が異なる。また、通常Wi−Fiの無線通信の通信速度は、NFC方式の無線通信の通信速度よりも速い。
(MFP10の構成)
MFP10は、操作部12と、表示部14と、印刷実行部16と、スキャン実行部18と、無線LANインターフェース(以下では、インターフェースのことを「I/F」と記載する)20と、NFCI/F22と、制御部24と、を備える。操作部12は、複数のキーを備える。ユーザは、操作部12を操作することによって、様々な指示をMFP10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。印刷実行部16は、インクジェット方式、レーザ方式等の印刷機構である。スキャン実行部18は、CCD、CIS等のスキャン機構である。
無線LANI/F20は、制御部24が、WFD方式に従った無線通信と、通常Wi−Fiに従った無線通信と、を実行するためのインターフェースである。無線LANI/F20は、物理的には1個のインターフェースである。但し、無線LANI/F20には、WFD方式に従った無線通信で利用されるMACアドレス(以下では「WFD用MACアドレス」と呼ぶ)と、通常Wi−Fiに従った無線通信で利用されるMACアドレス(以下では「通常Wi−Fi用MACアドレス」と呼ぶ)と、の両方が割り当てられる。より詳細には、無線LANI/F20には、通常Wi−Fi用MACアドレスが、予め割り当てられている。制御部24は、通常Wi−Fi用MACアドレスを用いて、WFD用MACアドレスを生成して、WFD用MACアドレスを無線LANI/F20に割り当てる。WFD用MACアドレスは、通常Wi−Fi用MACアドレスとは異なる。従って、制御部24は、無線LANI/F20を介して、WFD方式に従った無線通信と通常Wi−Fiに従った無線通信との両方を同時的に実行し得る。この結果、MFP10が、WFDネットワークに属していると共に、通常Wi−Fiネットワークに属している状況が成立し得る。なお、変形例では、WFD方式に従った無線通信を実行するためのインターフェースと、通常Wi−Fiに従った無線通信とを実行するためのインターフェースと、が物理的に異なるチップによって構成されていてもよい。
なお、ユーザは、操作部12を操作することによって、無線LANI/F20の設定を、WFD方式に従った無線通信を実行可能な設定(以下では「WFDI/F設定がONである」と表現する)と、WFD方式に従った無線通信を実行不可能な設定(以下では「WFDI/F設定がOFFである」と表現する)と、の間で変更することができる。CPU30は、ユーザによって設定されたWFDI/F設定を示す値(ON又はOFF)を、メモリ32に記憶させる。
NFCI/F22は、制御部24が、NFC方式の無線通信を実行するためのインターフェースである。無線LANI/F20とNFCI/F22とは、物理的に異なるチップによって構成されている。
なお、無線LANI/F20を介した無線通信の通信速度(例えば、最大の通信速度が11〜600Mbps)は、NFCI/F22を介した無線通信の通信速度(例えば、最大の通信速度が106〜424kbps)よりも速い。さらに、無線LANI/F20を介した無線通信における搬送波の周波数(例えば、2.4GHz帯、5.0GHz帯)は、NFCI/F22を介した無線通信における搬送波の周波数(例えば、13.56MHz帯)とは異なる。また、MFP10と携帯端末50、80との距離がおよそ10cm以下である場合に、CPU30は、NFCI/F22を介して、携帯端末50、80とNFC方式の無線通信を実行可能である。一方において、MFP10と携帯端末50、80との距離が、10cm以下である場合でも、10cm以上である場合(例えば、最大で約100m)でも、CPU30は、無線LANI/F20を介して、WFD方式に従った無線通信、及び、通常Wi−Fiに従った無線通信を、携帯端末50、80と実行可能である。即ち、MFP10が、無線LANI/F20を介して、通信先の機器(例えば携帯端末50)と無線通信を実行可能な最大の距離は、MFP10が、NFCI/F22を介して、通信先の機器と無線通信を実行可能な最大の距離よりも大きい。
制御部24は、CPU30とメモリ32とを備える。CPU30は、メモリ32に記憶されているプログラムに従って、様々な処理を実行する。メモリ32は、ROM、RAM、ハードディスク等によって構成される。メモリ32は、CPU30によって実行される上記のプログラムを記憶する。
プログラムは、アプリケーションプログラムと、プロトコルスタックと、を含む。アプリケーションプログラムは、CPU30が、OSI参照モデルのアプリケーション層の処理を実行するためのプログラムである。プロトコルスタックは、CPU30が、OSI参照モデルのアプリケーション層よりも下位層の処理を実行するためのプログラムである。プロトコルスタックは、P2P(Peer to Peerの略)プログラムと、R/Wプログラムと、CEプログラムと、を含む。P2Pプログラムは、NFC規格のP2Pモードに従った処理を実行するためのプログラムである。R/Wプログラムは、NFC規格のReader/Writerモードに従った処理を実行するためのプログラムである。CEプログラムは、NFC規格のCE(Card Emulationの略)モードに従った処理を実行するためのプログラムである。これらのプログラムは、NFCフォーラムによって定められたNFC規格に準拠した処理を実行するためのプログラムである。
また、MFP10がWFDネットワークに現在属している場合には、CPU30は、メモリ32に、WFDネットワークに現在属していることを示す情報と、当該WFDネットワークを介して目的データ(例えば、印刷データ、スキャンデータ)の通信を実行するための無線設定(認証方式、暗号化方式、パスワード、無線ネットワークのSSID(Service Set Identifierの略)、BSSID(Basic Service Set Identifierの略)を含む)と、を記憶させる。また、MFP10が通常Wi−Fiネットワークに現在属している場合には、CPU30は、通常Wi−Fiネットワークに現在属していることを示す情報と、当該通常Wi−Fiネットワークを介して目的データの通信を実行するための無線設定と、をメモリ32に記憶させる。なお、SSIDは、無線ネットワークを識別するための識別子であり、BSSIDは、無線ネットワークを構築するアクセスポイント(即ち、WFDネットワークの場合には、G/O状態(後述)の機器)の固有の識別子(例えばMACアドレス)である。
メモリ32は、さらに、WFDI/F設定を示す値(ON又はOFF)を記憶する。なお、制御部24は、メモリ32内のWFDI/F設定がOFFである状態では、WFD方式に従った各処理を実行することができない。WFDI/F設定がONである状態では、メモリ32は、さらに、WFD方式に関するMFP10の現在の状態(G/O状態、クライアント状態、及び、デバイス状態のいずれかの状態)を示す値を記憶する。
メモリ32は、さらに、他の装置(例えば携帯端末50)が、MFP10を利用して様々な機能(印刷機能、スキャン機能等)を実行するためのアプリケーションプログラム(以下では、「MFP用アプリケーション」と呼ぶ)を他の装置にダウンロードさせるためのURL(以下では、「アプリダウンロードURL」と呼ぶ)を記憶する。また、メモリ32は、MFP10で発生する装置エラー(例えば、印刷実行部16で発生する紙詰まりや印刷機構の故障等)を解消させるための手法を示すウェブページのURL(以下では、「サポートページURL」と呼ぶ)を記憶する。装置エラーについては後で詳しく説明する。さらに、メモリ32は、MFP10で使用される消耗品(例えば、インク(トナー)、用紙等)を紹介するためのウェブページのURL(以下では、「消耗品ページURL」と呼ぶ)を記憶する。アプリダウンロードURL、サポートページURL、及び、消耗品ページURLは、MFP10のベンダによって、予めメモリ32に記憶されている。
メモリ32は、さらに、アプリURL供給モード設定を示す値(ON又はOFF)を記憶する。ここで、「アプリURL供給モード」とは、上記のアプリダウンロードURLを他の端末に供給するためのモードである。ユーザは、操作部12を操作することによって、アプリURL供給モードの設定をON/OFFすることができる。CPU30は、ユーザによって設定されたアプリURL供給モード設定を示す値(ON又はOFF)を、メモリ32に記憶させる。
さらに、メモリ32は、書き込みジョブを記憶する。CPU30は、AP6を介してPC8から書き込みジョブを受信する場合、書き込みジョブをメモリ32に記憶させる。書き込みジョブは、ユーザが指定する書き込みデータ(例えば、ユーザが指示したURL、ユーザが入力したテキスト等)を含む。また、メモリ32は、印刷ジョブを記憶する。CPU30は、AP6を介してPC8から印刷ジョブを受信する場合、印刷ジョブをメモリ32に記憶させる。印刷ジョブは、ユーザが印刷を希望する印刷データを含む。本実施例では、後で説明するように、MFP10が印刷データに従って印刷を実行するためには、認証カード100を用いて認証を行う必要がある。
(NFC方式の通信)
次に、NFC方式の通信について説明する。以下では、NFC方式の通信を実行可能な機器(MFP10、携帯端末50、80、認証カード100等)のことを「NFC機器」と呼ぶ。また、以下では、ReaderモードとWriterモードを合わせて、「R/Wモード」と簡単に記載することがある。
NFC機器の中には、P2Pモード、R/Wモード、及び、CEモードの3つのモードの全てを利用可能な機器も存在するし、上記の3つのモードのうちの1つ又は2つのモードのみを利用可能な機器も存在する。本実施例では、MFP10、携帯端末50、80は、上記の3つのモードの全てを利用可能な機器である。また、認証カード100は、NFC規格のカードであり、より具体的に言うと、CEモードを利用可能であるが、P2Pモード及びR/Wモードを利用不可能である。
P2Pモードは、一対のNFC機器の間で双方向通信を実行するためのモードである。例えば、第1のNFC機器と第2のNFC機器との両方において、P2Pモードが起動されている状況を想定する。この場合、第1のNFC機器と第2のNFC機器との間で、P2Pモードに対応する通信リンク(以下では「P2Pの通信リンク」と呼ぶ)が確立される。この場合、例えば、第1のNFC機器は、P2Pの通信リンクを利用して、第1の所定データを第2のNFC機器に送信する。その後、第2のNFC機器は、同じP2Pの通信リンクを利用して、第2の所定データを第1のNFC機器に送信する。これにより、双方向通信が実現される。NFCフォーラムによって定められるISO/IEC 1443のTypeAであるNFC機器、及び、ISO/IEC 18092のTypeFであるNFC機器は、P2Pモードを利用可能であるが、ISO/IEC 1443のTypeBであるNFC機器は、P2Pモードを利用不可能である。
R/Wモード及びCEモードは、一対のNFC機器の間で単方向通信を実行するためのモードである。CEモードは、NFC機器がNFCフォーラムによって定められた形式である「カード」として動作するためのモードである。TypeAのNFC機器と、TypeFのNFC機器と、TypeBのNFC機器と、のいずれも、CEモードを利用可能である。Readerモードは、CEモードでカードとして動作するNFC機器からデータを読み出すためのモードである。Writerモードは、CEモードでカードとして動作するNFC機器にデータを書き込むためのモードである。なお、Readerモードでは、NFC規格のカード(即ち、認証カード100)からデータを読み出すこともできる。また、Writerモードでは、NFC規格のカードにデータを書き込むこともできる。
例えば、第1のNFC機器において、Readerモードが起動されており、第2のNFC機器において、CEモードが起動されている状況を想定する。この場合、第1のNFC機器と第2のNFC機器との間で、Readerモード及びCEモードに対応する通信リンクが確立される。この場合、第1のNFC機器は、通信リンクを利用して、第2のNFC機器内の擬似的なカードからデータを読み出すための動作を実行することによって、当該データを第2のNFC機器から受信する。
また、例えば、第1のNFC機器において、Writerモードが起動されており、第2のNFC機器において、CEモードが起動されている状況を想定する。この場合、第1のNFC機器と第2のNFC機器との間で、Writerモード及びCEモードに対応する通信リンクが確立される。この場合、第1のNFC機器は、通信リンクを利用して、第2のNFC機器内の擬似的なカードにデータを書き込むための動作を実行することによって、当該データを第2のNFC機器に送信する。
上述したように、一対のNFC機器がNFC方式の通信を実行するためには、様々なモードの組合せが考えられる。例えば、一対のNFC機器のモードの組合せとして、以下の5つのパターン、即ち、「P2Pモード、P2Pモード」、「Readerモード、CEモード」、「Writerモード、CEモード」、「CEモード、Readerモード」、「CEモード、Writerモード」が考えられる。
なお、NFC機器は、Readerモード及びWriterモードの両方が起動されている状態を形成し得ない。即ち、NFC機器は、Readerモードを起動しているのであれば、Writerモードを停止している。また、NFC機器は、Writerモードを起動しているのであれば、Readerモードを停止している。
また、NFC機器は、起動されているモードに対応する通信リンクを確立することができるが、起動されていないモードに対応する通信リンクを確立することができない。例えば、MFP10において、CEモードが起動されており、P2Pモード及びR/Wモードを起動されていない場合には、MFP10は、MFP10がCEモードで動作するための通信リンクを確立することができるが、他の通信リンク(即ち、MFP10が、P2Pモード、Readerモード、又は、Writerモードで動作するための通信リンク)を確立することができない。
(WFD)
次に、WFDについて説明する。WFDは、Wi−Fi Allianceによって策定された規格である。WFDは、Wi−Fi Allianceによって作成された「Wi−Fi Peer−to−Peer(P2P) Technical Specification Version1.1」に記述されている。
上述したように、PC8とMFP10と携帯端末50、80とは、それぞれ、WFD方式に従った無線通信を実行可能である。以下では、WFD方式に従った無線通信を実行可能な機器のことを「WFD対応機器」と呼ぶ。WFD規格では、WFD対応機器の状態として、Group Owner状態(以下では「G/O状態」と呼ぶ)、クライアント状態、及び、デバイス状態の3つの状態が定義されている。WFD対応機器は、上記の3つの状態のうちの1つの状態で選択的に動作可能である。
G/O状態の機器とクライアント状態の機器とによって、WFDネットワークが構成される。WFDネットワークでは、G/O状態の機器が1個しか存在し得ないが、クライアント状態の機器が1個以上存在し得る。G/O状態の機器は、1個以上のクライアント状態の機器を管理する。具体的に言うと、G/O状態の機器は、1個以上のクライアント状態の機器のそれぞれの識別情報(即ちMACアドレス)が記述された管理リストを生成する。G/O状態の機器は、クライアント状態の機器がWFDネットワークに新たに属すると、当該機器の識別情報を管理リストに追加し、クライアント状態の機器がWFDネットワークから離脱すると、当該機器の識別情報を管理リストから消去する。
G/O状態の機器は、管理リストに登録されている機器、即ち、クライアント状態の機器(即ちWFDネットワークに属している機器)との間で、目的データ(例えば、OSI参照モデルのネットワーク層の情報を含むデータ(印刷データ、スキャンデータ等))の無線通信を実行可能である。しかしながら、G/O状態の機器は、管理リストに登録されていない未登録機器との間で、当該未登録機器がWFDネットワークに参加するためのデータ(例えば、ネットワーク層の情報を含まないデータ(Probe Request信号、Probe Response信号等の物理層のデータ)の無線通信を実行可能であるが、上記の目的データの無線通信を実行不可能である。例えば、G/O状態のMFP10は、管理リストに登録されている携帯端末50(即ち、クライアント状態の携帯端末50)から印刷データを無線で受信可能であるが、管理リストに登録されていない機器から印刷データを無線で受信不可能である。
また、G/O状態の機器は、複数個のクライアント状態の機器の間の目的データ(印刷データ、スキャンデータ等)の無線通信を中継可能である。例えば、クライアント状態の携帯端末50がクライアント状態の他のプリンタに印刷データを無線で送信すべき場合には、携帯端末50は、まず、印刷データをG/O状態のMFP10に無線で送信する。この場合、MFP10は、携帯端末50から印刷データを無線で受信して、上記の他のプリンタに印刷データを無線で送信する。即ち、G/O状態の機器は、通常Wi−FiネットワークのAPの機能を実行可能である。
なお、WFDネットワークに属していないWFD対応機器(即ち、管理リストに登録されていない機器)が、デバイス状態の機器である。デバイス状態の機器は、WFDネットワークに参加するためのデータ(Probe Request信号、Probe Response信号等の物理層のデータ等)の無線通信を実行可能であるが、WFDネットワークを介して目的データ(印刷データ、スキャンデータ等)の無線通信を実行不可能である。
(携帯端末50、80の構成)
携帯端末50は、例えば、携帯電話(例えばスマートフォン)、PDA、ノートPC、タブレットPC、携帯型音楽再生装置、携帯型動画再生装置等の可搬型の端末である。携帯端末80は、携帯端末50と同様の構成を有する。携帯端末50は、操作部52と、表示部54と、無線LANI/F56と、NFCI/F58と、制御部60と、を備える。操作部52は、複数のキーを備える。表示部54は、様々な情報を表示するためのディスプレイである。変形例では、携帯端末50は、操作部52と表示部54の両方の機能を有するタッチパネルを有していてもよい。
無線LANI/F56、及び、NFCI/F58は、それぞれ、上記のMFP10の無線LANI/F20、及び、NFCI/F22と同様のインターフェースである。即ち、制御部60は、無線LANI/F56を介して、WFD方式に従った無線通信と通常Wi−Fiに従った無線通信の両方を同時的に実行し得る。また、制御部60は、NFCI/F58を介して、NFC方式に従った無線通信を実行し得る。
制御部60は、CPU62とメモリ64とを備える。CPU62は、メモリ64に記憶されているプログラムに従って、様々な処理を実行する。メモリ64は、ROM、RAM、ハードディスク等によって構成される。メモリ64は、CPU62によって実行される上記のプログラムを記憶する。プログラムは、MFP10の場合と同様に、アプリケーションプログラムと、プロトコルスタックと、を含む。アプリケーションプログラムには、MFP10に様々な機能(例えば、印刷機能、スキャン機能等)を実行させるためのアプリケーションプログラム(以下では「MFP用アプリケーション」と呼ぶ)を含む。後で図7を参照して説明するように、CPU62は、MFP10からアプリダウンロードURLを受信すると、アプリダウンロードURLに従ってMFP10のベンダが提供するインターネットサーバ(図示省略)にアクセスし、そのサーバからアプリケーションプログラムをダウンロードする。その後、CPU62は、ダウンロードされたMFP用アプリケーションをメモリ64にインストールする。
メモリ64は、第1のOS(Operation Systemの略)プログラムを記憶する。第1のOSプログラムは、携帯端末50を以下のように動作させる。即ち、携帯端末50は、携帯端末50の電源がONされると、Readerモードが起動されており、他のモードが起動されていない初期状態に移行する。携帯端末50は、MFP用アプリケーションがインストールされていない場合には、上記の初期状態を維持する。携帯端末50は、MFP用アプリケーションがインストールされていても、MFP用アプリケーションが起動されていない場合には、上記の初期状態を維持する。携帯端末50は、MFP用アプリケーションが起動されると、上記の初期状態から、P2Pモードが起動されており、他のモード(R/Wモード及びCEモード)が起動されていない状態に移行する。
(認証カード100の構成)
認証カード100は、PC8のユーザに与えられているカードである。上述したように、認証カード100は、NFC規格のカードであって、CEモードを利用可能であるが、P2Pモード及びR/Wモードを利用不可能である。本実施例の通信システム2では、MFP10が、AP6とPC8とを含む無線ネットワークに属している場合、MFP10は、AP6を介してPC8から印刷ジョブを受信する。印刷ジョブには、印刷データが含まれている。MFP10は、PC6から印刷ジョブを受信しても、認証カード100を用いた認証が成功するまでは、印刷を開始しない。認証カード100は、MFP10で認証を行うための認証データ(例えばユーザIDとパスワード)を記憶している。後で図9を参照して説明するように、PC8のユーザは、PC8からMFP10に印刷ジョブを送信した後に、認証カード100をMFP10に近づける。MFP10は、認証カード100から、認証データ(例えばユーザIDとパスワード)を受信して、認証処理を実行する。MFP10は、認証が成功すると、印刷を開始する。これにより、PC8のユーザは、MFP10の近くに存在する際に、印刷物を取得することができる。即ち、第三者に印刷物が持ち去られるのを抑制することができる。
(Poll動作及びListen動作)
続いて、NFC機器によって実行されるPoll動作及びListen動作について説明する。例えば、MFP10では、CPU30が、プログラムに従ってPoll動作及びListen動作を実行するのではなく、NFCI/F22が、Poll動作及びListen動作を実行する。Poll動作は、ポーリング信号を送信して、ポーリング信号に対するレスポンス信号を受信する動作である。また、Listen動作は、ポーリング信号を受信して、ポーリング信号に対するレスポンス信号を送信する動作である。
MFP10のNFCI/F22は、Poll動作を実行するためのPollモードと、Listen動作を実行するためのListenモードと、Poll動作及びListen動作のどちらも実行しないモード(以下では「不実行モード」と呼ぶ)と、のうちのいずれかのモードで動作可能である。NFCI/F22は、Pollモード、Listenモード、及び、不実行モードで、順次動作する。例えば、NFCI/F22は、Pollモードで動作し、次いで、Listenモードで動作し、次いで、不実行モードで動作する、という1セットの動作を実行する。NFCI/F22は、上記の1セットの動作を繰り返し実行する。
Pollモードでは、NFCI/F22は、ポーリング信号を送信して、レスポンス信号を受信することを監視する。具体的に言うと、NFCI/F22は、(1)TypeAのNFC機器が応答可能なポーリング信号(即ちTypeAに対応するポーリング信号)を送信して、レスポンス信号の受信を所定時間監視し、(2)レスポンス信号を受信しなければ、TypeBのNFC機器が応答可能なポーリング信号(即ちTypeBに対応するポーリング信号)を送信して、レスポンス信号の受信を所定時間監視し、(3)レスポンス信号を受信しなければ、TypeFのNFC機器が応答可能なポーリング信号(即ちTypeFに対応するポーリング信号)を送信して、レスポンス信号の受信を所定時間監視する、という動作を繰り返す。NFCI/F22が所定時間内にNFC機器(即ち通信相手)からレスポンス信号を受信する場合には、通信相手は、当該レスポンス信号の送信の直前に受信したポーリング信号に対応するTypeのNFC機器であると言える。NFCI/F22は、レスポンス信号を受信する場合に、さらに、当該レスポンス信号の送信元のNFC機器が、どのモードを起動しているのかを問い合わせるための問合信号を、通信相手に送信する。
Listenモードでは、NFCI/F22は、ポーリング信号を受信することを監視して、ポーリング信号を受信すると、レスポンス信号を送信する。NFCI/F22は、NFCI/F22に対応するTypeのポーリング信号を受信する場合にのみ、ポーリング信号の送信元のNFC機器(即ち通信相手)にレスポンス信号を送信する。NFCI/F22は、通信相手にレスポンス信号を送信する場合に、さらに、通信相手から問合信号を受信して、起動モード信号を通信相手に送信する。
不実行モードでは、NFCI/F22は、ポーリング信号を送信せず、さらに、ポーリング信号を受信しても、レスポンス信号を送信しない。
携帯端末50、80のそれぞれも、上記の1セットの動作を繰り返し実行する。従って、例えば、MFP10と携帯端末50との間の距離が10cm未満であり、かつ、MFP10のNFCI/F22がPollモードで動作する期間と、携帯端末50がListenモードで動作する期間と、が一致する場合には、NFCI/F22は、ポーリング信号を携帯端末50に送信して、レスポンス信号を携帯端末50から受信するPoll動作を実行する。また、例えば、MFP10と携帯端末50との間の距離が10cm未満であり、NFCI/F22がListenモードで動作する期間と、携帯端末50がPollモードで動作する期間と、が一致すると、NFCI/F22は、ポーリング信号を携帯端末50から受信して、レスポンス信号を携帯端末50に送信するListen動作を実行する。なお、以下では、Poll動作を実行したNFC機器、Listen動作を実行したNFC機器のことを、それぞれ、「Poll機器」、「Listen機器」と呼ぶ。
NFCI/F22がPoll動作を実行する場合、即ち、MFP10がPoll機器である場合には、以降の通信のための各処理は、CPU30に引き継がれる。具体的に言うと、まず、Listen機器である通信相手(例えば携帯端末50)がどのモードの動作を実行可能であるのかを示す情報(即ち、受信済みの起動モード信号が示す情報)が、NFCI/F22からCPU30に受け渡される。
例えば、Poll機器であるMFP10の現在の状態が、P2Pモードが起動されており、おり、CEモード及びR/Wモードが起動されていない状態であり、かつ、NFCI/F22から受け渡された情報が、Listen機器である通信相手がP2Pモードを起動していることを示す場合には、CPU30は、P2Pモードに対応するActivationコマンドを通信相手に送信して、通信相手からOKコマンドを受信する。これにより、Poll機器であるMFP10とListen機器である通信相手との間に、P2Pモードの通信リンクが確立される。
また、例えば、Listen機器であるMFP10の現在の状態が、P2Pモードが起動されており、CEモードが起動されていない状態であり、かつ、Poll機器である通信相手の現在の状態が、P2Pモードが起動されている状態である場合には、CPU30は、通信相手からP2Pモードに対応するActivationコマンドを受信する。この場合、CPU30は、MFP10がP2Pモードで動作すべきことを決定し、OKコマンドを通信相手に送信する。これにより、Listen機器であるMFP10とPoll機器である通信相手との間に、P2Pの通信リンクが確立される。
また、例えば、Listen機器であるMFP10の現在の状態が、CEモードが起動されており、P2Pモードが起動されていない状態であり、かつ、Poll機器である通信相手の現在の状態が、Readerモード又はWriterモードが起動されている状態である場合には、CPU32は、通信相手からR/Wモードに対応するActivationコマンドを受信する。この場合、CPU32は、MFP10がCEモードで動作すべきことを決定し、OKコマンドを通信相手に送信する。これにより、Listen機器であるMFP10とPoll機器である通信相手との間に、CEモード及びR/Wモードに対応する通信リンクが確立される。
なお、CEモード及びR/Wモードに対応する通信リンクが確立される場合には、CPU32は、さらに、通信相手から、通信相手がReaderモード又はWriterモードのどちらで動作するのかを示す情報を受信する。従って、例えば、通信相手がReaderモードで動作することを示す情報が受信される場合には、Listen機器であるMFP10とPoll機器である通信相手との間に、CEモード及びReaderモードに対応する通信リンク(以下では「MFP(CE)−相手(R)の通信リンク」と呼ぶ)が確立されると言える。また、例えば、通信相手がWriterモードで動作することを示す情報が受信される場合には、Listen機器であるMFP10とPoll機器である通信相手との間に、CEモード及びWriterモードに対応する通信リンク(以下では「MFP(CE)−相手(W)の通信リンク」と呼ぶ)が確立されると言える。
また、例えば、Poll機器であるMFP10の現在の状態が、Writerモードが起動されており、他のモードが起動されていない状態であり、かつ、NFCI/F22から受け渡された情報が、Listen機器である通信相手がP2Pモードを起動していることを示す場合には、Poll機器であるMFP10とListen機器である通信相手との間には、通信リンクは確立されない。ただし、CPU30は、通信相手がP2Pモードを起動していることを検出することができる(後述の図4のS76でYES)。
また、同様に、Poll機器であるMFP10の現在の状態が、Readerモードが起動されており、おり、他のモードが起動されていない状態であり、かつ、NFCI/F22から受け渡された情報が、Listen機器である通信相手がP2Pモードを起動していることを示す場合には、Poll機器であるMFP10とListen機器である通信相手との間には、通信リンクは確立されない。ただし、この場合も、CPU30は、通信相手がP2Pモードを起動していることを検出することができる(後述の図5のS98でYES)。
(PC8の構成)
PC8は、無線LANI/F(即ちWFD及び通常Wi−Fi用のインターフェース)を備えるが、NFCI/Fを備えていない。従って、PC8は、無線LANを利用して、MFP10と通信を実行可能であるが、NFC方式の無線通信を実行不可能である。PC8は、MFP10に機能(例えば印刷機能、スキャン機能等)を実行させるためのドライバプログラムを備える。なお、ドライバプログラムは、通常、MFP10と共に出荷されるメディアからPC8にインストールされる。ただし、変形例では、ドライバプログラムは、MFP10のベンダによって提供されるサーバからPC8にインストールされてもよい。
(AP6の構成)
AP6は、WFD方式のG/O状態の機器ではなく、無線アクセスポイント又は無線LANルータと呼ばれる通常のAPである。AP6は、複数個の機器と通常Wi−Fi接続を確立することができる。これにより、AP6と複数個の機器とを含む通常Wi−Fiネットワークが構築される。AP6は、通常Wi−Fiネットワークに属している複数個の機器のうちの1個の機器からデータを受信して、複数個の機器のうちの他の1個の機器に当該データを送信する。即ち、AP6は、通常Wi−Fiネットワークに属する一対の機器の間の通信を中継する。
(MFP10の通信処理;図2)
次いで、図2を参照して、MFP10のCPU30がプログラムに従って実行する通信処理の内容を説明する。MFP10の電源がONされると、CPU30は、図2の通信処理を開始する。CPU30は、通信処理を開始すると、S10、S12、S14、S16、S18の各判断を順次実行する。
S10では、CPU30は、MFP10で装置エラーが発生しているか否かを判断する。ここで、装置エラーは、消耗品切れ以外の理由で発生するエラーを意味する。例えば、印刷実行部16で発生する紙詰まり、印刷機構の故障等が、装置エラーの一例である。また、スキャン実行部18で発生する原稿送り機構の故障、センサの故障等も、装置エラーの一例である。S10では、CPU30は、MFP10の各部(印刷実行部16、スキャン実行部18等)の状態をチェックする。その結果、上記の装置エラーが発生していると判断される場合、CPU30は、S10でYESと判断して、S24に進む。S24では、CPU30は、CEモードを起動する。これにより、MFP10がCEモードで動作する。この際、他のモード(P2Pモード及びR/Wモード)は起動されない。次いで、S26では、CPU30は、MFP10の装置エラーを解消させるための手法を示すウェブページのURL(サポートページURL)を、NFCI/F22に登録する。具体的に言うと、CPU30は、NFCI/F22を構成するチップに、メモリ32に記憶されているサポートページURLを記憶させる。S26を終えると、CPU30は、S36に進み、後述のCEモード処理(図3参照)を実行する。一方において、MFP10で装置エラーが判断していないと判断される場合、CPU30は、S10でNOと判断して、S12に進む。
S12では、CPU30は、MFP10で消耗品エラーが発生しているか否かを判断する。消耗品エラーは、印刷実行部16のトナー(インク)、用紙等の消耗品の残量がゼロであることを意味する。CPU30は、印刷実行部16の消耗品の残量をチェックし、消耗品の残量がゼロであると判断される場合に、S12でYESと判断して、S28に進む。S28では、CPU30は、CEモードを起動する。これにより、MFP10がCEモードで動作する。この際、他のモード(P2Pモード及びR/Wモード)は起動されない。次いで、S30では、CPU30は、MFP10で使用される消耗品(インク(トナー)、用紙等)を紹介するためのウェブページのURL(消耗品ページURL)を、NFCI/F22に登録する。具体的に言うと、CPU30は、NFCI/F22を構成するチップに、メモリ32に記憶されている消耗品ページURLを記憶させる。S30を終えると、CPU30は、S36に進み、後述のCEモード処理(図3参照)を実行する。一方において、消耗品の残量がゼロではないと判断される場合に、CPU30は、S12でNOと判断して、S14に進む。
S14では、CPU30は、MFP10でアプリURL供給モードが設定されているか否かを判断する。具体的に言うと、S14では、CPU30は、メモリ32に記憶されているアプリURL供給モード設定を示す値がONであるか否かを確認する。アプリURL供給モード設定を示す値がONである場合、CPU30は、S14でYESと判断して、S32に進む。S32では、CPU30は、CEモードを起動する。これにより、MFP10がCEモードで動作する。この際、他のモード(P2Pモード及びR/Wモード)は起動されない。次いで、S34では、CPU30は、NFCI/F22に、アプリダウンロードURLを登録する。具体的に言うと、CPU30は、NFCI/F22を構成するチップに、メモリ32に記憶されているアプリダウンロードURLを記憶させる。S34を終えると、CPU30は、S36に進み、後述のCEモード処理(図3参照)を実行する。一方において、メモリ32に記憶されているアプリURL供給モード設定を示す値がOFFである場合、CPU30は、S14でNOと判断して、S16に進む。
S16では、CPU30は、書き込みジョブが存在するか否かを判断する。具体的に言うと、S16では、CPU30は、メモリ32に書き込みジョブが記憶されているか否かを判断する。上述したように、CPU30は、AP6を介してPC8から書き込みジョブを受信する場合、受信された書き込みジョブをメモリ32に記憶させる。メモリ32に書き込みジョブが記憶されている場合、CPU30は、S16でYESと判断して、S38に進む。S38では、CPU30は、Writerモードを起動する。これにより、MFP10がWriterモードで動作する。この際、他のモードは起動されない。次いで、S40では、CPU30は、後述のWriterモード処理(図4参照)を実行する。一方において、メモリ32に書き込みジョブが記憶されていない場合、CPU30は、S16でNOと判断して、S18に進む。即ち、この構成によると、MFP10は、MFP10の状態が、URL(サポートページURL、消耗品ページURL、又は、アプリダウンロードURL)を外部に送信すべき状態でなく、書き込みジョブが存在する状態であると判断される場合(S16でYES)に、Writerモードで適切に動作し得る。
S18では、CPU30は、認証が必要な印刷ジョブが存在することを監視する。具体的に言うと、S18では、CPU30は、メモリ32に印刷ジョブが記憶されているか否かを判断する。上述したように、CPU30は、AP6を介してPC8から印刷ジョブを受信する場合、受信された印刷ジョブをメモリ32に記憶させる。上述したように、MFP10は、認証カード100を用いて認証が行われない限り、印刷を実行しない。メモリ32に印刷ジョブが記憶されている場合、CPU30は、S18でYESと判断して、S42に進む。S42では、CPU30は、Readerモードを起動する。これにより、MFP10がReaderモードで動作する。この際、他のモードは起動されない。次いで、S44では、CPU30は、後述のReaderモード処理(図5参照)を実行する。一方において、メモリ32に印刷ジョブが記憶されていない場合、CPU30は、S18でNOと判断して、S20に進む。即ち、この構成によると、MFP10は、MFP10の状態が、URL(サポートページURL、消耗品ページURL、又は、アプリダウンロードURL)を外部に送信すべき状態、書き込みジョブが存在する状態、のどちらでもなく、かつ、印刷ジョブが存在する状態であると判断される場合(S18でYES)に、Readerモードで適切に動作し得る。
S20では、CPU30は、P2Pモードを起動する。これにより、MFP10がP2Pモードで動作する。この際、他のモードは起動されない。次いで、S22では、CPU30は、後述のP2Pモード処理(図6参照)を実行する。
上記の通り、本実施例では、MFP10は、図2のS10、S12、S14、S16、S18のいずれにおいてもNOと判断される場合に、MFP10の動作モードをP2Pモードに設定する(S20)。即ち、MFP10がP2Pモードで動作する場合、MFP10の状態は、URL(サポートページURL、消耗品ページURL、又は、アプリダウンロードURL)を外部に送信すべき状態、書き込みジョブが存在する状態、印刷ジョブが存在する状態、のいずれでもない。従って、本実施例の構成によると、MFP10は、MFP10の状態に応じて、適切な動作モードで動作し得る。
(CEモード処理;図3)
次いで、図3を参照して、MFP10のCPU30が実行するCEモード処理(図2のS36)の内容を説明する。CEモード処理は、CEモードで動作するMFP10のCPU30が実行する処理である。CEモード処理が開始されると、CPU30は、S50及びS54の監視を実行する。
S50では、CPU30は、MFP(CE)−相手(R)の通信リンクが確立されることを監視する。上述したように、CPU30は、通信相手(例えば携帯端末50)からReaderモードに対応するActivationコマンドを受信する場合に、MFP(CE)−相手(R)の通信リンクが確立されたと判断する。この場合、CPU30は、S50でYESと判断して、CEモード処理(図3、図2のS36)を終了する。
なお、MFP(CE)−相手(R)の通信リンクが確立される場合(S50でYES)、NFCI/F22は、確立されたMFP(CE)−相手(R)の通信リンクを利用して、登録されているURL(サポートページURL、消耗品ページURL、又は、アプリダウンロードURL)を通信相手に自動的に送信する。この構成によると、MFP10は、MFP(CE)−相手(R)の通信リンクを利用して、URL(サポートページURL、消耗品ページURL、又は、アプリダウンロードURL)を通信相手に適切に送信し得る。
S54では、CPU30は、MFP(CE)−相手(W)の通信リンクが確立されることを監視する。上述したように、CPU30は、Writerモードで動作する通信相手(例えば携帯端末50)からWriterモードに対応するActivationコマンドを受信する場合に、MFP(CE)−相手(W)の通信リンクが確立されたと判断する。この場合、CPU30は、S54でYESと判断して、S56に進む。
S56では、CPU30は、MFP(CE)−相手(W)の通信リンクを利用して、NFCI/F22を介して、通信相手から実行要求を受信することを監視する。実行要求は、MFP10の特定の機能(スキャン機能、印刷機能)の実行を求めるリクエスト信号である。CPU30は、Writerモードで動作する通信相手から、実行要求を受信する場合に、S56でYESと判断して、S58に進む。一方、所定のタイムアウト期間が経過しても通信相手から実行要求を受信できない場合、又は、通信相手から実行要求以外の情報が受信される場合には、CPU30は、S56でNOと判断して、S64に進む。
S58では、CPU30は、MFP10が、実行要求が示す特定の機能を実行可能であるか否かを判断する。例えば、特定の機能が印刷である場合、S58では、CPU30は、印刷実行部16の状態をチェックし、紙詰まり、印刷機構の故障等の装置エラー、又は、トナー(インク)切れ、用紙切れ等の消耗品エラーが発生しているか否かを判断する。その結果、印刷実行部16で装置エラーと消耗品エラーのいずれも発生していない場合、CPU30は、機能実行可能であると判断する。なお、特定の機能が印刷である場合に、スキャン実行部18で装置エラーが発生していたとしても、CPU30は、機能実行可能(印刷可能)であると判断する。この場合、CPU30は、S58でYESと判断し、S60に進む。一方、特定の機能が印刷である場合に、印刷実行部16で装置エラーと消耗品エラーの少なくとも一方が発生していると、CPU30は、機能実行可能でないと判断する。この場合、CPU30は、S58でNOと判断し、S64に進む。
同様に、例えば、特定の機能がスキャンである場合、S58では、CPU30は、スキャン実行部18の状態をチェックし、装置エラー(原稿送り機構の故障、センサの故障等)が発生しているか否かを判断する。その結果、スキャン実行部18で装置エラーが発生していない場合、CPU30は、機能実行可能であると判断する。なお、特定の機能がスキャンである場合に、印刷実行部16で装置エラー又は消耗品エラーが発生していたとしても、CPU30は、機能実行可能(スキャン可能)であると判断する。この場合、CPU30は、S58でYESと判断し、S60に進む。一方、特定の機能がスキャンである場合に、スキャン実行部18で装置エラーが発生していると、CPU30は、機能実行可能でないと判断する。この場合、CPU30は、S58でNOと判断し、S64に進む。
S64では、CPU30は、特定の機能を実行可能でない旨のメッセージを含むエラー画面を表示部14に表示させる。S64を終えると、CPU30は、CEモード処理(図3、図2のS36)を終了する。
S60では、CPU30は、CEモードを停止し、P2Pモードを起動させる。具体的に言うと、まず、CPU30は、MFP(CE)−相手(W)の通信リンクを切断する。即ち、CPU30は、Deactivationコマンド及びOKコマンドの通信を実行する。NFC規格では、Poll機器がDeactivationコマンドを送信すること、即ち、Listen機器がDeactivationコマンドを受信することが決められている。MFP(CE)−相手(W)の通信リンクの切断が実行される際には、通信相手がPoll機器であり、MFP10がListen機器である。このために、CPU30は、NFCI/F22を介して、通信相手からDeactivationコマンドを受信し、NFCI/F22を介して、OKコマンドを通信相手に送信する。この結果、MFP(CE)−相手(W)の通信リンクが切断される。MFP(CE)−相手(W)の通信リンクが切断された後で、CPU30は、CEモードを停止し、P2Pモードを起動させる。この結果、MFP10は、P2Pモードで動作する。次いで、CPU30は、S62に進み、後述のP2Pモード処理(図6参照)を実行する。S62のP2Pモード処理を終了すると、CPU30は、CEモード処理を終了する。
なお、MFP(CE)−相手(R)の通信リンクと、MFP(CE)−相手(W)の通信リンクのどちらも確立されない場合には、CPU30は、S50及びS54でNOと判断して、CEモード処理を終了する。
CEモード処理(図3、図2のS36)が終了すると、CPU30は、図2のS10に戻り、再びS10の判断を実行する。その後、図2のS12、S14、S16のいずれかでYESと判断されると、CPU30は、再び図3のCEモード処理を実行する。
(Writerモード処理;図4)
次いで、図4を参照して、MFP10のCPU30が実行するWriterモード処理(図2のS40)の内容を説明する。Writerモード処理は、Writerモードで動作するMFP10のCPU30が実行する処理である。Writerモード処理が開始されると、CPU30は、S70及びS76の監視を実行する。
S70では、CPU30は、MFP(W)−相手(CE)の通信リンクが確立されることを監視する。CPU30は、CEモードで動作する通信相手(例えば認証カード100)に、Writerモードに対応するActivationコマンドを送信して、通信相手からOKコマンドを受信する場合に、MFP(W)−相手(CE)の通信リンクが確立されたと判断する。この場合、CPU30は、S70でYESと判断し、S72に進む。
S72では、CPU30は、携帯端末(W)−相手(CE)の通信リンクを利用して、メモリ32に記憶されている書き込みジョブに含まれる書き込みデータ(例えば、ユーザが指示したURL、ユーザが入力したテキスト等)を通信相手(例えば認証カード100)に送信する。続くS74では、CPU30は、メモリ32内の書き込みジョブを削除する。S74を終えると、CPU30は、Writerモード処理(図4、図2のS40)を終了する。
S76では、CPU30は、P2Pモードで動作する機器を検出することを監視する。上記の通り、MFP10はWriterモードで動作している。即ち、MFP10はPoll機器である。また、上述したように、P2Pモードで動作する機器は、Poll動作と、Listen動作を繰り返し実行している。そのため、P2Pモードで動作する機器(以下では、「特定の機器」と呼ぶ)がListen動作を行っている間に、特定の機器は、MFP10のNFCI/F22が送信するポーリング信号を受信する。特定の機器は、ポーリング信号を受信すると、MFP10のNFCI/F22に対して、レスポンス信号を送信する。MFP10のNFCI/F22は、特定の機器からレスポンス信号を受信すると、特定の機器に、どのモードで動作しているのかを問い合わせるための問合信号を送信する。特定の機器は、問合信号を受信すると、P2Pモードで動作していることを示す起動モード信号をMFP10のNFCI/F22に送信する。MFP10のNFCI/F22は、特定の機器からP2Pモードで動作していることを示す起動モード信号を受信する。MFP10のNFCI/F22は、特定の機器がP2Pモードで動作していることを示す起動モード信号をCPU30に受け渡す。この場合、CPU30は、S76でYESと判断して、S78に進む。
S78では、CPU30は、Writerモードを停止し、P2Pモードを起動させる。この結果、MFP10は、Writerモードで動作する。次いで、CPU30は、S80に進み、後述のP2Pモード処理(図6参照)を実行する。S80のP2Pモード処理を終了すると、CPU30は、Writerモード処理を終了する。
なお、MFP(W)−相手(CE)の通信リンクが確立されず、かつ、P2Pモードで動作する機器も検出されない場合には、CPU30は、S70及びS76でNOと判断して、Writerモード処理を終了する。
Writerモード処理(図4、図2のS40)が終了すると、CPU30は、図2のS10に戻り、再びS10の判断を実行する。その後、図2のS16でYESと判断されると、CPU30は、再び図4のWriterモード処理を実行する。
(Readerモード処理;図5)
次いで、図5を参照して、MFP10のCPU30が実行するReaderモード処理(図2のS44)の内容を説明する。Readerモード処理は、Readerモードで動作するMFP10のCPU30が実行する処理である。Readerモード処理が開始されると、CPU30は、S90及びS98の監視を実行する。
S90では、CPU30は、MFP(R)−相手(CE)の通信リンクが確立されることを監視する。CPU30は、CEモードで動作する通信相手(例えば認証カード100)に、Readerモードに対応するActivationコマンドを送信して、通信相手からOKコマンドを受信する場合に、MFP(R)−相手(CE)の通信リンクが確立されたと判断する。この場合、CPU30は、S90でYESと判断し、S92に進む。
S92では、CPU30は、MFP(R)−相手(CE)の通信リンクを利用して、NFCI/F22を介して、通信相手(例えば認証カード100)から認証データを受信する。次いで、S94では、CPU30は、受信された認証データを用いて認証処理を実行する。認証が成功する場合、CPU30は、印刷ジョブに含まれる印刷データが表す画像を印刷実行部16に印刷させる。印刷が完了すると、S96に進む。S96では、CPU30は、メモリ32内の印刷ジョブを削除する。S96を終えると、CPU30は、Readerモード処理(図5、図2のS44)を終了する。
S98では、CPU30は、P2Pモードで動作する機器(特定の機器)を検出することを監視する。上記の通り、MFP10はReaderモードで動作している。即ち、MFP10はPoll機器である。また、上述したように、P2Pモードで動作する特定の機器は、Poll動作と、Listen動作を繰り返し実行している。そのため、特定の機器がListen動作を行っている間に、特定の機器は、MFP10のNFCI/F22が送信するポーリング信号を受信する。特定の機器は、ポーリング信号を受信すると、MFP10のNFCI/F22に対して、レスポンス信号を送信する。MFP10のNFCI/F22は、特定の機器からレスポンス信号を受信すると、特定の機器に、どのモードで動作しているのかを問い合わせるための問合信号を送信する。特定の機器は、問合信号を受信すると、P2Pモードで動作していることを示す起動モード信号をMFP10のNFCI/F22に送信する。MFP10のNFCI/F22は、特定の機器からP2Pモードで動作していることを示す起動モード信号を受信する。MFP10のNFCI/F22は、特定の機器がP2Pモードで動作していることを示す情報をCPU30に受け渡す。この場合、CPU30は、S98でYESと判断して、S100に進む。
S100では、CPU30は、Readerモードを停止し、P2Pモードを起動させる。この結果、MFP10は、Readerモードで動作する。次いで、CPU30は、S102に進み、後述のP2Pモード処理(図6参照)を実行する。S102のP2Pモード処理を終了すると、CPU30は、Readerモード処理を終了する。
なお、MFP(R)−相手(CE)の通信リンクが確立されず、かつ、P2Pモードで動作する機器も検出されない場合には、CPU30は、S90及びS98でNOと判断して、Readerモード処理を終了する。
Readerモード処理(図5、図2のS44)が終了すると、CPU30は、図2のS10に戻り、再びS10の判断を実行する。その後、図2のS18でYESと判断されると、CPU30は、再び図5のReaderモード処理を実行する。
(P2Pモード処理;図6)
次いで、図6を参照して、MFP10のCPU30が実行するP2Pモード処理(図2のS22、図3のS62、図4のS80、図5のS102)の内容を説明する。P2Pモード処理は、P2Pモードで動作するMFP10のCPU30が実行する処理である。P2Pモード処理が開始されると、CPU30は、S110の監視を実行する。
S110では、CPU30は、P2Pの通信リンクが確立されることを監視する。上述したように、例えば、MFP10がPoll機器である場合には、CPU30は、P2Pモードに対応するActivationコマンドをP2Pモードで動作する通信相手(例えば携帯端末50)に送信して、通信相手からOKコマンドを受信する場合に、P2Pの通信リンクが確立されたと判断する。この場合、CPU30は、S110でYESと判断して、S112に進む。また、例えば、MFP10がListen機器である場合には、CPU30は、P2Pモードで動作する通信相手(例えば携帯端末50)からP2Pモードに対応するActivationコマンドを受信して、OKコマンドを通信相手に送信する場合に、P2Pの通信リンクが確立されたと判断する。この場合も、CPU30は、S110でYESと判断して、S112に進む。
S112では、CPU30は、P2Pの通信リンクを利用して、NFCI/F22を介して、通信相手(例えば携帯端末50)と双方向通信(以下では、「P2P通信」と呼ぶ場合がある)を実行する。具体的に言うと、まず、CPU30は、通信相手から、特定の機能の実行を要求する実行要求と、通信相手の属するネットワークに関するネットワーク情報と、を受信する。ただし、CPU30は、S112の時点で、通信相手から既に実行要求を受信している場合(図3のS56でYES、S58でYES)には、通信相手から、改めて実行要求を受信しない。ネットワーク情報のより詳しい内容は後で説明する。次いで、CPU30は、通信相手に対して、自身が属するネットワークの無線設定を示す設定情報(認証方式、暗号化方式、パスワード、SSID、BSSID等)と、設定変更不要を示す変更不要情報と、のうちの一方を送信する。S112で実行される双方向通信は、以下で説明するように、通信相手がネットワークに属しているか否かによって内容が異なる。以下では、S112で実行される双方向通信の内容を、場合を分けて説明する。
(通信相手がネットワークに属している場合の双方向通信(S112))
通信相手がネットワークに属している場合、まず、通信相手は、MFP10に対して、特定の機能の実行を要求する実行要求と、自身が属するネットワーク(無線LAN又はWFDネットワーク)の無線設定(SSID、BSSID)と、を送信する。ただし、上述したように、通信相手は、既にMFP10に実行要求を送信している場合(図3のS56でYES、S58でYES)には、改めてMFP10に実行要求を送信しない。CPU30は、実行要求と、通信相手が属するネットワークの無線設定と、を受信する。この場合、通信相手が属するネットワークの無線設定が、通信相手の「ネットワーク情報」である。
次いで、CPU30は、受信された無線設定に基づいて、MFP10が通信相手と同一のネットワークに属しているか否かを判断する。即ち、受信済のSSID、BSSIDそれぞれが、MFP10が属するネットワーク無線設定に含まれるSSID、BSSIDそれぞれと一致するかを判断する。MFP10が通信相手と同一のネットワークに属していると判断される場合、CPU30は、通信相手に対して、設定変更が不要であることを示す変更不要情報を送信する。
これに対し、MFP10が属しているネットワークと、通信相手が属しているネットワークとが異なると判断される場合、CPU30は、通信相手に対して、MFP10がG/OであるWFDネットワークの無線設定(認証方式、暗号化方式、パスワード、SSID、BSSID)を通信相手に送信する。例えば、MFP10が、G/OとしてWFDネットワークに属している場合には、CPU30は、当該WFDネットワークで利用されている無線設定を通信相手に送信する。また、例えば、MFP10が、MFP10自身がG/OであるWFDネットワークに属していない場合には、CPU30は、MFP10をG/Oに移行させてWFDネットワークを新たに形成し、当該WFDネットワークの無線設定を通信相手に送信する。
(通信相手がネットワークに属していない場合の双方向通信(S112))
通信相手がネットワークに属していない場合、まず、通信相手は、MFP10に対して、特定の機能の実行を要求する実行要求と、自身がネットワークに属していないことを示す情報と、を送信する。ただし、この場合も、通信相手は、既にMFP10に実行要求を送信している場合(図3のS56でYES、S58でYES)には、改めてMFP10に実行要求を送信しない。CPU30は、実行要求と、通信相手がネットワークに属していないことを示す情報と、を受信する。この場合、通信相手がネットワークに属していないことを示す情報が、通信相手の「ネットワーク情報」である。
次いで、CPU30は、MFP10自身がG/OであるWFDネットワークに属しているか否かを判断する。MFP10自身がG/OであるWFDネットワークに属している場合、CPU30は、当該WFDネットワークで利用されている無線設定を通信相手に送信する。
これに対し、MFP10自身がG/OであるWFDネットワークに属していない場合、CPU30は、G/Oに移行してWFDネットワークを新たに形成し、当該WFDネットワークの無線設定を通信相手に送信する。
S112の双方向通信の結果、MFP10と通信相手は共通の無線設定を利用可能となる。CPU30は、共通の無線設定を利用して、通信相手との間で、無線LANI/F20を利用した無線通信リンク(WFD接続又は通常Wi−Fi接続)を確立する。
次いで、S114では、CPU30は、実行要求が示す特定の機能を実行する。具体的に言うと、S114では、CPU30は、通信相手との間で、確立された無線通信リンクを利用して、無線LANI/F20を介して機能実行の対象となる対象データを通信する。例えば、特定の機能が印刷である場合、通信相手からMFP10に対して印刷データ(対象データ)が送信される。CPU30は、対象データを受信すると、対象データが示す画像を、印刷実行部16に印刷させる。また、例えば、特定の機能がスキャンである場合、CPU30は、スキャン実行部18の原稿送り機構にセットされた原稿にスキャンさせ、スキャンデータ(対象データ)を生成する。CPU30は、生成された対象データを、通信相手に送信する。
S114を終えると、CPU30は、P2Pモード処理を終了する。なお、P2Pの通信リンクが確立されない場合にも、CPU30は、S110でNOと判断して、P2Pモード処理を終了する。P2Pモード処理(図2のS22、図3のS62、図4のS80、図5のS102)が終了すると、CPU30は、図2のS10に戻り、再びS10の判断を実行する。その後、図2のS18でNO、図3のS58でYES、図4のS76でYES、図5のS98でYESのいずれかの場合、CPU30は、再び図6のP2Pモード処理を実行する。
(MFP10がCEモードで動作する場合の通信;図7)
図7を参照して、MFP10がCEモードで動作する場合に、MFP10と携帯端末50、80との間で実行される通信の例について説明する。図7では、CEモードで動作するMFP10とReaderモードで動作する携帯端末50との間で通信が行われる例、及び、CEモードで動作するMFP10とP2Pモードで動作する携帯端末80との間で通信が行われる例について説明する。
図7の例では、MFP10の電源がONされた後、操作部12が操作されてアプリURL供給モード設定がONされる。これにより、MFP10のメモリ32内に、アプリURL供給モード設定「ON」を示す値が記憶される(図2のS14でYES)。その結果、MFP10が、CEモードで動作する(図2のS32)。次いで、MFP10は、NFCI/F22に、アプリダウンロードURLを登録する(図2のS34)。次いで、MFP10は、MFP(CE)−相手(W)の通信リンクと、MFP(CE)−相手(R)の通信リンクとのうちのいずれか一方が確立されることを監視する(図3のS50、S54)。
図7の例では、携帯端末50には、MFPアプリケーションがインストールされていない。携帯端末50は、電源がONされると、Readerモードが起動されており、他のモードが起動されていない初期状態に移行する。次いで、携帯端末50は、携帯端末(R)−相手(CE)の通信リンクが確立されることを監視する。
この状態で、携帯端末50がMFP10に近づけられることにより、NFCI/F22、58が互いに通信可能な距離(例えば10cm未満)まで近づく。その場合、MFP10と携帯端末50との間で、NFCI/F22、58を介してMFP10(CE)−携帯端末50(R)の通信リンクが確立する(図3のS50でYES)。
MFP10と携帯端末50との間にMFP10(CE)−携帯端末50(R)の通信リンクが確立すると、MFP10のNFCI/F22は、MFP10(CE)−携帯端末50(R)の通信リンクを利用して、NFCI/F22に登録されたアプリダウンロードURLを携帯端末50に送信する。携帯端末50は、アプリダウンロードURLを受信する。
携帯端末50は、受信されたアプリダウンロードURLに従って、アプリダウンロードURLが示すサーバ(MFP10のベンダが提供するサーバ)にアクセスし、MFP用アプリケーションをダウンロードする。次いで、携帯端末50は、ダウンロードされたMFP用アプリケーションをメモリ64にインストールする。インストールが完了すると、携帯端末50は、MFP用アプリケーションに従った各種処理を実行可能となる。
一方において、携帯端末80には、MFPアプリケーションが既にインストールされている。携帯端末80は、MFPアプリケーションが起動された後に、操作部において機能実行指示(スキャン指示、印刷指示)が入力されると、P2Pモードが起動されており、他のモードが起動されていない状態に移行する。
この状態で、携帯端末80がMFP10に近づけられることにより、P2Pモードで動作する携帯端末80は、MFP10がCEモードで動作していることを検出できる。上述したように、P2Pモードで動作する携帯端末は、Poll動作と、Listen動作を繰り返し実行する。また、CEモードで動作するMFP10はListen動作を行うListen機器である。携帯端末80がPoll動作を行う場合、Listen機器であるMFP10にポーリング信号を送信する。MFP10は携帯端末80からポーリング信号を受信すると、レスポンス信号を携帯端末80に送信する。携帯端末80はMFP10からレスポンス信号を受信すると、MFP10にどのモードで動作しているのかを問い合わせるための問合信号を送信する。MFP10は問合信号を受信すると、携帯端末80に、自身がCEモードで動作していることを示す起動モード信号を送信する。これにより、携帯端末80は、MFP10がCEモードで動作することを検出できる。
携帯端末80は、MFP10がCEモードで動作することを検出すると、P2Pモードを停止し、Writerモードを起動させる。次いで、携帯端末80は、携帯端末(W)−相手(CE)の通信リンクが確立されることを監視する。
この状態で、MFP10と携帯端末80が互いにNFC通信可能な距離内に存在すると、MFP10と携帯端末80との間に、MFP10(CE)−携帯端末80(W)の通信リンクが確立する(図3のS54でYES)。
MFP10と携帯端末80との間にMFP10(CE)−携帯端末80(W)の通信リンクが確立すると、携帯端末80は、MFP10(CE)−携帯端末80(W)の通信リンクを利用して、特定の機能の実行を要求する実行要求をMFP10に送信する。携帯端末80は、実行要求を送信すると、Writerモードを停止し、P2Pモードを起動させる。次いで、携帯端末80は、P2Pの通信リンクが確立されることを監視する。
MFP10は、NFCI/F22を介して、実行要求を受信する(図3のS56でYES)。次いで、MFP10は、実行要求が示す特定の機能を実行可能であるか否か判断する(図3のS58)。図7の例では、MFP10は特定の機能を実行可能であると判断する(図3のS58でYES)。その場合、MFP10は、CEモードを停止し、P2Pモードを起動させる(図3のS60)。この場合、MFP10と携帯端末80は、MFP10(CE)−携帯端末80(W)の通信リンクを切断する。次いで、MFP10は、P2Pの通信リンクが確立されることを監視する(図6のS110)。
この状態で、MFP10と携帯端末80が互いにNFC通信可能な距離内に存在すると、MFP10と携帯端末80との間に、P2Pの通信リンクが確立される(図6のS110でYES)。次いで、MFP10と携帯端末80との間で、P2Pの通信リンクを利用して、P2P通信が実行される(図6のS112)。即ち、まず、携帯端末80は、MFP10に対して、ネットワーク情報(携帯端末80が属するネットワークの無線設定、又は、携帯端末80がネットワークに属していないことを示す情報)を送信する。なお、図7の例では、携帯端末80は、既にMFP10に実行要求を送信しているため、この時点では再度実行要求をMFP10に送信しない。次いで、MFP10は、携帯端末80に対して、MFP10自身がG/OであるWFDネットワークの無線設定、又は、変更不要情報を送信する。この構成によると、MFP10は、MFP10の動作モードを、CEモードからP2Pモードに適切に変更することができる。その結果、MFP10は、P2Pの通信リンクを利用して、携帯端末80との間で適切にP2P通信を実行し得る。
上記のP2P通信の結果、MFP10と携帯端末80とが共通の無線設定を利用可能となる。MFP10と携帯端末80は、共通の無線設定を利用して、無線LANI/F20及び携帯端末80の無線LANI/Fを介した無線通信リンク(WFD接続又は通常Wi−Fi接続)を確立する。
次いで、MFP10及び携帯端末80は、確立された無線通信リンクを利用して、無線LANI/F20及び携帯端末80の無線LANI/Fを介して、実行要求が示す特定の機能の実行の対象データを通信する(図6のS114)。例えば、特定の機能が印刷である場合、携帯端末80は、MFP10に対して印刷データ(対象データ)を送信する。MFP10は、対象データを受信すると、対象データが示す画像を、印刷実行部16に印刷させる。また、特定の機能がスキャンである場合、MFP10は、スキャン実行部18の原稿送り機構にセットされた原稿をスキャンし、スキャンデータ(対象データ)を生成する。MFP10は、生成された対象データを、携帯端末80に送信する。
機能の実行が終了すると、携帯端末80は、起動されているMFP用アプリケーションを終了させる。
(MFP10がWriterモードで動作する場合の通信;図8)
図8を参照して、MFP10がWriterモードで動作する場合に、MFP10と認証カード100、携帯端末80との間で実行される通信の例について説明する。図8では、Writerモードで動作するMFP10とCEモードで動作する認証カード100との間で通信が行われる例、及び、Writerモードで動作するMFP10とP2Pモードで動作する携帯端末80との間で通信が行われる例について説明する。
図8の例では、MFP10の電源がONされた後、MFP10は、AP6を介してPC8から書き込みジョブを受信する。MFP10は、受信された書き込みジョブをメモリ32に記憶させる(図2のS16でYES)。その結果、MFP10が、Writerモードで動作する(図2のS38)。次いで、MFP10は、MFP(W)−相手(CE)の通信リンクが確立されることを監視するとともに、P2Pモードで動作する機器を検出することを監視する(図4のS70、S76)。
認証カード100は、常にCEモードで動作する。認証カード100がMFP10に近づけられることにより、MFP10と認証カード100との間で、MFP10(W)−認証カード100(CE)の通信リンクが確立する(図4のS70でYES)。
MFP10と認証カード100との間にMFP10(W)−認証カード100(CE)の通信リンクが確立すると、MFP10は、MFP10(W)−認証カード100(CE)の通信リンクを利用して、メモリ32に記憶された書き込みジョブに含まれる書き込みデータ(例えば、ユーザが指示したURL、ユーザが入力したテキスト等)を認証カード100に送信する(図4のS72)。認証カード100は、書き込みデータを受信し、受信された書き込みデータを記憶する。
MFP10は、書き込みデータを送信すると、メモリ32内の書き込みジョブを削除する(図4のS74)。
図8の例でも、携帯端末80には、MFPアプリケーションが既にインストールされている。携帯端末80は、MFPアプリケーションが起動された後に、操作部において機能実行指示(スキャン指示、印刷指示)が入力されると、P2Pモードで動作する。
この状態で、携帯端末80がMFP10に近づけられると、Writerモードで動作するMFP10は、携帯端末80がP2Pモードで動作していることを検出できる。Writerモードで起動するMFP10は、Poll動作を行うPoll機器である。また、P2Pモードで動作する携帯端末80は、Poll動作と、Listen動作を繰り返し実行する。携帯端末80がListen動作を行っている間、携帯端末80は、Poll機器であるMFP10が送信するポーリング信号を受信する。携帯端末80は、ポーリング信号を受信すると、MFP10に対して、レスポンス信号を送信する。MFP10は携帯端末80からレスポンス信号を受信すると、携帯端末80にどのモードで動作しているのかを問い合わせるための問合信号を送信する。携帯端末80は問合信号を受信すると、MFP10に、自身がP2Pモードで動作していることを示す起動モード信号を送信する。これにより、MFP10は、携帯端末80がP2Pモードで動作することを検出できる(図4のS76でYES)。
MFP10は、P2Pモードで動作する携帯端末80を検出すると、Writerモードを停止し、P2Pモードを起動させる(図4のS78)。次いで、MFP10は、P2Pの通信リンクが確立されることを監視する(図6のS110)。
この状態で、MFP10と携帯端末80が互いにNFC通信可能な距離内に存在すると、MFP10と携帯端末80との間に、P2Pの通信リンクが確立される(図6のS110でYES)。次いで、MFP10と携帯端末80との間で、P2Pの通信リンクを利用して、P2P通信が実行される(図6のS112)。即ち、まず、携帯端末80は、MFP10に対して、特定の機能の実行を要求する実行要求、及び、ネットワーク情報(携帯端末80が属するネットワークの無線設定、又は、携帯端末80がネットワークに属していないことを示す情報)を送信する。次いで、MFP10は、携帯端末80に対して、MFP10自身がG/OであるWFDネットワークの無線設定、又は、変更不要情報を送信する。この構成によると、MFP10は、MFP10の動作モードを、WriterモードからP2Pモードに適切に変更することができる。その結果、MFP10は、P2Pの通信リンクを利用して、携帯端末80との間で適切にP2P通信を実行し得る。
上記のP2P通信の結果、MFP10と携帯端末80とが共通の無線設定を利用可能となる。MFP10と携帯端末80は、共通の無線設定を利用して、無線LANI/F20及び携帯端末80の無線LANI/Fを介した無線通信リンク(WFD接続又は通常Wi−Fi接続)を確立する。
次いで、MFP10及び携帯端末80は、確立された無線通信リンクを利用して、無線LANI/F20及び携帯端末80の無線LANI/Fを介して、実行要求が示す特定の機能の実行の対象データを通信する(図6のS114)。例えば、特定の機能が印刷である場合、携帯端末80は、MFP10に対して印刷データ(対象データ)を送信する。MFP10は、対象データを受信すると、対象データが示す画像を、印刷実行部16に印刷させる。また、特定の機能がスキャンである場合、MFP10は、スキャン実行部18の原稿送り機構にセットされた原稿をスキャンし、スキャンデータ(対象データ)を生成する。MFP10は、生成された対象データを、携帯端末80に送信する。
機能の実行が終了すると、携帯端末80は、起動されているMFP用アプリケーションを終了させる。
(MFP10がReaderモードで動作する場合の通信;図9)
図9を参照して、MFP10がReaderモードで動作する場合に、MFP10と認証カード100、携帯端末80との間で実行される通信の例について説明する。図9では、Readerモードで動作するMFP10とCEモードで動作する認証カード100との間で通信が行われる例、及び、Readerモードで動作するMFP10とP2Pモードで動作する携帯端末80との間で通信が行われる例について説明する。
図9の例では、MFP10の電源がONされた後、MFP10は、AP6を介してPC8から印刷ジョブを受信する。MFP10は、受信された印刷ジョブをメモリ32に記憶させる(図2のS18でYES)。その結果、MFP10は、Readerモードで動作する(図2のS42)。次いで、MFP10は、MFP(R)−相手(CE)の通信リンクが確立されることを監視するとともに、P2Pモードで動作する機器を検出することを監視する(図5のS90、S98)。
上述したように、認証カード100は、常にCEモードで動作する。認証カード100がMFP10に近づけられることにより、MFP10と認証カード100との間で、MFP10(R)−認証カード100(CE)の通信リンクが確立する(図5のS90でYES)。
MFP10と認証カード100との間にMFP10(R)−認証カード100(CE)の通信リンクが確立すると、MFP10は、MFP10(R)−認証カード100(CE)の通信リンクを利用して、認証カード100から、認証カード100に記憶されている認証データを受信する(図5のS92)。
次いで、MFP10は、受信された認証データを用いて認証処理を実行する(図5のS94)。図9の例では、認証が成功する。認証が成功すると、MFP10は、印刷ジョブに含まれる印刷データが表す画像を印刷実行部16に印刷させる。印刷が完了すると、MFP10は、メモリ32内の印刷ジョブを削除する(図5のS96)。
図9の例でも、携帯端末80には、MFPアプリケーションが既にインストールされている。携帯端末80は、MFPアプリケーションが起動された後に、操作部において機能実行指示(スキャン指示、印刷指示)が入力されると、P2Pモードで動作する。
この状態で、携帯端末80がMFP10に近づけられると、Readerモードで動作するMFP10は、携帯端末80がP2Pモードで動作していることを検出できる。Readerモードで起動するMFP10は、Poll動作を行うPoll機器である。また、P2Pモードで動作する携帯端末80は、Poll動作と、Listen動作を繰り返し実行する。携帯端末80がListen動作を行っている間、携帯端末80は、Poll機器であるMFP10が送信するポーリング信号を受信する。携帯端末80は、ポーリング信号を受信すると、MFP10に対して、レスポンス信号を送信する。MFP10は携帯端末80からレスポンス信号を受信すると、携帯端末80にどのモードで動作しているのかを問い合わせるための問合信号を送信する。携帯端末80は問合信号を受信すると、MFP10に、自身がP2Pモードで動作していることを示す起動モード信号を送信する。これにより、MFP10は、携帯端末80がP2Pモードで動作することを検出できる(図5のS98でYES)。
MFP10は、P2Pモードで動作する携帯端末80を検出すると、Readerモードを停止し、P2Pモードを起動させる(図5のS100)。次いで、MFP10は、P2Pの通信リンクが確立されることを監視する(図6のS110)。
この状態で、MFP10と携帯端末80が互いにNFC通信可能な距離内に存在すると、MFP10と携帯端末80との間に、P2Pの通信リンクが確立される(図6のS110でYES)。次いで、MFP10と携帯端末80との間で、P2Pの通信リンクを利用して、P2P通信が実行される(図6のS112)。ここで行われるP2P通信の内容は、図8の例と同様であるため、詳しい説明を省略する。この構成によると、MFP10は、MFP10の動作モードを、ReaderモードからP2Pモードに適切に変更することができる。その結果、MFP10は、P2Pの通信リンクを利用して、携帯端末80との間で適切にP2P通信を実行し得る。
上記のP2P通信の結果、MFP10と携帯端末80とが共通の無線設定を利用可能となる。図8の例と同様に、MFP10と携帯端末80は、共通の無線設定を利用して、無線LANI/F20及び携帯端末80の無線LANI/Fを介した無線通信リンク(WFD接続又は通常Wi−Fi接続)を確立する。次いで、MFP10及び携帯端末80は、確立された無線通信リンクを利用して、無線LANI/F20及び携帯端末80の無線LANI/Fを介して、実行要求が示す特定の機能の実行の対象データを通信する(図6のS114)。この通信の内容も、図8の例と同様であるため、詳しい説明を省略する。
機能の実行が終了すると、携帯端末80は、起動されているMFP用アプリケーションを終了させる。
(MFP10がP2Pモードで動作する場合の通信;図10)
図10を参照して、MFP10がP2Pモードで動作する場合に、P2Pモードで動作する携帯端末50との間で実行される通信の例について説明する。
図10の例では、MFP10の電源がONされた後、MFP10は、P2Pモードで動作する(図2のS18でNO、S20)。次いで、MFP10は、P2Pの通信リンクが確立することを監視する(図6のS110)。
また、図10の例では、携帯端末50には、MFPアプリケーションが既にインストールされている。携帯端末50は、MFPアプリケーションが起動された後に、操作部52において機能実行指示(スキャン指示、印刷指示)が入力されると、P2Pモードが起動されており、他のモードが起動されていない状態に移行する。
この状態で、携帯端末50がMFP10に近づけられると、MFP10と携帯端末50との間に、P2Pの通信リンクが確立される(図6のS110でYES)。次いで、MFP10と携帯端末50との間で、P2Pの通信リンクを利用して、P2P通信が実行される(図6のS112)。ここで行われるP2P通信の内容も、図8、図9の例と同様であるため、詳しい説明を省略する。
上記のP2P通信の結果、MFP10と携帯端末50とが共通の無線設定を利用可能となる。図8、図9の例と同様に、MFP10と携帯端末50は、共通の無線設定を利用して、無線LANI/F20、56を介した無線通信リンク(WFD接続又は通常Wi−Fi接続)を確立する。次いで、MFP10及び携帯端末50は、確立された無線通信リンクを利用して、無線LANI/F20、56を介して、実行要求が示す特定の機能の実行の対象データを通信する(図6のS114)。この通信の内容も、図8、図9の例と同様であるため、詳しい説明を省略する。
機能の実行が終了すると、携帯端末50は、起動されているMFP用アプリケーションを終了させる。
(本実施例の効果)
図2を参照して説明したように、本実施例では、MFP10は、URL(サポートページURL、消耗品ページURL、又は、アプリダウンロードURL)が外部に送信されるべき状態(装置エラーが発生している場合、消耗品エラーが発生している場合、又は、アプリ供給モードが設定されている場合)であると判断される場合(図2のS10でYES、S12でYES、又は、S14でYES)に、MFP10をCEモードで動作させる(S24、S28、又は、S32)。図7に示すように、CEモードで動作するMFP10と、Readerモードで動作する携帯端末50との間でMFP10(CE)−携帯端末50(R)の通信リンクが確立される場合(図3のS50でYES)、MFP10のNFCI/F22は、MFP10(CE)−携帯端末50(R)の通信リンクを利用して、URLを携帯端末に送信する。一方、MFP10は、URLが外部に送信されるべき状態でないと判断される場合、(図2のS10でNO、S12でNO、S14でNO)、MFP10を、CEモード以外の動作モード(P2Pモード、Writerモード、又は、Readerモード)で動作させる(S20、S38、S42)。MFP10は、動作モードに応じた処理を実行する(図7〜図10参照)。即ち、本実施例のMFP10は、MFP10の状態が、URLが外部に送信されるべき状態であると判断されるか否かに応じて、適切な動作モードで動作し得る。その結果、MFP10は、外部装置(携帯端末50、80、認証カード100)との間で適切な通信を実行し得る。従って、本実施例のMFP10は、MFP10の状態に応じて適切に動作し得る。
(対応関係)
MFP10が「通信装置」の一例である。携帯端末50、80が「第1の外部装置」、「第3の外部装置」、「第4の外部装置」の一例である。携帯端末50、80、認証カード100が「第2の外部装置」の一例である。P2Pモード、Readerモード、Writerモードが「第1のモード」の一例である。P2Pモード、CEモードが「第2のモード」の一例である。URL(サポートページURL、消耗品ページURL、アプリダウンロードURLのいずれか)が「特定のデータ」の一例である。実行要求、携帯端末50(80)のネットワーク情報、及び、MFP10が送信する無線設定又は変更不要情報が「第1のデータ」の一例である。認証データ(図9参照)が「第2のデータ」の一例である。書き込みデータ(図8参照)が「第3のデータ」の一例である。装置エラーが発生している状態(図2のS10でYES)、消耗品エラーが発生している状態(図2のS12でYES)、アプリURL供給モードが設定されている状態(図2のS14でYES)が「第1の状態」の一例である。印刷ジョブが存在する状態(図2のS18でYES)が「第2の状態」の一例である。書き込みジョブが存在する状態(図2のS16でYES)が「第3の状態」の一例である。MFP10(CE)−携帯端末50(R)(図7参照)の通信リンクが「第1種の通信リンク」の一例である。MFP10(P2P)−携帯端末50(P2P)の通信リンク(図10参照)、MFP10(R)―認証カード(CE)の通信リンク(図9参照)、MFP(W)−携帯端末(CE)の通信リンク(図8参照)が「第2種の通信リンク」の一例である。MFP10(P2P)−携帯端末80(P2P)の通信リンク(図9、図8参照)が「第3種の通信リンク」の一例である。MFP10(CE)−携帯端末80(W)の通信リンク(図7参照)が「第4種の通信リンク」の一例である。MFP10(P2P)−携帯端末50(P2P)の通信リンク(図7参照)が「第5種の通信リンク」の一例である。図6のS110でYESの場合が「第1の場合」の一例である。図5のS90でYESの場合が「第2の場合」の一例である。図4のS70でYESの場合が「第3の場合」の一例である。
図2のS10、S12、S14が「第1の判断部」が実行する処理の一例である。図2のS18が「第2の判断部」が実行する処理の一例である。図2のS16が「第3の判断部」が実行する処理の一例である。図2のS24、S28、S32、S20、S38、S42が「モード設定部」が実行する処理の一例である。図3のS50でYESの場合の処理が「送信部」が実行する処理の一例である。図4のS72、図5のS92、図6のS112が「第1の通信制御部」が実行する処理の一例である。図3のS60、図4のS78、図5のS100が「変更部」が実行する処理の一例である。図3のS56が「受信部」が実行する処理の一例である。図6のS112が「第2の通信制御部」が実行する処理の一例である。また、図6のS112が「第3の通信制御部」が実行する処理の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)MFP10のCPU30は、図2のS10、S12、S14、S16、S18の各判断を、図2に示す順序(即ち、S10、S12、S14、S16、S18の順)以外の順序で行ってもよい。即ち、一般的に言うと、第1の判断部が、通信装置の状態が、通信装置に予め記憶されている特定のデータが外部に送信されるべき第1の状態であるか否かを判断すればよい。また、第2の判断部が、通信装置の状態が第1の状態とは異なる第2の状態であるか否かを判断すればよい。また、第3の判断部が、通信装置の状態が第1の状態とは異なる第3の状態であるか否かを判断すればよい。
(変形例2)MFP10のCPU30は、図2のS10、S12、S14の各判断を実行すれば、図2のS16、S18の各判断のうちの1つ以上の判断を省略してもよい。即ち、一般的に言うと、モード設定部は、通信装置の状態が第1の状態であると判断される場合に、通信装置の動作モードをNFC規格のCEモードに設定し、通信装置の状態が第1の状態でないと判断される場合に、通信装置の動作モードをCEモードとは異なるNFC規格の第1のモードに設定すればよい。
(変形例3)また、MFP10のCPU30は、図2のS10、S12、S14の各判断のうちの少なくとも1つを実行すればよい。その場合、CPU30は、図2のS10、S12、S14の各判断のうちの1つ以上の判断を省略してもよい。即ち、一般的に言うと、第1の判断部は、通信装置の状態が、通信装置に予め記憶されている特定のデータが外部に送信されるべき第1の状態であるか否かを判断すればよい。
(変形例4)上記の実施例では、図6のS112で実行されるP2P通信において、通信相手(例えば、携帯端末50)は、既にMFP10に実行要求を送信している場合(図3のS56でYES、S58でYES)には、改めてMFP10に実行要求を送信しない。これに代えて、図6のS112で実行されるP2P通信において、通信相手は、既にMFP10に実行要求を送信している場合であっても、改めてMFP10に実行要求を送信してもよい。
(変形例5)MFP10のCPU30が印刷ジョブ又は書き込みジョブを受信する手法は、AP6を介して受信する手法に限られない。例えば、ユーザが操作部12を操作して、直接MFP10に印刷ジョブ又は書き込みジョブを入力してもよい。その場合、MFP10のCPU30は、操作部12を介して入力された印刷ジョブ又は書き込みジョブをメモリ32に記憶させる。一般的に言うと、「第3のデータ」は、通信装置によって取得されればよい。
(変形例6)「通信装置」は、印刷機能及びスキャン機能を実行可能な多機能機(即ちMFP10)に限られず、印刷機能及びスキャン機能のうちの印刷機能のみを実行可能なプリンタであってもよいし、印刷機能及びスキャン機能のうちのスキャン機能のみを実行可能なスキャナであってもよい。また、「通信装置」は、印刷機能及びスキャン機能とは異なる機能(例えば、画像の表示機能、データの演算機能)を実行する装置(例えば、PC、サーバ、携帯端末(携帯電話、スマートフォン、PDA等))であってもよい。即ち、「通信装置」は、NFC方式の通信を実行可能なあらゆるデバイスを含む。また、「外部装置」は、携帯端末50、80、認証カード100に限られず、NFC方式の通信を実行可能なあらゆるデバイスを含む。
(変形例7)上記の各実施例では、図2〜図6の各処理がソフトウェア(即ちプログラム)によって実現されるが、図2〜図6の各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。