以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
図1は、本実施形態に係るシステム100の概略図である。図1に示されるシステム100は、MFP10A、10B(以下、これらを総称して、「MFP10」と表記することがある。)と、携帯端末50と、サーバ80とで構成される。MFP10、携帯端末50、及びサーバ80は、通信ネットワークを介して相互に通信可能とされている。通信ネットワークの具体例は特に限定されないが、例えば、インターネット101、有線LAN、無線LAN102、或いはこれらの組み合わせであってもよい。
MFP10及び携帯端末50は、無線LAN102に属している。すなわち、MFP10及び携帯端末50は、無線LAN102の不図示のアクセスポイントを経由して、相互に通信することができる。また、無線LAN102は、ルータ102Aを通じてインターネット101に接続されている。さらに、サーバ80は、インターネット101に接続されている。すなわち、MFP10及び携帯端末50は、ルータ102Aからインターネット101を経由して、サーバ80と通信することができる。
MFP10は、図2(A)に示されるように、プリンタ11と、スキャナ12と、ディスプレイ23と、入力I/F24と、通信I/F25と、CPU31と、メモリ32と、通信バス33とを主に備える。MFP10を構成する各構成要素は、通信バス33を通じて相互に接続されている。MFP10は、画像形成装置の一例である。
プリンタ11は、画像データで示される画像をシートに記録するプリント動作を実行するハードウェアである。本実施形態では、インクを吐出して画像を記録するインクジェット方式のプリンタ11の例を説明するが、プリンタ11の記録方式は電子写真方式等であってもよい。スキャナ12は、原稿に記録されている画像を読み取って画像データ(以下、「スキャンデータ」と表記する。)を生成するスキャン動作を実行するハードウェアである。プリント動作及びスキャン動作は、画像形成動作の一例である。
なお、画像形成動作の具体例はこれらに限定されない。画像形成動作は、例えば、FAXプロトコルに従って画像データを外部装置にFAX送信するFAX送信動作、FAXプロトコルに従って外部装置から画像データをFAX受信するFAX受信動作等であってもよい。また、MFP10A、10Bは、少なくとも1つの画像形成動作を実行可能であればよい。さらに、MFP10A、10Bが実行可能な画像形成動作は、異なっていてもよい。
図示は省略するが、プリンタ11は、インクカートリッジを着脱可能な装着部を備える。そして、プリンタ11は、装着部に装着されたインクカートリッジに貯留されたインクを用いて、シートに画像を記録する。すなわち、インクカートリッジに貯留されたインクの量は、プリンタ11がプリント動作を実行する度に、徐々に減少する。そして、プリンタ11は、インクカートリッジに貯留されたインクがなくなると、それ以上プリント動作を実行することができなくなる。換言すれば、プリンタ11がプリント動作をさらに実行するためには、インクがなくなったインクカートリッジを装着部から取り外し、且つインクが貯留されている新たなインクカートリッジを装着部に装着する(すなわち、インクカートリッジを交換する)必要がある。
インクカートリッジは、プリント動作に用いられる消耗品の一例である。但し、画像形成動作に用いられる消耗品の具体例はインクカートリッジに限定されず、例えば、トナーカートリッジ、ドラムユニット、インクリボン、排液フォーム、被記録媒体(例えば、普通紙、光沢紙、インクジェット紙など)等であってもよい。すなわち、消耗品は、ユーザによってMFP10に着脱されるものであって、画像形成動作の実行に伴って徐々に消耗するあらゆるものを含む。
また、プリンタ11は、装着部に装着されたインクカートリッジに貯留されたインクの量(以下、「インク残量」と表記する。)を検出し、検出したインク残量を示す残量信号をCPU31に出力する残量センサを備える。残量信号は、例えば、新品のインクカートリッジのインク残量を100%として、現在のインク残量をパーセンテージで示す。すなわち、CPU31は、装着部に装着されたインクカートリッジのインク残量を把握することができる。残量センサは、例えば、光学式センサ、機械式センサ、ソフトウェアセンサ、或いはそれらの組み合わせで実現される。
さらに、プリンタ11は、装着部にインクカートリッジが装着されたことを検出したことに応じて、装着信号をCPU31に出力する装着センサを備える。装着センサは、例えば、装着部にインクカートリッジが装着されているときに装着信号を継続して出力し、装着部にインクカートリッジが装着されていないときに装着信号を出力しない。すなわち、CPU31は、装着信号の出力が停止した後に再び装着信号が出力されたことに応じて、インクカートリッジが交換されたと推定することができる。装着センサは、例えば、光学式センサ、機械式センサ、或いはそれらの組み合わせで実現される。
入力I/F24は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力I/F24はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をCPU31へ出力する。さらに、入力I/F24は、ディスプレイ23の表示面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ23の表示面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、ユーザ操作の一例である。「オブジェクト」とは、例えば、ディスプレイ23に表示された文字列、アイコン、ボタン、リンク、プルダウンメニュー等である。
タッチセンサとして実現される入力I/F24は、ユーザがタッチした表示面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示面に接触させる操作全般を含む。また、入力媒体が表示面に触れていなくても、表示面との間の距離がごく僅かな位置まで入力媒体を近接させる「ホバー」或いは「フローティングタッチ」を、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ23に表示されたアイコンの位置をタップするユーザ操作は、当該アイコンを指定する指定操作の一例である。
通信I/F25は、通信ネットワークを通じて外部装置と通信を行うための通信インタフェースの一例である。すなわち、MFP10は、通信I/F25を通じて携帯端末50及びサーバ80に各種情報を送信し、通信I/F25を通じて携帯端末50及びサーバ80から各種データ又は各種情報を受信する。通信I/F25の具体的な通信手順は特に限定されないが、例えば、Wi−Fi(登録商標)を採用することができる。
CPU31は、MFP10の全体動作を制御するものである。CPU31は、入力I/F24から出力される各種信号、及び通信I/F25を通じて外部装置から取得した各種情報等に基づいて、後述する各種プログラムをメモリ32から取得して実行する。すなわち、CPU31及びメモリ32は、コントローラの一例を構成する。
メモリ32には、OS34と、装置プログラム35とが記憶される。なお、装置プログラム35は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ32には、装置プログラム35の実行に必要なデータ或いは情報が記憶される。メモリ32は、例えば、RAM、ROM、EEPROM、HDD、MFP10に着脱されるUSBメモリ等の可搬記憶媒体、CPU31が備えるバッファ等、或いはそれらの組み合わせによって構成される。
メモリ32は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット101上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。後述する携帯端末50のメモリ62についても同様である。
メモリ32のMIB(Management Information Baseの略)は、図1に示される装置情報を記憶している。装置情報は、MFP10を識別する装置IDと、MFP10に装着可能なインクカートリッジのタイプ(例えば、型番)を示すCTGタイプとを含む。すなわち、MFP10Aは、装置ID“MFP−A”で識別され、CTGタイプ“CTG−A”で識別されるインクカートリッジが装着部に着脱可能である。MFP10Bは、装置ID“MFP−B”で識別され、CTGタイプ“CTG−B”で識別されるインクカートリッジが装着部に着脱可能である。
CTGタイプは、インクカートリッジの外形形状、装着部とのインタフェースの位置及び形状、或いは貯留されるインクの容量等を示す。すなわち、装着部には、装置情報のCTGタイプで示されるタイプのインクカートリッジを装着可能で、他のタイプのインクカートリッジを装着することができない。一般的に、同一モデルのMFP10のCTGタイプは一致し、異なるモデルのMFP10のCTGタイプは異なる。また、装置情報が複数のCTGタイプを含む場合、装着部には、複数のタイプのインクカートリッジ(例えば、小容量カートリッジ、大容量カートリッジ)が選択的に装着可能である。
携帯端末50は、図2(B)に示されるように、ディスプレイ53と、入力I/F54と、通信I/F55と、位置検出部56と、CPU61と、メモリ62と、通信バス63とを主に備える。携帯端末50に含まれるディスプレイ53、入力I/F54、通信I/F55、CPU61、メモリ62、及び通信バス63は、MFP10に含まれるディスプレイ23、入力I/F24、通信I/F25、CPU31、メモリ32、及び通信バス33と同様の構成であるので、説明は省略する。
携帯端末50は、例えば、携帯電話、スマートフォン、或いはタブレット端末等であってもよい。より詳細には、携帯端末50のディスプレイ53は、表示画面のサイズが12インチ以下、より好ましくは8インチ以下であるのが望ましい。また、携帯端末50の入力I/F54は、ディスプレイ53の表示画面に重ねられたタッチセンサであるのが望ましい。ディスプレイ53は、報知部の一例である。但し、報知部の具体例はディスプレイ53に限定されず、スピーカ、LEDランプ、バイブレータ、或いはこれらの組み合わせであってもよい。
位置検出部56は、携帯端末50の現在位置を示す位置情報をCPU61に出力する。位置検出部は、例えば、GPSを利用して携帯端末50の現在位置を検出する。位置情報は、例えば、携帯端末50の現在位置の緯度及び経度の組み合わせである。GPSを利用して現在位置を検出する方法は周知なので、詳細な説明は省略する。但し、位置検出部56による携帯端末50の現在位置の検出方法は、前述の例に限定されない。例えば、位置検出部56から出力される位置情報は、携帯端末の現在位置の都市名(例えば、“名古屋市瑞穂区”、“大阪府高槻市”等)でもよいし、携帯端末50の現在位置の最寄り駅の駅名でもよい。また、位置検出部56は、省略することができる。
メモリ62は、OS64と、端末プログラム65とを記憶している。一例として、端末プログラム65は、ユーザが指定したMFP10(以下、「指定装置」と表記する。)に画像形成動作を実行させる機能を有していてもよい。他の例として、端末プログラム65は、MFP10のステータス情報を取得してディスプレイ53に表示させる機能を有していてもよい。さらに他の例として、端末プログラム65は、例えば、画像形成動作に用いる消耗品を、通信I/F55を通じてサーバ80に発注する機能を有していてもよい。なお、端末プログラム65には、前述した3つの機能の全てが実装されていなくてよい。
メモリ62は、例えば図3(A)に示されるように、購入情報を記憶することができる。購入情報は、携帯端末50のユーザが購入したMFP10の消耗品を示す情報である。購入情報は、端末プログラム65が携帯端末50にインストールされた時点ではメモリ62に記憶されておらず、後述するS68で端末プログラム65がメモリ62に記憶させる。購入情報は、例えば、CTGタイプと、残数情報とを含む。CTGタイプは、ユーザが購入したインクカートリッジのタイプを示す。残数情報は、ユーザが購入したインクカートリッジのうち、未だMFP10に装着されていないインクカートリッジの数(以下、「CTG残数」と表記する。)を示す情報である。
また図示は省略するが、メモリ62は、指定装置情報と、対象ショップ情報と、ステータス情報とを記憶することができる。指定装置情報、対象ショップ情報、及びステータス情報は、端末プログラム65が携帯端末50にインストールされた時点ではメモリ62に記憶されておらず、後述する処理で端末プログラム65がメモリ62に記憶させる。
指定装置情報は、ユーザが指定した指定装置のMIBに記憶された装置情報である。対象ショップ情報は、サーバ80に登録された複数のショップのうち、後述する登録条件に合致するショップを示す情報、換言すれば、後述する報知制御処理で報知の対象となるショップ(以下、「対象ショップ」と表記する。)を示す情報である。対象ショップ情報は、後述するショップリストに含まれるショップレコードの1つに対応する。ステータス情報は、指定装置の状態を示す情報である。ステータス情報は、例えば、指定装置が画像形成動作を実行可能か否かを示す状態情報(例えば、“ビジー状態”、“アイドル状態”等)と、MFP10に装着されたインクカートリッジのインク残量を示す残量情報(例えば、“80%”、“インクロー”、“エンプティ”等)とを含む。
端末プログラム65は、例えば、通信I/F55を通じて指定装置にステータス要求情報を送信する。次に、端末プログラム65は、通信I/F55を通じて指定装置からステータス情報を、ステータス要求情報の応答として受信する。この処理は、通信処理の一例である。そして、端末プログラム65は、受信したステータス情報を指定装置情報と対応付けてメモリ62に記憶させる。この処理は、第1記憶処理の一例である。なお、メモリ62に既にステータス情報が記憶されている場合、端末プログラム65は、当該ステータス情報を新たなステータス情報で上書きする。そして、端末プログラム65は、通信I/F55を通じて指定装置と通信可能な間に、所定の時間間隔(例えば、5分)で前述の処理を繰り返し実行する。ステータス情報或いは残量情報を受信する手順は、後述するS20、S62についても同様である。
また図示は省略するが、メモリ62は、非登録ショップ情報の一例である非登録ショップIDと、候補ショップ情報の一例である候補ショップIDとを記憶することができる。非登録ショップIDは、対象ショップとして登録しないとユーザが指定したショップのショップIDである。候補ショップIDは、対象ショップとして登録される可能性があるショップのショップIDである。非登録ショップID及び候補ショップIDは、端末プログラム65が携帯端末50にインストールされた時点ではメモリ62に記憶されておらず、後述する処理で端末プログラム65がメモリ62に記憶させる。
また図示は省略するが、メモリ62は、通知フラグを記憶している。通知フラグは、後述する報知制御処理を実行するか否かを示す情報である。通知フラグには、報知制御処理を実行しないことに対応する第1値“OFF”、或いは報知制御処理を実行することに対応する第2値“ON”が設定される。通知フラグの初期値は、第2値“ON”である。
さらに図示は省略するが、メモリ62には、データフォルダが設けられていてもよい。データフォルダには、例えば、写真データ、文書データ、プレゼンテーションデータ、表計算データ等が格納されていてもよい。データフォルダに記憶されている各種データは、プリント動作の対象となり得るデータである。
サーバ80は、図3(B)に示されるショップリストと、図3(C)に示されるCTGリストとをサーバメモリに記憶している。そして、サーバ80は、携帯端末50からの要求に応じて、ショップリスト或いはCTGリストに含まれる情報を携帯端末50に送信する。また、サーバ80は、所謂WEBショッピングサービスを提供する。より詳細には、サーバ80は、携帯端末50からの要求に応じて、指定された消耗品を指定された宛先に発送する。WEBショッピングサービスは、仮想ショップの一例である。サーバ80は、1台で構成されていてもよいし、複数のサーバで構成されていてもよい。
ショップリストは、図3(B)に示されるように、1以上のショップレコードを含む。ショップレコードは、MFP10に装着可能な消耗品を販売しているショップを示すショップ情報の一例である。ショップレコードで示されるショップは、WEBショッピングサービスを提供する仮想ショップではなく、例えば、購入した品物をその場で受け取ることができる実店舗、現実店舗、或いは実在店舗などと呼ばれるものである。ショップレコードは、例えば、サーバ80の管理者によってショップリストに登録される。ショップレコードは、ショップIDと、ショップ位置情報と、販売CTGタイプとを含む。
ショップIDは、対応するショップをショップリスト内で一意に識別する識別情報である。ショップIDは、例えば、対応するショップの名称(例えば、“○×電気A駅支店”等)でもよい。ショップ位置情報は、ショップIDで識別されるショップの所在地を示す情報である。ショップ位置情報は、例えば、ショップの所在地の緯度及び経度の組み合わせでもよいし、ショップの所在地の都市名(例えば、“名古屋市瑞穂区”、“大阪府高槻市”等)でもよいし、ショップの最寄り駅の駅名でもよい。販売CTGタイプは、ショップIDで識別されるショップで販売されているインクカートリッジのタイプを示す。ショップこれ−度は、1つ或いは複数の販売CTGタイプを含むことができる。
CTGリストは、図3(C)に示されるように、1以上のCTGレコードを含む。CTGレコードは、WEBショッピングサービスで販売しているインクカートリッジのタイプに対応する。CTGレコードは、例えば、サーバ80の管理者によってCTGリストに登録される。CTGレコードは、CTGタイプと、オンライン価格情報とを含む。CTGタイプは、WEBショッピングサービスで販売しているインクカートリッジのタイプを示す。オンライン価格情報は、CTGタイプで識別されるインクカートリッジのWEBショッピングサービスにおける販売価格を示す。
[システム100の動作]
図4〜図9を参照して、本実施形態に係るシステム100の動作を説明する。なお、図4のメイン処理を開始する時点において、メモリ62には、指定装置情報が記憶されていないものとする。
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったCPU31の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「制御」等の処理は、CPU31、61の処理を表している。CPU31、61による処理は、OS34、64を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
まず、端末プログラム65は、図10(A)に示されるメイン画面をディスプレイ53に表示させる(S11)。メイン画面は、動作アイコン111、112と、ステータスアイコン113と、切替アイコン114とを含む。動作アイコン111はプリント動作の実行指示に対応し、動作アイコン112はスキャン動作の実行指示に対応する。ステータスアイコン113は、指定装置のステータスを表示させる指示に対応する。切替アイコン114は、指定装置の切替指示に対応する。指定装置情報がメモリ62に記憶されていない場合、切替アイコン114には、指定装置が選択されていないことを示す「未選択」の文字列が記述される。そして、端末プログラム65は、メイン画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S12〜S14)。
次に、端末プログラム65は、切替アイコン114の指定を入力I/F54を通じて受け付けたことに応じて(S12:Yes)、通信I/F55を通じて通信可能なMFP10のうちの1つを指定装置としてユーザに指定させ、指定装置の装置情報を指定装置情報としてメモリ62に記憶させる(S15〜S18)。
まず、端末プログラム65は、例えば、SNMP(Simple Network Management Protocolの略)を用いて、通信I/F55を通じて通信が可能な複数のMFP10を検索する(S15)。具体的には、端末プログラム65は、装置情報の送信を要求する送信要求情報を、通信I/F55を通じて通信ネットワークにブロードキャストする。次に、端末プログラム65は、送信要求情報の応答としてMFP10A、10Bが送信した装置情報を、通信I/F55を通じて受信する。すなわち、端末プログラム65は、装置情報の送信元のMFP10A、10Bを、通信可能なMFP10として特定する。なお、通信可能なMFP10を検索する方法は、周知の他の方法であってもよい。
次に、端末プログラム65は、不図示のデバイス選択画面をディスプレイ53に表示させる(S16)。デバイス選択画面は、S15で発見したMFP10A、10Bに対応するデバイスアイコンを含む。そして、端末プログラム65は、デバイス選択画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S17)。
次に、端末プログラム65は、例えば、MFP10Bに対応するデバイスアイコンの指定を入力I/F54を通じて受け付けたことに応じて(S17:Yes)、デバイスアイコンに対応するMFP10Bを指定装置に決定する。そして、端末プログラム65は、S15でMFP10Bから受信した装置情報を、指定装置情報としてメモリ62に記憶させる(S18)。なお、メモリ62に既に指定装置情報が記憶されている場合、端末プログラム65は、当該指定装置情報を新たな指定装置情報で上書きする。
より詳細には、端末プログラム65は、S17の時点で既にメモリ62に記憶されている指定装置情報を、メモリ62の退避領域に退避させる。次に、端末プログラム65は、S17で指定された指定装置の装置情報を、新たな指定装置情報としてメモリ62に記憶させる。以下、退避領域に退避させた指定装置情報を「旧装置情報」と表記し、S18で新たに記憶させた指定装置情報を「新装置情報」と表記する。
次に、端末プログラム65は、ショップ登録処理Aを実行する(S19)。ショップ登録処理Aの詳細は、図5を参照して後述する。そして、端末プログラム65は、メイン画面をディスプレイ53に表示させる(S11)。MFP10Bに対応するデバイスアイコンが指定された後のメイン画面において、切替アイコン114には、指定装置情報の装置ID“MFP−B”が記述される。
次に、端末プログラム65は、ステータスアイコン113の指定を入力I/F54を通じて受け付けたことに応じて(S13:Yes)、通信I/F55を通じて指定装置からステータス情報を受信する(S20)。S20の処理は、通信処理の一例である。次に、端末プログラム65は、不図示のステータス画面をディスプレイ53に表示させる(S21)。ステータス画面は、例えば、S20で受信した状態情報で示されるMFP10の状態と、S20で受信した残量情報で示されるインク残量と、[OK]アイコンとを含む。そして、端末プログラム65は、[OK]アイコンの指定を入力I/F54を通じて受け付けたことに応じて(S22:Yes)、メイン画面をディスプレイ53に表示させる(S11)。
次に、端末プログラム65は、動作アイコン111、112の指定を入力I/F54を通じて受け付けたことに応じて(S14:Yes)、動作アイコン111、112に対応付けられた画像形成動作を指定装置に実行させるための動作指示処理を実行する(S23)。S23の処理は、通信処理の一例である。動作指示処理の図示は省略するが、例えば以下の処理が実行される。
一例として、動作アイコン111がタップされた場合の端末プログラム65は、メモリ62のデータフォルダに記憶された複数のデータのうちの1つを、指定データとして指定するユーザ操作を入力I/F54を通じて受け付ける。また、端末プログラム65は、プリント動作の実行条件を指定するユーザ操作を入力I/F54を通じて受け付けたことに応じて、指定された実行条件を示す条件情報をメモリ62に記憶させる。そして、端末プログラム65は、指定装置であるMFP10Bに通信I/F55を通じてプリント指示情報を送信する。プリント指示情報は、条件情報で示される実行条件に従って、指定データを対象とするプリント動作の実行させるための動作指示情報の一例である。プリント指示情報は、例えば、指定データと、条件情報とを含む。
一方、MFP10Bの装置プログラム35は、通信I/F25を通じて携帯端末50からプリント指示情報を受信する。そして、装置プログラム35は、受信したプリント指示情報に従って、プリンタ11にプリント動作を実行させる。すなわち、プリンタ11は、プリント指示情報に含まれる条件情報で示される実行条件に従って、プリント指示情報に含まれる指定データで示される画像をシートに記録する。
他の例として、動作アイコン112がタップされた場合の端末プログラム65は、スキャン動作の実行条件を指定するユーザ操作と、スキャン動作で生成されたスキャンデータの保存先を指定するユーザ操作とを、入力I/F54を通じて受け付ける。そして、端末プログラム65は、指定装置であるMFP10Bに通信I/F55を通じてスキャン指示情報を送信する。スキャン指示情報は、指定された実行条件に従ってスキャン動作を実行し、スキャン動作で生成したスキャンデータを指定された保存先に保存する一連の処理を実行させるための動作指示情報の一例である。
一方、MFP10Bの装置プログラム35は、通信I/F25を通じて携帯端末50からスキャン指示情報を受信する。そして、装置プログラム35は、受信したスキャン指示情報に従って、スキャナ12にスキャン動作を実行させる。すなわち、スキャナ12は、コンタクトガラス或いはADFにセットされた原稿に記録された画像を、指定された実行条件に従って読み取ってスキャンデータを生成する。そして、スキャナ12は、生成したスキャンデータを指定された保存先に保存する。
次に、図5を参照して、ショップ登録処理Aの詳細を説明する。ショップ登録処理Aは、S15〜S18で新たな指定装置が指定されたことをトリガとして、当該指定装置に装着可能なインクカートリッジを販売するショップを登録する処理である。
まず、端末プログラム65は、メモリ62の退避領域に旧装置情報が記憶されているか否かを判断する(S31)。また、端末プログラム65は、メモリ62に対象ショップ情報が記憶されているか否かを判断する(S32)。そして、端末プログラム65は、旧装置情報或いは対象ショップ情報がメモリ62に記憶されていないと判断したことに応じて(S31:なし、又はS32:なし)、S33〜S34の処理をスキップして、S35以降の処理を実行する。
一方、端末プログラム65は、旧装置情報及び対象ショップ情報の両方がメモリ62に記憶されていると判断したことに応じて(S31:あり&S32:あり)、旧装置情報で識別されるMFP10のモデルと、新装置情報で識別されるMFP10のモデルとが一致するか否かを判断する(S33)。すなわち、端末プログラム65は、旧装置情報及び新装置情報のCTGタイプが同一か否かを判断すればよい。また、端末プログラム65は、対象ショップ情報で示されるショップで指定装置に装着可能なインクカートリッジを購入可能か否かを判断する(S34)。すなわち、端末プログラム65は、対象ショップ情報の販売CTGタイプに新装置情報のCTGタイプ“CTG−B”が含まれているか否かを判断すればよい。
そして、端末プログラム65は、旧装置情報及び新装置情報それぞれのCTGタイプが一致すると判断したことに応じて(S33:Yes)、或いは対象ショップ情報の販売CTGタイプに新装置情報のCTGタイプが含まれていると判断したことに応じて(S34:可)、S35以降の処理をスキップして、ショップ登録処理Aを終了する。一方、端末プログラム65は、旧装置情報及び新装置情報それぞれのCTGタイプが異なり、且つ象ショップ情報の販売CTGタイプに新装置情報のCTGタイプが含まれていないと判断したことに応じて(S33:No&S34:不可)、S35以降の処理を実行する。
次に、端末プログラム65は、指定装置が設置されている位置(以下、「装置位置」と表記する。)を示す装置位置情報を取得する(S35)。端末プログラム65は、例えば、S17でデバイスアイコンが指定された時点で位置検出部56から出力された位置情報を、装置位置情報としてメモリ62に記憶させる。位置検出部56から出力される位置情報は、携帯端末50の現在位置を示す。しかしながら、S17の時点では、少なくとも無線LAN102を通じて通信可能な程度に携帯端末50と指定装置とが近接しているので、携帯端末50の現在位置を装置位置とみなすことができる。
次に、端末プログラム65は、予め定められた第1条件に合致するショップが存在するか否かを判断する(S36)。第1条件は、装置位置から閾値距離内に位置し且つ指定装置に装着可能なインクカートリッジを販売しているという登録条件である。閾値距離とは、装置位置を中心とするユーザの行動範囲を示す距離(例えば、3km)である。閾値距離は、例えば、装置位置とショップの所在地との直線距離でもよいし、装置位置からショップに至る地図上の経路に沿った距離でもよいし、装置位置からショップに至る時間距離(例えば、1時間)でもよい。また、閾値距離は、端末プログラム65に設定された固定値でもよいし、MFP10或いは携帯端末50のユーザが設定可能な可変値でもよい。
端末プログラム65は、例えば、新装置情報のCTGタイプ及びS35で取得した装置位置情報を含む送信要求情報を、通信I/F55を通じてサーバ80に送信する。次に、端末プログラム65は、通信I/F55を通じてサーバ80からショップレコード或いはエラー情報を、送信要求情報の応答として受信する。そして、端末プログラム65は、ショップレコードを受信したことに応じて、第1条件に合致するショップが存在すると判断する(S36:あり)。一方、端末プログラム65は、エラー情報を受信したことに応じて、第1条件に合致するショップが存在しないと判断する(S36:なし)。
一方、サーバ80は、携帯端末50から送信要求情報を受信したことに応じて、ショップリストに登録された複数のショップレコードのうち、第1条件に合致するショップレコードを抽出する。より詳細には、サーバ80は、送信要求情報の装置位置情報で示される装置位置とショップ位置情報で示されるショップの所在地との距離が閾値距離内で、且つ送信要求情報のCTGタイプと販売CTGタイプとが一致するショップレコードを抽出する。なお、複数のショップレコードが第1条件に合致する場合は、装置位置に最も近いショップを示すショップレコードが抽出される。そして、サーバ80は、第1条件に合致するショップレコードを抽出したことに応じて、抽出したショップレコードを携帯端末50に送信する。一方、第1条件に合致するショップレコードを抽出しなかったことに応じて、第1条件に合致するショップレコードが存在しないことを示すエラー情報を携帯端末50に送信する。
端末プログラム65は、例えば、ショップID“SHOP−A”、ショップ位置情報“位置A”、販売CTGタイプ“CTG−A”、“CTG−B”、“CTG−C”を含むショップレコードを受信したことに応じて(S36:あり)、図10(B)に示される登録確認画面Aをディスプレイ53に表示させる(S37)。登録確認画面Aは、「このショップを登録しますか?」とのメッセージと、サーバ80から受信したショップレコードのショップID“SHOP−A”及びショップ位置情報“位置A”と、[YES]アイコン121と、[NO]アイコン122とを含む。そして、端末プログラム65は、登録確認画面Aに対するユーザ操作を、入力I/F54を通じて受け付ける(S38)。
次に、端末プログラム65は、[YES]アイコン121の指定を入力I/F54を通じて受け付けたことに応じて(S38:Yes)、S36でサーバ80から受信したショップレコードを、対象ショップ情報としてメモリ62に記憶させる(S39)。なお、メモリ62に既に対象ショップ情報が記憶されている場合、端末プログラム65は、当該対象ショップ情報を新たな対象ショップ情報で上書きする。後述するS76、S90についても同様である。S39の処理は、第3記憶処理の一例である。一方、端末プログラム65は、[NO]アイコン122の指定を入力I/F54を通じて受け付けたことに応じて(S38:NO)、S39の処理をスキップしてショップ登録処理Aを終了する。
一方、端末プログラム65は、エラー情報を受信したことに応じて(S36:なし)、図11(A)に示される代替手段選択画面をディスプレイ53に表示させる(S40)。代替手段選択画面は、「CTGの購入方法を選択して下さい。」とのメッセージと、[代替位置]アイコン131と、[オンライン]アイコン132とを含む。そして、端末プログラム65は、代替手段選択画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S41)。
そして、端末プログラム65は、[代替位置]アイコン131の指定を入力I/F54を通じて受け付けたことに応じて(S41:代替位置)、入力I/F54を通じて代替位置の入力を受け付ける。代替位置とは、指定装置が設置されている場所(例えば、自宅)の他に、ユーザが日常的に訪れる場所(例えば、会社、学校など)の位置である。端末プログラム65は、例えば、不図示のソフトウェアキーボードを通じて代替位置の住所を入力させてもよいし、ディスプレイ53に表示させた地図上で代替位置をタップさせてもよい。そして、端末プログラム65は、入力された代替位置を示す代替位置情報を、メモリ62に記憶させる。
次に、端末プログラム65は、S36以降の処理を実行する。端末プログラム65は、代替位置が入力された後のS36において、予め定められた第2条件に合致するショップが存在するか否かを判断する。第2条件は、代替位置から閾値距離内に位置し且つ指定装置に装着可能なインクカートリッジを販売しているという登録条件である。すなわち、代替位置が入力された後のS36〜S39の処理は、装置位置情報に代えて代替位置情報を用いる点を除いて、前述の説明と同様である。また、端末プログラム65は、第2条件に合致するショップが存在しないと判断したことに応じて(S36:なし)、S40以降の処理を実行する。
一方、端末プログラム65は、[オンライン]アイコン132の指定を入力I/F54を通じて受け付けたことに応じて(S41:オンライン)、WEBショッピングサービスでインクカートリッジを購入するのに必要な事前準備を実行して、ショップ登録処理Aを終了する。
端末プログラム65は、例えば、クレジットカード番号等の決済情報、及びインクカートリッジの送付先の住所を示す宛先情報を入力するユーザ操作を、入力I/F54を通じて受け付ける。次に、端末プログラム65は、入力された決済情報及び宛先情報を通信I/F55を通じてサーバ80に送信する。次に、端末プログラム65は、決済情報及び宛先情報を一意に識別するアカウント情報を、通信I/F55を通じてサーバ80から受信して、メモリ62に記憶させる。
以降、端末プログラム65は、WEBショッピングサービスでインクカートリッジの購入を指示を入力I/F54を通じて受け付けたことに応じて、メモリ62に記憶されたアカウント情報を通信I/F55を通じてサーバ80に送信する。これにより、アカウント情報に対応付けられた決済情報でインクカートリッジの代金が決済され、アカウント情報に対応付けられた宛先情報で示される住所にインクカートリッジが届けられる。
次に、端末プログラム65は、図6に示されるショップ探索処理を実行する。ショップ探索処理は、指定装置に装着可能なインクカートリッジを販売するショップを探索する処理である。ショップ探索処理は、例えば、S18で指定装置情報がメモリ62に記憶されたことをトリガとして開始される。
まず、端末プログラム65は、携帯端末50の現在位置(以下、「端末位置」と表記する。)を示す位置情報を位置検出部56から取得する(S51)。次に、端末プログラム65は、端末位置から第1距離内に存在するショップを検出する(S52)。第1距離は、携帯端末50のユーザが現在位置から容易に移動できる距離(例えば、300m)であって、前述の閾値距離より短い距離である。第1距離は、閾値距離と同様に、直線距離でもよいし、経路に沿った距離でもよいし、時間距離でもよい。また、第1距離は、固定値でもよいし、可変値でもよい。第1距離は、報知距離の一例である。S52の処理は、検出処理の一例である。
端末プログラム65は、例えば、S51で取得した端末位置情報を含む送信要求情報を、通信I/F55を通じてサーバ80に送信する。一方、サーバ80は、携帯端末50から送信要求情報を受信したことに応じて、端末位置情報とショップ位置情報との距離が第1距離内のショップを示すショップレコードを抽出する。そして、サーバ80は、ショップレコードを抽出したことに応じて、抽出したショップレコードを携帯端末50に送信する。一方、ショップレコードを抽出しなかったことに応じて、エラー情報を携帯端末50に送信する。
そして、端末プログラム65は、通信I/F55を通じてサーバ80からエラー情報を受信したことに応じて、端末位置から第1距離内にショップが存在しないと判断して(S52:なし)、所定の時間(例えば、5分)が経過した後にS51以降の処理を実行する。すなわち、端末プログラム65は、端末位置から第1距離内にショップを検出するまで(S52:なし)、S51、S52の処理を所定の時間間隔で繰り返し実行する。
一方、端末プログラム65は、通信I/F55を通じてサーバ80からショップレコードを受信したことに応じて、当該ショップレコードで示されるショップを、端末位置から第1距離内のショップとして検出する(S52:あり)。そして、端末プログラム65は、S52で検出したショップが対象ショップか否かを判断する(S53)。すなわち、端末プログラム65は、S52でサーバ80から受信したショップレコードのショップIDと、メモリ62に記憶されている対象ショップ情報のショップIDとが一致するか否かを判断する。S53の処理は、第1判断処理の一例である。
次に、端末プログラム65は、ショップIDが一致すると判断したことに応じて(S53:Yes)、通知フラグの設定値を判断する(S54)。S54の処理は、第6判断処理の一例である。そして、端末プログラム65は、通知フラグに第2値“ON”が設定されていると判断したことに応じて(S54:ON)、後述する報知制御処理を実行する(S55)。一方、端末プログラム65は、通知フラグに第1値“OFF”が設定されていると判断したことに応じて(S54:OFF)、S55の処理をスキップして、ショップ探索処理を終了する。さらに、端末プログラム65は、ショップIDが異なる或いは対象ショップ情報がメモリ62に記憶されていないと判断したことに応じて(S53:No)、後述するショップ登録処理Bを実行する(S56)。
次に、図7を参照して、報知制御処理の詳細を説明する。報知制御処理は、端末位置から第1距離内に対象ショップが存在することを、携帯端末50のユーザに報知する処理である。換言すれば、報知制御処理は、指定装置に装着可能なインクカートリッジを対象ショップで購入することを、携帯端末50のユーザに促す処理である。
まず、端末プログラム65は、通信I/F55を通じて指定装置と通信可能か否かを判断する(S61)。一例として、端末プログラム65は、無線LAN102のアクセスポイントから出力されるビーコン信号を通信I/F55で受信可能か否かを判断してもよい。他の例として、MFP10と端末プログラム65とがインターネット101を通じて通信可能に構成されている場合、端末プログラム65は、インターネット101を通じたMFP10との通信を試行してもよい。S61の処理は、第3判断処理の一例である。
そして、端末プログラム65は、指定装置と通信可能だと判断したことに応じて(S61:可)、通信I/F55を通じて指定装置から残量情報を受信する(S62)。一方、端末プログラム65は、指定装置と通信不能だと判断したことに応じて(S61:不可)、直近に指定装置から受信してメモリ62に記憶させたステータス情報の残量情報を、メモリ62から読み出す(S63)。これにより、S52でショップを検出した時点で指定装置と通信可能か否かに拘わらず、残量情報を取得することが可能となる。S62の処理は通信処理の一例であり、S63の処理は読出処理の一例である。
次に、端末プログラム65は、S62、S63で取得した残量情報で示されるインク残量が閾値残量未満か否かを判断する(S64)。一例として、閾値残量は、装着部に装着されたインクカートリッジの交換時期が近づいてきたことを、MFP10が報知(例えば、ニアエンプティ、インクロー等と呼ばれる)するときのインク残量に相当してもよい。他の例として、閾値残量は、端末位置(または、対象ショップの所在地)が装置位置から遠いほど大きな値になり、装置位置に近いほど小さな値になる可変値であってもよい。S64の処理は、第2判断処理の一例である。
次に、端末プログラム65は、インク残量が閾値残量未満だと判断したことに応じて(S64:Yes)、通信I/F55を通じてサーバ80からオンライン価格情報を受信する(S65)。端末プログラム65は、例えば、指定装置情報のCTGタイプ“CTG−B”を含む価格要求情報を、通信I/F55を通じてサーバ80に送信する。そして、端末プログラム65は、CTGタイプ“CTG−B”に対応するオンライン価格情報“800円”を、価格要求情報の応答として、通信I/F55を通じてサーバ80から受信する。S65の処理は、第2受信処理の一例である。
次に、端末プログラム65は、図11(B)に示される購入確認画面をディスプレイ53に表示させる(S66)。購入確認画面は、例えば、端末位置から第1距離内に対象ショップが存在することを報知する画面、対象ショップの位置を報知する画面、指定装置に装着可能なインクカートリッジを対象ショップで購入することを促す画面、或いは指定装置に装着可能なインクカートリッジを対象ショップで購入したか否かを確認する画面である。そして、端末プログラム65は、購入確認画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S67)。S66の処理は報知処理の一例であり、S67の処理は第1受付処理の一例である。
購入確認画面は、「対象ショップの近くです。CTGを購入しましたか?」とのメッセージと、指定装置情報のCTGタイプ“CTG−B”と、S65で受信したオンライン価格情報で示されるオンライン価格“800円”と、購入したインクカートリッジの数の入力を受け付けるためのプルダウンメニュー141と、[購入]アイコン142と、[キャンセル]アイコン143とを含む。また、購入確認画面は、CTGタイプ“CTG−B”のインクカートリッジの外観を示す画像、端末位置から対象ショップまでの経路を示す経路情報(例えば、現在位置から対象ショップまでの道順を示す地図など)等をさらに含んでもよい。
次に、端末プログラム65は、例えば、プルダウンメニュー141で示される購入数を“3”に変更した後で、[購入]アイコン142の指定を入力I/F54を通じて受け付けたことに応じて(S67:購入)、指定装置情報のCTGタイプ“CTG−B”及び残数情報“3”を含む購入情報を、メモリ62に記憶させる(S68)。そして、端末プログラム65は、通知フラグに第1値“OFF”を設定して(S69)、報知制御処理を終了する。[購入]アイコン142のタップは、指定装置に着脱可能なインクカートリッジを対象ショップで購入したことを示す第1操作の一例である。S68の処理は第2記憶処理の一例であり、S69の処理は第1設定処理の一例である。
また、端末プログラム65は、[キャンセル]アイコン143の指定を入力I/F54を通じて受け付けたことに応じて(S67:キャンセル)、S68、S69の処理をスキップして、報知制御処理を終了する。[キャンセル]アイコン143のタップは、指定装置に着脱可能なインクカートリッジを対象ショップで購入していないことを示す第2操作の一例である。さらに、端末プログラム65は、インク残量が閾値残量以上だと判断したことに応じて(S64:No)、S65〜S69の処理をスキップして、報知制御処理を終了する。
次に、図8を参照して、ショップ登録処理Bの詳細を説明する。ショップ登録処理Bは、端末位置から第1距離内のショップを検出したことをトリガとして(S52:Yes)、指定装置に装着可能なインクカートリッジを販売するショップを登録する処理である。以下、ショップID“SHOP−C”で識別されるショップをS52で検出したことを前提として、ショップ登録処理Bを説明する。
まず、端末プログラム65は、S52で検出したショップのショップID“SHOP−C”が非登録ショップIDとしてメモリ62に記憶されているかを判断する(S71)。また、端末プログラム65は、ショップID“SHOP−C”で識別されるショップが登録条件(すなわち、第1条件又は第2条件)に合致するか否かを判断する(S72)。さらに、端末プログラム65は、対象ショップ情報が既にメモリ62に記憶されているか否かを判断する(S73)。
端末プログラム65は、例えばS72において、S35で記憶させた装置位置情報或いはS41で記憶させた代替位置情報で示される位置と、S52で受信したショップレコードのショップ位置情報“位置C”で示される位置とが閾値距離内か否かを判断する。また、端末プログラム65は、S52で受信したショップレコードの販売CTGタイプに、指定装置情報のCTGタイプ“CTG−B”が含まれるか否かを判断する。
そして、端末プログラム65は、装置位置情報或いは代替位置情報で示される位置とショップ位置情報で示される位置とが閾値距離内で、且つ販売CTGタイプが指定装置情報のCTGタイプを含むことに応じて、S52で検出したショップが登録条件に合致すると判断する(S72:Yes)。一方、端末プログラム65は、装置位置情報或いは代替位置情報で示される位置とショップ位置情報で示される位置とが閾値距離外か、或いは販売CTGタイプが指定装置情報のCTGタイプを含まないことに応じて、S52で検出したショップが登録条件に合致しないと判断する(S72:No)。
そして、端末プログラム65は、ショップID“SHOP−C”が非登録ショップIDとして記憶されておらず、ショップID“SHOP−C”で識別されるショップが登録条件に合致し、且つ対象ショップ情報がメモリ62に記憶されていないと判断したことに応じて(S71:No&S72:Yes&S73:なし)、図12(A)に示される登録確認画面Bをディスプレイ53に表示させる(S74)。そして、端末プログラム65は、登録確認画面Bに対するユーザ操作を、入力I/F54を通じて受け付ける(S75)。
登録確認画面Bは、S52で検出したショップのショップレコードを対象ショップ情報として登録するか否かを、ユーザに選択させるための画面である。登録確認画面Bは、「このショップを登録しますか?」とのメッセージと、S52で受信したショップレコードのショップID“SHOP−C”及びショップ位置情報“位置C”と、[YES]アイコン151と、[NO]アイコン152と、[後で]アイコン153とを含む。
そして、端末プログラム65は、[YES]アイコン151の指定を入力I/F54を通じて受け付けたことに応じて(S75:YES)、S52で受信したショップレコードを、対象ショップ情報としてメモリ62に記憶させる(S76)。S76の処理は、第3記憶処理の一例である。
また、端末プログラム65は、[NO]アイコン152の指定を入力I/F54を通じて受け付けたことに応じて(S75:NO)、S52で受信したショップレコードのショップID“SHOP−C”を、非登録ショップIDとしてメモリ62に記憶させる(S77)。
さらに、端末プログラム65は、[後で]アイコン153の指定を入力I/F54を通じて受け付けたことに応じて(S75:後で)、S52で受信したショップレコードのショップID“SHOP−C”を、候補ショップIDとしてメモリ62に記憶させる(S78)。
一方、端末プログラム65は、ショップID“SHOP−C”が非登録ショップIDとして記憶されていると判断したことに応じて(S71:Yes)、ショップID“SHOP−C”で識別されるショップが登録条件に合致しないと判断したことに応じて(S72:No)、或いは対象ショップ情報が既にメモリ62に記憶されていると判断したことに応じて(S73:あり)、S74〜S78の処理をスキップして、ショップ登録処理Bを終了する。
次に、図9を参照して、消耗品交換時の処理の詳細を説明する。消耗品交換時の処理は、購入情報を適切に更新すると共に、適切な対象ショップ情報を登録する処理である。
まず、端末プログラム65は、通信I/F55を通じて指定装置からCTG脱着情報を受信するまで(S81:No)、S82以降の処理の実行を待機する。CTG脱着情報は、プリンタ11の装着部からインクカートリッジが取り外され、且つ装着部にインクカートリッジが装着されたことを推定する情報である。すなわち、CTG脱着情報は、指定装置のインクカートリッジが交換されたことを推定する推定情報の一例である。より詳細には、端末プログラム65は、CTG脱着情報の送信を要求する送信要求情報を、通信I/F55を通じてMFP10に送信する。そして、端末プログラム65は、送信要求情報を送信してから所定の時間が経過してもCTG脱着情報を受信しないことに応じて、送信要求情報を再送信する。
一方、MFP10の装置プログラム35は、例えば、装着センサからの装着信号の出力が停止した後に再び装着信号が出力されたことに応じて、メモリ32に記憶された脱着フラグに“ON”を設定する。また、装置プログラム35は、脱着フラグに“ON”が設定された状態で通信I/F25を通じて携帯端末50から送信要求情報を受信したことに応じて、通信I/F25を通じて携帯端末50にCTG脱着情報を送信すると共に、脱着フラグに“OFF”を設定する。一方、装置プログラム35は、脱着フラグに“OFF”が設定された状態で通信I/F25を通じて携帯端末50から送信要求情報を受信したことに応じて、CTG脱着情報を送信しない。
そして、端末プログラム65は、通信I/F55を通じて指定装置からCTG脱着情報を、送信要求情報の応答として受信したことに応じて(S81:Yes)。メモリ62に記憶された購入情報の残数情報で示されるCTG残数を1だけ減算する(S82)。そして、端末プログラム65は、S82で減算した後のCTG残数が閾値残数(例えば、1)未満か否かを判断する(S83)。S81の処理は第1受信処理の一例であり、S82の処理は減算処理の一例であり、S83の処理は第7判断処理の一例である。
次に、端末プログラム65は、CTG残数が閾値残数未満だと判断したことに応じて(S83:Yes)、通知フラグに第2値“ON”を設定する(S84)。また、端末プログラム65は、現在の装置位置情報を取得する(S85)。S85の処理は、S35と同様であってもよい。さらに、端末プログラム65は、メモリ62に既に記憶されている装置位置情報で示される装置位置(以下、「旧装置位置」と表記する。)と、S85で取得した装置位置情報で示される装置位置(以下、「新装置位置」と表記する。)との間の距離が第2距離以上か否かを判断する。S84の処理は、第2設定処理の一例である。
第2距離は、指定装置が設定されている拠点(例えば、自宅、会社、学校など)が移転したか否かを判断するための距離である。すなわち、第2距離は、1つの拠点の想定される広さ(例えば、数十m〜数百m)より長い(例えば、数km)。第2距離は、閾値距離と同様に、直線距離でもよいし、経路に沿った距離でもよいし、時間距離でもよい。また、第2距離は、固定値でもよいし、可変値でもよい。
次に、端末プログラム65は、旧装置位置と新装置位置との間の距離が第2位置未満だと判断したことに応じて(S86:No)、候補ショップIDがメモリ62に記憶されているか否かを判断する(S87)。次に、端末プログラム65は、例えば、候補ショップID“SHOP−C”が記憶されていると判断したことに応じて(S87:あり)、図12(B)に示されるショップ選択画面をディスプレイ53に表示させる(S88)。そして、端末プログラム65は、ショップ選択画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S89)。
ショップ選択画面は、候補ショップIDで識別されるショップを、対象ショップとして登録するか否かをユーザに選択させる画面である。ショップ選択画面は、「このショップを登録しますか?」とのメッセージと、候補アイコン161と、[キャンセル]アイコン162とを含む。候補アイコン161は、メモリ62に記憶された候補ショップIDの1つに対応する。候補アイコン161には、対応する候補ショップIDが記述されている。すなわち、複数の候補ショップIDがメモリ62に記憶されている場合、ショップ選択画面は、複数の候補アイコンを含む。
次に、端末プログラム65は、候補アイコン161の指定を入力I/F54を通じて受け付けたことに応じて(S89:候補)、候補アイコン161に対応する候補ショップID“SHOP−C”を含むショップレコードをサーバ80から受信し、受信したショップレコードを対象ショップ情報としてメモリ62に記憶させる(S90)。S90の処理は、第3記憶処理の一例である。さらに、端末プログラム65は、メモリ62に記憶された全ての候補ショップIDを削除する。
一方、端末プログラム65は、[キャンセル]アイコン162の指定を入力I/F54を通じて受け付けたことに応じて(S89:キャンセル)、S90の処理をスキップして、消耗品交換時の処理を終了する。また、端末プログラム65は、候補ショップIDがメモリ62に記憶されていないと判断したことに応じて(S87:なし)、S88〜S90の処理をスキップして、消耗品交換時の処理を終了する。さらに、端末プログラム65は、S82で減算した後のCTG残数が閾値残数以上だと判断したことに応じて(S83:No)、S84〜S92の処理をスキップして、消耗品交換時の処理を終了する。
一方、端末プログラム65は、旧装置位置と新装置位置との間の距離が第2位置以上だと判断したことに応じて(S86:Yes)、メモリ62に記憶されている装置位置情報を、S85で新たに取得した装置位置情報で上書きする(S91)。そして、端末プログラム65は、ショップ登録処理Cを実行する(S92)。ショップ登録処理Cは、図5のS36〜S41に相当する処理である。すなわち、端末プログラム65は、S92において、移設後の指定装置を基準として第1条件に合致するショップを、対象ショップとして登録する。
[本実施形態の作用効果]
上記の実施形態によれば、指定装置に着脱可能なインクカートリッジを販売するショップのうち、携帯端末50を所持するユーザの近くにあるショップが報知される。これにより、指定装置に着脱可能なインクカートリッジを販売するショップを探すユーザの手間を省くことができる。なお、上記の実施形態では、事前に対象ショップとして登録されたショップのみが報知対象となる例を示したが(S53:Yes)、事前の登録を必要とせずに携帯端末50のユーザの近くにあるショップを報知してもよい。すなわち、S53の処理、及びショップ登録処理A、B、Cは省略されてもよい。
また、ユーザは、指定装置に装着されているインクカートリッジのインク残量が少なくなったタイミングで、新たなインクカートリッジを購入しようと考えるのが自然である。そこで上記の実施形態のように、インク残量が閾値残量未満の場合に購入確認画面を表示させることによって、適切なタイミングでインクカートリッジの購入を促すことができる。一方、インク残量が閾値残量以上の場合は購入確認画面が表示されない。同様に、過去に購入したインクカートリッジの残数が閾値残数未満になるまでの間は(S54:OFF)、報知制御処理が実行されない。これにより、インクカートリッジの購入の必要性が低いタイミングで報知を受ける煩わしさを低減することができる。
また、上記の実施形態によれば、購入確認画面にオンライン価格が表示される。これにより、対象ショップでの販売価格と、WEBショッピングサービスでの販売価格とを比較して、インクカートリッジをどこで購入すべきか否かをユーザに判断させることができる。また、購入確認画面にインクカートリッジの外観を示す画像を表示すれば、ショップ内に陳列された複数種類のインクカートリッジのうちから、指定装置に装着可能なインクカートリッジを見つけやすくなる。
また、上記の実施形態によれば、ユーザが指定した指定装置から閾値距離内に位置し、且つ指定装置に装着可能なインクカートリッジを販売するショップが対象ショップとして登録され、対象ショップの位置が購入確認画面を通じて報知される。これにより、指定装置に装着可能なインクカートリッジを販売しているショップを探すユーザの手間を省くことができる。なお、対象ショップを報知するのは、携帯端末50を所持するユーザが対象ショップに近づいたタイミングに限定されず、例えば、CTG残数が閾値残数未満になったタイミング等であってもよい。
また、上記の実施形態によれば、新たな指定装置が指定されたことをトリガとして、対象ショップ情報をメモリに記憶させるか否かがショップ登録処理Aで適切に判断される。また、ショップ登録処理Aでは、装置位置から閾値距離内にショップが存在しない場合でも、代替位置から閾値距離内のショップが対象ショップとして登録されるので、指定装置に装着可能なインクカートリッジを販売するショップを探すユーザの手間を省くことができる。
なお、ショップ登録処理Aでは、S31〜S34の全ての処理を実行する必要は必ずしもなく、S31〜S34のうちの少なくとも1つが実行されてもよいし、S31〜S34の全ての処理が省略されてもよい。また、端末プログラム65は、旧装置情報で識別されるMFP10と、新装置情報で識別されるMFP10とが同一か否かを判断する処理を、S31〜S34の処理に加えて或いは代えて実行してもよい。そして、端末プログラム65は、旧装置情報及び新装置情報それぞれで識別されるMFP10が異なると判断したことに応じて、S35以降の処理を実行してもよい。
また、携帯端末50の現在位置から第1距離内のショップとは、携帯端末50のユーザが容易に立ち寄れるショップだと考えることができる。そこで上記の実施形態のように、携帯端末50の現在位置から第1距離内のショップを検出したことをトリガとして、ショップ登録処理Bを実行することによって、指定装置に着脱可能なインクカートリッジを販売するショップを探すユーザの手間を省くことができる。一方、携帯端末50から第1距離内であっても、指定装置から閾値距離内でなければ、当該ショップは対象ショップとして登録されない。これは、ユーザが遠方に外出した際に偶然近くを通ったショップが報知されるのを抑制するためである。
また、ショップ登録処理Bでは、S71〜S73の全ての処理を実行する必要は必ずしもなく、S71〜S73のうちの少なくとも1つが実行されてもよいし、S71〜S73の全ての処理が省略されてもよい。また、ショップ登録処理Bにおいて、S61〜S64の処理をさらに実行してもよい。すなわち、端末プログラム65は、インク残量が閾値残量未満であると判断したことに応じて、S66の処理を実行してもよい。一方、端末プログラム65は、インク残量が閾値残量以上であると判断したことに応じて、S66の処理を実行しなくてもよい。
また、上記の実施形態によれば、過去の登録確認画面Bで[NO]アイコン152がタップされたショップの近くを再び訪れた際に、当該ショップを登録するか否かを確認する登録確認画面Bが再び表示されるのを抑制することができる。また、上記の実施形態によれば、過去の登録確認画面Bで[後で]アイコン153がタップされたショップを対象ショップとして登録するか否かが、指定装置のインクカートリッジを交換したタイミングでユーザに問合せされる(S88&S89)。これにより、携帯端末50のユーザは、例えば、外出中に近くを訪れたショップのうち、指定装置に着脱可能なインクカートリッジを購入したショップを指定すればよい。
また、ユーザは、CTG残数が閾値残数以上の時に近くを訪れたショップで新たにインクカートリッジを購入する可能性が低い。そのため、外出中に偶然ショップの近くを訪れたとしても、当該ショップを対象ショップとして登録する可能性は低いと考えられる。そこで、CTG残数が閾値残数未満で且つ候補ショップIDが記憶されている場合にのみ(S83:Yes&S87:あり)、S88以降の処理を実行するのが望ましい。
また、旧装置位置と新装置位置との距離が第2距離以上の場合とは、例えば、引越し等によって指定装置が移設された場合と考えることができる。そこで、このような場合には、新装置位置から閾値距離内で且つ指定装置に着脱可能なインクカートリッジを販売するショップを、対象ショップとして登録し直すのが望ましい。
なお、上記の実施形態では、位置検出部56から出力される位置情報を、装置位置情報及び端末位置情報とする例を説明したが(S35、S51、S85)、位置情報の取得方法はこれに限定されない。端末プログラム65は、例えばS35、S85において、通信I/F55を通じて指定装置から位置情報を受信してもよい。この場合の位置情報は、例えば、MFP10の入力I/F54を通じてユーザが設定したロケーション情報でもよいし、MFP10に搭載されたFAX部に設定された電話番号の市外局番でもよい。また、端末プログラム65は、例えばS51において、ショップのゲートに設置されたビーコン送出から送出されるビーコン信号を受信したことによって、第1距離内にショップが存在することを検出してもよい。ビーコン信号は、例えば、Wi−Fi、NFC、Bluetooth等に準拠した信号でもよい。また、この場合の第1距離は、ビーコン信号の到達距離に対応する。
また、上記の実施形態では、対象ショップ情報を1つだけ記憶する例を説明したが、複数の対象ショップ情報がメモリ62に記憶されていてもよい。すなわち、端末プログラム65は、S39、S76、S90において、既にメモリ62に記憶されている対象ショップ情報とは別に、新たな対象ショップ情報をメモリ62に記憶させてもよい。また、上記の実施形態では、装置位置から閾値距離内のショップのみが対象ショップとして登録される例を説明したが、S52で検出したショップを、装置位置からの距離に関係なく対象ショップとして登録してもよい。すなわち、端末プログラム65は、S72において、S52で検出したショップの所在地と装置位置との関係を判断しなくてもよい。
この場合の端末プログラム65は、報知制御処理において(S55)、S52で検出したショップの所在地と、メモリ62に記憶された装置位置情報で示される装置位置との距離が閾値距離未満か否かを判断してもよい。この処理は、第4判断処理の一例である。また、端末プログラム65は、メモリ62に記憶された対象ショップ情報で示される複数の対象ショップのうち、S52で検出したショップと異なるショップ(以下、「他のショップ」と表記する。)の所在地と装置位置情報で示される装置位置とが閾値距離未満か否かを判断してもよい。この処理は、第5判断処理の一例である。
そして、端末プログラム65は、S52で検出したショップの所在地と装置位置との距離が閾値距離未満だと判断したことに応じて、S61以降の処理を実行してもよい。また、端末プログラム65は、S52で検出したショップの所在地と装置位置との距離が閾値距離以上で、且つ他のショップの所在地と装置位置との距離が閾値距離未満だと判断したことに応じて、S61以降の処理を実行してもよい。一方、端末プログラム65は、S52で検出したショップの所在地と装置位置との距離が閾値距離以上で、且つ他のショップの所在地と装置位置との距離が閾値距離以上だと判断したことに応じて、S61〜S64の処理をスキップして、S65以降の処理を実行してもよい。
装置位置からの距離が閾値距離未満のショップ(すなわち、拠点に近いショップ)にユーザが訪れるチャンスは多いと考えられるので、S66の処理を実行するか否かをS64で判断するのが望ましい。一方、装置位置からの距離が閾値距離以上のショップ(すなわち、拠点から遠いショップ)にユーザが訪れるチャンスは少ないので、S64の処理を実行せずにS66の処理を実行するのが望ましい。但し、拠点に近い他のショップが登録されている場合は、拠点から遠いショップでインクカートリッジを購入する必要性は低いので、S66を実行するか否かをS64で判断すればよい。
また、ショップリストに登録されているショップで販売されている商品は、インクカートリッジに限定されず、MFP10に装着される他の消耗品(トナーカートリッジ、ドラムユニット、インクリボン、排液フォーム、被記録媒体)でもよいし、MFP10に装着可能なアクセサリ(例えば、増設トレイ)等でもよい。また、ショップは、商品を販売することに限定されず、MFP10のメンテナンス或いは修理をしてもよい。すなわち、ショップリストには、MFP10に関するサービスを提供するショップが登録される。
すなわち、指定装置に着脱可能なインクカートリッジを販売するショップは、指定装置に関するサービスを提供するショップの一例である。また、対象ショップ情報に含まれる販売CTGタイプは、どのモデルのMFP10に関するサービスをショップで提供可能かを示す情報の一例である。また、CTG残数は、ショップで提供されたサービスを指定装置に適用可能な回数の一例である。また、CTG脱着情報は、ショップが提供するサービスが指定装置に適用されたことを推定する推定情報の一例である。
また、上記の実施形態のMFP10及び携帯端末50において、メモリ32、62に記憶された各種プログラムがCPU31、61によって実行されることによって、本発明のコントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
さらに、本発明は、MFP10及び携帯端末50として実現できるだけでなく、MFP10及び携帯端末50に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、non−transitoryな記録媒体に記録されて提供されてもよい。non−transitoryな記録媒体は、CD−ROM、DVD−ROM等の他、通信ネットワークを通じてMFP10及び携帯端末50に接続可能なサーバに搭載されたメモリを含んでもよい。そして、サーバのメモリに記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット101等の通信ネットワークを通じて配信されてもよい。