A.第1実施例
A−1.システムの構成:
次に、本発明の実施の形態を実施例に基づき説明する。図1は、第1実施例における情報提供システムの構成を示すブロック図である。このシステムは、複合機200と、携帯端末400と、を備えている。このシステムは、さらに、インターネット70に接続されたサーバ60を備えても良い。
複合機200は、CPU210と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置220と、RAMなどの揮発性記憶装置230と、所定の印刷方式、例えば、ドラム上に形成されたトナー画像を用紙に転写するレーザ方式のプリントエンジンであるプリンタ部240と、光学センサ(例えば、CIS(Contact Image Sensor))を用いて、原稿を光学的に読み取るスキャナ部250と、タッチパネル260Aやボタン260Bを含むなどの操作部260と、タッチパネルと重畳された液晶などの表示パネル270Aを含む表示部270と、パーソナルコンピュータ(図示省略)などの外部装置とデータ通信を行うためのインタフェースを含む通信部280と、を備えている。表示部270は、複合機200に関する表示を行うための表示部であり、例えば、後述するようにQRコードを含む画像を表示するために用いられる。
揮発性記憶装置230には、CPU210が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域231が設けられている。不揮発性記憶装置220は、複合機200を制御するためのコンピュータプログラム221と、複合機200の状態に応じた状態情報が記述された状態テーブル222と、状態情報をQRコードに変換して出力する際に参照される出力関連情報が記述された関連情報テーブル223とを、格納している。関連情報テーブル223は、後述する第1の関連情報テーブル223A(図2)と、第2の関連情報テーブル223B(図3(B))と、を含んでいる。
コンピュータプログラム221は、例えば、複合機200の出荷時に予め不揮発性記憶装置220に格納されている。また、コンピュータプログラム221は、CD−ROMなどに記録された形態や、サーバからダウンロードされる形態で提供されても良い。
CPU210は、コンピュータプログラム221を実行することにより、複合機200の全体を制御する。具体的には、CPU210は、装置制御部110と、UI制御部120として機能する。装置制御部110は、プリンタ部240やスキャナ部250などを制御して、画像印刷処理や画像読取処理などの複合機200の主たる機能を実現する。装置制御部110は、複合機200の状態を管理する状態管理部115を含んでいる。UI制御部120は、ユーザインタフェースを提供するUI画像を表示部270に表示する処理の1つとして、後述するコード画像表示処理を実行する。UI制御部120は、状態情報取得部121と、コード生成部122と、表示制御部124と、指示受付部126と、を含んでいる。これらの各機能部が実行する処理については、後述する。複合機200のCPU210は、表示部を制御する制御装置の例である。ここで、図1で破線で示す印刷処理部128は、第4実施例の複合機が備える構成である。印刷処理部128が行う処理については、第4実施例において説明する。
サーバ60は、周知の計算機であり、図示しないサーバプログラムを実行することにより、携帯端末400や図示しないパーソナルコンピュータなどのクライアント計算機に対して、WEBサービスを提供する。サーバ60には、複合機200の利用者をサポートするためのサポート情報65がWEBページの形式で格納されている。サーバ60は、例えば、複合機200の製造者によって、運営されている。
携帯端末400は、例えば、複合機200の利用者が所有するスマートフォンなどの多機能携帯電話である。携帯端末400は、CPU410と、フラッシュメモリなどの不揮発性記憶装置420と、RAMなどを含みバッファなどに用いられる揮発性記憶装置425と、無線IF部430と、電話IF部440と、スピーカやマイクを含み電話機能などを実現するための音声処理部450と、タッチパネルや操作キーなどを含む操作部460と、タッチパネルと重畳された液晶パネルなどを含む表示部470と、イメージセンサを用いて撮像を行うカメラ490と、を主に備えている。
無線IF部430は、アンテナを含み、例えば、図示しないアクセスポイントを介した無線通信(インフラストラクチャーモードに準拠する無線通信)を行う。電話IF部440は、アンテナを含み、基地局(図示省略)との間で携帯電話通信の方式(例えば、W−CDMA)に準拠する無線通信を行う。無線IF部430や電話IF部440は、後述するように、携帯端末400がサーバ60にアクセスするために用いられる。
カメラ490は、撮像対象物を表す画像データを生成・取得することができる。なお、カメラ490は、後述するQRコードを読み取るために用いられる。
不揮発性記憶装置420には、制御プログラムPG1と、情報表示プログラムPG2と、が格納されている。制御プログラムPG1は、OS(オペレーティングシステム)の機能や、電話機能、カメラ490の制御機能、携帯端末400の基本機能を実現するプログラムである。制御プログラムPG1は、例えば、携帯端末400の製造者によって提供され、出荷時に予め格納されている。
情報表示プログラムPG2は、複合機200の表示部270に表示されたQRコードを読み取ることによって複合機200の状態情報を取得し、取得された状態情報に基づく情報を表示部470に表示する情報表示機能を実現する。情報表示プログラムPG2は、携帯端末400に新たな機能を追加するプログラム(「アプリ」とも呼ばれる。)であり、例えば、携帯端末400の製造者とは異なる提供者(例えば、複合機200の製造者)によって、所定のサーバからダウンロードする形態で、提供される。また、情報表示プログラムPG2は、例えば、携帯端末400の製造者によって提供され、出荷時に予め格納されていても良い。
CPU410は、制御プログラムPG1を実行することによって、携帯端末400の基本機能を実現するメイン制御部20として機能する。また、CPU410は、情報表示プログラムPG2を実行することによって、情報表示部300として機能する。情報表示部300は、コード撮像部310と、コード解析部320と、情報取得部330と、表示制御部340と、を含んでいる。これらの各処理については、後述する。
A−2:複合機200の状態情報:
図2は、第1の関連情報テーブル223Aの一例を示す図である。状態テーブル222には、図2に示す複数種類の状態情報が、図2に示す順(上から下へ向かう順)に格納されている。状態情報は、複数個の大項目と、各大項目に含まれる複数個の小項目と、に分類することができる。複数個の大項目に対応する情報には、例えば、モデル情報と、ネットワーク情報、消耗品情報と、プリンタ情報と、参照URLが挙げられる。
モデル情報は、複数個の小項目として、複合機200の名称(型番)情報と、複合機200のシリアル番号情報と、コンピュータプログラム221のバージョンを示すファームウエアバージョン情報と、を含んでいる。
ネットワーク情報は、複数個の小項目として、周知のネットワーク設定に関する情報であるサブネットマスク情報と、IPゲートウェイ情報と、DNSアドレス情報と、NetBIOS名情報と、を含んでいる。
消耗品情報は、複数個の小項目として、印刷に用いられる複数種のトナーの残量を示す複数個のトナー情報(トナーC、トナーM、トナーY、トナーK(図2))と、複数種のトナーにそれぞれ対応する感光ドラムの寿命を示す複数個のドラム情報(ドラムC、ドラムM、ドラムY、ドラムK(図2))と、を含んでいる。
プリンタ情報は、複数個の小項目として、総印刷枚数情報と、プリンタ部240の状態を示すプリンタ状態情報と、複数種のエラーの履歴をそれぞれ示す複数個のエラー履歴情報(エラー履歴1、エラー履歴2、...)と、を含んでいる。複数種のエラーは、用紙切れ、トナー切れ、紙詰まりなどを含む。プリンタ部240の状態は、エラーが発生しているエラー状態、印刷ジョブを直ちに実行可能である待機状態、印刷処理を実行中であるビジー状態などを含む。なお、小項目と大項目とを含む概念を、情報項目とも呼ぶ。情報項目は、単独で意味を有する情報、言い換えれば、独立して利用可能な情報である。これらの情報項目は、後述する出力対象の状態情報の一部をなす情報であるので、出力対象の状態情報に対するサブ情報とも呼ぶ。
参照URLは、例えば、各エラー状態に対応付けられたURLであり、対応するエラー状態を解消する方法を説明したWEBページのインターネット上の位置を示す位置情報である。参照URLは、例外的に複数個の小項目を含んでいない。
図2の第1の関連情報テーブル223Aには、各小項目の最大のデータ量BVを示す小項目データ量情報と、各大項目の最大のデータ量MVを示す大項目データ量情報とが格納されている。大項目の最大のデータ量MVは、対応する大項目に含まれる複数個の小項目の最大のデータ量BVの合計値である。なお、小項目データ量情報と大項目データ量情報とを含む概念を、項目データ量情報とも呼ぶ。
図2の第1の関連情報テーブル223Aには、各情報項目について、出力情報レベルごとに、出力対象とするか否かを識別する出力対象識別情報が格納されている。図2の例では、出力情報レベルに応じて、出力すべき複数個の情報項目(出力対象項目とも呼ぶ。)に、丸印が付されている。出力情報レベルは、後述する情報出力処理において、出力すべき情報を指定する情報であり、例えば、利用者によって指定される。本実施例では、1〜5までの5種類の出力情報レベルが設定可能である。レベル1は、図2に示すように、図2に示す全ての項目を出力対象項目とするレベルである。レベル2は、プリンタ情報を出力対象項目とするレベルである。レベル3は、プリンタ状態情報と、対応する参照URLを出力対象とするレベルである。レベル4は、消耗品情報を出力対象とするレベルである。レベル5は、ネットワーク情報を出力対象とするレベルである。レベル2とレベル3は、複合機200のプリンタ部240にエラーが発生した場合に、設定されることが想定されている。なお、全ての出力情報レベルにおいて、モデル情報は、基本情報として出力対象とされている(図2)。
図2の第1の関連情報テーブル223Aには、さらに、出力情報レベルごとに、出力対象の状態情報の総データ量SVを表す総データ量情報が格納されている。本実施例では、5種類の出力情報レベル1、2、3、4、5に対応する5つの総データ量SVは、それぞれ、434、117、284、37、67(単位はバイト)である。出力情報レベルに応じて、総データ量SVは大きく変わることが解る。
図2の第1の関連情報テーブル223Aに格納された複数種類の情報のうち、第1実施例のコード画像表示処理(図4)では、上述した出力対象識別情報と、出力情報レベルごとに定められた総データ量SVを示す総データ量情報と、が用いられる。
A−3:QRコード
図3は、QRコードについて説明する図である。図3(A)には、QRコードの一例と、その拡大図が示されている。QRコードCIは、升目状に配置された横M個×縦N個のセルを含んでいる。各セルは、図3(A)の拡大図に示すように、黒色の矩形である第1セルCLAと、白色の矩形である第2セルCLBと、のうちのいずれかである。QRコードCIは、複数個の第1セルCLAと、複数個の第2セルCLBと、で形成されるパターンによって、符号化された情報(符号化情報)を表現するコード画像である。周知のように、QRコードCIは、汎用のデジタルカメラや、専用の読み取り装置などを含む外部機器によって、読み取られる。外部機器は、読み取りによって符号化情報を取得し、取得された符号化情報を復号することによって、符号化前の情報(元情報ともよぶ)を取得することができる。
ここで、1個のQRコードに対応する元情報の上限データ量QVは、QRコード内に含まれるセルの個数によって決定される。ここで、QRコードの種類(バージョンと呼ばれる)は、JIS規格に定められており、セルの個数は、QRコードのバージョン毎に、規定されている。したがって、上限データ量QVは、QRコードのバージョンによって決定される。
本実施例では、採用されるQRコードのバージョンは、表示部270の表示パネルのサイズに応じた適正なバージョン(以下、適正バージョンと呼ぶ。)に決定されている。上述したように、上限データ量QVは、QRコードのバージョンによって決定されるので、上限データ量QVは、表示部270の表示パネルのサイズに応じて、決定されている、と言うことができる。なお、表示サイズに応じた適正なバージョンは、図3(B)に示す第2の関連情報テーブル223Bに記録されている。
本実施例では、一般的なワイド型の液晶パネル、すなわち、横幅:縦幅が16:9であるアスペクト比を有する液晶パネルを想定して、パネルの対角線の長さであるパネル対角長PSに応じて、適正バージョンが規定されている(図3(B))。図3(B)の例では、パネル対角長PSの8種類の範囲が、7個のしきい値TH1〜TH7によって規定されている。そして、当該8種類の範囲のそれぞれに、対応する適正バージョンのバージョン番号3〜10が規定されている。図3(B)には、さらに、各バージョンに対応するセル数(縦×横)と、各バージョンに対応する上限データ量QV(単位は、バイト)とが、示されている。
QRコードの1個のセル(図3(A))が過度に小さい場合には、外部機器によってQRコードが読み取られたときに、読み取りエラーや、読み取りに過度な時間を要する不具合が、発生する可能性が高くなる。逆に、1個のセルが大きいほど、QRコードの単位面積あたりで表現できるデータ量が小さくなる。したがって、本実施例では、1個のセルの大きさが、読み取りエラーなどの不具合が発生しない限度で(例えば1mm以上)、できるだけ小さくなるように、適正バージョンが決定されている(図3(B))。
さらに詳しく説明すると、QRコードの適正バージョンは、表示パネルの実寸(例えば、パネル対角長PSで表される)と、表示パネルの画素数と、に基づいて、決定される。具体的には、液晶パネルの実寸と、画素数と、に基づいて、1画素の実寸が算出される。そして、1画素の実寸に基づいて、1個のセルを表示するために最適な画素数が決定される。例えば、1個のセルの一辺の長さが、1mm(ミリメートル)以上の値であって、1mmにできるだけ近い値となるように、最適な画素数が決定される。そして、最適な画素数で構成された複数個のセルを用いて、QRコードを構成した場合に、液晶パネルに適正に表示可能なバージョンであって、かつ、最もセル数が多い(バージョン番号が大きい)バージョンが、当該パネルの実寸とパネルの画素数との組合わせに対応するバージョンに決定される。
本実施例では、1個のセルの1辺の長さの目標値(1mm)が、1画素の幅(約0.1mm以下)より十分に大きい(例えば、10倍)場合を想定している。このために、適正バージョンは、表示パネルの画素数よりも、表示パネルの実寸に依存して決定される(図3(B))。具体的には、表示パネルの寸法が大きいほど、上限データ量QVが大きいQRコード採用され、表示パネルの寸法が小さいほど、上限データ量QVが小さいQRコードCIが採用される。言い換えれば、表示パネルの寸法が大きいほど、含まれるセルの数が多いQRコード採用され、表示パネルの寸法が小さいほど、含まれるセルの数が小さいQRコードCIが採用される。
図3(B)に示すように、本実施例の第2の関連情報テーブル223Bには、表示部270の表示パネルのサイズに応じて決定されたQRコードの適正バージョンを示すバージョン情報に加えて、適正バージョンに対応する上限データ量QVを示す上限データ量情報とが、予め格納されている。
A−4.複合機200の処理:
状態管理部115は、複合機200の状態に応じて、上述した状態テーブル222を更新する。状態管理部115は、例えば、トナーカートリッジ内のトナー残量や、感光体ドラムの寿命等を周知の方法で管理しており、上述した消耗品情報を更新する。また、状態管理部115は、例えば、利用者によるネットワーク設定の更新や、プリンタ部240の状態に応じて、上述したネットワーク情報や、プリンタ情報を更新する。
次に、UI制御部120が実行するコード画像表示処理について説明する。
図4は、第1実施例のコード画像表示処理のフローチャートである。コード画像表示処理は、複合機200の状態情報をコード化(符号化)したコード画像、具体的には、QRコードを表示部270に表示する処理である。コード画像表示処理は、利用者の開始指示が受け付けられたときに、開始される。利用者は、例えば、複合機200にエラーが発生したときに複合機200のエラー状態に関する情報を得たい場合や、複合機200の現在のネットワーク設定の内容や、トナーなどの消耗品の残量や寿命を確認したい場合に、開始指示を行う。
ステップS10では、UI制御部120の指示受付部126は、利用者から上述した出力情報レベルを取得する。具体的には、指示受付部126は、表示部270に、出力情報レベルを受け付けるためのUI画像である情報レベル選択画像MD1を表示して、利用者から出力情報レベルの選択指示を受け付ける。なお、指示受付部126は、コード画像表示処理が実行される前に、出力情報レベルの選択指示を予め利用者から受け付けても良い。この場合には、指示受付部126は、出力情報レベルを示す情報を、設定情報の1つとして不揮発性記憶装置220に格納しておけば良い。
図5は、情報レベル選択画像MD1の一例を示す図である。この機種選択画像MD1は、上述した設定可能な出力情報レベルの一覧MNと、2個のボタンBT1、BT2と、を含んでいる。利用者は、カーソルCSを移動させて、所望の出力情報レベルを選択したうえで、モデル選択ボタンBT1にタッチすることによって、出力情報レベルを入力する。状態情報取得部121は、利用者からの入力に基づいて、出力情報レベルを示すレベル情報を生成して、不揮発性記憶装置220の所定領域に登録する。ボタンBT2は、情報レベル選択画像MD1の表示をキャンセルするためのボタンである。
ステップS12は、状態情報取得部121は、出力情報レベルに応じて、出力対象の状態情報を特定する。具体的には、状態情報取得部121は、関連情報テーブル223に格納された出力対象識別情報(図2)を参照して、状態テーブル222に格納された状態情報の中から、出力情報レベルに応じた出力対象項目を特定することによって、出力対象の状態情報を特定する。例えば、出力情報レベルが「2」である場合には、出力対象の状態情報として、2個の大項目、すなわち、「モデル情報」と、「プリンタ情報」と、が特定される。
ステップS15では、UI制御部120のコード生成部122は、出力対象の状態情報の総データ量SVを取得する。具体的には、コード生成部122は、上述した関連情報テーブル223から、出力情報レベルに対応する総データ量SVを表す総データ量情報を取得する。例えば、出力情報レベルが「2」である場合には、総データ量SVとして、「117(バイト)」が取得される。続くステップS20では、コード生成部122は、上述した関連情報テーブル223から1個の適正バージョンのQRコードに対応する上限データ量QVを取得する。
ステップS25では、コード生成部122は、ステップS15にて取得された総データ量SVは、ステップS20にて取得された上限データ量QVより大きいか否かを判断する。
総データ量SVが上限データ量QVより大きいと判断されると(ステップS25:YES)、コード生成部122は、必要なQRコードの個数QN(コード総数QNともよぶ)を決定する(ステップS30)。コード総数QNは、上限データ量QVと、総データ量SVと、後述する識別情報HD1のデータ量である識別情報データ量IVと、を用いて、算出される。具体的には、コード総数QNは、総データ量SVを実質上限データ量SQVで除して得られる値(SV/SQV)の端数を切り上げて得られる自然数である。ここで、実質上限データ量SQVは、上限データ量QVから識別情報データ量IVを減算して得られる値(QV−IV)である。実質上限データ量SQVは、1個のQRコードで表現可能な情報本体の上限データ量である。
ステップS35では、状態情報取得部121は、ステップS12にて特定された出力対象の状態情報の先頭から順次に1個のQRコードに対応する部分状態情報を取得する。状態情報取得部121は、上述した実質上限データ量SQV(SQV=(QV−IV))ずつ部分状態情報を取得する。本実施例では、識別情報データ量IVは、20バイトである。したがって、例えば、適正バージョンが、バージョン4である場合には、実質上限データ量SQVは、58バイトである。ここで、状態情報取得部121は、単純に、実質上限データ量SQVずつの部分状態情報を、出力対象の状態情報の先頭から取得するので、1個の大項目のうちの一部分と、残りの部分とが、それぞれ異なる部分状態情報に含まれる場合がある。
ステップS40では、コード生成部122は、取得された部分状態情報に識別情報HD1を付加して、識別情報付きの部分状態情報を生成する。図6は、第1実施例の識別情報HD1の一例を示す図である。識別情報HD1は、状態情報IDが記述される第1フィールドHS1(16バイト)と、ステップS30にて決定されたコード総数QNが記述される第2フィールドHS2(2バイト)と、コード番号CNが記述される第3フィールドHS3(2バイト)と、を含む合計20バイトの情報である。状態情報IDは、出力対象とすべき状態情報の識別子であり、1回のコード画像表示処理で出力対象とされる状態情報ごとに、固有の値である。例えば、状態情報IDは、状態情報IDを決定する時点の時刻、例えば、1個目のQRコードに対応する識別情報HD1を生成する時点の時刻を表す情報である。コード番号CNは、QN個のQRコードに順次に割り振られる番号である。
ステップS45では、コード生成部122は、識別情報付きの部分状態情報を用いて、QRコードを表すコードデータを生成する。特定の情報を用いて、当該特定の情報が符号化されたQRコードを表すコードデータを生成することを、特定の情報をコードデータに変換するとも言う。具体的には、コード生成部122は、識別情報付きの部分状態情報に誤り訂正符号や誤り検出符号を付加する。そして、コード生成部122は、識別情報付きの部分状態情報に基づいて、複数個のセルの配置パターンを決定し、決定された配置パターンを表す画像データを、コードデータとして生成する。
ステップS50では、コード生成部122は、出力対象の状態情報の全部がコードデータに変換されたか否かを判断する。コード生成部122は、出力対象の状態情報の全部がコードデータに変換されていない場合には(ステップS50:NO)、ステップS35に戻って、次の部分状態情報を取得して、上述したステップS40〜S50の処理を繰り返す。コード生成部122は、出力対象の状態情報の全部がコードデータに変換された場合には(ステップS50:YES)、ステップS55に処理を移行する。ステップS55に処理が移行された時点で、QN個のコードデータが生成されている。
ここで、上述したステップS35では、状態情報取得部121は、単純に、識別情報データ量IVずつの部分状態情報を状態情報の先頭から取得するので、1個の大項目のうちの一部分と、当該1個の大項目のうちの残りの部分とが、それぞれ異なる部分状態情報に含まれる場合がある。同様に、1個の小項目のうちの一部分と、残りの部分とが、それぞれ異なる部分状態情報に含まれる場合がある。この結果、QN個のコードデータに対応するQN個の部分状態情報は、独立して利用できない可能性がある。このために、本実施例では、QN個のコードデータによって表されるQN個のQRコードの全部が、外部機器によって読み取られることを前提としている。
ステップS55では、表示制御部124は、生成されたQN個のコードデータを用いて、QN個のQRコードを、利用者の操作に応じて順次に表示部270に表示する。
図7は、第1実施例における、QRコードを含む表示画像MD2の一例を示す図である。この表示画像MD2は、QN個のコードデータによって表されるQN個のQRコードのうち、コード番号CNが「n」であるQRコードCI(n)を表示するための画像である(nは、QN以下の自然数)。表示画像MD2は、QRコードCI(n)と、文字画像NDと、2個のアイコンSL、SRと、QRコードの表示を利用者がキャンセルするためのキャンセルボタンBT2と、を含んでいる。
文字画像NDは、現在表示されているQRコードCI(n)のコード番号CN(すなわち、n)と、コード総数QNと、を利用者に通知するための文字情報を表す画像である。右側アイコンSRは、コード番号CNが「n+1」であるQRコードCI(n+1)がある場合に表示され、当該QRコードCI(n+1)を表示するための操作(具体的には、右方向へのフリック)が受け付け可能であること示唆するアイコンである。左側アイコンSLは、コード番号CNが「n−1」であるQRコードCI(n−1)がある場合に表示され、当該QRコードCI(n−1)を表示するための操作(具体的には、左方向へのフリック)が受け付け可能であること示唆するアイコンである。
表示制御部124は、表示画像MD2を表示部270に表示している状態で、右方向へのフリックを受け付けると、表示部270の表示画像を、表示画像MD2から、QRコードCI(n+1)を含む別の表示画像に、切り替える。表示制御部124は、表示画像MD2を表示部270に表示している状態で、左方向へのフリックを受け付けると、表示部270の表示画像を、表示画像MD2から、QRコードCI(n+1)を含む別の表示画像に、切り替える。
表示制御部124は、キャンセルボタンBT2の押下を受け付けると、QRコードの表示を終了する。
図4に戻って説明を続ける。
ステップS25にて、総データ量SVが上限データ量QV以下である場合には(ステップS25:NO)、状態情報取得部121は、出力対象の状態情報の全体を、取得する(ステップS60)。ステップS65では、コード生成部122は、出力対象の状態情報の全体をコードデータに変換して、1個のQRコードを表す1個のコードデータを生成する。ステップS70では、表示制御部124は、1個のコードデータを用いて、1個のQRコードを、表示部270に表示する。
QRコードの表示(ステップS55、S70)が終了すると、UI制御部120は、コード画像表示処理(図4)を終了する。
A−5.携帯端末400の処理:
上述したコード画像表示処理によって、複合機200の表示部270にQRコードCIが表示されると、利用者は、携帯端末400の情報表示プログラムPG2(図1)を起動させる。情報表示プログラムPG2が起動されると、携帯端末400は、情報表示部300(図1)として機能する。
図8は、携帯端末400の表示部470に表示される画像の一例を示す図である。図8(A)には、QRコードを撮像する撮像処理のためのUI画像SCIの一例が示されている。このUI画像SCIには、カメラ490が撮像している対象物の画像が表示される。UI画像SCIには、対象物の画像に重畳されて表示される枠線SAと、終了指示ボタンBTXとを含んでいる。枠線SAは、利用者が、QRコードの撮像位置を調整するために利用される。終了指示ボタンBTXは、QRコードの撮像を終了する指示を受け付けるためのボタンである。
ここでは、上述したコード画像表示処理によって、表示部270に、複数個(QN個)のQRコードCI(n)(nは、QN以下の自然数)が表示される場合(図7)を例に説明する。まず、情報表示部300のコード撮像部310は、カメラ490を用いて、表示部270に表示されるQN個のQRコードCI(1)〜CI(QN)を光学的に読み取る(撮像する)ことによって、QN個のQRコードCI(1)〜CI(QN)を表すQN個の撮像画像データを順次に取得する(撮像処理)。
コード解析部320は、1個の撮像画像データが取得される度に、撮像画像データを解析して、撮像されたQRコードCI(n)の元情報(識別情報HD1が付加された部分状態情報)を取得する。
識別情報HD1には、コード番号CNとコード総数QNとが含まれているので、これらの情報から、コード撮像部310は、撮像されていないQRコードCI(n)を認識することができる。コード撮像部310は、撮像されていないQRコードCI(n)を撮像するように、利用者を促すメッセージを表示部470に表示する等によって、QN個のQRコードCI(n)をそれぞれ撮像して得られるQN個の撮像画像データが取得されるまで、撮像処理を続ける。
コード撮像部310によってQN個の撮像画像データが取得され、コード解析部320によって、QN個の部分状態情報が取得されると、情報取得部330は、QN個の部分状態情報を、各部分状態情報に対応するコード番号CNに従って結合することによって、複合機200が出力対象とした状態情報を取得する。なお、コード撮像部310によってQN個の撮像画像データが取得されない場合、例えば、QN個のQRコードのうちの1個のQRコードが利用者によって撮像されることなく、利用者から撮像処理の終了指示が受け付けられた場合には、情報取得部330は、状態情報を取得できない。
表示制御部340は、情報取得部330によって取得された状態情報を用いて、利用者に、取得された状態情報の内容を利用者に通知するための情報通知画像NTIを表す画像データを生成する。そして、表示制御部340は、当該画像データを用いて、情報通知画像NTIを、表示部470に表示する。
図8(B)には、情報通知画像NTIの一例が示されている。図8に示す情報通知画像NTIは、トナー情報画像PIと、2個のアイコンSU、SDとを含んでいる。トナー情報画像PIは、図2に示す消耗品情報に基づいて生成された画像であって、トナー残量をトナーの種類(例えば、CMYKの4種類)ごとに、図示する画像である。利用者は、2個のアイコンSU、SDのいずれかが表示されている場合には、対応する操作(例えば、上方向へのフリックまたは下方向のフリック)を行うことによって、他の情報(例えば、ネットワーク情報や、プリンタ情報(図2))を図示する画像を表示部470に表示させることができる。
また、情報取得部330によって参照URL(図2)が取得された場合には、表示制御部340は、当該参照URLを用いて、サーバ60にアクセスすることによって、参照URLによって特定されるWEBページを、表示部470に表示することができる。例えば、複合機200がエラー状態にある場合には、例えば、情報取得部330は、当該エラー状態を解決する方法の説明が記述されたWEBページを特定するための参照URLを取得することができる。
以上説明した第1実施例によれば、コード生成部122は、出力対象の状態情報の総データ量SVが上限データ量QV以下である場合に(図4:ステップS25:NO)、1個のQRコードを表すコードデータを生成し、総データ量SVが上限データ量QVより大きい場合に(図4:ステップS25:YES)、複数個(QN個)のQRコードを表すQN個のコードデータを生成する。この結果、複合機200の状態に応じた状態情報のデータ量に応じて、適切な数のQRコードCIを表示部270に表示することができる。
したがって、例えば、1個のQRコードによって表される情報のデータ量が過度に大きくなることを抑制できるので、読取エラーなどの不具合の発生を抑制することができる。例えば、1個のQRコードによって表される情報のデータ量が過度に大きくなると、1個のセルの大きさが過度に小さくなる可能性がある。1個のセルの大きさが過度に小さくなると、上述したように、読み取りエラーが発生する可能性、あるいは、QRコードの読み取りに過度な時間がかかる可能性が高くなる。
さらに、上限データ量QVは、パネル対角長PSが、例えば、TH1≦PS<TH2を満たす場合には、78バイトに設定され、パネル対角長PSが、例えば、TH2≦PS<TH3を満たす場合には、78バイトより大きい134バイトに設定される(図3(B))。一般的に言えば、表示部270の表示パネルのサイズが、第1のサイズである場合には、上限データ量QVは、第1のデータ量であり、表示部270の表示領域のサイズが第1のサイズより大きい第2のサイズである場合には、上限データ量QVは、第1のデータ量より大きい第2のデータ量である。この結果、表示パネルのサイズに応じて、適切な上限データ量QVが用いられるので、適切なQRコードCIを表示部270に表示することができる。この結果、上述したような読み取りに関する不具合の発生を抑制できるとともに、過度にコード総数QNが大きくなることを抑制することができる。この結果、利用者が、読み取りエラーの発生や多数のQRコードの読み取りに煩わされることを抑制して、複合機200の利便性を向上することができる。
さらに、指示受付部126は、出力対象の状態情報に関する指示として、出力情報レベルを選択する指示を利用者から受け付ける(図2のステップS10、図5)。そして、状態情報取得部121は、指示受付部126によって受け付けられた選択指示に基づく出力情報レベルに応じて、状態テーブル222に格納された状態情報の中から出力対象の状態情報を取得する(ステップS12、ステップS20)。したがって、利用者からの指示に応じて、適切な状態情報に基づいて決定されるコード画像を表示することができる。
B.第2実施例:
B−1:複合機200の処理:
図9は、第2実施例のコード画像表示処理のフローチャートである。
第2実施例における複合機200の構成は、第1実施例における複合機200の構成(図1)と基本的に同一である。図2の第1の関連情報テーブル223Aに格納された複数種類の情報のうち、第2実施例のコード画像表示処理(図9)では、上述した出力対象識別情報(図2)と、項目データ量MVを示す大項目データ量情報(図2)と、が用いられる。また、第2実施例では、表示部270に適正に表示可能な複数種類のバージョンに対応する複数の上限データ量QVの最大値は、図2に示す複数個の大項目データ量MVの最大値より大きいことが前提である。すなわち、図2に示す全ての大項目(モデル情報、ネットワーク情報、消耗品情報、プリンタ情報、参照URL)のそれぞれは、1個のQRコードに変換することができることが前提である。
ステップS100では、指示受付部126は、第1実施例と同様に、利用者の指示を受け付けて出力情報レベルを取得する(図5)。ステップS110では、状態情報取得部121は、第1実施例と同様に、出力情報レベルに応じて、出力対象の状態情報を特定する。ステップS115では、状態情報取得部121は、出力対象の大項目を1個ずつ取得する。具体的には、状態情報取得部121は、関連情報テーブル223に格納された出力対象識別情報を参照して、出力情報レベルに応じて、出力対象の大項目を特定する。状態情報取得部121は、特定された出力対象の大項目を、状態テーブル222から1個ずつ取得する。
例えば、出力情報レベルが「1」である場合には、ステップS115では、状態情報取得部121は、大項目として、モデル情報、ネットワーク情報、消耗品情報、プリンタ情報、参照URLを、順次に取得する。以上の説明から解るように、第2実施例では、部分状態情報(1個のQRコードの元情報となる情報)は、大項目である。すなわち、本実施例における部分状態情報は、それぞれ、独立して利用可能な情報である。
ステップS120では、コード生成部122は、処理対象の大項目に対応する大項目データ量MV(図2)を、関連情報テーブル223から取得する。ステップS125では、コード生成部122は、取得された大項目データ量MVに応じて、QRコードの使用するバージョンを決定する。使用するバージョンは、大項目データ量MV以上の上限データ量QVを有するバージョンのうち、最小の上限データ量QVを有するバージョン(適正バージョン)に、決定される。
図10は、大項目に対応する適正バージョンを示す表である。図10に示すように、処理対象の大項目がモデル情報である場合には、使用するバージョンは、バージョン2に決定され、処理対象の大項目がネットワーク情報である場合には、使用するバージョンは、バージョン3に決定される。同様に、処理対象の大項目が、それぞれ、消耗品情報、プリンタ情報、参照URLである場合には、使用するバージョンは、それぞれ、バージョン1、バージョン5、バージョン10に決定される。
ステップS130では、コード生成部122は、処理対象の大項目をコードデータに変換して、1個のQRコードCIを表す1個のコードデータを生成する。生成されたコードデータによって表されるQRコードCIのバージョンは、ステップS125にて決定されたバージョンに設定される。また、コードデータは、決定されたバージョンに応じて、異なるサイズ(縦方向および横方向の画素数)のQRコードを表すように、生成される。具体的には、バージョン番号が大きいほど、表示部270の表示領域に表示されるサイズが大きいQRコードを表すコードデータが生成される。言い換えれば、QRコード内のセル数が多いほど、バージョンに対応する上限データ量QVが大きいほど、元情報(大項目)の大項目データ量MVが多いほど、大きなサイズのQRコードを表すコードデータが生成される。
ステップS135では、コード生成部122は、出力対象の全ての大項目をコードデータに変換したか否かを判断する。未変換の大項目がある場合には(ステップS135:NO)、コード生成部122は、ステップS115に戻って、未変換の大項目を取得して、上述したステップS120〜S135までの処理を繰り返す。全ての大項目がコードデータに変換済みである場合には(ステップS135:YES)、表示制御部124は、表示部270に、QRコードを、出力対象の大項目ごとに表示する(ステップS140)。
図11は、第2実施例における、QRコードを含む複数の表示画像MD3〜MD6の一例を示す図である。表示画像MD3(図11(A))は、QRコードCIAと、文字画像IN1と、2個のアイコンSL、SRと、キャンセルボタンBT2と、を含んでいる。文字画像IN1は、現在表示されているQRコードCI(n)の元情報の種類を表す文字情報を表す画像である。本実施例では、上述したように、元情報は、1個の大項目であるので、文字画像IN1は、大項目の名称を表す画像である。同様に、他の表示画像MD4〜MD6は、それぞれに、QRコードCIB〜CIDと、文字画像IN2〜IN4と、2個のアイコンSL、SRと、を含む。
複数のQRコードCIA〜CIDは、それぞれ、対応する元情報(大項目)の大項目データ量MVに応じて、表示されるサイズ(画素数)およびバージョン(セル数)が異なっていることが解る。例えば、図2に示すように、プリンタ情報の大項目データ量MVは、ネットワーク情報の大項目データ量MVより大きく、ネットワーク情報の大項目データ量MVは、モデル情報や消耗品情報の大項目データ量MVより大きい。これに対応して、図11に示すように、プリンタ情報に対応するQRコードCIDのサイズは、ネットワーク情報に対応するQRコードCIBのサイズより大きい。また、ネットワーク情報に対応するQRコードCIBのサイズは、モデル情報や消耗品情報に対応するQRコードCIA、CICのサイズより大きい。また、プリンタ情報に対応するQRコードCIDのセル数は、ネットワーク情報に対応するQRコードCIBのセル数より多い。また、ネットワーク情報に対応するQRコードCIBのセル数は、モデル情報や消耗品情報に対応するQRコードCIA、CICのセル数より多い。
表示制御部124は、生成されたコードデータの個数に応じた個数の表示画像(例えば、図11に示す4個の表示画像MD2〜MD6を含む)のうちの1個の表示画像を、表示部270に表示する。表示制御部124は、利用者の操作(例えば、左右方向のフリック)に応じて、表示部270に表示される表示画像の切り替えを行う。これによって、利用者は、生成された複数個のコードデータによって表される複数個のQRコードを、それぞれ、表示部270に表示させることができる。
表示制御部124は、キャンセルボタンBT2の押下を受け付けると、QRコードの表示を終了する。
B−2:携帯端末400の処理:
コード画像表示処理によって、複合機200の表示部270にQRコードが表示されると、第1実施例と同様に、利用者は、携帯端末400の情報表示プログラムPG2(情報表示部300)を用いて、QRコードに基づく情報画像を表示部470に表示させることができる。
すなわち、情報表示部300のコード撮像部310は、表示部270に表示される複数個のQRコード(例えば、図11のQRコードCIA〜CID)のうちの少なくとも1個のQRコードを光学的に読み取ることによって、少なくとも1個の撮像データを取得する。コード撮像部310は、例えば、全てのQRコードに対応する撮像画像データが取得されたか否かに拘わらず、利用者の撮像終了指示を受け付けるまで、撮像処理を続ける。
コード解析部320は、1個の撮像画像データが取得される度に、撮像画像データを解析して、撮像されたQRコードの元情報(大項目)を取得する(撮像処理)。
第2実施例では、1個のQRコードの元情報、すなわち、出力対象の状態情報の部分状態情報は、上述したように、独立して利用可能な部分状態情報(具体的には大項目)であるので、情報取得部330による部分状態情報の結合処理は実行されない。
表示制御部340は、コード解析部320によって取得された大項目ごとに、取得された大項目の内容を利用者に通知するための情報通知画像NTI(図8)を表す画像データを生成する。表示制御部340は、当該画像データを用いて、情報通知画像NTIを、大項目ごとに表示部470に表示する。
以上説明した第2実施例によれば、コード生成部122は、1個のQRコードの元情報となる状態情報(部分状態情報)の種類によって、異なるサイズのQRコードを表すコードデータを生成する。例えば、部分状態情報がプリンタ情報である場合には、比較的大きなサイズのQRコードCID(図11(D))を表すコードデータが生成され、部分状態情報がモデル情報である場合には、比較的小さなサイズのQRコードCIA(図11(A))を表すコードデータが生成される。すなわち、一般的に言えば、コード生成部122は、部分状態情報が第1の情報である場合に、第1のQRコードを表すコードデータを生成し、状態情報が第2の情報である場合に、第2のQRコードを表すコードデータを生成する。そして、第1のQRコードが表示部270に表示される際の表示領域におけるサイズは、第2のQRコードが表示部270に表示される際の表示領域におけるサイズと異なっている。この結果、状態情報に応じて、適切なサイズのQRコードを表示部270に表示することができる。したがって、例えば、QRコードのサイズが過度に小さくなることを抑制できるので、読取エラーなどの不具合の発生を抑制することができる。
さらに、コード生成部122は、複数個の大項目ごとに、別のQRコードを表す別のコードデータを生成する。すなわち、コード生成部122は、第1の大項目に基づいて決定されるQRコードを表す第1のコードデータと、第2の大項目に基づいて決定されるQRコードを表す第2のコードデータと、を生成する。この結果、第1の大項目に基づいて決定されるQRコードと、第2の大項目に基づいて決定されるQRコードと、のうちの一方のQRコードのみが携帯端末400によって読み取られた場合であっても、携帯端末400において、独立して利用可能な大項目を取得することができる。この結果、携帯端末400によって、少なくとも1個のQRコードが読み取られれば、携帯端末400は、少なくとも1個のQRコードに対応する大項目に基づく情報通知画像NTIを表示することができる。この結果、利用者は、例えば、複数個のQRコードCIA〜CIDとともに、表示部270に表示される文字画像IN1〜IN4を参照して、必要な大項目に対応するQRコードだけを携帯端末400を用いて読み取ればよい。その結果、利用者は、必要な情報通知画像NTIを表示部270に表示させることができる。したがって、利用者の操作負担を軽減することができる。
コード生成部122は、1個のQRコードの元情報となる状態情報(部分状態情報)の種類によって、異なるバージョンのQRコード(すなわち、異なるセル数のQRコード)を表すコードデータを生成する。例えば、コード生成部122は、部分状態情報がプリンタ情報である場合には、バージョン5のQRコードを表すコードデータを生成し、部分状態情報がネットワーク情報である場合には、バージョン3のQRコードを表すコードデータを生成する。したがって、大項目データ量MVが小さいにも拘わらず、過度にセル数が多いQRコードが表示されることを抑制できる。
ここで、ステップS115(図9)では、上述したように、状態情報取得部121は、大項目として、モデル情報、ネットワーク情報、消耗品情報、プリンタ情報、参照URLの順で、処理対象の大項目を取得する。したがって、コード生成部122は、ステップS130にて、これらの大項目を表す複数個のコードデータを、同じ順番で生成する。この結果、コード生成部122は、モデル情報を表すコードデータを生成した後、ネットワーク情報を表すコードデータを生成する。そして、ネットワーク情報を表すコードデータのデータ量は、モデル情報を表すコードデータのデータ量より大きい(図10)。また、コード生成部122は、参照URL以外の大項目を表すコードデータを生成した後、参照URLを表すコードデータを生成する。そして、参照URLを表すコードデータのデータ量は、参照URL以外の大項目を表すコードデータのデータ量より大きい(図10)。このように、生成順や表示順が後のコードデータのデータ量の方が、生成順や表示順が前のコードデータのデータ量より大きくなる場合がある。
さらに、第1実施例と同様に、指示受付部126は、出力情報レベルを選択する指示を利用者から受け付ける(図2のステップS10、図5)。そして、状態情報取得部121は、指示受付部126によって受け付けられた選択指示に基づく出力情報レベルに応じて、出力対象の状態情報を取得する(ステップS12、ステップS20)。したがって、利用者からの指示に応じて、適切な状態情報を表すコード画像を表示することができる。
C.第3実施例:
C−1:複合機200の処理:
図12は、第3実施例のコード画像表示処理のフローチャートである。
第3実施例における複合機200の構成は、第1実施例における複合機200の構成(図1)と基本的に同一である。図2の第1の関連情報テーブル223Aに格納された複数種類の情報のうち、第3実施例のコード画像表示処理(図12)では、上述した出力対象識別情報と、項目データ量MVを示す大項目データ量情報と、小項目データ量BVを示す小項目データ量情報と、出力情報レベルごとに定められた総データ量SVを示す総データ量情報と、が用いられる。
第3実施例のコード画像表示処理におけるステップS210〜S225までの処理(図12)は、第1実施例のコード画像表示処理におけるステップS10〜S25(図4)までの処理と同一である。ステップS225にて、総データ量SVが上限データ量QV以下である場合には(ステップS225:NO)、ステップS270〜S280までの処理が実行されて、コード画像表示処理は、終了される。図12のステップS270〜S280までの処理は、図4のステップS60〜S70までの処理と同一である。
ステップS225にて、総データ量SVが上限データ量QVより大きいと判断されると(ステップS225:YES)、状態情報取得部121は、第2実施例のステップS115(図9)と同様に、部分状態情報として、出力対象の大項目を1個ずつ取得する(ステップS230)。例えば、出力情報レベルが「1」である場合には、状態情報取得部121は、大項目として、モデル情報、ネットワーク情報、消耗品情報、プリンタ情報、参照URLを、順次に取得する。
ステップS235では、コード生成部122は、処理対象の大項目に対応する大項目データ量MV(図2)を、関連情報テーブル223から取得する。ステップS240では、コード生成部122は、ステップS235にて取得された大項目データ量MVが実質上限データ量SQVより大きいか否か、すなわち、処理対象の大項目を1個のQRコードを用いて表示可能か否かを判断する。
大項目データ量MVが実質上限データ量SQV以下である場合には(ステップS240:NO)、コード生成部122は、処理対象の大項目に識別情報HD2を付加する(ステップS245)。識別情報HD2の詳細については、後述する。
ステップS250では、コード生成部122は、ステップS235にて取得された大項目データ量MVに応じて、QRコードの使用するバージョンを決定する。使用するバージョンは、識別情報付きの大項目のデータ量(MV+IV)以上の上限データ量QVを有するバージョンのうち、最小の上限データ量QVを有するバージョン(適正バージョン)に、決定される。
ステップS255では、コード生成部122は、識別情報付きの大項目をコードデータに変換することによって、1個のコードデータを生成する。生成されたコードデータによって表されるQRコードのバージョンは、ステップS250にて決定されたバージョンに設定される。1個のコードデータが生成されると、処理は、ステップS285に移行される。
ステップS240にて、大項目データ量MVが実質上限データ量SQVより大きいと判断されると(ステップS240:YES)、コード生成部122は、細分化処理を実行する(ステップS260)。細分化処理は、処理対象の大項目を、さらに、複数の部分状態情報に分割して、1個の大項目に対応する複数個のコードデータを生成する処理である。
図13は、細分化処理のフローチャートである。
細分化処理が開始されると、ステップS2610では、コード生成部122は、処理対象の小項目を設定する。具体的には、処理対象の小項目には、処理対象の大項目に含まれる複数個の小項目の中から、先頭から順次に、1個の小項目が設定される。ステップS2615では、コード生成部122は、処理対象の小項目に対応する小項目データ量BV(図2)を、関連情報テーブル223から取得する。
ステップS2620では、コード生成部122は、ステップS2615にて取得された小項目データ量BVが実質上限データ量SQVより大きいか否かを判断する。小項目データ量BVが実質上限データ量SQVより大きい場合には(ステップS2620:YES)、コード生成部122は、必要なQRコードの個数PN(コード総数PN)を決定する(ステップS2625)。なお、小項目データ量BVが実質上限データ量SQVより大きいこと(ステップS2620でYESと判断されること)は、処理対象の小項目が、1個のQRコードを用いて表示できない(複数個のQRコードを用いて表示する必要がある)ことを意味する。コード総数PNは、小項目データ量BVを実質上限データ量SQVで除して得られる値(BV/SQV)の端数を切り上げて得られる自然数である。
ステップS2630では、状態情報取得部121は、処理対象の小項目の先頭から順次に、実質上限データ量SQVずつ部分状態情報を取得する。ステップS2635では、コード生成部122は、取得された部分状態情報に識別情報HD2(後述)を付加して、識別情報付きの部分状態情報を生成する。ステップS2640では、コード生成部122は、識別情報付きの部分状態情報をコードデータに変換して、1個のコードデータを生成する。
ステップS2645では、コード生成部122は、処理対象の小項目の全部がコードデータに変換されたか否かを判断する。コード生成部122は、処理対象の小項目の全部がコードデータに変換されていない場合には(ステップS2645:NO)、ステップS2630に戻って、次の部分状態情報を取得して、上述したステップS2635〜S2645の処理を繰り返す。コード生成部122は、処理対象の小項目の全部がコードデータに変換された場合には(ステップS2645:YES)、処理をステップS2685に移行する。ステップS2685に処理が移行された時点で、PN個のコードデータが生成されている。なお、この場合には、PN個のコードデータのPN個の元情報のそれぞれは、1個の小項目の一部分であるので、第1実施例のQN個のコードデータのQN個の元情報と同様に、独立して利用できない場合がある。
ステップS2620にて、小項目データ量BVが実質上限データ量SQV以下である場合には(ステップS2620:NO)、実質データ量SQVを上回らない範囲で、処理対象の小項目を含む複数個の小項目を、1個のQRコードを用いてまとめて表示するための処理(S2650〜S2680)を実行する。具体的には、ステップS2650では、コード生成部122は、先頭小項目と末尾小項目とを設定する。具体的には、コード生成部122は、現在の処理対象の小項目を先頭小項目に設定し、現在の処理対象の小項目の1つ後の小項目を末尾小項目に設定する。ステップS2655では、コード生成部122は、先頭小項目から末尾小項目までのデータ量RVを算出する。具体的には、コード生成部122は、関連情報テーブル223を参照して、先頭小項目から末尾小項目までの全ての小項目の小項目データ量BVの合計値を、データ量RVとして算出する。
ステップS2660では、コード生成部122は、算出されたデータ量RVが実質上限データ量SQVより大きいか否かを判断する。データ量RVが実質上限データ量SQV以下である場合には(ステップS2660:NO)、さらに、1個以上の小項目をまとめることができる可能性があるので、コード生成部122は、現在の末尾小項目の1つ後の小項目を、新たな末尾小項目に設定して(ステップS2665)、再び、データ量RVが実質上限データ量SQVより大きいか否かを判断する(ステップS2660)。このように、コード生成部122は、データ量RVが実質上限データ量SQVより大きくなるまで、末尾小項目を1つずつ後にずらしていく。
データ量RVが実質上限データ量SQVより大きい場合には(ステップS2660:YES)、状態情報取得部121は、先頭小項目から、現在の末尾小項目の1つ前の小項目までの小項目から成る部分状態情報を、処理対象として取得する(ステップS2670)。ステップS2675では、コード生成部122は、処理対象の部分状態情報に識別情報HD2(後述)を付加して、識別情報付きの部分状態情報を生成する。ステップS2680では、コード生成部122は、識別情報付きの部分状態情報をコードデータに変換して、1個のコードデータを生成する。1個のコードデータがされると、コード生成部122は、処理をステップS2685に移行する。
ステップS2685では、コード生成部122は、処理対象の大項目の全部がコードデータに変換されたか否かを判断する。コード生成部122は、処理対象の大項目の全部がコードデータに変換されていない場合には(ステップS2685:NO)、ステップS2610に戻って、処理対象の大項目に含まれる未変換の小項目を新たな処理対象に設定して、上述したステップS2610〜S2685の処理を繰り返す。コード生成部122は、処理対象の大項目の全部がコードデータに変換された場合には(ステップS2685:YES)、細分化処理を終了して、図12のステップS285に処理を移行する。
図12のステップS285では、コード生成部122は、出力対象の状態情報の全部がコードデータに変換されたか否かを判断する。出力対象の状態情報の全部がコードデータに変換されていない場合には(ステップS285:NO)、処理は、ステップS230に戻されて、出力対象の状態情報に含まれる大項目のうち、未変換の大項目が、新たな処理対象として取得されて、上述したステップS235〜S285の処理が繰り返される。出力対象の状態情報の全部がコードデータに変換された場合には(ステップS285:YES)、表示制御部124は、ここまでの処理によって生成された複数個のコードデータを用いて、複数個のQRコードを表示部270に順次に表示する(ステップS290)。
以上説明した第3実施例のコード画像表示処理(図12)によって生成されるコードデータの元情報は、4種類に分類できる。第1種の元情報は、ステップS280において生成されるコードデータの元情報であり、出力対象の状態情報の全体である。第2種の元情報は、ステップS255において生成されるコードデータの元情報であり、出力対象の状態情報に含まれる1個の大項目である。第3種の元情報は、細分化処理(図13)のステップS2680において生成されるコードデータの元情報であり、出力対象の状態情報に含まれる1個の小項目、または、複数個の小項目である。第4種の元情報は、細分化処理のステップS2640において生成されるコードデータの元情報であり、出力対象の状態情報に含まれる1個の小項目を分割して得られる部分小項目である。第1種の元情報を除いた第2種〜第3種の元情報は、出力対象の状態情報の一部分である部分状態情報である。そして、第2種の元情報(1個の大項目)と、第3種の元情報(1個以上の小項目)は、独立して利用可能な部分状態情報であり、以下、独立部分情報とも呼ぶ。そして、第4種の元情報(部分小項目)は、独立して利用できない部分状態情報であり、同じ小項目を分割して得られる他の第4種の元情報(部分小項目)と一体で利用されるべき部分状態情報である。以下、第4種の元情報を非独立部分情報とも呼ぶ。
ここで、コード画像表示処理(図12)の説明において述べたように、第1種の元情報を除いた第2種〜第3種の元情報には、部分状態情報に加えて、部分状態情報に付加された識別情報HD2が含まれる。
図14は、第3実施例の識別情報HD2の一例を示す図である。本実施例の識別情報HD2は、第1実施例における識別情報HD1と同様の3つのフィールド、すなわち、状態情報IDが記述される第1フィールドHS1と、コード総数PNが記述される第2フィールドHS2と、コード番号CNが記述される第3フィールドHS3と、を含む。識別情報HD2は、さらに、大項目を識別するための識別子である大項目IDが記述される第4フィールドHS4(2バイト)と、小項目を識別するための識別子である小項目IDが記述される第5フィールドHS5(2バイト)と、を含んでいる。大項目IDや小項目IDには、例えば、2個の英字の組合わせなどが用いられる。
付加される対象の部分状態情報が、大項目である場合には、小項目ID、コード総数PN、コード番号CNが記述されるべき3つのフィールドHS5、HS2、HS3には、ゼロが記述される。すなわち、識別情報HD2の3つのフィールドHS5、HS2、HS3にゼロが記述されている場合には、当該識別情報HD2を取得した外部機器は、当該識別情報HD2が付加された部分状態情報が大項目であることを識別することができる。
付加される対象の部分状態情報が、小項目である場合には、コード総数PN、コード番号CNが記述されるべき2つのフィールドHS2、HS3には、ゼロが記述される。すなわち、識別情報HD2のフィールドHS5に小項目IDが記述され、かつ、2つのフィールドHS2、HS3にゼロが記述されている場合には、当該識別情報HD2を取得した外部機器は、当該識別情報HD2が付加された部分状態情報が小項目であることを識別することができる。
そして、付加される対象の部分状態情報が、部分小項目である場合にのみ、コード総数PNとコード番号CNが2つのフィールドHS2、HS3に、それぞれ記述される。したがって、当該識別情報HD2の2つのフィールドHS2、HS3にコード総数PNとコード番号CNがそれぞれ記述されている場合には、当該識別情報HD2を取得した外部機器は、当該識別情報HD2が付加された部分状態情報が部分小項目であることを識別することができる。
以上の説明から解るように、識別情報HD2における2つのフィールドHS2、HS3に記述される情報は、識別情報HD2が付加された部分状態情報が、独立して利用可能な情報であるか、他の部分状態情報と一体で利用されるべき情報であるか、を識別する情報である、と言うことができる。
C−2.携帯端末400の処理:
図15は、第3実施例における情報表示処理のフローチャートである。図16は、QRコードを読み取るためのUI画像の一例である。この情報表示処理は、複合機200の表示部270にQRコードが表示されたときに、携帯端末400の情報表示部300(図1)によって実行される。
ステップS310では、QRコードの撮像および解析が実行される。具体的には、コード撮像部310は、所定の撮像用のUI画像SUI(例えば、図8(A))を表示して、利用者の操作に応じて、複合機200の表示部270に表示されたQRコードを撮像することによって、撮像画像データを取得する。コード解析部320は、撮像画像データを解析することによって、QRコードの元情報である識別情報HD2と、情報本体と、を取得する。
ここで、本実施例では、情報本体は、上述したコード画像表示処理における出力対象の状態情報の全体である場合と、出力対象の状態情報の一部分である部分状態情報である場合とがある。ただし、上述したコード画像表示処理から解るように、情報本体が、出力対象の状態情報の全体である場合には、識別情報HD2は付加されていないので、例外的に、識別情報HD2は取得されない。
ステップS315では、取得された識別情報HD2と、情報本体とを、バッファ領域231の所定の記憶領域に記憶する。
ステップS320では、情報取得部330は、ステップS315で記憶された識別情報HD2を解析する。ステップS325では、情報取得部330は、識別情報HD2の解析結果に基づいて、ステップS315で取得された情報本体は、独立して利用可能な情報(独立情報)であるか否かを判断する。ここで言う独立情報には、出力対象の状態情報の全体と、上述した独立部分情報とが含まれる。すなわち、情報本体に、識別情報HD2が付加されていない場合には、情報本体は、出力対象の状態情報の全体であると判断される。また、識別情報HD2における2つのフィールドHS2、HS3にゼロが記述されている場合には、情報本体は、独立部分情報であると判断される。そして、識別情報HD2における2つのフィールドHS2、HS3に、コード総数PNと、コード番号CNが記述されている場合には、情報本体は、非独立部分情報である(独立情報でない)と判断される。
情報本体は独立情報であると判断されると(ステップS325:YES)、処理は、ステップS380に移行する。情報本体は独立情報でないと判断されると(ステップS325:NO)、すなわち、情報本体は非独立部分情報であると判断されると、コード撮像部310は、当該非独立部分情報と一体として利用すべき他の非独立部分情報を取得するために、他のQRコードの撮像および解析を実行して、他のQRコードの元情報である識別情報HD2と、情報本体と、を取得する。例えば、コード撮像部310は、撮像されていない他のQRコードを撮像するように、利用者を促すメッセージを表示部470に表示する等によって、利用者に他のQRコードを撮像させる。
続くステップS335では、情報取得部330は、新たに取得された識別情報HD2を解析する。ステップS340では、情報取得部330は、識別情報HD2の解析結果に基づいて、新たに取得された識別情報HD2に含まれる状態情報IDは、記憶済みの識別情報HD2に含まれる状態情報IDと、一致するか否かを判断する。新たに取得された状態情報IDが、記憶済みの状態情報IDと、一致する場合には(ステップS340:YES)、情報取得部330は、新たに取得された情報本体(非独立部分情報)が、記憶済みの非独立部分情報であるか否かを判断する(ステップS345)。具体的には、情報取得部330は、新たに取得された識別情報HD2に含まれるコード番号CNが、既に記憶済みの識別情報HD2に含まれるコード番号CNと一致する場合には、新たに取得された情報本体(非独立部分情報)が、記憶済みの非独立部分情報であると判断する。
情報取得部330は、新たに取得された情報本体(非独立部分情報)が、記憶済みの非独立部分情報でないと判断すると(ステップS345:NO)、新たに取得された識別情報HD2と、情報本体とを、バッファ領域231の所定の記憶領域に記憶する(ステップS350)。
一方、新たに取得された状態情報IDが、記憶済みの状態情報IDと、一致しない場合(ステップS340:NO)、および、新たに取得された情報本体(非独立部分情報)が、記憶済みの非独立部分情報である場合(ステップS345:YES)には、情報取得部330は、新たに取得された識別情報HD2と、情報本体とを記憶せずに、処理をステップS370に移行する。
ステップS355では、情報取得部330は、記憶済みの識別情報HD2に含まれる複数のコード番号CNと、記憶済みの識別情報HD2に含まれるコード総数PNと、に基づいて、全ての非独立部分情報が記憶済みであるか否かを判断する。全ての非独立部分情報が記憶済みである場合には(ステップS355:YES)、情報取得部330は、記憶済みの全ての非独立部分情報を結合して、独立情報を取得する(ステップS360)。独立情報が取得されると、処理は、ステップS380に移行される。
全ての非独立部分情報が記憶済みでない場合には(ステップS355:NO)、情報取得部330は、処理をステップS370に移行する。
ステップS370では、情報表示部300は、利用者からの撮像終了指示が受け付けられたか否かを判断する。例えば、本実施例では、利用者は、いつでもQRコードの撮像を終了できるように、情報表示部300は、QRコードの撮像を終了する指示を、常に、利用者から受け付けている(図8(A)参照)。利用者からの撮像終了指示が受け付けられていない場合には(ステップS370:NO)、処理は、ステップS330に戻されて、新たなにQRコードの撮像と解析が行われ、上述したステップS335〜370までの処理が繰り返される。利用者からの撮像終了指示が受け付けられた場合には(ステップS370:YES)、情報表示部300は、記憶済みの非独立部分情報をバッファ領域231から消去して、処理をステップS385に移行する。
ステップS380では、情報表示部300は、利用者からの撮像終了指示が受け付けられたか否かを判断する。利用者からの撮像終了指示が受け付けられていない場合には(ステップS380:NO)、情報表示部300は、処理は、ステップS310に戻されて、新たなにQRコードの撮像と解析が行われ、上述したステップS310〜380までの処理が繰り返される。利用者からの撮像終了指示が受け付けられた場合には(ステップS380:YES)、情報表示部300は、処理をステップS385に移行する。
ステップS385では、表示制御部340は、ステップS385に処理が移行して時点で取得されている独立情報を用いて、情報通知画像(図8(B)参照)を表示部270に表示する。
以上説明した第3実施例によれば、UI制御部120は、処理対象の状態情報に含まれる大項目および小項目のデータ量に応じて、適切なデータ量を有する部分状態情報を生成することができる。より具体的には、QRコードの適正バージョンに対応する上限データ量QVに基づいて、適正バージョンより大きなバージョンのQRコードを表すコードデータは生成されない(図12のステップS225、S240、図13のステップS2620)。この結果、第1実施例と同様に、1個のQRコードによって表される情報のデータ量が過度に大きくなることを抑制できるので、読取エラーなどの不具合の発生を抑制することができる。
さらに、実質上限データ量SQV以下の大項目データ量MVを有する大項目については、第2実施例のように、コード生成部122は、大項目ごとに、別のQRコードを表す別のコードデータを生成する(図12:ステップS230〜S255)。この結果、大項目ごとに生成されたコードデータによって表されるQRコードだけが、外部機器によって読み取られた(撮像された)場合であっても、外部機器は、当該QRコードに対応する大項目を取得して利用することができる。
さらに、実質上限データ量SQVを超える大項目データ量MVを有する大項目については、コード生成部122は、当該大項目に含まれる小項目のうちの、実質上限データ量SQV以下の小項目データ量BVを有する1個または複数個の小項目ごとに、別のQRコードを表す別のコードデータを生成する(図13:ステップS2650〜S2680)。この結果、当該1個または複数個の小項目ごとに生成されたコードデータによって表されるQRコードだけが、外部機器によって読み取られた場合であっても、外部機器は、当該QRコードに対応する1個または複数個の小項目を取得して利用することができる。
さらに、実質上限データ量SQV以下の小項目データ量BVを有する複数個の小項目は、実質上限データ量SQVを超えない範囲で、1個の部分状態情報にまとめて、コードデータに変換される(図13:ステップS2650〜S2680)。言い換えれば、第1の小項目の全体と、第1の小項目の次の第2の小項目の全体と、のデータ量の和が特定のデータ量(具体的には、実質上限データ量SQV)より大きい場合には、第1の小項目に基づいて決定される第1のコードデータと、第2の小項目に基づいて決定される第2のコードデータとがそれぞれ生成される。そして、第1の小項目の全体と、第2の小項目の全体と、のデータ量の和が特定のデータ量以下である場合には、第1の小項目と第2の小項目に基づいて決定される1個のコード画像を表す1個のコードデータが生成される。この結果、小項目のデータ量に応じて適切な数のコードデータを生成することができる。具体的には、出力対象の状態情報が、比較的小さな小項目データ量BVを有する比較的多数の小項目を含む場合であっても、過度に多数のQRコードが表示部270に表示されることを抑制することができる。この結果、QRコードの読み取りのための利用者の操作負担が過剰になることを抑制することができる。
さらに、実質上限データ量SQVを超える小項目データ量BVを有する小項目は、小項目データ量BVに応じて、複数個(具体的には、PN個)の部分状態情報に分割されて、コードデータに変換される(図13:ステップS2625〜2645)。この結果、出力対象の状態情報が、比較的大きな小項目データ量BVを有する小項目を含む場合であっても、1個のQRコードによって表される情報のデータ量が過度に大きくなることを抑制できるので、読取エラーなどの不具合の発生を抑制することができる。
さらに、処理対象の状態情報が、複数個の部分状態情報ごとに、複数個のコードデータに変換される場合には、各部分状態情報に識別情報HD2(図14)が付加される。そして、識別情報HD2は、QRコードによって表される部分状態情報が、独立して利用可能な情報であるか、他の部分状態情報と一体で利用されるべき情報であるか、を識別する情報(具体的には、第2フィールドHS2および第3フィールドHS3に記述される情報)を含む。この結果、携帯端末400は、QRコードを読み取って得られた部分状態情報が、独立して利用可能な情報であるか、他の部分状態情報と一体で利用されるべき情報であるかを、容易に認識することができる(図15)。
D.第4実施例:
第4実施例のコード画像表示処理は、表示部270を用いたQRコードの表示に加えて、プリンタ部240を用いた印刷処理を利用した状態情報の提供を行う点が、第1実施例のコード画像表示処理と異なる。以下、第1実施例のコード画像表示処理と異なる点を中心に説明する。第4実施例における複合機200の構成は、第1実施例における複合機200の構成(図1)と基本的に同一である。ただし、第4実施例における複合機200のUI制御部120は、第1実施例の構成に加えて、図1に破線で示す印刷処理部128を備えている。
図16は、第4実施例のコード画像表示処理のフローチャートである。第4実施例のコード画像表示処理におけるステップS410〜S425までの処理(図16)は、第1実施例のコード画像表示処理におけるステップS10〜S25(図4)までの処理と同一である。ステップS425にて、総データ量SVが上限データ量QV以下である場合には(ステップS425:NO)、図4のステップS60〜S70までの処理が実行され(ステップS460)、コード画像表示処理は終了される。
ステップS425にて、総データ量SVが上限データ量QVより大きいと判断されると(ステップS425:YES)、UI制御部120は、プリンタ部240が印刷可能な状態であるか否かを判断する(ステップS430)。プリンタ部240が印刷可能な状態でない場合には(ステップS430:NO)、図4のステップS35〜S55までの処理が実行され(ステップS470)、コード画像表示処理は終了される。プリンタ部240が印刷可能な状態でない場合には、例えば、用紙切れや、用紙詰まり、トナー切れなどの印刷の実行を妨げるエラーが発生している場合が考えられる。
プリンタ部240が印刷可能な状態である場合には(ステップS430:YES)、状態情報取得部121は、出力対象の状態情報の全体(すなわち、出力情報レベルに応じて決定される複数個の大項目に属する全ての情報)を、取得する(ステップS435)。ステップS440では、印刷処理部128は、複合機200の状態情報の出力を印刷によって実行する場合に関するユーザ設定において、出力形態が文字等による出力に設定されているか否かを判断する(ステップS440)。本実施例では、当該ユーザ設定において、出力形態は、文字等による出力と、QRコードによる出力と、いずれかに設定可能である。
出力形態が文字等による出力に設定されている場合には(ステップS440:YES)、印刷処理部128は、出力対象の状態情報を文字で表す第1の印刷画像PI1を表す第1の印刷画像データを生成し(ステップS445)、処理をステップS460に移行する。
出力形態が文字による出力に設定されていない場合には(ステップS440:NO)、すなわち、出力形態がQRコードによる出力に設定されている場合には(ステップS440:NO)、コード生成部122は、出力対象の状態情報は、出力対象の状態情報の全体をコードデータに変換して、1個のQRコードを表す1個のコードデータを生成する(ステップS450)。この場合は、QRコードのバージョンに、出力対象の状態情報の総データ量SVより大きな上限データ量QVを有するバージョンが選択される。この結果、出力対象の状態情報の総データ量SVが比較的大きい場合(例えば、出力情報レベル1(図2)である場合)であっても、1個のQRコードを表す1個のコードデータが生成される。
ステップS455では、印刷処理部128は、コード生成部122によって生成された1個のコードデータを用いて、1個のQRコードを含む印刷画像を表す第2の印刷画像PI2を表す第2の印刷画像データを生成する。
ステップS460では、印刷処理部128は、ステップS445にて生成された第1の印刷画像データ、または、ステップS455にて生成された第2の印刷画像データを用いて、プリンタ部240に印刷を実行させる。印刷が終了すると、コード画像表示処理は、終了される。
図17は、状態情報を利用者に提供するための印刷画像の一例を示す図である。図17(A)には、第1の印刷画像PI1が示され、図17(B)には、第2の印刷画像PI2が示されている。第1の印刷画像PI1は、上述したように、状態情報が文字等にって出力された画像である。第1の印刷画像PI1には、印刷画像を見た利用者が出力対象の状態情報の内容を目視で認識可能であるように、出力対象の状態情報が、文字や描画(図形、グラフなどを含む)を含む画像によって、表されている。図17(A)の例では、第1の印刷画像PI1は、モデル情報、消耗品情報、ネットワーク情報、プリンタ情報をそれぞれ文字等で表す画像MN、TR、NS、PRを含んでいる。図17(B)に示すように、第2の印刷画像PI2は、1個のQRコードを表す画像CIEを含んでいる。
以上説明した第4実施例によれば、印刷処理部128は、出力対象の状態情報の総データ量SVが基準量(例えば、QRコードの上限データ量QV)より大きい場合に、出力対象の状態情報に基づく印刷画像(例えば、第1の印刷画像PI1または第2の印刷画像PI2)を、プリンタ部240に印刷させる。この結果、出力対象の状態情報のデータ量に応じた適切な態様で状態情報を出力することができる。出力対象の状態情報の総データ量SVが基準量より大きい場合には、出力対象の状態情報をQRコードによって表示部270に表示すると、QRコードのセルの大きさが過度に小さくなる可能性があるので、読み取りエラーなどの不具合が発生しやすい。また、出力対象の状態情報の総データ量SVが基準量より大きい場合には、出力対象の状態情報をQRコードによって表示部270に表示すると、表示するQRコードの個数が過度に多くなる可能性があるので、利用者の作業負担が増大しやすい。第4実施例によれば、このような不具合を抑制することができる。
また、印刷処理部128は、文字等で状態情報を表す第1の印刷画像PI1を印刷することができる。この場合には、QRコードを利用者が読み取る作業が発生しないので、上述した不具合は発生しない。
また、印刷処理部128は、表示部270に表示する場合と比較して、大きなQRコードを含む第2の印刷画像PI2を印刷することができる。この場合には、セルの大きさを比較的大きくすることができるとともに、QRコードの個数を減少することができるので、上述の不具合の発生を抑制することができる。
E.変形例:
(1)上記各実施例は、電子機器の例示として複合機をあげているが、これに代えて、他の電子機器、例えば、デジタルカメラや、単体のプリンタ、スキャナであっても良い。
(2)上記各実施例において、QRコードに代えて、外部機器を用いて読み取らせるために、情報を符号化して表す他のコード画像、例えば、バーコードなどの1次元コード、スタック式やマトリクス式などのQRコード以外の2次元コードが採用されても良い。
(3)上記各実施例では、QRコードを介して、複合機200から参照URLを携帯端末400に渡すことによって、携帯端末400がサーバ60から参照すべき適切なWEBページを容易に取得することができる。これに代えて、携帯端末400は、他の方法で、サーバ60にアクセスしても良い。例えば、携帯端末400は、QRコードを介して、複合機200から受け取ったプリンタ状態(例えば、エラー状態)を表す情報とモデル情報とをサーバ60に送信して、URLを問い合わせる。サーバ60は、プリンタ状態を表す情報とモデル情報とに基づいて、参照すべきWEBページのURLを、情報表示部300に返信する。携帯端末400は、サーバ60から取得したURLを用いて、サーバ60にアクセスすることによって、適切なWEBページを取得しても良い。この場合には、サーバ60において、サーバの管理者がサポート情報を提供するWEBページを更新することによって、URLが変更されても、携帯端末400は、適切なWEBページを取得することができる。
(4)なお、携帯端末400がサーバ60から取得するサポート情報は、複合機200から取得されても良い。具体的には、複合機200の不揮発性記憶装置220に当該サポート情報を、プリンタ状態と対応付けて、予め記憶しておけば良い。そして、複合機200の表示部270に表示されるQRコードの元情報には、複合機200のIPアドレスと、プリンタ状態を表す情報と、が含められる。携帯端末400は、当該QRコードを撮像・解析して、IPアドレスと、プリンタ状態を表す情報と、を取得する。携帯端末400は、取得したIPアドレスを用いて、複合機200にアクセスして、プリンタ状態に対応するサポート情報を、複合機200から取得する。
(5)上記各実施例では、大項目や小項目が独立して利用可能な情報の例としてあげられているが、これに限られない。例えば、大項目に含まれる全ての小項目を取得しなければ、携帯端末400が利用者に表示すべき適切な情報通知画像を作成できない場合には、大項目だけが独立して利用可能な情報であり、小項目は、一体として利用されるべき情報としても良い。このように、独立して利用可能な情報と、一体として利用されるべき情報とは、携帯端末400の情報表示部300の仕様等によって、適宜決定されれば良い。例えば、複数の大項目の組合わせが、独立して利用可能な情報に設定されても良い。
(6)上記第1実施例では、表示部270の表示パネルのサイズに応じて、予め適正バージョンが決定されている。すなわち、表示部270の最大の表示領域のサイズに応じて、適正バージョンが決定されている。これに代えて、表示部270の表示パネルの一部の表示領域のサイズに応じて、適正バージョンが決定されても良い。例えば、QRコードの周囲に表示する文字画像(例えば、利用者へのメッセージ)等との関係で、QRコードの表示領域が表示部270の表示パネルの一部の表示領域である場合には、当該一部の表示領域のサイズに応じて、適正バージョンが決定されても良い。また、例えば、QRコードの周囲に表示する文字画像が変化することによって、当該一部の表示領域が変動する場合には、変動する当該一部の表示領域のサイズに応じて、適正バージョンは、動的に決定されても良い。すなわち、表示部の表示領域のサイズは、表示部270の表示パネルの全部の表示領域、および、一部の特定の表示領域を含む。
(7)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
(8)本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア(コンピュータプログラム)は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含んでいる。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。