A.第1実施例
A−1.システムの構成
次に、本発明の実施の形態を実施例に基づき説明する。図1は、第1実施例のシステム1000の構成を示すブロック図である。このシステム1000は、3個のプリンタ200A〜200Cと、2個のスキャナ300A、300Bと、複合機400と、ミシン500と、ガーメントプリンタ600と、アクセスポイント50と、携帯端末100と、を備えている。8個のデバイス(画像処理装置とも呼ぶ)200A〜200C、300A、300B、400、500、600と、アクセスポイント50は、ローカルエリアネットワーク(LAN)60に接続されている。
LAN60は、例えば、建物(ビルなど)内にイーサネット(登録商標)規格に準拠して構築された有線ネットワークである。
アクセスポイント50は、例えば、IEEE802.11a/b/g/nなどの規格で定められる通信方式を利用した無線LANのアクセスポイントである。携帯端末100は、アクセスポイント50を介してLAN60に接続される。従って、携帯端末100は、アクセスポイント50とLAN60とを介して、8個のデバイス200A〜200C、300A、300B、400、500、600と通信を行うことが可能である。
プリンタ200Aは、制御部CTと、ユーザインタフェースや通信インタフェースを含むインタフェース部IFと、印刷実行部240とを備えている。制御部CTは、CPU210と、RAMなどの揮発性記憶装置220と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置230と、を備えている。インタフェース部IFは、液晶などの表示パネルを含む表示部250と、表示パネルと重畳されたタッチパネルやボタンなどを含む操作部260と、LAN60を介して外部機器とデータ通信を行うためのインタフェースを含む通信部270と、を備えている。印刷実行部240は、所定の方式(例えば、インクジェット、レーザー)を用いて、用紙に画像を印刷するプリントエンジンである。
揮発性記憶装置220には、CPU210が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域221が設けられている。不揮発性記憶装置230は、プリンタ200Aを制御するための制御プログラム231と、後述する入出力情報232Aと、を格納している。
制御プログラム231は、例えば、プリンタ200Aの出荷時に予め不揮発性記憶装置230に格納されている。また、制御プログラム231Aは、CD−ROMなどに記録された形態や、サーバからダウンロードする形態で提供され得る。
プリンタ200B、200Cは、プリンタ200Aと同様に制御部とインタフェース部と印刷実行部とを備えている(図示省略)。プリンタ200A〜200Cは、互いに機種が異なるために、印刷実行部や制御プログラムの仕様などが互いに異なっており、後述するように入力可能なデータのフォーマットが互いに異なっている。このために、プリンタ200A〜200Cには、互いに異なる入出力情報232A、232B、232C(図2を参照して後述する)が格納されている。
スキャナ300A、300Bは、プリンタ200Aと同様に、制御部とインタフェース部を備えている(図示省略)。スキャナ300A、300Bは、プリンタ200Aの印刷実行部240に代えて、光学センサ(例えば、例えば、CIS(Contact Image Sensor))を用いて、原稿を光学的に読み取る読取実行部(図示省略)を備えている。スキャナ300Aとスキャナ300Bとは、機種が互いに異なるために、読取実行部や制御プログラムの仕様などが互いに異なっており、後述するように出力可能な読取画像データのフォーマットが互いに異なっている。このために、スキャナ300A、300Bには、互いに異なる入出力情報332B、332C(図2を参照して後述する)が格納されている。
複合機400は、プリンタ200Aと同様に、制御部とインタフェース部と印刷実行部とを備え、スキャナ300A、300Bと同様に、読取実行部を備えている(図示省略)。複合機400には、複合機400の仕様に応じた入出力情報432(図2を参照して後述する)が格納されている。さらに、複合機400のインタフェース部は、電話回線と接続するためのインタフェースを備えている。そして、複合機400の制御部は、読取実行部を用いた読取処理と、印刷実行部を用いた印刷処理と、所定の形式(FAXG4形式など)の画像データを電話回線を介して送受信する電話通信処理と、を実行することができる。また、複合機400の制御部は、読取処理と印刷処理とを組合わせることによって、原稿に示された画像を紙に印刷するコピー処理を実行することができる。また、読取処理と印刷処理と電話通信処理とを組合わせることによって、原稿に示された画像を表す画像データを電話回線を介して送信するとともに、電話回線を介して受信された画像データを紙に印刷するファックス処理を実現することができる。
ミシン500は、プリンタ200Aと同様に、制御部とインタフェース部とを備えている(図示省略)。ミシン500は、プリンタ200Aの印刷実行部240に代えて、ミシンベッド上に配置された縫製対象の布を所定の平面に沿って移動させつつ、布が移動する平面と垂直な方向に縫い針を往復駆動することによって、画像を刺繍することができる縫製実行部を備えている。ミシン500の制御部は、入力された画像データを用いて、画像を刺繍するための刺繍データを生成し、刺繍データに従って縫製実行部を駆動することによって、画像データによって表される画像の刺繍を実行することができる。ミシン500には、ミシン500の仕様に応じた入出力情報532(図2を参照して後述する)が格納されている。
ガーメントプリンタ600は、プリンタ200Aと同様に、制御部とインタフェース部とを備えている(図示省略)。ガーメントプリンタ600は、プリンタ200Aの印刷実行部240に代えて、例えばインクジェット方式を用いて、Tシャツなどの衣類に画像を印刷する衣類用の印刷実行部を備えている。ガーメントプリンタ600には、ガーメントプリンタ600の仕様に応じた入出力情報632(図2を参照して後述する)が格納されている。
プリンタ200A〜200C、ミシン500、ガーメントプリンタ600は、用紙や布に画像を形成する装置であるので、画像形成装置と呼ぶことができる。スキャナは、原稿を読み取ることによって読取画像データを生成する装置であるので、画像データ生成装置と呼ぶことができる。また、複合機400は、プリンタの機能とスキャナの機能との両方を備えているので、画像形成装置であり、かつ、画像データ生成装置でもある、と言うことができる。
図2は、入出力情報の一例を示す図である。入出力情報は、入力情報と出力情報とを含んでいる。例えば、図2(A)〜図2(C)には、プリンタ200A〜200Cの入力情報232A〜232Cが示されている。入力情報は、対象のデバイスで実行される画像処理のために入力されるデータがある場合には、入力可能なデータのフォーマットを示す情報である。プリンタ200A〜200Cで実行される画像処理は、「用紙への印刷処理」である。印刷処理のための入力は、画像データの形態で行われる。このために、図2(A)〜図2(C)に示すように、プリンタ200A〜200Cの入出力情報232A〜232Cでは、入力情報は、印刷処理のために入力可能な画像データのフォーマットを示す情報である。具体的には、入力可能な画像データのフォーマットは、例えば、ビットマップデータのフォーマットや、圧縮済みの画像データのフォーマットや、ページ単位で画像データを保存するためのフォーマットを含む。ビットマップデータのフォーマットは、例えば、RGBの各成分の階調値で画素ごとの色を表すRGB画像データや、CMYKの各成分の階調値で画素ごとの色を表すCMYK画像データや、画素ごとに印刷ドットを形成するか否かを示すドットデータなどのフォーマットを含む。圧縮済みの画像データのフォーマットは、JPEG(Joint Photographic Experts Group)やGIF(Graphics Interchange Format)などのフォーマットを含む。ページ単位で画像データを保存するためのフ
ォーマットは、PostScriptなどのページ記述言語のフォーマットや、PDF(Portable Document Format)を含む。
具体的には、プリンタ200Aの入出力情報232Aの入力情報は、ドットデータと、RGB画像データと、JPEG方式で圧縮された画像データと、PostScriptで記述された画像データと、PDFで保存された画像データと、を示す情報を含んでいる(図2(A))。また、プリンタ200Bの入出力情報232Bの入力情報は、RGB画像データと、JPEG方式で圧縮された画像データと、を示す情報を含んでいる(図2(B))。そして、プリンタ200Cの入出力情報232Cの入力情報は、ドットデータと、PostScriptで記述された画像データと、PDFで保存された画像データと、を示す情報を含んでいる(図2(C))。
以上の説明から解るように、印刷処理のために入力可能な画像データのフォーマットは、プリンタの機種によって異なる場合がある。本実施例では、図2(A)に示すように、プリンタ200Aには、ドットデータと、RGB画像データと、JPEG方式で圧縮された画像データと、PostScriptで記述された画像データと、PDFで保存された画像データと、を入力することが可能である。一方、図2(B)に示すように、プリンタ200Bには、RGB画像データと、JPEG方式で圧縮された画像データと、を入力することが可能であるが、他のフォーマットの画像データを入力することはできない。また、図2(C)に示すように、プリンタ200Cには、ドットデータと、PostScriptで記述された画像データと、PDFで保存された画像データと、を入力することが可能であるが、他のフォーマットの画像データを入力することはできない。
出力情報は、対象のデバイスで実行される画像処理の結果の出力が、データとは異なる形態で行われる場合には、出力の形態を示す情報である。印刷処理の結果の出力は、画像データではなく、「用紙」の形態で行われる。このために、プリンタ200A〜200Cの入出力情報232A〜232Cの出力情報は、印刷処理の出力の形態である「用紙」を示す情報である。
入力情報は、対象のデバイスで実行される画像処理のための入力が、データとは異なる形態で行われる場合には、入力の形態を示す情報を含む。スキャナ300A、300Bで実行される画像処理は、「用紙(すなわち、原稿)の読取処理」である。読取処理のための入力は、画像データではなく、「用紙」の形態で行われる。このために、図2(D)〜図2(E)に示すように、スキャナ300A、300Bの入出力情報332A、332Bの入力情報は、読取処理のための入力の形態である「用紙」を示す情報である。
出力情報は、対象のデバイスで実行される画像処理の結果として出力されるデータがある場合には、出力可能なデータのフォーマットを示す情報を含む。読取処理の結果の出力は、画像データの形態で行われる。このために、スキャナ300A、300Bの入出力情報332A、332Bの出力情報は、読取処理にて出力可能な画像データのフォーマットを示す情報である。
具体的には、スキャナ300Aの入出力情報332Aの出力情報は、RGB画像データと、JPEG方式で圧縮された画像データと、PDFで保存された画像データと、を示す情報を含んでいる(図2(D))。また、スキャナ300Aの入出力情報332Bの出力情報は、RGB画像データを示す情報を含んでいる(図2(E))。
以上の説明から解るように、読取処理の結果として出力可能な画像データのフォーマットは、スキャナの機種によって異なる場合がある。本実施例では、図2(D)に示すように、スキャナ300Aは、RGB画像データと、JPEG方式で圧縮された画像データと、PDFで保存された画像データと、を出力することが可能であり、他のフォーマットの画像データを出力することはできない。図2(E)に示すように、スキャナ300Bは、RGB画像データのみを出力することが可能であり、他のフォーマットの画像データを出力することはできない。
複合機400で実行される画像処理は、「用紙への印刷処理」と、「用紙の原稿の読取処理」と、「ファックス処理」である。したがって、複合機400では、印刷処理およびファックス処理のための入力は、画像データの形態で行われ、読取処理のための入力は、「用紙」の形態で行われる。また、複合機400では、印刷処理の結果の出力は、「用紙」の形態で行われ、読取処理およびファックス処理の結果の出力は、画像データの形態で行われる。このために、図2(F)に示すように、複合機400の入出力情報432は、印刷処理および読取処理およびファックス処理のそれぞれの入力情報と出力情報とを含んでいる。
例えば、本実施例では、複合機400の入出力情報432は、印刷処理の入力情報として、RGB画像データと、JPEG方式で圧縮された画像データと、PDFで保存された画像データと、をそれぞれ示す情報を含んでいる。また、複合機400の入出力情報432は、印刷処理の出力情報として、「用紙」を示す情報を含んでいる。また、複合機400の入出力情報432は、読取処理の入力情報として、「用紙」を示す情報を含み、読取処理の出力情報として、RGB画像データと、PDFで保存された画像データと、をそれぞれ示す情報を含んでいる。例えば、複合機400の入出力情報432は、ファックス処理の入力情報として、印刷処理の入力情報と同じ情報を含み、ファクス処理の出力情報として、FAXG4方式のフォーマットを示す情報を含んでいる。
また、ミシン500で実行される画像処理は、「布への刺繍処理」である。刺繍処理のための入力は、画像データの形態で行われ、刺繍処理の結果の出力は、画像データではなく、「布(刺繍)」の形態で行われる。このために、図2(G)に示すように、ミシン500の入出力情報532の入力情報は、RGB画像データと、JPEG方式で圧縮された画像データと、を示す情報を含んでいる。また、入出力情報532の出力情報は、「布(刺繍)」を示す情報を含んでいる。
また、ガーメントプリンタ600で実行される画像処理は、「布への印刷処理」である。印刷処理のための入力は、画像データの形態で行われ、印刷処理の結果の出力は、画像データではなく、「布(プリント)」の形態で行われる。このために、図2(H)に示すように、ガーメントプリンタ600の入出力情報632の入力情報は、RGB画像データと、JPEG方式で圧縮された画像データと、を示す情報を含んでいる。また、入出力情報632の出力情報は、「布(プリント)」を示す情報を含んでいる。
図1に戻って説明を続ける。携帯端末100は、例えば、スマートフォンと呼ばれる多機能携帯電話である。携帯端末100は、CPU110と、RAMなどの揮発性記憶装置120と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置130と、無線IF部140と、電話IF部150と、スピーカやマイクを含み電話機能などを実現するための音声処理部160と、タッチパネルや操作キーなどを含む操作部170と、タッチパネルと重畳された液晶パネルなどを含む表示部180と、を主に備えている。
無線IF部140は、アンテナを含み、例えば、IEEE802.11a/b/g/nなどの規格に従って、アクセスポイント50との無線通信を行う。この結果、上述したように、携帯端末100は、アクセスポイント50およびLAN60を介して、LAN60に接続された複数個のデバイス200A〜200C、300A、300B、400、500、600と通信を行うことが可能である。
電話IF部150は、アンテナを含み、基地局(図示省略)との間で携帯電話通信の方式(例えば、W−CDMA)に準拠する無線通信を行う。電話IF部440は、例えば、電話や、基地局を介したインターネット70への接続などに用いられる。
揮発性記憶装置120には、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域125が設けられている。
不揮発性記憶装置130には、制御プログラムPG1と、デバイス利用プログラムPG2と、エラー発生情報EIと、機能情報FIと、が格納されている。制御プログラムPG1は、OS(オペレーティングシステム)の機能や、電話機能など、携帯端末100の基本機能を実現するプログラムである。制御プログラムPG1は、例えば、携帯端末100の製造者によって提供され、出荷時に予め格納されている。デバイス利用プログラムPG2は、LAN60に接続された複数個のデバイス200A〜200C、300A、300B、400、500、600を遠隔操作するための機能を実現するプログラムである。デバイス利用プログラムPG2は、携帯端末100に新たな機能を追加するプログラム(「アプリ」などと呼ばれる。)であり、例えば、携帯端末100の製造者とは異なる提供者(例えば、デバイスの製造者)によって、所定のサーバからダウンロードする形態で、提供される。また、デバイス利用プログラムPG2は、例えば、携帯端末100の製造者によって提供され、出荷時に予め格納されていても良い。
図3は、機能情報FIの一例を示す図である。機能情報FIは、入力デバイスと出力デバイスとのペア(以下、単にデバイスのペアと呼ぶ)と、そのデバイスのペアを用いて実現可能な複合処理の機能の種類を、対応付ける情報である。本実施例の複合処理は、入力デバイスで実行される入力側の画像処理と、入力側の画像処理によって得られるデータを用いて、出力デバイスで実行される出力側の画像処理と、を含む処理である。入力デバイスは、複合処理のための情報が入力されるデバイスである。複合処理のための情報は、例えば、画像データや用紙の原稿の形態で入力される。出力デバイスは、複合処理の結果を出力するデバイスである。本実施例では、コピー処理と、高速コピー処理と、カードファックス処理と、刺繍コピー処理と、衣類コピー処理と、の5種類の複合処理が想定されている。
コピー処理は、原稿を読み取る入力デバイスとしてのスキャナと、スキャナから出力される読取画像データを用いて用紙に画像を印刷する出力デバイスとしてのプリンタと、によって実現される。高速コピー処理は、原稿を読み取る入力デバイスとしての複合機と、複合機から出力される読取画像データを用いて用紙に画像を印刷する出力デバイスとしてのプリンタと、によって実現される。高速コピー処理では、複合機の印刷実行部と、プリンタとが、同一の画像データを用いて同一の画像の印刷を並行して実行する。この結果、複合機が単体でコピー処理を実行する場合と比較して、高速なコピー処理を行うことができる。カードファックス処理は、クレジットカードや免許証などの厚みのある原稿を読み取る入力デバイスとしてのフラットベッド式のスキャナと、フラットベッド式のスキャナから出力される読取画像データを用いて用紙に画像を印刷する出力デバイスとしてのプリンタと、によって実現される。刺繍コピー処理は、原稿を読み取る入力デバイスとしてのスキャナと、スキャナから出力される読取画像データを用いて布に画像を刺繍するミシンと、によって実現される。衣類コピー処理は、原稿を読み取る入力デバイスとしてのスキャナと、スキャナから出力される読取画像データを用いて布に画像を印刷するガーメントプリンタと、によって実現される。
機能情報FIは、機種検索テーブルFIA(図3(A))と、複合処理検索テーブルFIB(図3(B))と、を含んでいる。機種検索テーブルFIAは、デバイスの種類と、デバイスの機種識別子(機種IDとも呼ぶ)と、を対応付けて、格納している。デバイスの種類は、具体的には、プリンタ、スキャナ、フラットベッド式のスキャナ、複合機、ミシン、ガーメントプリンタの6種類に大別されている。機種IDは、例えば、デバイスの型番(図3(A)の例では、PR−xxxxxなど)が用いられる。スキャナは、フラットベッド方式のスキャナと、自動原稿送り(ADF(auto document feeder))方式のスキャナを含む。したがって、フラットベット式のスキャナの機種IDは、「フラットベット式のスキャナ」と、「スキャナ」と、の2種類に、対応付けられている。この結果、デバイスの機種IDを検索キーとして、機種検索テーブルFIAを検索すれば、デバイスの種類を特定することができる。
複合処理検索テーブルFIBは、入力デバイスの種類と出力デバイスの種類とのペアと、当該デバイスのペアを用いて実現される複合処理の機能の種類と、を対応付けて格納している。例えば、図3(B)に示すように、入力デバイスとしてのスキャナと、出力デバイスとしてのプリンタと、のペアには、複合処理の種類としてコピー処理が対応付けられている。
2個のテーブルFIA、FIBと、を参照すれば、入力デバイスの機種IDと出力デバイスの機種IDとを検索キーとして、2個の機種IDに対応するデバイスのペアで実現できる複合処理の機能の種類を特定することができる。なお、機能情報FIは、2個のテーブルFIA、FIBで構成されているが、これに代えて、入力デバイスの機種IDと出力デバイスの機種IDのペアに、複合処理の種類が直接に対応付けられた1個のテーブルが、機能情報FIとして用いられても良い。機能情報FIは、例えば、デバイス利用プログラムPG2に予め組み込まれた形態で提供される。機能情報FIを利用する処理については、後述する。
図4は、エラー発生情報EIの一例を示す図である。エラー発生情報EIは、エラーが発生するデバイスのペアを示す機種IDのペアと、エラーの種類と、を対応付けて格納しているテーブルである。エラーの種類には、例えば、通信エラーと、モアレの発生と、色再現性の不良と、が含まれる。
通信エラーは、例えば、入力デバイスが出力する画像データを出力デバイスが受け取れないエラーや、入力デバイスが出力する画像データを出力デバイスが受け取れるが、出力デバイスが、その画像データを処理することができないエラーを含む。具体的には、通信エラーは、入力デバイスが出力する画像データのフォーマットを受信することに、出力デバイスが対応していない場合を含む。また、通信エラーは、入力デバイスが出力する画像データのフォーマットの受信に、出力デバイスが対応できるが、後述するようなフォーマットの細かい仕様や、出力デバイスのメモリの容量不足などによって、出力デバイスが当該画像データを用いて画像処理を実行できない場合を含む。このような通信エラーが発生する、あるいは、発生する可能性があるデバイスのペアのエラー情報は、例えば、予めエラー発生情報EIに登録されてデバイス利用プログラムPG2に組み込まれていても良いし、後述するように、実際にエラーが発生した場合にエラー発生情報EIに追加されても良い。
モアレは、印刷画像に含まれる複数の空間周波数成分が、干渉することによって、意図しない干渉縞が印刷画像に現れる現象である。モアレは、例えば、印刷に用いられる画像データを生成するスキャナの読取解像度が、低いほど発生しやすいことが知られている。また、印刷に用いられる画像データに、モアレ除去のための画像処理(モアレ除去処理とも呼ぶ)を実行することで、モアレの発生を抑制することができる。モアレ除去処理は、例えば、画像データにノイズを加えることによって、印刷画像に含まれる複数の空間周波数成分を低減する処理などが知られている。このために、例えば、読取解像度が基準解像度(例えば、300dpi)より低いスキャナと、モアレ除去処理を実行することができないプリンタとのペアについては、モアレの発生の可能性が高いことを示すエラー情報がエラー発生情報EIに登録される。また、例えば、読取解像度が基準解像度より低いスキャナと、モアレ除去処理を実行することができないプリンタと、のうちの少なくとも一方のデバイスを含む、スキャナとプリンタのペアについては、モアレの発生の可能性があることを示すエラー情報がエラー発生情報EIに登録される。
色再現性の不良は、例えば、入力デバイスが出力する画像データ(例えば、読取画像データ)によって表現できる色域が、出力デバイスが出力する画像(例えば、印刷画像や、刺繍された画像)によって表現できる色域と比較して、過度に狭い場合に発生し得る。この場合には、出力デバイスの色域の表現能力を十分に発揮できないからである。また、出力デバイスが出力する画像によって表現できる色域が、入力デバイスが出力する画像データによって表現できる色域と比較して、過度に狭い場合に発生し得る。この場合には、入力デバイスが出力する画像データによって表される画像を、出力デバイスが出力する画像にて十分に表現できないからである。このために、入力デバイスが出力する画像データによって表現できる色域の広さと、出力デバイスが出力する画像によって表現できる色域の広さと、の差が基準値以上であるデバイスのペアについては、色再現性の不良が発生する可能性があることを示すエラー情報がエラー発生情報EIに登録される。例えば、2つの色域を同じ色空間(例えば、La*b*色空間)で表した場合における2つの色域の体積の差が、2つの色域のうちの大きい方の色域の体積の所定割合(例えば、20%)以上である場合に、色再現性の不良が発生する可能性があると判断されても良い。
通信エラーや色再現性のエラーは、2つのデバイスの能力(例えば、データのフォーマットに対する対応能力や、色の表現能力)の不整合に関するエラーであると、言うことができる。
A−2.システムの動作:
A−2−1.UI表示処理:
システム1000の動作のうち、携帯端末100が実行するUI表示処理について説明する。図5は、携帯端末100のCPU110が実行するUI表示処理のフローチャートである。UI表示処理は、システム1000内の複数個のデバイスのうちの1個以上のデバイスに対して、画像処理を実行させるためのUI画像を、携帯端末100の表示部250に表示する処理である。UI表示処理は、ユーザが、システム1000内の複数個のデバイスに画像処理を実行させるために、携帯端末100にて、デバイス利用プログラムPG2を起動したときに開始される。UI表示処理は、CPU110がデバイス利用プログラムPG2を実行することによって実現される処理である。
UI表示処理が開始されると、最初のステップS11では、CPU110は、画像処理を実行させるデバイスの候補として、LAN60内のデバイスを検索する。具体的には、CPU110は、所定の検索パケットを、LAN60上にブロードキャストする。この結果、検索パケットは、LAN60に接続された全てのデバイス、図1の例では、8個のデバイス200A〜200C、300A、300B、400、500、600に送信される。
検索パケットを受信した各デバイスは、検索パケットの送信元である携帯端末100に対して、デバイスのIPアドレスおよびMACアドレスを含む応答パケットを送信する。携帯端末100のCPU110は、応答パケットを受信することによって、画像処理を実行させるデバイスの候補としてのデバイスの存在を検索でき、そのデバイスにアクセスするためのIPアドレスを取得することができる。図1の例では、CPU110は、8個のデバイス200A〜200C、300A、300B、400、500、600が検索される。
ステップS12では、CPU110は、検索されたデバイスから、検索されたデバイスの機種IDと、入出力情報(図2)と、を取得する。具体的には、CPU110は、検索されたデバイスのそれぞれに対して、これらの情報の送信リクエストを送信する。送信リクエストを受信した各デバイスは、自身の機種IDと、入出力情報と、を含むレスポンスを、携帯端末100に対して送信する。この結果、携帯端末100は、図1の例では、8個のデバイス200A〜200C、300A、300B、400、500、600のそれぞれの機種IDと、入出力情報232A〜232B、332A、332B、432、532、632(図2)と、を取得する。なお、携帯端末100と各デバイスとの間の通信は、例えば、HTTP(Hypertext Transfer Protocol)を用いて実行される。
ステップS13では、CPU110は、8個のデバイスのうちの2個のデバイスを組合わせて得られる入力デバイスと出力デバイスのペアのパターン(以下、組合わせパターンとも呼ぶ)を示す組合わせ情報を生成する。組合わせ情報には、全ての組合わせパターンが記録され、生成された組合わせ情報は、バッファ領域125に格納される。例えば、8個のデバイスが存在する場合には、組合わせパターンの総数PNは、56個である。
ステップS14では、CPU110は、全ての組合わせパターンの中から、接続可能な組合わせパターンを抽出する。具体的には、入力デバイスで実行される画像処理の結果として出力される画像データのフォーマットが、出力デバイスで実行される画像処理のために入力可能である場合に、当該入力デバイスと当該出力デバイスとのペアが、接続可能な組合わせパターンとして抽出される。CPU110は、ステップS13にて生成された組合わせ情報と、ステップS12にて取得された入出力情報232A〜232B、332A、332B、432、532、632と、を参照して、接続可能な組合わせパターンを抽出する。なお、出力が画像データではないデバイス、すなわち、出力の形態が「用紙」や「布」であるプリンタ200A〜200C、ミシン500、ガーメントプリンタ600は、入力デバイスにはなり得ない(図2参照)。入力が画像データではないデバイス、すなわち、入力の形態が「用紙」であるスキャナ300A、300Bは、出力デバイスにはなり得ない(図2参照)。複合機400は、入力が画像データである場合があり、かつ、出力が画像データである場合があるので、入力デバイスと出力デバイスとのいずれにもなり得る(図2参照)。CPU110は、ステップS13にて生成された組合わせ情報から、抽出された接続可能な組合わせパターン以外のパターンを削除する。
図6は、図1に示す8個のデバイスを組合わせて得られる、接続可能な組合わせパターンのみを示す組合わせ情報SIの一例を示す図である。図6の例では、56個の組合わせパターンのうち、14個の組合わせパターンが接続可能な組合わせパターンとして抽出されていることが解る。なお、図6の組合わせ情報SIでは、図の見やすさのために、各デバイスの名称と符号(プリンタ200Aなど)とによって、デバイスを特定しているが、実際には、例えば、IPアドレスなどの各デバイスに固有な情報を用いて、各デバイスが特定される。本実施例では、同一機種のデバイスが、システム1000内に2個以上ある可能性があるので、機種ID(型番)は、各デバイスの特定には用いられていない。
ステップS15では、CPU110は、接続可能な組合わせパターンの中から、エラー情報に対応する組合わせパターンを抽出する。具体的には、CPU110は、各デバイスの機種IDをキーにして、エラー発生情報EI(図4)を検索して、エラー発生情報EIに登録されている組合わせパターンを抽出する。
ステップS16では、CPU110は、抽出された組合わせパターンにエラー情報を対応付ける。具体的には、CPU110は、組合わせパターンに対応するエラー情報をエラー発生情報EIから取得して、組合わせパターンと対応付けて組合わせ情報SI(図6)に記録する。図6の例では、スキャナ300Aとプリンタ200Aとの組合わせパターンに、モアレが発生する可能性があることを示すエラー情報が対応付けられている。また、スキャナ300Bとプリンタ200Aと組合わせパターンに、色再現性不良が発生する可能性があることを示すエラー情報が対応付けられている。また、複合機400とプリンタ200Cとの組合わせパターンに、通信エラーが発生する可能性があることを示すエラー情報が対応付けられている。
ステップS17では、CPU110は、接続可能な各組合わせパターンで実現される複合処理を決定する。具体的には、CPU110は、処理対象の組合わせパターンを構成する入力デバイスと出力デバイスの種類を、これらのデバイスの機種IDを検索キーとして機種検索テーブルFIA(図3(A))を検索することによって、特定する。そして、CPU110は、処理対象の組合わせパターンに対応するデバイスの種類のペアを検索キーとして、複合処理検索テーブルFIBを検索することによって、処理対象の組合わせパターンに対応する複合処理を特定する。特定された複合処理が、処理対象の組合わせパターンで実現される複合処理に決定される。例えば、処理対象の組合わせパターンを構成する入力デバイスの機種IDが「SC−xxxxx」であり、出力デバイスの機種IDが「PR−aaaaa」である場合を説明する。CPU110は、機種検索テーブルFIAを参照して、入力デバイスは「スキャナ」であり、出力デバイスは「プリンタ」であることを特定する。次に、CPU110は、複合処理検索テーブルFIBを参照して、入力デバイスとしての「スキャナ」と、出力デバイスとしての「プリンタ」とのペアでは、「コピー処理」が実現されることを特定する。したがって、処理対象の組合わせパターンで実現される複合処理は、「コピー処理」に決定される。ここで、1個の組合わせパターンで実現される複合処理が、複数個決定される場合もある。例えば、図6のスキャナ300Aと複合機400との組合わせパターンで実現される複合処理は、「カードファックス処理」と「コピー処理」との2つの処理に決定される。
ステップS18では、CPU110は、図6の組合わせ情報SIに基づいて、複合処理を含む実現可能な画像処理群から所望の画像処理をユーザが選択するための支援情報を、図6の組合わせ情報SIに基づいて表示部180に表示させる。
図7は、支援情報の表示例を示す図である。具体的には、CPU110は、図7(A)に示すように、実行すべき画像処理をユーザが選択するための第1の選択画像SD1を表示部180に表示させる。第1の選択画像SD1は、実現可能な複数個の複合処理に対応する複数個の選択ボタンBT1〜BT4を含んでいる。また、第1の選択画像SD1には、単体のデバイスで実現可能な画像処理に対応する選択ボタン(例えば、ボタンBTa)が含まれ得るが、このようなボタンは、公知技術によって、例えば、機種検索テーブルFIAを参照して単体のデバイスの種類が特定できれば、表示できるので、以後の説明は省略する。各選択ボタン内には、対応する画像処理の機能の名称が支援情報として表示されている。選択ボタンBT1は、コピー処理および高速コピー(図6参照)に対応するボタンであり、選択ボタンBT2は、衣類コピー処理(図6参照)に対応するボタンである。選択ボタンBT3は、刺繍コピー処理(図6参照)に対応するボタンであり、選択ボタンBT4は、カードファックス(図6参照)および複合機単体で実現できる通常のファックスに対応するボタンである。ユーザは、これらの選択ボタンBT1〜BT4の中から、実行すべき画像処理に対応するボタンを選択することができる。
選択ボタンBT1〜BT4に対応する画像処理を、機能に応じて、さらに、細かく分類できる場合には、細かく分類された画像処理をユーザが選択するための支援情報を含む第2の選択画像が表示部180に表示される。図7(B)には、第1の選択画像SD1(図7(A))にて、コピー処理に対応する選択ボタンBT1が、ユーザによって選択された場合に、第1の選択画像SD1に代えて、表示部180に表示される第2の選択画像SD2の一例が示されている。この第2の選択画像SD2は、通常のコピー処理と、高速コピーと、にそれぞれ対応する2個の選択ボタンBT5、BT6を含んでいる。各選択ボタン内には、より細かく分類された画像処理の機能の名称(通常のコピー処理と、高速コピー)が支援情報として表示されている。ユーザは、これらの選択ボタンBT5〜BT6の中から、実行すべき画像処理に対応するボタンを選択することができる。
第1の選択画像SD1を介してユーザが1個の画像処理を選択した場合であって、かつ、選択された画像処理をさらに細かく分類できない場合、あるいは、第2の選択画像SD2を介してユーザが1個の画像処理を選択した場合には、選択された画像処理を実現するためのデバイスを選択するための第3の選択画像が、表示部180に表示される。図7(C)には、第2の選択画像SD2にて、通常のコピー処理に対応する選択ボタンBT5がユーザによって選択された場合に表示される第3の選択画像SD3の一例が示されている。この第3の選択画像SD3は、通常のコピー処理を実現可能な単体のデバイス、および、デバイスの組合わせパターンに対応する複数個のボタンBT7〜BT12を含んでいる。複数個のボタンBT7〜BT12内には、対応する組合わせパターンをユーザに提示する支援情報が表示されている。例えば、選択ボタンBT8は、プリンタ200Aとスキャナ300Aとの組合わせパターンに対応するボタンであり、選択ボタンBT9は、プリンタ200Aと複合機400との組合わせパターンに対応するボタンである。
なお、CPU110は、第3の選択画像SD3内に、特定のエラー情報が対応付けられている組合わせパターン(図6参照)に対応する選択ボタンを表示する場合には、エラーに関する支援情報を表示する。図7(C)の例では、モアレが発生する可能性が有る組合わせパターンと、色再現性不良が発生する可能性がある組合わせパターンとに、これらのエラーについてユーザに警告する支援情報ED1、ED2が、表示されている。また、CPU110は、他の特定のエラー情報が対応付けられている組合わせパターンを選択するための支援情報は第3の選択画像SD3内に表示しない。図7(C)の例では、通信エラーが発生する可能性があるスキャナ300Aとプリンタ200Bとの組合わせパターン、および、複合機400とプリンタ200Cとの組合わせパターンに対応する選択ボタンは、表示されていない(すなわち、選択のための候補から除外されている)。これは、モアレや色再現性不良が発生する可能性がある組合わせパターンを用いる場合には、モアレや色再現性不良が発生する可能性はあるものの、コピー処理は実行することができるが、通信エラーが発生する可能性がある組合わせパターンを用いる場合には、コピー処理が実行できない可能性があるからである。
これに代えて、CPU110は、通信エラーに関するエラー情報が対応付けられている組合わせパターンに対応する選択ボタンを表示するとともに、通信エラーについてユーザに警告する支援情報を表示しても良い。また、CPU110は、モアレや色再現性不良が発生する可能性がある組合わせパターンに対応する選択ボタンを表示しないこととしても良い。
以上の説明から解るように、本実施例の支援情報には、画像処理の機能をユーザに認識させる情報(具体的には、画像処理の機能の名称)と、画像処理を実現するためのデバイスの組み合わせパターンをユーザに認識させる情報(具体的には、組み合わせパターンを構成するデバイスの名称)と、画像処理を実行した場合に発生し得るエラーをユーザに認識させる情報(具体的には、エラーの警告)と、が含まれる(図7)。このように、支援情報は、ユーザが実行すべき適切な画像処理を選択して、システム1000内の適切なデバイスに実行させるために、有益な様々な情報が含まれ得る。
第3の選択画像SD3にて、ユーザが、画像処理を実行させるべき単体のデバイス、あるいは、デバイスの組合わせパターンを選択した場合には、CPU110は、UI表示処理を終了し、後述するデバイス制御処理を実行する。
以上説明した第1実施例のUI表示処理によれば、CPU110は、システム1000内、すなわち、LAN60内の複数個のデバイスを検索する(ステップS11)。そして、CPU110は、ネットワーク内の複数のデバイスを用いて実現される複合処理を含む、システム1000にて実現可能な画像処理の候補を決定する(図5のステップS12〜S17)。決定に際して、CPU110は、各デバイスで実行される画像処理の実現に関する情報であって、デバイスごとに準備される情報である入出力情報232A〜232B、332A、332B、432、532、632(図2)を用いる。そして、CPU110は、決定される画像処理をユーザが選択するための支援情報を表示部180に表示させる(図5のステップS18、図7)。
この結果、システム内の複数個のデバイスに応じて、デバイスのペアによって実現される複合処理を含む画像処理を選択するための支援情報が適切に表示される。したがって、ユーザは、システム内の複数のデバイスにて実現可能な画像処理を把握することができる。この結果、複数個のデバイスを含むシステムの利便性を向上することができる。特に、システム内のデバイスの個数が多い場合には、ユーザが実現可能な画像処理を把握することが困難な場合があるが、本実施例のUI表示処理によれば、ユーザは、システム内の複数のデバイスにて実現可能な画像処理を容易に把握することができる。
また、ユーザが組合わせるべき複数のデバイスを指定しなくても、デバイスの組合わせパターンの候補が表示される(図7(C))ので、デバイスについての知識に乏しいユーザであっても、複数のデバイスを用いた画像処理(すなわち、複合処理)を容易に利用することができる。
さらに、CPU110は、ステップS14の説明および図6から解るように、第1のデバイス(例えば、スキャナ300A)で実行される画像処理にて出力されるデータのフォーマット(例えば、JPEGやRGB)を示す情報(例えば、入出力情報332A)と、第2のデバイス(例えば、プリンタ200A)で実行される画像処理のために入力可能なデータのフォーマットを示す情報(例えば、入出力情報232A)と、を参照する。そして、CPU110は、第1のデバイスから出力されるデータが、第2のデバイスに入力可能である場合に、具体的には、第1のデバイスから出力されるデータのフォーマットのうちの少なくとも1個が、第2のデバイスに入力可能なフォーマットに含まれる場合に、第1のデバイスと第2のデバイスとを用いて実行される複合処理を、実現可能な画像処理に決定する。したがって、第1のデバイスから出力されるデータのフォーマットと、第2のデバイスに入力可能なデータのフォーマットと、に基づいて、実現可能な画像処理を適切に決定することができる。
さらに、ステップS17の説明や図3から解るように、第1のデバイスの種類(例えば、スキャナなどの機能に応じた種類や、機種IDで区別される機種)と第2のデバイスの種類との組合わせと、複合処理の機能の種類(例えば、コピー処理)と、が対応付けられる機能情報FIに基づいて、実現可能な画像処理が決定される。この結果、第1のデバイスの種類と、第2のデバイスの種類と、に基づいて、実現可能な画像処理を適切に決定することができる。
さらに、特定のエラー(例えば、モアレや色再現性不良)が発生し得る組合わせパターンには、エラーに関する警告が表示部180に表示される(図7(C))ので、ユーザは、適切なデバイスの組合わせパターンを選択することができる。例えば、ユーザが、エラーが発生し得る複合処理を選択することを抑制することができる。
さらに、他の特定のエラー(例えば、通信エラー)が発生し得る組合わせパターンを選択するための支援情報(具体的には、当該組合わせパターンを選択するための選択ボタン)が、表示部180に表示されない(図7(C))ので、ユーザが、エラーが発生し得る複合処理を選択することを抑制することができる。
A−2−2.デバイス制御処理:
携帯端末100のCPU110が実行するデバイス制御処理について説明する。デバイス制御処理は、上述したUI表示処理で、実行すべき画像処理と、画像処理を実行させるべき単体のデバイス、あるいは、デバイスの組合わせパターンが選択された場合に、UI表示処理に続いて実行される。以下では、入力デバイスとしてのスキャナ300Aと、出力デバイスとしてのプリンタ200Bと、の組合わせパターンが選択された場合を例にして説明する。デバイス制御処理は、UI表示処理と同様に、CPU110がデバイス利用プログラムPG2を実行することによって実現される処理である。デバイス制御処理は、選択された組合わせパターンを構成する各デバイスの動作の制御と、各デバイスの動作の進捗状況の確認と、を実行するための処理である。
図8は、デバイス制御処理のフローチャートである。デバイス制御処理が開始されると、ステップS20では、CPU110は、ユーザによって選択された画像処理を、ユーザによって選択されたデバイスの組み合わせパターンを用いて、実現するための動作フロー情報OFを生成する。
図9は、動作フロー情報OFの一例を示す図である。図9には、スキャナ300Aとプリンタ200Bとを用いてコピー処理を実現するための動作フロー情報OFの一例が示されている。本実施例では、携帯端末100のCPU110は、制御対象のデバイス(以下、対象デバイスとも呼ぶ)に対して、リクエストを送信し、送信先のデバイスからレスポンスを受信する処理を、繰り返すことによって、対象デバイスを制御する。このため、本実施例では、動作フロー情報OFは、対象デバイスを制御するために、リクエストとレスポンスのセットを繰り返す手順が記述された情報である。動作フロー情報OFは、各対象デバイスごとのリクエストとレスポンスのセットが記述された部分フロー情報を含んでいる。例えば、図9の動作フロー情報OFは、スキャナ300Aのための部分フロー情報PF1と、プリンタ200Bのための部分フロー情報PF2と、を含んでいる(図9)。動作フロー情報OFは、例えば、実行すべき複合処理ごとに予め準備されたテンプレートに基づいて生成される。動作フロー情報OFのテンプレートは、本実施例では、予め携帯端末100に格納されている。動作フロー情報OFは、各デバイスのための部分フロー情報ごとに、各デバイスに格納されていても良い。この場合には、携帯端末100は、複合処理の実現に用いる各デバイスから、各デバイスに対応する部分フロー情報を取得し、これらの部分フロー情報を組み合わせて動作フロー情報OFを生成しても良い。
ステップS22では、CPU110は、動作フロー情報OFに従って、対象デバイスに対してリクエストを送信する。例えば、図6の例では、初回のステップS22にて、CPU110は、初回のリクエストとして、スキャナ300Aに電源が投入されており動作可能な状態にあるか否かを確認するためのリクエスト(すなわち、図9の動作確認)をスキャナ300Aに送信する。また、後述するステップS24〜S29の処理を経て、ステップS22に処理が戻ってきた場合の2回目のステップS22では、読取処理の実行を要求するためのリクエスト(すなわち、図9のスキャン要求)をスキャナ300Aに送信する。このように、ステップS22では、動作フロー情報OFに従って、リクエストが順次に対象デバイスに送信される。
ステップS24では、CPU110は、リクエストの送信からリクエストの内容に応じた所定の期間内に、リクエストに対するレスポンスを、対象デバイスから受信したか否かを判断する。レスポンスが受信されない場合には(ステップS24:NO)、CPU110は、処理をステップS30に進める。
レスポンスが受信された場合には(ステップS24:YES)、CPU110は、受信されたレスポンスが正常のレスポンスであるか否かを判断する(ステップS26)。正常なレスポンスの内容は、動作フロー情報OF(図9)に記述されている。詳細は後述するが、図9の例では、送信したリクエストが「動作確認」である場合には、正常のレスポンスは「動作可能」を示すレスポンスである。
受信されたレスポンスが正常のレスポンスでない場合には(ステップS26:NO)、CPU110は、処理をステップS30に進める。受信されたレスポンスが正常のレスポンスである場合には(ステップS26:YES)、CPU110は、画像処理の進捗を表示部180に表示する(ステップS28)。
図10は、画像処理の進捗を表示するための進捗画像の一例を示す図である。図10(A)には、エラーが発生していない正常時に表示される進捗画像EI1が示されている。この進捗画像EI1は、コピー処理を実行中であることを示すメッセージMS1と、現在はスキャナ300Aの読取処理が実行されていることを示す記号MK1とを、進捗情報として含んでいることが解る。
続くステップS29では、CPU110は、実行すべき画像処理が終了したか否かを判断する。具体的には、CPU110は、動作フロー情報OFに記述された最後のリクエストが送信済みである場合、すなわち、未送信のリクエストがない場合には、実行すべき画像処理が終了したと判断する。CPU110は、未送信のリクエストがある場合には、実行すべき画像処理が終了していないと判断する。
実行すべき画像処理が終了していない場合には(ステップS29:NO)、CPU110は、ステップS22に戻って、未送信のリクエストを対象デバイスに対して送信する。そして、上述したステップS22〜S29までの処理がくり返される。実行すべき画像処理が終了した場合には(ステップS29:YES)、CPU110は、デバイス制御処理を終了する。
図11は、デバイス制御処理によって、スキャナ300Aとプリンタ200Bとにコピー処理を実行させる場合のシーケンス図である。図9と図11から解るように、スキャナ300Aとプリンタ200Bとにコピー処理を実行させる場合には、先ず、スキャナ300Aに、2回のリクエスト(すなわち、上述した動作確認と、スキャン要求)が送信される(ステップS22)。その結果、携帯端末100は、スキャナ300Aから読取画像データ(スキャンデータ)を取得することができる(ステップS24)。
動作確認は、上述したように、スキャナ300Aに電源が投入されており動作可能な状態にあるか否かを確認するためのリクエストであり、対応する正常なレスポンスは、例えば、動作可能であることを示すレスポンスである。また、対応する正常ではないレスポンスは、故障などにより動作が不可能であることを示すレスポンスである。
スキャン要求は、上述したように、読取処理の実行を要求するためのリクエストであり、対応する正常なレスポンスは、例えば、読取画像データを含むレスポンスである。対応する正常ではないレスポンスは、ADFにおける紙詰まりや、原稿がないことにより読取処理が実行できないことを示すレスポンスである。
スキャナ300Aから読取画像データを取得すると、動作フロー情報OFに従って、対象デバイスが、スキャナ300Aからプリンタ200Bに変更され、プリンタ200Bに対して、4回のリクエスト(すなわち、動作確認と、動作状態確認と、印刷要求と、印刷完了の確認)が送信される(ステップS22)。その結果、携帯端末100は、読取画像データによって表される画像をプリンタ200Bに印刷させることができる。
動作確認は、プリンタ200Bに電源が投入されており動作可能な状態にあるか否かを確認するためのリクエストであり、対応する正常なレスポンスは、例えば、動作可能であることを示すレスポンスである。また、対応する正常ではないレスポンスは、故障などにより動作が不可能であることを示すレスポンスである。
受信状態確認は、プリンタ200Bが、印刷データを受信可能な状態であるか否かを確認するためのリクエストであり、対応する正常なレスポンスは、例えば、受信可能であることを示すレスポンスである。印刷データは、上述した各種のフォーマットの画像データである。また、対応する正常ではないレスポンスは、例えば、他の計算機などから受信済みの印刷データによってプリンタ200Bのメモリが占有されているために、携帯端末100から印刷データを直ちに受信することが不可能であることを示すレスポンスである。
印刷要求は、プリンタ200Bに印刷の実行を要求するためのリクエストであり、印刷データを含むリクエストである。印刷要求に対応する正常なレスポンスは、例えば、印刷データの受信完了を示すレスポンスである。また、対応する正常ではないレスポンスは、例えば、通信障害や、印刷データのフォーマットにプリンタ200Bが対応していないことなどによって、印刷データの受信に失敗したことを示すレスポンスである。
印刷完了の確認は、プリンタ200Bにて、印刷要求に応じて実行されるべき印刷が正常に完了したか否かを確認するためのリクエストであり、対応する正常なレスポンスは、例えば、印刷が正常に完了したことを示すレスポンスである。また、対応する正常ではないレスポンスは、例えば、トナーやインクなどの印刷材が消費されたこと(いわゆるトナー切れや、インク切れ)や紙詰まりなどにより印刷が中断されたこと、あるいは、印刷データのフォーマットにプリンタ200Bが対応していないことによって印刷ができないことを示すレスポンスである。
このようなリクエストの送信とレスポンスの受信を行う度に、エラーが発生したか否かの判断などを含むエラー関連処理が行われる(図11)。以下に説明する図8のステップS30〜S36は、エラー関連処理である。
上述したステップS24にて、対象デバイスからのレスポンスが受信されない場合(ステップS24:NO)、および、上述したステップS26にて、対象デバイスからのレスポンスが正常のレスポンスではない場合には(ステップS26:NO)、なんらかのエラーが発生したと考えられる。すなわち、ステップS24およびステップS26は、複合処理を実行する1組のデバイスのいずれかでエラーが発生したか否かを検出するステップであると言うことができる。具体的には、ステップS22にて対象デバイスにリクエストを送信した後、所定時間が経過しても対象デバイスからのレスポンスが受信されない場合(ステップS14:NO)と、対象デバイスから正常ではないレスポンスが受信された場合(ステップS26:NO)に、CPU110は、対象デバイスにてエラーが発生したと判断する。エラーの発生が検出された場合には(ステップS24:NO、または、ステップS26:NO)、CPU110は、エラーが発生したデバイスを特定する(ステップS30)。具体的には、現在の対象デバイスが、エラーが発生したデバイスとして特定される。
続くステップS32では、CPU110は、エラーの内容を特定する。携帯端末100が、ステップS24にて、対象デバイスから正常でないレスポンス、すなわち、エラーの内容を示す情報を含むレスポンスを受信している場合には、エラーの内容は、そのレスポンスに含まれる情報に基づいて特定される。レスポンスが受信されなかった場合には(ステップS24:NO)、受信されなかったレスポンスに対応するリクエストの内容に基づいて、エラーの内容が特定される。
例えば、スキャナ300Aやプリンタ200Bに対する「動作確認」のリクエストに対応するレスポンスが受信されなかった場合には、プリンタ200Bの電源が切れている、あるいは、アクセスポイント50またはLAN60に障害が発生しているなどの通信エラーであると判断される。
また、プリンタ200Bに対する「動作確認」および「受信状態確認」のリクエストに対応するレスポンスは正常であったが、「印刷要求」のリクエストに対応するレスポンスが受信されなかった場合には、アクセスポイント50またはLAN60に障害は発生していないと考えられ、プリンタ200Bは印刷データを受信可能な状態にあると考えられる。このために、この場合には、例えば、印刷データのサイズが大きすぎて、プリンタ200Bが印刷データを受信できないエラーや、印刷データのフォーマットにプリンタ200Bが対応できないエラーなどが発生していると考えられる。また、「印刷要求」のリクエストに対応するレスポンスは正常であったが、「印刷完了の確認」のリクエストに対応するレスポンスが受信されなかった場合には、例えば、プリンタ200Bは、印刷データの受信には成功したものの印刷データのフォーマットを解釈できず、動作が停止していると、考えられる。
このように、レスポンスの内容に基づいてエラーの内容を特定するだけでなく、レスポンスが受信できないことに基づいてエラーの内容を特定するのは、例えば、システム内のデバイスの機種によっては、必ずしも全てのエラーの内容を特定して、エラー情報を含むレスポンスを送信する機能を備えているとは限らないからである。例えば、印刷データのフォーマットを解釈できないためや、メモリのオーバーフローのために、フリーズして何らレスポンスを送信しないデバイスも存在し得る。このような場合であっても、本実施例では、動作フロー情報OFを参照して、どのリクエストに対するレスポンスが受信でき、どのリクエストに対するレスポンスが受信できないか、に基づいて、エラーの内容を推定することによって、エラーの内容を特定することができる。
エラーの内容が特定されると、続くステップS34では、CPU110は、特定したエラーの内容に関する情報を含むエラー情報を表示部180に表示する。図10(B)には、エラー情報が表示された進捗画像EI2の一例が示されている。進捗画像EI2には、エラーの発生を示すメッセージMS2と、エラーの内容(原因)を示すメッセージMS3や記号MK2が、エラー情報として表示されていることが解る。
ステップS36では、CPU110は、発生したエラーの内容に基づいて、エラー発生情報EI(図4)を更新する。例えば、発生したエラーが、入力デバイスが出力するデータ(例えば、読取画像データ)を、出力デバイスに入力できない通信エラーなどのように、入力デバイスと出力デバイスとの連携に関するエラーである場合には、CPU110は、その当該エラーの内容を示すエラー情報と、エラーが発生したデバイスの組み合わせパターンとを対応付けて、エラー発生情報EIに追加する。一方、紙詰まりや、電源が投入されていない、などの一時的なエラーや、入力デバイスと出力デバイスとの連携に関係のないエラーである場合には、そのエラーに関するエラー情報は、エラー発生情報EIには追加されない。この結果、通信エラーなどの、入力デバイスと出力デバイスとの連携に関係するエラーが検出された場合には、エラーが検出された1組のデバイスを示すエラー情報が、エラーの内容と対応付けられて不揮発性記憶装置130に格納される。
エラー発生情報EIが更新されると、CPU110は、デバイス制御処理を終了する。なお、破線で示すステップS38の処理は、第2実施例にて実行される処理であるので、後述する。
以上説明した本実施例のデバイス制御処理によれば、複合処理(例えば、スキャナ300Aとプリンタ200Bとを用いるコピー処理)の実行中に、複合処理を実行する1組のデバイスのいずれかでエラーが発生したか否かが検出される(ステップS24、ステップS26)。そして、エラーが検出される場合に、エラーの内容に関する情報を含むエラー情報が表示部180に表示される(ステップS34、図10(B))。この結果、複合処理の実行中に発生したエラーの内容をユーザが適切に把握されるので、ユーザに対するシステム1000の利便性を向上することができる。
また、エラーが検出される場合には、エラーが検出される1組のデバイス(デバイスの組み合わせパターン)を示すエラー情報が、エラーの内容を示す情報とともに、エラー発生情報EIに追加されることによって、不揮発性記憶装置130に格納される(ステップS36)。この結果、エラーが検出される1組のデバイスの情報を、次回に実行されるUI表示処理にて、実現可能な複合処理を決定する際に、当該エラー情報を利用することができる(図5のステップS15、S16)。
したがって、次回以降のUI表示処理では、更新されたエラー発生情報EIを用いて実行されるので、ユーザに対してより適切なエラー情報を提供することができる。例えば、入出力情報(図2)では、入力デバイスが出力する画像データのフォーマットと、出力デバイスが入力可能なフォーマットとが一致していたとしても、実際には、入力デバイスが出力する画像データを、出力デバイスが受け取れないケースも起こり得る。これは、例えば、フォーマットのバージョンの違い、実装上の細部の仕様の違い、機種間の相性などの原因が考えられる。このために、実際に発生したエラーをエラー発生情報EIとして蓄積することで、実際に動作するデバイスの組み合わせパターンを、より正確に決定することができる。
B.第2実施例
B−1.システムの構成
図12は、第2実施例のシステム2000の構成を示すブロック図である。システム2000は、第1実施例のシステム1000に含まれる構成に加えて、サーバ800を備えている。サーバ800は、インターネット70に接続されており、LAN60は、インターネット70に接続されている。携帯端末100は、サーバ800のIPアドレスを認識しており、アクセスポイント50とLAN60とインターネット70とを介して、サーバ800と通信を行うことができる。
サーバ800は、CPU810と、RAMなどの揮発性記憶装置820と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置830と、外部機器とデータ通信を行うためのインタフェースを含む通信部870と、を備えている。
揮発性記憶装置820には、CPU810が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域821が設けられている。不揮発性記憶装置230は、サーバとしての機能を実現するための制御プログラム831と、後述する入出力情報832と、機能情報FI(図3)と、エラー発生情報EI(図4)と、を格納している。
システム2000の8個のデバイス200A〜200C、300A、300B、400、500、600は、システム1000の同名のデバイスと、基本的に同一の構成を有している。しかし、システム2000の各デバイスは、自身の入出力情報232A〜232C、332A、332B、432、532、632(図2)を、格納していない。
サーバ800に格納された入出力情報832は、図2の8個の入出力情報232A〜232C、332A、332B、432、532、632を全て含んでいる。入出力情報832では、図2の8個の入出力情報232A〜232C、332A、332B、432、532、632が、対応するデバイスを示す識別子(具体的には機種ID)と対応付けられている(図示省略)。さらに、入出力情報832は、サーバ800自身の入出力情報832Sを含んでいる。これは、第2実施例は、サーバ800自身も、複合処理を実現するためのデバイスの1つとして用いられるからである。具体的には、サーバ800は、制御プログラム831を実行することによって、携帯端末100とデータの遣り取りを行うサーバとしての機能に加えて、モアレ除去処理と、下地除去処理と、の2種類の画像処理を実行することができる。モアレ除去処理は、入力された画像データ(例えば、スキャナによって生成された読取画像データ)に対して、モアレの発生を抑制する公知の画像処理を施した印刷データ(例えば、ドットデータ)を生成する処理である。下地除去処理は、入力された画像データ(例えば、スキャナによって生成された読取画像データ)に対して、背景の色を除去する公知の画像処理(背景の色を白に変換する処理)を施した印刷データ(例えば、ドットデータ)を生成する処理である。
図13は、サーバ800自身の入出力情報832Sを示す図である。サーバ800で実行される画像処理は、「モアレ除去処理」と「下地除去処理」である。これらの画像処理のための入力は、画像データであり、画像処理の結果の出力は、処理済みの画像データである。このために、図13に示すように、サーバ800の入出力情報832は、画像処理のために入力可能な画像データのフォーマットを示す入力情報と、画像処理の結果として出力される処理済みの画像データのフォーマットを示す出力情報と、を含んでいる。図13の例では、入力可能な画像データのフォーマットは、RGB画像データと、ドットデータと、JPEGで圧縮された画像データと、PostScriptで記述された画像データと、PDFで保存された画像データと、を含む。また、画像処理の結果として出力される処理済みの画像データのフォーマットは、ドットデータである。
システム2000の携帯端末100の不揮発性記憶装置130には、機能情報FIおよびエラー発生情報EIは格納されていない。これらの情報FI、EIは、上述したようにサーバ800に格納されており、携帯端末100は、必要に応じて、これらの情報FI、EIをサーバ800から取得する。
サーバ800に格納されている機能情報FIは、図4の機種検索テーブルFIAおよび複合処理検索テーブルFIBに加えて、中継デバイスとしてのサーバ800を含む3個のデバイスの組み合わせパターンと、当該3個のデバイスの組み合わせパターンを用いて実現可能な複合処理の機能の種類が対応付けられた別の複合処理検索テーブルFICを含んでいる。
図14は、複合処理検索テーブルFICの一例を示す図である。この例では、3個のデバイスの組み合わせパターンとして、入力デバイスとしてのスキャナと、中継デバイスとしてのサーバと、出力デバイスとしてのプリンタと、を用いて、モアレ除去処理を含むコピー処理、および、下地除去処理を含むコピー処理を実現することができる。
システム2000のその他の構成は、図1のシステム1000の構成と同一であるので、説明を省略する。
B−2.システムの動作
図15は、第2実施例のUI表示処理のフローチャートである。ステップS10Aでは、携帯端末100のCPU110は、サーバ800に問い合わせることによって、LAN60内のデバイスを検索する。具体的には、CPU110からのリクエストに応じて、サーバ800は、LAN60内のデバイスの一覧と、各デバイスにアクセスするための情報(例えば、IPアドレスやURL)と、を含むレスポンスを、CPU110に送信する。CPU110は、サーバ800からのレスポンスに含まれる情報により、LAN60内のデバイスを認識することができる。これに代えて、ステップS10Aでは、CPU110は、第1実施例のステップS11と同様に、所定の検索パケットを、LAN60上にブロードキャストすることによって、LAN60内のデバイスを検索しても良い。
ステップS11Aでは、CPU110は、検索されたデバイスに関する情報を、さらに、サーバ800に要求する。具体的には、CPU110は、情報のリクエストをサーバ800に対して送信する。CPU110からのリクエストに応じて、サーバ800は、LAN60内の各デバイスの機種IDと、入出力情報832(図2、図13)と、機能情報FI(図3、図14)と、エラー発生情報EI(図4)と、を含むレスポンスを、CPU110に送信する。ステップS12Aでは、CPU110は、サーバ800からのレスポンスにより、これらの情報を取得する。これに代えて、ステップS11Aでは、CPU110は、1部の情報を、検索された各デバイスに問い合わせることによって、各デバイスから取得しても良い。具体的には、CPU110は、各デバイスの機種IDを各デバイスから取得し、残りの情報(出力情報832、機能情報FI、エラー発生情報EI)を、サーバ800から取得しても良い。
ステップS14Aでは、CPU110は、中継デバイスとしてのサーバを含むデバイスの組み合わせパターンを示す組合わせ情報を生成する。具体的には、第1実施例における入力デバイスと出力デバイスとのペアの56個の組み合わせパターンに加えて、各ペアの間に中継デバイスとしてのサーバを挟んだ56個の組み合わせパターンを含む、合計112個の組み合わせパターンを示す組み合わせ情報が生成される。この例では、サーバ800は、入力デバイスや出力デバイスにはなり得ず、中継デバイスのみになり得るという前提で、組み合わせ情報が生成されている。
続くステップS14〜S17までの処理は、第1実施例のUI表示処理(図5)の同符号のステップの処理と同じであるので、説明を省略する。
次に、第2実施例のデバイス制御処理について説明する。第2実施例のデバイス制御処理は、図8を用いて説明した第1実施例のデバイス制御処理と同様である。ただし、第2実施例のデバイス制御処理では、図8に破線で示すステップS38の処理が追加される。
ステップS38の処理は、ステップS36にてエラー発生情報EIが更新された場合に実行される処理である。ステップS38では、CPU110は、更新済みのエラー発生情報EIを、サーバ800に対して送信する。この結果、エラーが検出された1組のデバイスを示すエラー情報が、エラーの内容と対応付けられて記録された更新済みのエラー発生情報EIは、サーバ800内の不揮発性記憶装置830(図12)に格納される。この結果、次回のUI表示処理のステップS12A(図15)では、携帯端末100は、更新済みのエラー発生情報EIを取得でき、UI表示処理に利用することができる。
図16は、第2実施例の動作フロー情報OF2の一例である。上述したとおり、入力デバイスと、中継デバイスと、出力デバイスと、の3個のデバイスの組み合わせパターンを用いて、複合処理が実行され得る。図16の例では、入力デバイスとしてのスキャナ300Aと、中継デバイスとしてのサーバ800と、出力デバイスとしてのプリンタ200Aと、を用いて、コピー処理を実現するための動作フロー情報OF2が示されている。
この動作フロー情報OF2は、スキャナ300Aのための部分フロー情報PF1と、プリンタ200Bのための部分フロー情報PF2と、に加えて、中継デバイスであるサーバ800のための部分フロー情報PF3を含んでいる。
この動作フロー情報OF2から解るように、対象デバイスの個数が増えた場合であっても、携帯端末100のCPU110は、動作フロー情報OF2に従って、対象デバイスに対してレスポンスを送信し、対象デバイスからレスポンスを受け取る処理を、繰り返すことによって、複合処理を実現することができる。
以上説明した第2実施例によれば、第1実施例と同様に、ユーザは、システム内の複数のデバイスにて実現可能な画像処理を容易に把握することができる。
さらに、第2実施例によれば、携帯端末100は、機能情報FIやエラー発生情報EIを、常時、保持する必要がないので、不揮発性記憶装置130を節約することができる。また、各デバイス200A〜200C、300A、300B、400、500、600は、入出力情報232A〜232C、332A、332B、432、532、632(図2)を保持する必要がないので、不揮発性記憶装置230を節約することができる。
さらに、第2実施例によれば、各デバイス200A〜200C、300A、300B、400、500、600には、「モアレ除去処理」や「下地除去処理」などの画像処理を実行する機能が備えられていない場合であっても、当該画像処理を含むコピー処理などの複合処理を実現することができる。
第2実施例の説明から解るように、複合処理を実現するためのデバイスの組合わせパターンは、2個のデバイスの組合わせパターンに限らず、3個以上のデバイスの組合わせパターンであっても良い。
C.第3実施例
上記第1実施例では、入力デバイスの種類(例えば、スキャナ)と、出力デバイスの種類(例えば、プリンタ)と、のペアと、複合処理の機能の種類(例えば、コピー処理)と、を対応付けた機能情報FI(図3)に基づいて、デバイスの組み合わせパターンを用いて実現可能な複合処理が決定される(図5:ステップS16)。これに代えて、第3実施例では、入力デバイスでの画像処理の実行のための入力の形態と、出力デバイスでの画像処理の結果の出力の形態と、複合処理の機能の種類と、を対応付けた機能情報FIDに基づいて、デバイスの組み合わせパターンを用いて実現可能な複合処理が決定される。すなわち、第3実施例の携帯端末100は、図3の機能情報FI(機種検索テーブルFIAと複合処理検索テーブルFIB)に代えて、後述する機能情報FID(図18)を格納している。
図17は、第3実施例の入出力情報の一例を示す図である。図16(A)〜図16(D)には、図1の8個のデバイス200A〜200C、300A、300B、400、500、600のうち、プリンタ200A、200Bと、スキャナ300A、300Bとの入出力情報232A、232B、332A、332Bが、それぞれ示されている。
図17のプリンタ200A、200Bの入出力情報232A、232Bの入力情報は、図2の同名の情報と同じであるが、出力情報が異なっている。すなわち、図16の入出力情報232A、232Bの出力情報は、対応するプリンタ200A、200Bが印刷の結果として出力可能な用紙の種類(出力の形態)が記述されている。例えば、入出力情報232Aに示すように、プリンタ200Aは、A3の用紙とA4の用紙とに印刷を実行することができる。また、入出力情報232Bに示すように、プリンタ200Bは、A4の用紙に印刷を実行することができる。
図17のスキャナ300A、300Bの入出力情報332A、332Bの出力情報は、図2の同名の情報と同じであるが、入力情報が異なっている。すなわち、図16の入出力情報332A、332Bの入力情報は、対応するスキャナ300A、300Bにて読取可能な用紙の種類(入力の形態)が記述されている。例えば、入出力情報332Aに示すように、スキャナ300Aは、A3の用紙とA4の用紙とカードを読み取ることができる。また、入出力情報332Bに示すように、スキャナ300Bは、A4の用紙とカードを読み取ることが可能である。
図18は、第3実施例の機能情報FIDの一例を示す図である。図18の機能情報FIDは、入力デバイスの入力の形態と、出力デバイスの出力の形態とのペアと、当該デバイスのペアを用いて実現される複合処理の機能の種類と、を対応付けて格納している。例えば、図18に示すように、入力デバイスの入力の形態としてのA3用紙と、出力デバイスの出力の形態としてのA3用紙と、のペアには、複合処理の機能の種類としてA3のコピー処理が対応付けられている。また、入力デバイスの入力の形態としてのカードと、出力デバイスの出力の形態としてのFAXG4形式の画像データと、のペアには、複合処理の機能の種類としてカードファックス処理が対応付けられている。
第3実施例のUI表示処理のステップS16では、CPU110は、デバイスの組み合わせパターンごとに、入力デバイスの入力の形態と、出力デバイスの出力の形態と、を、入出力情報(図17)を参照して特定する。そして、CPU110は、入力デバイスの入力の形態と、出力デバイスの出力の形態とのペアを検索キーとして、機能情報FIDを検索して、デバイスの組み合わせパターンに対応する複合処理の機能の種類を決定する。
以上説明した第3実施例によれば、入力デバイスでの画像処理のためにの入力の形態と、出力デバイスでの画像処理の結果の出力の形態と、とに基づいて、実現可能な画像処理を適切に決定することができる。
D.変形例:
(1)上記第1実施例では、CPU110は、各デバイスの入出力情報232A〜232B、332A、332B、432、532、632(図2)を用いて、デバイスの組み合わせパターンを決定している。これに代えて、例えば、CPU110は、機能情報FI(図3)を用いて、組み合わせパターンを決定しても良い。この場合には、例えば、CPU110は、機能情報FIに含まれる機種検索テーブルFIAを検索することによって、各デバイスの種類(スキャナ、プリンタなど)を特定する。そして、複合処理検索テーブルFIBに記述されている入力デバイスの種類と出力デバイスの種類のペアを構成するように、組み合わせパターンを決定しても良い。また、CPU110は、機能情報FIを用いて組み合わせパターンを決定した後に、各組み合わせパターンを構成する入力デバイスが出力する画像データのフォーマットを、出力デバイスが入力可能であるか否かを、入出力情報232A〜232B、332A、332B、432、532、632を用いて確認しても良い。
(2)上記実施例では、UI表示処理およびデバイス制御処理を、携帯端末100が実行しているが、携帯端末100に代えて、他の計算機が、これらの処理を実行しても良い。例えば、LAN60に接続されたパーソナルコンピュータが、UI表示処理およびデバイス制御処理を実行しても良い。
(3)第2実施例のサーバ800の機能、具体的には、各デバイスの入出力情報832や機能情報FIやエラー発生情報EIを格納し、携帯端末100からの要求に応じて携帯端末100に送信する機能は、他の装置によって実行されても良い。例えば、LAN60に接続された8個のデバイス200A〜200C、300A、300B、400、500、600のうちのいずれかのデバイスの不揮発性記憶装置230に、これらの情報832、FI、EIが格納されていても良い。この場合には、携帯端末100は、これらの情報832、FI、EIを格納するデバイスから、これらの情報を取得すれば良い。また、これらの情報832、FI、EIは、予め携帯端末100の不揮発性記憶装置130に格納されていても良い。
(4)上記第1実施例では、入力デバイスにて実行された画像処理の結果として出力された画像データ(例えば、スキャナによって生成された読取画像データ)は、携帯端末100に送信されている。そして、当該画像データは、携帯端末100から出力デバイスに送信されている。これに代えて、入力デバイスにて実行された画像処理の結果として出力された画像データは、入力デバイスから出力デバイスに直接に送信されても良い。この場合には、例えば、携帯端末100が、入力デバイスに画像処理の実行を指示するリクエストを送信する際に、出力された画像データを送信すべきデバイスを指定する情報をリクエストに含めても良い。
(5)上記第1実施例では、携帯端末100と、8個のデバイス200A〜200C、300A、300B、400、500、600との通信は、アクセスポイント50を介した無線通信(インフラストラクチャーモードでの無線通信)を用いて実行されている。これに代えて、これらの通信の一部または全部は、他の様々な通信方法、例えば、無線LANのアドホックモード、Wi−Fi direct、Bluetooth(登録商標)、赤外線通信などを用いて実行されても良い。
(6)上記第1実施例で採用されているデバイス(画像処理装置)は一例であり、他の種類のデバイスが採用されても良い。例えば、デジタルカメラ、ファクシミリ、ディスプレイ、プロジェクタなどが採用されても良い。
(7)上記第1実施例では、携帯端末100が、UI表示処理と、デバイス制御処理と、の両方を、実行しているが、携帯端末100は、UI表示処理のみを実行して、ユーザに対して、複数個のデバイスを用いて実現可能な画像処理の種類などの支援情報を提供するだけでも良い。実際の画像処理は、例えば、ユーザがデバイスを操作して実行しても良いし、LAN60に接続された他の計算機(例えば、パーソナルコンピュータ)がユーザの指示に基づいて、デバイス制御処理を実行しても良い。
(8)上記第3実施例では、入力デバイスでの画像処理の実行のための入力の形態(具体的には、用紙のサイズ)と、出力デバイスでの画像処理の結果の出力の形態(具体的には用紙のサイズ)と、複合処理の機能の種類と、を対応付けた機能情報FIDが用いられている。これに限らず、入力デバイスでの画像処理のための様々な入力の形式と、出力デバイスでの画像処理の結果の様々な出力の形式と、を対応付けた機能情報FIDに基づいて、デバイスの組み合わせパターンを用いて実現可能な複合処理が決定され得る。例えば、入出力の形式は、例えば、「用紙」、「布」、「画像データ」などのような、比較的広い概念であっても良く、「ハガキ」、「Tシャツ」、「JPEG画像データ」などのような比較的狭い概念であっても良い。
(9)上記各実施例で、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
(10)本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア(コンピュータプログラム)は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含んでいる。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。