(57)【要約】【課題】受信タイムアウトの設定値が大きい場合や送信されたデータに誤りがあるような場合でも、受信タイムアウト値やキャンセルの方法を変えることができるとともに、印刷ジョブデータを受信するための複数のホストコンピュータを有する画像形成装置においては、あるホストコンピュータから送られた印刷ジョブデータをキャンセルしている最中に、別のインタフェースから送られた印刷ジョブデータの処理を開始することによって、印刷ジョブデータのキャンセルの終了を待つことなく新たな印刷を行うことができるようにする。【解決手段】通常の受信の場合、第１の受信タイムアウト値に基づいて受信タイムアウトを検出し、通信の区切りを判断し、予め設定した条件となると、第２の受信タイムアウト値に基づいて前記受信タイムアウトを検出し、前記通信の区切りを判断する。【選択図】          図１
2004272765.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）通常の受信の場合、第１の受信タイムアウト値に基づいて受信タイムアウトを検出し、通信の区切りを判断し、
（ｂ）予め設定した条件となると、第２の受信タイムアウト値に基づいて前記受信タイムアウトを検出し、前記通信の区切りを判断することを特徴とする画像通信方法。
【請求項２】
（ａ）第１の受信タイムアウト値には大きな値を設定し、
（ｂ）第２の受信タイムアウト値には前記第１の受信タイムアウト値より小さな値を設定し、
（ｃ）印刷中の印刷ジョブデータのキャンセルが初めて指示された場合には、前記第１の受信タイムアウト値に基づいて前記印刷中の印刷ジョブデータのジョブ終端データまでデータを読み飛ばすジョブキャンセル処理を行い、
（ｄ）該ジョブキャンセル処理の終了前に前記キャンセルが再度指示された場合には、前記第２の受信タイムアウト値に基づいて前記印刷中の印刷ジョブデータのジョブ終端データまでデータを読み飛ばすジョブキャンセル処理を行うことを特徴とする画像通信方法。
【請求項３】
受信タイムアウトを検出して通信の区切りを判断する画像形成装置であり、通常の受信の場合に使用される第１のタイムアウト設定値と、予め設定した条件の場合に使用される第２のタイムアウト設定値とを有することを特徴とする画像形成装置。
【請求項４】
（ａ）大きな値が設定された第１の受信タイムアウト値と、
（ｂ）該第１の受信タイムアウト値より小さな値が設定された第２の受信タイムアウト値とを有し、
（ｃ）印刷中の印刷ジョブデータのキャンセルが初めて指示された場合には、前記第１の受信タイムアウト値に基づいて前記印刷中の印刷ジョブデータのジョブ終端データまでデータを読み飛ばすジョブキャンセル処理を行い、
（ｄ）該ジョブキャンセル処理の終了前に前記キャンセルが再度指示された場合には、前記第２の受信タイムアウト値に基づいて前記印刷中の印刷ジョブデータのジョブ終端データまでデータを読み飛ばすことを特徴とする画像形成装置。
【請求項５】
前記印刷中の印刷ジョブデータのジョブ終端データまでデータを読み飛ばすジョブキャンセル処理と、受信している印刷ジョブデータを破棄するジョブキャンセル処理とを選択的に行う請求項４に記載の画像形成装置。
【請求項６】
前記ジョブキャンセル処理と印刷ジョブデータの翻訳処理とを並行して行い、ホストＩ／Ｆ又はデータチャンネルを通して受信している印刷ジョブデータを一つずつ順番に翻訳及び印刷しながら、他のホストＩ／Ｆ又はデータチャンネルを通して受信している印刷ジョブデータを、一つずつ順番にキャンセルする請求項４又は５に記載の画像形成装置。
【請求項７】
前記受信している印刷ジョブデータを読み飛ばし、複数の印刷ジョブデータを同時にキャンセルする請求項６に記載の画像形成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像通信方法及び画像形成装置に関するものである。
【０００２】
【従来の技術】
従来、印刷装置等の画像形成装置は、大きく分けて二つのユニットによって構成されている。まず、一つは、定型サイズの用紙、封筒、ＯＨＰシート等の物理的な記録媒体を吸引及び搬送し、該記録媒体上にインクやトナーなどを用いて白黒やカラーの像を形成して排出する機構である印刷ユニットであり、もう一つは、ホストコンピュータから印刷データを受信し、該印刷データを処理して前記記録媒体上の像を表すデータ（以下、「ビデオデータ」という。）を生成し、前記印刷ユニットを制御しながらビデオデータを前記印刷ユニットに送信する制御ユニットである。
【０００３】
通常、印刷ユニットは、印刷前の記録媒体を格納しておく入力トレイを一つ又は複数有していて、該入力トレイ毎に異なるサイズや種類の記録媒体、例えば、Ａ４サイズの厚紙、Ｂ５サイズの薄紙、封筒、ＯＨＰシートを格納することができる。また、印刷ユニットは、印刷後の記録媒体の排出先となる一つ又は複数の出力ビンを有している。例えば、印刷面を上にして排出するための出力ビン、印刷面を下にして排出するための出力ビン、又は、複写機と同様の複数段の出力ビンを有している。
【０００４】
そして、ホストコンピュータ上で用いられる各種のアプリケーションプログラム、例えば、文書や表の作成用のプログラムは、その文書データを印刷する際に、アプリケーションプログラムが保持している文書データから画像形成装置が処理することができるデータ形式の印刷データを生成し、該印刷データを画像形成装置に送信する。なお、一つの文書を印刷するために画像形成装置に送信されるひとまとまりの印刷データを印刷ジョブデータ又は単にジョブという。
【０００５】
通常、印刷ジョブデータは、印刷に用いる記録媒体のサイズや種類の指定、記録媒体を吸引する入力トレイ及び排出先の出力ビンの指定、印刷時の解像度の指定、印刷部数の指定等を行うためのジョブ制御コマンドと、各ページの印刷像を生成するためのページ描画データと、印刷ジョブデータの終わりを示すジョブ終端データとによって構成されている。また、各ページ描画データは、通常、ビットマップ、ＪＰＥＧ、ＴＩＦＦ等の形式の画像データ、文字や図形を描画するためのコマンド等によって構成されている。
【０００６】
ところで、利用者が画像形成装置のオペレータパネル等を通して現在印刷中の印刷ジョブデータのキャンセルを指示した場合、その印刷ジョブデータの終端、すなわち、ジョブ終端データまでデータを読み飛ばすようになっている。
【０００７】
しかし、印刷ジョブデータを生成するホストコンピュータ側の障害発生によって、該ホストコンピュータから印刷装置への印刷ジョブデータの送信が途中で途切れてしまうことがある。また、ホストコンピュータの利用者が、ホストコンピュータ上での印刷処理（印刷ジョブデータの生成）を明示的に中止したり、間違ったデータを画像形成装置に送ってしまうこともある。
【０００８】
このような場合、該画像形成装置側においては、現在印刷中の印刷ジョブデータをキャンセルするために、該印刷ジョブデータのジョブ終端データまでデータを読み飛ばそうとしても、データそのものが送られてこなくなる。このような状況は、印刷ジョブデータをキャンセルする場合だけでなく、通常の印刷を行っている最中でも発生する。
【０００９】
そのために、通常、画像形成装置においては、印刷ジョブデータを受信タイムアウト値として指定された時間だけ待っても受信することができない場合には、明示的なジョブ終端データを受信していなくても、その時点で印刷ジョブデータが終了したと見なし、その後に受信した印刷ジョブデータは、次の印刷ジョブデータであると見なして処理する機能を有している。また、利用者は、画像形成装置のオペレータパネル等を通して、受信タイムアウト時間を設定することができるようになっている。
【００１０】
【発明が解決しようとする課題】
しかしながら、前記従来の画像形成装置において、前記受信タイムアウト値は、ホストコンピュータ、及び、ホストコンピュータ上で稼動する各種のプログラムが、印刷ジョブデータを生成したり送信したりするために要する時間を考慮して決める必要があるが、前記時間はホストコンピュータの性能や印刷対象のデータの内容によって大きく異なっている。
【００１１】
また、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークを経由して、ホストコンピュータから画像形成装置にデータを送信している場合には、ネットワークの一時的な障害や遅延も考慮する必要がある。
【００１２】
そのために、受信タイムアウトの発生頻度を抑えるために、受信タイムアウト値には比較的大きな値（例えば、１分以上）が設定されることもある。したがって、ホストコンピュータから画像形成装置への印刷ジョブデータが、前述されたような何らかの理由で途切れた場合には、受信タイムアウトが発生するまで印刷ジョブデータのキャンセルが終了しないので、該印刷ジョブデータのキャンセルに要する時間が長くなってしまう。
【００１３】
また、印刷ジョブデータ自体に受信タイムアウト値を設定するコマンド（印刷制御コマンド）が含まれていることがある。そして、該コマンドによって受信タイムアウトがかなり大きな値又は無限大に設定されている印刷ジョブデータの送信が途切れた場合には、印刷ジョブデータのキャンセルが終了しないので、画像形成装置の電源を再投入する等の処理が必要になってしまう。
【００１４】
また、間違った印刷ジョブデータが画像形成装置に送信されたり、ある印刷ジョブデータの送信が途切れた後に、次の印刷ジョブデータが送信されたりした場合には、印刷ジョブデータのジョブ終端データまでデータを読み飛ばす処理をうまく行うことができない場合もある。さらに、正常な印刷ジョブデータであっても、サイズが大きい場合（例えば、数十メガバイト）には、その印刷ジョブデータの送信自体に時間がかかるので、結果として、その印刷ジョブデータのキャンセルにも時間がかかることになる。
【００１５】
本発明は、前記従来の画像形成装置の問題点を解決して、受信タイムアウトの設定値が大きい場合や送信されたデータに誤りがあるような場合でも、利用者の指示に従って受信タイムアウト値やキャンセルの方法を変えることができるとともに、印刷ジョブデータを受信するための複数のホストコンピュータを有する画像形成装置においては、あるホストコンピュータから送られた印刷ジョブデータをキャンセルしている最中に、別のインタフェイスから送られた印刷ジョブデータの処理を開始することによって、利用者は印刷ジョブデータのキャンセルの終了を待つことなく新たな印刷を行うことができる画像通信方法及び画像形成装置を提供することを目的とする。
【００１６】
【課題を解決するための手段】
そのために、本発明の画像通信方法においては、通常の受信の場合、第１の受信タイムアウト値に基づいて受信タイムアウトを検出し、通信の区切りを判断し、予め設定した条件となると、第２の受信タイムアウト値に基づいて前記受信タイムアウトを検出し、前記通信の区切りを判断する。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００１８】
図２は本発明の第１の実施の形態における画像形成装置の構成を示すブロック図、図３は本発明の第１の実施の形態における印刷ジョブデータの構成を示す図である。
【００１９】
図２に示されるように、画像形成装置２１は、制御ユニット２２及び印刷ユニット２３によって構成されている。ここで、前記画像形成装置２１は、例えば、プリンタ、ファクシミリ、複写機等であり、印刷用紙、封筒、ＯＨＰシート等の記録媒体上にインクやトナーなどを用いて白黒やカラーの画像を形成するようになっている。そして、前記印刷ユニット２３は、記録媒体を吸引及び搬送し、該記録媒体上にインクやトナーなどを用いて白黒やカラーの画像を形成して排出する機構であり、前記制御ユニット２２は、ホストコンピュータ２０から印刷ジョブデータ１１を受信し、該印刷ジョブデータ１１を処理して前記記録媒体上の像を表すデータとしてのビデオデータを生成し、前記印刷ユニット２３を制御しながらビデオデータを前記印刷ユニット２３に送信する。
【００２０】
ここで、前記印刷ユニット２３は、印刷前の記録媒体を格納しておく入力トレイを一つ又は複数有していて、該入力トレイ毎に異なるサイズや種類の記録媒体を格納することができる。なお、本実施の形態においては、入力トレイ１及び入力トレイ２がすべての入力トレイを代表するものとして説明する。また、印刷ユニット２３は、印刷後の記録媒体の排出先となる一つ又は複数の出力ビンを有している。例えば、印刷面を上にして排出するための出力ビン、印刷面を下にして排出するための出力ビン、又は、複数段の出力ビンを有している。なお、本実施の形態においては、出力ビン１及び出力ビン２がすべての出力ビンを代表するものとして説明する。
【００２１】
また、前記印刷ジョブデータ１１は、図３に示されるように、印刷に用いる記録媒体のサイズや種類の指定、記録媒体を吸引する入力トレイ及び排出先の出力ビンの指定、印刷時の解像度の指定、印刷部数の指定等を行うためのジョブ制御コマンド１２と、各ページの印刷像を生成するためのページ描画データ１３と、印刷ジョブデータ１１の終わりを示すジョブ終端データ１４とによって構成されている。また、ページ描画データ１３は、通常、ビットマップ、ＪＰＥＧ、ＴＩＦＦ等の形式の画像データ、文字や図形を描画するためのコマンド等によって構成されている。
【００２２】
そして、前記制御ユニット２２は、前記ジョブ制御コマンド１２を解釈して、印刷の際に印刷ユニット２３に指定する記録媒体のサイズや種類、入力トレイや出力ビン、データの解像度等に関する印刷制御パラメータを取得する。また、ページ描画データ１３に含まれる画像データの変換、描画コマンドの解釈、実行等の処理を行い、印刷ユニット２３に送信するビデオデータを生成する。
【００２３】
なお、該ビデオデータの形式としては、画像形成装置２１毎に種々の形式が考えられるが、例えば、該画像形成装置２１が、白黒画像形成装置である場合は、ビットマップ形式、又は、該ビットマップを圧縮した形式が考えられ、画像形成装置２１がカラー画像形成装置である場合は、イエロー、マゼンタ、シアン、ブラックの色成分毎のビットマップ、又は該色成分毎のビットマップを圧縮した形式が考えられる。
【００２４】
そして、制御ユニット２２においては、ビデオデータが生成されると、前記印刷制御パラメータに従って印刷ユニット２３に記録媒体の吸入及び搬送を指示し、印刷ユニット２３内での記録媒体の走行に同期して、前記ビデオデータを印刷ユニット２３に送信することによって、印刷ジョブデータ１１の受信から印刷ユニット２３からの記録媒体の排出までの印刷過程を制御している。
【００２５】
ここで、前記制御ユニット２２は、ＣＰＵ２４、ＲＯＭ２５、ＲＡＭ２６、ホストＩ／Ｆデバイス２７、ビデオＩ／Ｆデバイス２８、コマンドＩ／Ｆデバイス２９、オペレータパネルＩ／Ｆデバイス３０等によって構成されている。そして、前記ＲＯＭ２５には、制御ユニット２２の機能を実現するためのプログラムが格納されていて、ＣＰＵ２４によって実行される。また、ＲＡＭ２６は主メモリであり、受信データやビデオデータを格納する領域や、前記ＲＯＭ２５に格納されているプログラムが使用する作業領域が割り付けられる。
【００２６】
そして、制御ユニット２２は、ホストＩ／Ｆデバイス２７を介してホストコンピュータ２０に接続されていて、該ホストコンピュータ２０が送信した印刷ジョブデータ１１を受信する。前記ホストＩ／Ｆデバイス２７としては、ＲＳ２３２Ｃやセントロ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＬＡＮ等のネットワークがある。特に、該ネットワークを介してホストコンピュータ２０に接続される場合には、複数のホストコンピュータ２０からの印刷ジョブデータ１１を、異なるチャンネルを通して受信することができる。
【００２７】
また、ホストＩ／Ｆデバイス２７を介して受信された印刷ジョブデータ１１は制御ユニット２２内で処理され、ビデオデータが生成される。このとき、前記制御ユニット２２は、コマンドＩ／Ｆデバイス２９を通して、印刷ユニット２３に記録媒体の吸引及び搬送を行うためのコマンドを送信するとともに、ビデオＩ／Ｆデバイス２８を通して前記ビデオデータを送信する。また、印刷ユニット２３からの記録媒体の排出や異常状態の発生などの状態通知も、コマンドＩ／Ｆデバイス２９を通して制御ユニット２２に送信される。
【００２８】
さらに、制御ユニット２２は、印刷ジョブデータ１１の処理状況や印刷ユニット２３の状態、エラー、警告等を示すメッセージや画像形成装置２１の各種のパラメータ設定を行うためのメニュー文字列を、オペレータパネルＩ／Ｆデバイス３０を通して、オペレータパネル３１のＬＣＤ等のディスプレイに表示する。また、利用者が各種パラメータ設定のためのメニュー選択、印刷中のジョブのキャンセル等の指示のために、オペレータパネル３１上のスイッチを押下すると、前記制御ユニット２２においては、オペレータパネルＩ／Ｆデバイス３０を通して、オペレータパネル３１のスイッチの押下状態を読み取り、押下されたスイッチに応じた処理を行う。
【００２９】
本実施の形態においては、現在印刷中の印刷ジョブデータ１１をキャンセルする際に、該現在印刷中の印刷ジョブデータ１１のジョブ終端データ１４までデータを読み飛ばす際に用いる受信タイムアウト値を二つ保持しておき、一方の受信タイムアウト値Ｔ１は比較的大きな値を、もう一方の受信タイムアウト値Ｔ２は前記受信タイムアウト値Ｔ１に比べて小さな値を設定しておくようになっている。そして、利用者が画像形成装置２１のオペレータパネル３１上のスイッチを押下等することによって、現在印刷中の印刷ジョブデータ１１のキャンセルを初めて指示した際には、まず、受信タイムアウト値Ｔ１を用いて、現在印刷中の印刷ジョブデータ１１のジョブ終端データ１４までデータを読み飛ばす処理を行う。また、その最中に、前記利用者が印刷ジョブデータ１１のキャンセルを再度指示した場合には、受信タイムアウト値Ｔ１を受信タイムアウト値Ｔ２に変更して、現在印刷中の印刷ジョブデータ１１のジョブ終端データ１４までデータを読み飛ばすようにする。
【００３０】
次に、本実施の形態における画像形成装置２１の制御ユニット２２内のモジュールについて説明する。この場合、該モジュールはソフトウェアであり、そのプログラムはＲＯＭ２５上に格納されていて、ＣＰＵ２４によって実行されるものであるが、必ずしもソフトウェアである必要はなく、ハードウェアであってもよい。なお、本実施の形態においては、説明の都合上、モジュールがソフトウェアである場合について説明する。
【００３１】
図１は本発明の第１の実施の形態における画像形成装置の制御ユニット内のモジュールの構成を示す図、図４は本発明の第１の実施の形態における画像形成装置の制御ユニット内のＲＡＭに展開されるデータの構成を示す図である。
【００３２】
図２に示されるように、ホストコンピュータ２０上においては、画像形成装置２１を用いて印刷を行うデータを生成するためのプログラムが稼動していて、生成された印刷ジョブデータ１１は、ホストＩ／Ｆデバイス２７を介して画像形成装置２１の制御ユニット２２に送られる。ここで、該制御ユニット２２は、図１に示されるように、印刷データ受信モジュール４１、印刷データ翻訳モジュール４２、印刷制御モジュール４３及びオペレータパネル監視モジュール４４を有していて、各モジュールはそれぞれ独立して動作することが可能である。
【００３３】
前記オペレータパネル３１のスイッチが押下されているか否かは、前記オペレータパネル監視モジュール４４が制御ユニット２２からオペレータパネルＩ／Ｆデバイス３０を経由してスイッチの押下状態を定期的にセンシングすることによって検出する。
【００３４】
そして、図４に示されるように、ＲＡＭ２６内の受信バッファ５１には、ホストＩ／Ｆデバイス２７を介して受信されたデータが書き込まれていき、受信バッファ５１が一杯になると、ホストＩ／Ｆデバイス２７はデータの受信を一時的に停止し、受信バッファ５１からデータが読み出されて空きができると、データの受信を再開する。なお、前記受信バッファ５１に対するデータの読み書きはＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）順に行われる。
【００３５】
そして、受信タイムアウト値Ｔ１、Ｔ２は、受信バッファ５１が空の場合、新たなデータが受信されるまでどれだけ待つかを指定するために用いられる。前記受信タイムアウト値Ｔ１は、受信タイムアウト値Ｔ２より大きな値を設定しておく。また、受信データポーリング時間Ｔ３は、受信バッファ５１上にデータがあるか否かを定期的に調べる時間間隔を指定する。前記受信データポーリング時間Ｔ３の値は、受信タイムアウト値Ｔ１、Ｔ２に比べて十分小さな値を設定する。例えば、受信タイムアウト値Ｔ１には６０秒を、受信タイムアウト値Ｔ２には１秒を、受信データポーリング時間Ｔ３には０．１秒を設定する。
【００３６】
また、ジョブキャンセル要求カウンタ５２は、使用者がオペレータパネル３１上のジョブキャンセル用のスイッチを押下する度にカウントアップされる。前記ジョブキャンセル要求カウンタ５２は、印刷ジョブデータ１１の処理を開始する際に０にリセットされる。
【００３７】
そして、ページデータリスト５３は、各ページのビデオデータと該ビデオデータを印刷する際に用いる用紙のサイズや排出先、その他の属性から成るデータ（以下、「ページデータ」という。）を、印刷するページの順番につないだものである。各ページデータは、生成された順にページデータリスト５３につながれ、先頭から順に印刷ユニット２３で印刷され、印刷が完了するとページデータリスト５３から削除される。
【００３８】
本実施の形態においては（第２の実施の形態以降も含めて）、制御ユニット２２の各モジュールはソフトウェアであり、そのプログラムはＲＯＭ２５上に格納されていて、ＣＰＵ２４によって実行されるものとする。また、印刷データ受信モジュール４１以外のモジュールはそれぞれ異なるタスクとして実装され、ＣＰＵ２４によって並行的に実行されるものとする。ただし、前記モジュールは必ずしもソフトウェアである必要はなく、ハードウェアであってもよい。
【００３９】
次に、前記構成の画像形成装置の動作について説明する。
【００４０】
まず、利用者がジョブキャンセル用のスイッチを押下した時のオペレータパネル監視モジュール４４の動作について説明する。
【００４１】
図５は本発明の第１の実施の形態における画像形成装置のオペレータパネル監視モジュールの動作を示すフローチャートである。
【００４２】
この場合、オペレータパネル監視モジュール４４は、オペレータパネル３１のどのスイッチが押下されたかを定期的に調べている。
【００４３】
まず、オペレータパネル監視モジュール４４は、オペレータパネルＩ／Ｆデバイス３０を通して、各スイッチが押下されているか否かを調べる。そして、ジョブキャンセルスイッチが押下されたことが検出されると、ジョブキャンセル要求カウンタ５２を１増やす。ただし、ジョブキャンセル要求カウンタ５２の初期値は０であるとする。
【００４４】
また、ジョブキャンセルスイッチ以外のスイッチが押された場合は、各スイッチの意味に応じた処理が行われるが、本実施の形態においては関係がないので、その詳細については説明を省略する。
【００４５】
そして、ジョブキャンセルスイッチの押下に伴う処理を行った後、オペレータパネル監視モジュール４４は一定時間（例えば、５０〔秒〕程度）待った後、前述された処理を繰り返す。すなわち、利用者がジョブキャンセルスイッチを押下する度に、ジョブキャンセル要求カウンタ５２が増えていく。
【００４６】
次に、フローチャートについて説明する。
ステップＳ１  オペレータパネル３１のスイッチが押下されたか否かを判断する。スイッチが押下された場合はステップＳ２に進み、スイッチが押下されていない場合はステップＳ５に進む。
ステップＳ２  ジョブキャンセルスイッチが押下されたか否かを判断する。ジョブキャンセルスイッチが押下された場合はステップＳ３に進み、ジョブキャンセルスイッチが押下されていない場合はステップＳ４に進む。
ステップＳ３  ジョブキャンセル要求カウンタ５２を１増やす。
ステップＳ４  押下されたスイッチに伴う処理を行う。
ステップＳ５  一定時間待ち、処理を繰り返す。
【００４７】
次に、印刷データ受信モジュール４１の動作について説明する。
【００４８】
図６は本発明の第１の実施の形態における画像形成装置の印刷データ受信モジュールの動作を示すフローチャートである。
【００４９】
まず、印刷データ受信モジュール４１は、印刷データ翻訳モジュール４２から要求がある度に、受信バッファ５１からデータを読み出し、印刷データ翻訳モジュール４２が指定したバッファにデータを格納し、格納した該データのバイト数を返す。その際、ホストＩ／Ｆデバイス２７には、データ読み出しによって、受信バッファ５１上に空きができたことを通知する。また、受信バッファ５１が空の場合には、データなしを示すコードとして０を返す。
【００５０】
そして、受信バッファ５１上にデータが存在する場合、印刷データ受信モジュール４１は、そのデータを先読みしてジョブ終端データ１４が含まれているか否かを調べる。その際、先読みする範囲は、受信バッファ５１上のすべてのデータではなく、ある上限値の範囲、例えば、受信バッファ５１の先頭データから最大で８キロバイトの範囲にとどめてもよい。
【００５１】
また、先読みした範囲にジョブ終端データ１４が含まれていない場合は、先読みしたデータすべてを受信バッファ５１からデータを読み出して返す。そして、ジョブ終端データ１４が見つかった場合には、該ジョブ終端データ１４の直前までのデータを受信バッファ５１から読み出して返し、ジョブ終端データ１４は読み飛ばし、その代わり、ジョブ終端フラグを１に設定しておく。
【００５２】
そして、印刷データ受信モジュール４１が次に呼び出された際には、ジョブ終端フラグが１であるので、受信バッファ５１からデータを読み出さずに、ジョブ終端フラグを０にして、ジョブの終端を示すコードとして−１を返す。ただし、ジョブ終端フラグは０に初期化されているものとする。
【００５３】
次に、フローチャートについて説明する。
ステップＳ１１  ジョブ終端フラグが１であるか否かを判断する。１である場合はステップＳ１２に進み、１でない場合はステップＳ１４に進む。
ステップＳ１２  ジョブ終端フラグを０に設定する。
ステップＳ１３  ジョブの終端を示すコードとして−１を返す。
ステップＳ１４  受信バッファ５１にデータが存在するか否かを判断する。存在する場合はステップＳ１６に進み、存在しない場合はステップＳ１５に進む。
ステップＳ１５  データなしを示すコードとして０を返す。
ステップＳ１６  受信バッファ５１上のデータを走査し、ジョブ終端データ１４を探す。
ステップＳ１７  ジョブ終端データ１４が含まれるか否かを判断する。含まれる場合はステップＳ１８に進み、含まれない場合はステップＳ２１に進む。
ステップＳ１８  受信バッファ５１からジョブ終端データ１４の直前までのデータを読み出し、指定されたバッファに格納する。
ステップＳ１９  ジョブ終端データ１４を読み飛ばす。
ステップＳ２０  ジョブ終端フラグを１にセットする。
ステップＳ２１  受信バッファ５１から走査した範囲のデータを読み出し、指定されたバッファに格納する。
ステップＳ２２  受信バッファ５１に空きができたことをホストＩ／Ｆデバイス２７に通知する。
ステップＳ２３  読み出したデータのバイト数を返す。
【００５４】
次に、印刷データ翻訳モジュール４２の動作について説明する。
【００５５】
図７は本発明の第１の実施の形態における画像形成装置の印刷データ翻訳モジュールの動作を示す第１のフローチャート、図８は本発明の第１の実施の形態における画像形成装置の印刷データ翻訳モジュールの動作を示す第２のフローチャートである。
【００５６】
この場合、印刷データ翻訳モジュール４２は、印刷ジョブデータ１１の翻訳処理、ジョブキャンセル処理及び受信タイムアウト処理を行う。
【００５７】
まず、印刷データ翻訳モジュール４２は、印刷データ受信モジュール４１を定期的に呼び出しながら、印刷ジョブデータ１１の最初のデータを受信することができるまで待つ。そして、印刷ジョブデータ１１の最初のデータを受信することができると、ジョブキャンセル要求カウンタ５２を０に初期化し、その時点以降に、オペレータパネル３１のジョブキャンセルスイッチが押下された場合にだけ、現在翻訳中の印刷ジョブデータ１１をキャンセルすることができるようにする。
【００５８】
次に、印刷データ翻訳モジュール４２は、ジョブ終端データ１４に出会うか、受信タイムアウトが発生するまで、印刷データ受信モジュール４１を介して受信データを読み出しながら、そのデータの翻訳又は破棄を繰り返す。
【００５９】
そして、ジョブキャンセル要求カウンタ５２が０である場合は、受信した印刷ジョブデータ１１を翻訳する。この翻訳処理の過程において、各ページのビデオデータ及びページ属性が生成され、１ページ分のデータが揃（そろ）うと、図４に示されるページデータリスト５３につながれる。この翻訳処理の詳細については、本発明においては関係しないので説明を省略する。
【００６０】
また、ジョブキャンセル要求カウンタ５２が１以上である場合には、読み出したデータは破棄される。そして、印刷データ受信モジュール４１がジョブの終端を示すコードを返した場合には、ジョブの後始末処理を行った後、次のジョブの処理を行う。また、前記印刷データ受信モジュール４１がデータを読み出すことができない場合は、受信タイムアウトが発生するまでデータの読み出しを定期的に行う。
【００６１】
まず、受信待ち時間ｗｔを０に初期化しておき、データを読み出すことができなかった場合には、受信データポーリング時間Ｔ３だけ待って、再度データの読み出しを試みる。その際、受信待ち時間ｗｔは受信データポーリング時間Ｔ３ずつ増やされ、受信待ち時間ｗｔが受信タイムアウト時間ｔｍｏ以上に大きくなると、受信タイムアウトが発生したとして、現在のジョブの翻訳又はキャンセル処理を終了する。
【００６２】
ただし、受信タイムアウト時間ｔｍｏに用いられる値は、ジョブキャンセル要求カウンタ５２が１以下である場合は、受信タイムアウト値Ｔ１又は受信タイムアウト値Ｔ２が用いられる。なお、前記受信タイムアウト値Ｔ１、Ｔ２は固定値ではなく、例えば、利用者がオペレータパネル３１やコマンドを用いて変更することができるようにしてもよい。ただし、前記受信タイムアウト値Ｔ２は、その目的から大きな値には設定することができないようにしておくべきである。
【００６３】
そして、印刷制御モジュール４３は、印刷ユニット２３が次のページの印刷が可能になると、ページデータリスト５３の先頭のページデータ（ビデオデータとページ属性との組）を取り出して、印刷ユニット２３に制御コマンド（ページ属性にも依存する。）及びビデオデータを送信し、印刷ユニット２３内でそのページの印刷が終了した際に、前述されたページデータを破棄する。
【００６４】
また、印刷制御モジュール４３は、利用者からのジョブキャンセル要求があった場合には、印刷データ翻訳モジュール４２がキャンセル中のジョブから生成されたページデータであり、印刷ユニット２３でまだ印刷していないものは、ページデータリスト５３から削除する。
【００６５】
次に、フローチャートについて説明する。
ステップＳ３１  印刷データ受信モジュール４１にデータの読み出しを要求する。
ステップＳ３２  データを読み出すことができたか否かを判断する。データを読み出すことができた場合はステップＳ３３に進み、データを読み出すことができない場合は待機する。
ステップＳ３３  受信データポーリング時間Ｔ３だけ待つ。
ステップＳ３４  ジョブキャンセル要求カウンタ５２を０にセットする。
ステップＳ３５  繰り返しフラグｌｏｏｐ２を１にセットする。
ステップＳ３６  ｌｏｏｐ２が０か否かを判断する。０である場合はステップＳ５２に進み、０でない場合はステップＳ３７に進む。
ステップＳ３７  ジョブキャンセル要求カウンタ５２が０か否かを判断する。０である場合はステップＳ３８に進み、０でない場合はステップＳ３９に進む。
ステップＳ３８  読み出したデータを翻訳する。
ステップＳ３９  読み出したデータを破棄する。
ステップＳ４０  データ受信待ち時間ｗｔを０にセットする。
ステップＳ４１  印刷データ受信モジュール４１にデータの読み出しを要求する。
ステップＳ４２  データを読み出すことができたか否かを判断する。データを読み出すことができた場合はステップＳ３６に戻り、データを読み出すことができない場合はステップＳ４３に進む。
ステップＳ４３  ジョブ終端コードが返されたか否かを判断する。ジョブ終端コードが返された場合はステップＳ４４に進み、ジョブ終端コードが返されない場合はステップＳ４５に進む。
ステップＳ４４  ｌｏｏｐ２を０にセットする。
ステップＳ４５  受信データポーリング時間Ｔ３だけ待つ。
ステップＳ４６  受信待ち時間ｗｔをｗｔｔＴ３にセットする。
ステップＳ４７  受信タイムアウト時間ｔｍ０を受信タイムアウト値Ｔ１にセットする。
ステップＳ４８  ジョブキャンセル要求カウンタ５２が２以上か否かを判断する。２以上である場合はステップＳ４９に進み、２以上でない場合はステップＳ５０に進む。
ステップＳ４９  受信タイムアウト時間ｔｍ０を受信タイムアウト値Ｔ２にセットする。
ステップＳ５０  受信待ち時間ｗｔが受信タイムアウト時間ｔｍ０以上か否かを判断する。受信タイムアウト時間ｔｍ０以上である場合はステップＳ５１に進み、受信タイムアウト時間ｔｍ０以上でない場合はステップＳ４１に戻る。
ステップＳ５１  ｌｏｏｐ２を０にセットする。
ステップＳ５２  ジョブ終了の後始末処理を行う。
【００６６】
このように、本実施の形態においては、利用者が現在印刷中の印刷ジョブデータ１１のキャンセルを指示した場合、まず、比較的大きな値に設定された受信タイムアウト値Ｔ１を用いてジョブキャンセルを試みる。そして、現在印刷中のジョブのキャンセル（受信タイムアウトを含む。）が終了する前に、利用者が再度ジョブキャンセルを指示した際には、受信タイムアウト値Ｔ１に比べて十分に小さな受信タイムアウト値Ｔ２に変更することができる。
【００６７】
したがって、ホストコンピュータ２０側でジョブのデータ送信を中断されたことが既知であったり、そのような事態が予測されたりする場合には、利用者はジョブキャンセル時の受信タイムアウト値Ｔ１を途中から小さな受信タイムアウト値Ｔ２に変更することができるので、ジョブキャンセルをすばやく終了して、次のジョブのデータを印刷可能にすることができる。
【００６８】
ところで、前記第１の実施の形態においては、印刷中の印刷ジョブデータ１１をキャンセルするために、該印刷ジョブデータ１１のジョブ終端データ１４までデータを読み飛ばすようになっている。そして、印刷ジョブデータ１１のジョブ終端データ１４までデータを読み飛ばす際の受信タイムアウト値として、大きな値の受信タイムアウト値Ｔ１及び小さな値の受信タイムアウト値Ｔ２を保持しておき、利用者の指示に従って受信タイムアウト値を受信タイムアウト値Ｔ１から受信タイムアウト値Ｔ２に変更するようになっている。
【００６９】
そこで、画像形成装置が受信している印刷ジョブデータ１１中のジョブ終端データ１４を探すことなく、単に破棄するだけのジョブキャンセルの方法も有していて、どちらの方法を用いて現在印刷中のジョブをキャンセルするかを利用者が選択することができる本発明の第２の実施の形態について説明する。
【００７０】
なお、本発明の実施の形態における画像形成装置の構造については、前記第１の実施の形態における画像形成装置の構造と同じであるので、図１及び２を援用して説明する。
【００７１】
図９は本発明の第２の実施の形態における画像形成装置の制御ユニット内のＲＡＭに展開されるデータの構成を示す図である。
【００７２】
図９に示されるように、ＲＡＭ２６（図２）上に置かれる本実施の形態に関係する主なデータも、受信バッファクリア要求フラグ５４が設けられた点を除けば前記第１の実施の形態と同様である。
【００７３】
そして、受信バッファクリア要求フラグ５４が１である場合は、前記第１の実施の形態のようにジョブ終端データ１４を見つけるか、受信タイムアウトが発生するまで、印刷ジョブデータ１１を破棄することによってジョブキャンセルを実現するのではなく、ホストＩ／Ｆデバイス２７をデータ受信不可状態にした後に、受信バッファ５１上のデータをすべてクリアすることによって、ジョブキャンセルを行うことを意味している。
【００７４】
この場合、利用者はどちらの方法でジョブキャンセルを行うかを、オペレータパネル３１のジョブキャンセルスイッチを短押下（押下時間が、例えば、２秒未満）又は長押下（押下時間が、例えば、２秒以上）することによって指定することができる。すなわち、短押下である場合は、ジョブ終端データ１４に出会うまでデータを読み飛ばし、長押下である場合は、受信バッファ５１をクリアするようにする。
【００７５】
そこで、前記オペレータパネル監視モジュール４４は、ジョブキャンセルスイッチの短押下と長押下とを区別する必要がある。もちろん、短押下と長押下とによる方法以外にも、様々なオペレータパネル３１の操作による指定が考えられるが、本実施の形態においては本質的な問題ではない。
【００７６】
また、受信バッファ５１のクリアによるジョブキャンセルを行った直後は、ホストＩ／Ｆデバイス２７は受信停止状態になっているので、その状態を解除するために、利用者はオペレータパネル３１のオンラインスイッチを短押下する。
【００７７】
次に、前記構成の画像形成装置の動作について説明する。
【００７８】
まず、利用者がジョブキャンセルを行うためにジョブキャンセルスイッチを短押下又は長押下した場合と、ホストＩ／Ｆデバイス２７による印刷ジョブデータ１１の受信を再開させるためにオンラインスイッチを短押下した場合のオペレータパネル監視モジュール４４の動作について説明する。
【００７９】
図１０は本発明の第２の実施の形態における画像形成装置のオペレータパネル監視モジュールの動作を示すフローチャートである。
【００８０】
まず、オペレータパネル監視モジュール４４は、オペレータパネルＩ／Ｆデバイス３０を通して、各スイッチが押下（短押下と長押下との区別を含む。）されているか否かを判断する。そして、ジョブキャンセルスイッチが短押下又は長押下されると、ジョブキャンセル要求カウンタ５２が１増やされる。さらに、ジョブキャンセルスイッチが長押下された場合には、受信バッファクリア要求フラグ５４が１に設定される。ただし、受信バッファクリア要求フラグ５４の初期値は０である。
【００８１】
また、オンラインスイッチが短押下された場合は、ホストＩ／Ｆデバイス２７がデータ受信停止状態になっていると、オペレータパネル３１上に表示されている受信停止メッセージをクリアし、ホストＩ／Ｆデバイス２７をデータ受信可能状態にする。それ以外の動作については、前記第１の実施の形態（図５）と同様であるので説明を省略する。
【００８２】
次に、フローチャートについて説明する。
ステップＳ６１  オペレータパネル３１のスイッチが押下されたか否かを判断する。
ステップＳ６２  ジョブキャンセルスイッチが短押下されたか又は長押下されたか否かを判断する。短押下されたか又は長押下された場合はステップＳ６２−１に進み、短押下されたか又は長押下されない場合はステップＳ６５に進む。
ステップＳ６２−１  ジョブキャンセル要求カウンタ５２を１増やす。
ステップＳ６３  ジョブキャンセルスイッチが長押下されたか否かを判断する。
長押下された場合はステップＳ６４に進み、長押下されない場合はステップＳ６１に戻る。
ステップＳ６４  受信バッファクリア要求フラグ５４を１にセットする。
ステップＳ６５  オンラインスイッチが押下されたか否かを判断する。押下された場合はステップＳ６６に進み、押下されない場合はステップＳ６１に戻る。
ステップＳ６６  ホストＩ／Ｆデバイス２７がデータ受信停止状態か否かを判断する。データ受信停止状態である場合はステップＳ６７に進み、データ受信停止状態でない場合はステップＳ６１に戻る。
ステップＳ６７  オペレータパネル３１に表示されるデータ受信停止メッセージをクリアする。
ステップＳ６８  ホストＩ／Ｆデバイス２７を受信可能状態にする。
ステップＳ６９  その他のスイッチが押下れたか否かを判断する。押下された場合はステップＳ７０に進み、押下されない場合はステップＳ６１に戻る。
ステップＳ７０  その他のスイッチ押に伴う処理を行う。
ステップＳ７１  一定時間待つ。
【００８３】
次に、受信バッファクリア時の印刷データ受信モジュール４１の動作について説明する。なお、印刷ジョブデータ１１の読み出し時の印刷データ受信モジュール４１の動作については、前記第１の実施の形態（図６）と同様であるので説明を省略する。
【００８４】
図１１は本発明の第２の実施の形態における画像形成装置の印刷データ受信モジュールの動作を示すフローチャートである。
【００８５】
まず、印刷データ受信モジュール４１は、印刷データ翻訳モジュール４２から受信バッファ５１のクリア要求があると、ホストＩ／Ｆデバイス２７をデータ受信停止状態にして、ホストコンピュータ２０からの印刷ジョブデータ１１の受信を停止した後、受信バッファ５１上のすべてのデータをクリアする。
【００８６】
次に、オペレータパネル３１に印刷ジョブデータ１１の受信が停止したことを示すメッセージを表示し、最後に、ジョブ終端フラグを１に設定する。
【００８７】
次に、フローチャートについて説明する。
ステップＳ８１  ホストＩ／Ｆデバイス２７をデータ受信状態にする。
ステップＳ８２  受信バッファ５１中のデータをすべてクリアする。
ステップＳ８３  オペレータパネル３１にデータ受信状態であることを表示する。
ステップＳ８４  ジョブ終端フラグを１にセットする。
【００８８】
次に、印刷データ翻訳モジュール４２の動作について説明する。なお、本実施の形態においては、前記第１の実施の形態（図７及び８）に、受信バッファクリアによるジョブキャンセルを行う場合の処理が追加される。また、印刷ジョブデータ１１のジョブ終端データ１４までデータを読み飛ばす場合の動作については、前記第１の実施の形態と同様であるので説明を省略する。
【００８９】
図１２は本発明の第２の実施の形態における画像形成装置の印刷データ翻訳モジュールの動作を示す第１のフローチャート、図１３は本発明の第２の実施の形態における画像形成装置の印刷データ翻訳モジュールの動作を示す第２のフローチャートである。
【００９０】
まず、印刷データ翻訳モジュール４２は、図に示される処理に従って、印刷ジョブデータ１１の翻訳処理、ジョブキャンセル処理及び受信タイムアウト処理を行う。基本的には、前記第１の実施の形態と同様であるが、利用者が印刷ジョブデータ１１のジョブキャンセルスイッチを長押下した場合、すなわち、ジョブキャンセル要求フラグが１以上であり、かつ、受信バッファクリア要求フラグ５４が１である場合には、印刷データ受信モジュール４１に受信バッファクリア要求を行う。
【００９１】
これにより、ジョブ終端フラグは１に設定されるので、その後に、印刷データ受信モジュール４１にデータの読み出しを要求すると、常にジョブの終端を示すコードが返されるので、結果としてジョブキャンセルが終了する。
【００９２】
次に、フローチャートについて説明する。
ステップＳ９１  印刷データ受信モジュール４１にデータの読み出しを要求する。
ステップＳ９２  データを読み出すことができたか否かを判断する。データを読み出すことができた場合はステップＳ９３に進み、データを読み出すことができない場合は待機する。
ステップＳ９３  受信データポーリング時間Ｔ３だけ待つ。
ステップＳ９４  ジョブキャンセル要求カウンタ５２を０にセットする。
ステップＳ９５  受信バッファクリアフラグを０にセットする。
ステップＳ９６  繰り返しフラグｌｏｏｐ２を１にセットする。
ステップＳ９７  ｌｏｏｐ２が０か否かを判断する。０である場合はステップＳ１１５に進み、０でない場合はステップＳ９８に進む。
ステップＳ９８  ジョブキャンセル要求カウンタ５２が０か否かを判断する。０である場合はステップＳ９９に進み、０でない場合はステップＳ１００に進む。
ステップＳ９９  読み出したデータを翻訳する。
ステップＳ１００  読み出したデータを破棄する。
ステップＳ１０１  受信バッファクリア要求フラグ５４が１であるか否かを判断する。１である場合はステップＳ１０２に進み、１でない場合はステップＳ１０３に進む。
ステップＳ１０２  印刷データ受信モジュール４１に受信バッファ５１のクリア処理を要求する。
ステップＳ１０３  データ受信待ち時間ｗｔを０にセットする。
ステップＳ１０４  印刷データ受信モジュール４１にデータの読み出しを要求する。
ステップＳ１０５  データを読み出すことができたか否かを判断する。データを読み出すことができた場合はステップＳ９７に戻り、データを読み出すことができない場合はステップＳ１０６に進む。
ステップＳ１０６  ジョブ終端コードが返されたか否かを判断する。ジョブ終端コードが返された場合はステップＳ１０７に進み、ジョブ終端コードが返されない場合はステップＳ１０８に進む。
ステップＳ１０７  ｌｏｏｐ２を０にセットする。
ステップＳ１０８  受信データポーリング時間Ｔ３だけ待つ。
ステップＳ１０９  受信待ち時間ｗｔをｗｔｔＴ３にセットする。
ステップＳ１１０  受信タイムアウト時間ｔｍ０を受信タイムアウト値Ｔ１にセットする。
ステップＳ１１１  ジョブキャンセル要求カウンタ５２が２以上か否かを判断する。２以上である場合はステップＳ１１２に進み、２以上でない場合はステップＳ１１３に進む。
ステップＳ１１２  受信タイムアウト時間ｔｍ０を受信タイムアウト値Ｔ２にセットする。
ステップＳ１１３  受信待ち時間ｗｔが受信タイムアウト時間ｔｍ０以上か否かを判断する。受信タイムアウト時間ｔｍ０以上である場合はステップＳ１１４に進み、受信タイムアウト時間ｔｍ０以上でない場合はステップＳ１０４に戻る。
ステップＳ１１４  ｌｏｏｐ２を０にセットする。
ステップＳ１１５  ジョブ終了の後始末処理を行う。
【００９３】
ところで、ホストコンピュータ２０から画像形成装置２１に送られた印刷ジョブデータ１１が、画像形成装置２１には処理することができないコマンドで構成されている場合や、そもそも印刷データではないような不正なデータが画像形成装置２１に送られたような場合には、画像形成装置２１は無意味なページの印刷を行ってしまう。このような状況では、現在印刷中のジョブをキャンセルするために、印刷ジョブデータ１１のジョブ終端データ１４までデータを読み飛ばそうとしても、印刷ジョブデータ１１自身が正しくないので無駄である。
【００９４】
このように、本実施の形態においては、現在印刷中のジョブをキャンセルする際に、利用者がジョブ終端データ１４を見つけるか、受信タイムアウトになるまで、データを読み飛ばすことによってジョブをキャンセルするか、画像形成装置２１のデータ受信を停止した後、受信バッファ５１等に入っているすべてのデータを単にクリア（破棄）することによってジョブをキャンセルするかを、オペレータパネル３１のジョブキャンセルスイッチの短押下と長押下とによって選択することができるようになっている。
【００９５】
したがって、利用者は、まず、最初はジョブキャンセルスイッチを１回短押下してみて、ジョブ終端データ１４の読み飛ばしを試みる。それでも無意味なデータの印刷が停止しない場合は、ジョブキャンセルスイッチを長押下することによって受信を停止するとともに、受信バッファ５１内に溜（た）まっているデータをすべて破棄することによって印刷を停止することができる。
【００９６】
そして、利用者はホストコンピュータ２０側のデータ転送を停止した後、オンラインスイッチを押下することによって、受信可能状態に復帰することができる。
【００９７】
このように、２段階でジョブキャンセルを行うのは、受信バッファ５１内にはキャンセル対象の印刷ジョブデータ１１だけではなく、他の利用者の印刷ジョブデータ１１が入っている場合もあるので、不用意に他の利用者の印刷ジョブデータ１１が破棄されることがないようにするためである。もちろん、利用者が不正なデータを画像形成装置２１に送ったことが既知であり、他の利用者は印刷を行っていないことが明らかである場合は、最初からジョブキャンセルスイッチを長押下して受信バッファ５１をクリアするようにしてもよい。
【００９８】
ところで、前記第１及び第２の実施の形態においては、現在印刷中の印刷ジョブデータ１１をキャンセルする際、印刷ジョブデータ１１のジョブ終端データ１４までデータを読み飛ばすのは、印刷データ翻訳モジュール４２が行うようになっている。
【００９９】
したがって、印刷データ翻訳モジュール４２が現在印刷中の印刷ジョブデータ１１のジョブ終端データ１４までデータを読み飛ばすようになっているので、印刷中の印刷ジョブデータ１１のデータサイズが大きい場合や、ホストコンピュータ２０から画像形成装置２１へのデータ送信に時間がかかる場合には、次の印刷ジョブデータ１１の翻訳をなかなか開始することができない。
【０１００】
そこで、制御ユニット２２に印刷データ翻訳モジュール４２と並行的に動作するジョブキャンセルモジュールを設け、該ジョブキャンセルモジュールがキャンセル対象の印刷ジョブデータ１１をジョブ終端データ１４まで読み飛ばす処理を行っている間に、印刷データ翻訳モジュール４２は、別のジョブの翻訳処理を行うことができる本発明の第３の実施の形態について説明する。
【０１０１】
図１４は本発明の第３の実施の形態における画像形成装置の制御ユニット内のモジュールの構成を示す図、図１５は本発明の第３の実施の形態における画像形成装置の印刷ジョブデータの流れを示す図、図１６は本発明の第３の実施の形態における画像形成装置のキャンセルジョブリストの流れを示す図である。
【０１０２】
図１４に示されるように、画像形成装置２１は、複数のホストＩ／Ｆデバイスを有していて、それぞれ別のホストコンピュータ２０ａ、２０ｂ、…、２０ｎからそれぞれ異なる印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎを受信することができるようになっている。例えば、ＲＳ２３２Ｃ、セントロ及びＵＳＢの三つのホストＩ／Ｆデバイスを用いて、それぞれ異なるホストコンピュータ２０ａ、２０ｂ、…、２０ｎに接続されている場合がそれである。
【０１０３】
また、ホストＩ／Ｆデバイスとしてネットワークカード（ＬＡＮコントローラ）を用いるような場合、ＴＣＰ／ＩＰ等のプロトコルを用いることによって、ハードウェアとしてのホストＩ／Ｆデバイス（ＬＡＮコントローラ）は単一でも、複数のホストコンピュータ２０ａ、２０ｂ、…、２０ｎとの間にそれぞれ別々の論理的な通信チャンネルを設けると同様の状況になる。
【０１０４】
そして、制御ユニット２２には、印刷データ翻訳モジュール４２と並行的に動作するジョブキャンセルモジュール６５を設け、該ジョブキャンセルモジュール６５がキャンセル対象の印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎをジョブ終端データ１４まで読み飛ばす処理を行っている間に、印刷データ翻訳モジュール４２は、別のジョブの翻訳処理を行うことができる。
【０１０５】
また、図１５に示されるように、異なるホストＩ／Ｆデバイスから受信された印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎは、各ホストＩ／Ｆデバイス毎に別個に設けられた受信バッファ５１ａ、５１ｂ、…、５１ｎに格納されるようになっている。そして、印刷データ受信モジュール４２においては、いずれか一つのホストＩ／Ｆデバイス（受信バッファ５１ａ、５１ｂ、…、５１ｎ）を選択して、そこから印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎを受信する。例えば、受信バッファ５１ａ、５１ｂ、…、５１ｎの選択方法として、各受信バッファ５１ａ、５１ｂ、…、５１ｎにデータがあるか否かを定期的に走査しておき、最初にデータが見つかった受信バッファ５１ａ、５１ｂ、…、５１ｎから印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎを受信して処理する方法がある。
【０１０６】
次に、図１６に示されるように、各受信バッファ５１ａ、５１ｂ、…、５１ｎに通し番号を付与し、通し番号によって区別する。また、各受信バッファ５１ａ、５１ｂ、…、５１ｎには、その受信バッファ５１ａ、５１ｂ、…、５１ｎから受信している印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎがキャンセル中であることを示すジョブキャンセル中フラグを設ける。
【０１０７】
さらに、各受信バッファ５１ａ、５１ｂ、…、５１ｎには、前記第１及び第２の実施の形態で用いた受信タイムアウト値以外の各受信バッファ５１ａ、５１ｂ、…、５１ｎ固有の受信タイムアウト値を与えておく。該各受信バッファ５１ａ、５１ｂ、…、５１ｎ毎の受信タイムアウト値は、利用者のオペレータパネル３１の操作や印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎ自身によって変更することができないようにしておき、その値も大きくても１分程度にしておく。これは、受信タイムアウト値が画像形成装置２１の運用中に異常に大きな値に設定されることを防止するための措置である。
【０１０８】
次に、前記構成の画像形成装置の動作について説明する。
【０１０９】
まず、印刷データ翻訳モジュール４２の動作について説明する。
【０１１０】
図１７は本発明の第３の実施の形態における画像形成装置の印刷データ翻訳モジュールの動作を示すフローチャートである。
【０１１１】
なお、前記第１及び第２の実施の形態と異なる点は、ジョブキャンセル要求カウンタ５２（図４）が１以上である場合、すなわち、利用者はオペレータパネル３１のキャンセルスイッチを押下した場合に、印刷データ翻訳モジュール４２は、キャンセル対象の印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎを読み出していた受信バッファ５１ａ、５１ｂ、…、５１ｎのジョブキャンセル中フラグを１に設定し、図１６に示されるように、キャンセルジョブリスト６８に受信バッファ番号Ａ、Ｂ、…、Ｚを追加するだけであり、自らはジョブキャンセルを行わないで、即座にキャンセル対象のジョブの後始末をした後、別の受信バッファ５１ａ、５１ｂ、…、５１ｎからの印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎの処理を試みる。
【０１１２】
次に、フローチャートについて説明する。
ステップＳ１２１  印刷データ受信モジュール４２にデータを読み出すことができる受信バッファを探させる。
ステップＳ１２２  受信バッファ５１が見つかったか否かを判断する。見つかった場合はステップＳ１２３に進み、見つからない場合はステップＳ１２１に戻る。
ステップＳ１２３  受信データポーリング時間Ｔ３だけ待つ。
ステップＳ１２４  ジョブキャンセル要求カウンタ５２を０にセットする。
ステップＳ１２５  受信バッファ番号を指定し、印刷データ受信モジュール４２にデータ読み出しを要求する。
ステップＳ１２６  ジョブキャンセル要求カウンタ５２は０か否かを判断する。
０である場合はステップＳ１２７に進み、０でない場合はステップＳ１２８に進む。
ステップＳ１２７  読み出したデータを翻訳する。
ステップＳ１２８  受信バッファ５１のジョブキャンセル中フラグを１にセットする。
ステップＳ１２９  キャンセルジョブリスト６８に受信バッファ番号を追加する。
ステップＳ１３０  ジョブ終了の後始末処理を行う。
【０１１３】
そして、キャンセルジョブリスト６８につながれた受信バッファ５１ａ、５１ｂ、…、５１ｎ上のジョブは、ジョブキャンセルモジュール６５によってキャンセルされる。
【０１１４】
次に、ジョブキャンセルモジュール６５によるジョブキャンセル動作について説明する。
【０１１５】
図１８は本発明の第３の実施の形態における画像形成装置のジョブキャンセルモジュールの動作を示すフローチャートである。
【０１１６】
まず、ジョブキャンセルモジュール６５は、キャンセルジョブリスト６８の先頭からキャンセル対象の印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎを読み出す受信バッファ番号Ａ、Ｂ、…、Ｚを取得する。
【０１１７】
次に、その受信バッファ５１ａ、５１ｂ、…、５１ｎからジョブ終端データ１４が読み出されるか、受信タイムアウトが発生するまでの間データを読み出し、。最後に、受信バッファ５１ａ、５１ｂ、…、５１ｎのジョブキャンセル中フラグを０にする。
【０１１８】
次に、フローチャートについて説明する。
ステップＳ１４１  キャンセルジョブリスト６８が空であるか否かを判断する。
空である場合はステップＳ１４２に進み、空である場合はステップＳ１４３に進む。
ステップＳ１４２  キャンセルジョブリスト６８に要素が追加されるまで待つ。
ステップＳ１４３  キャンセルジョブリスト６８の先頭要素を取り出す。
ステップＳ１４４  受信タイムアウト時間ｔｍ０を受信バッファ毎のタイムアウト値にセットする。
ステップＳ１４５  繰り返しフラグｌｏｏｐ２を１にセットする。
ステップＳ１４６  ｌｏｏｐ２が０か否かを判断する。０である場合はステップＳ１５６に進み、０でない場合はステップＳ１４７に進む。
ステップＳ１４７  データ受信待ち時間ｗｔを０にセットする。
ステップＳ１４８  受信バッファ番号を受信し、印刷データ受信モジュール４１にデータの読み出しを要求する。
ステップＳ１４９  データを読み出すことができたか否かを判断する。データを読み出すことができた場合はステップＳ１４６に戻り、データを読み出すことができない場合はステップＳ１５０に進む。
ステップＳ１５０  ジョブ終端コードが返されたか否かを判断する。ジョブ終端コードが返された場合はステップＳ１５１に進み、ジョブ終端コードが返されない場合はステップＳ１５２に進む。
ステップＳ１５１  ｌｏｏｐ２を０にセットする。
ステップＳ１５２  受信データポーリング時間Ｔ３だけ待つ。
ステップＳ１５３  ｗｔをｗｔ＋Ｔ３にセットする。
ステップＳ１５４  ｗｔがｔｍ０以上であるか否かを判断する。ｔｍ０以上である場合はステップＳ１５５に進み、ｔｍ０以上でない場合はステップＳ１４８に戻る。
ステップＳ１５５  ｌｏｏｐ２を０にセットする。
ステップＳ１５６  受信バッファ５１のジョブキャンセル中フラグを０にセットする。
【０１１９】
次に、印刷データ翻訳モジュール４２が印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎの受信が可能な受信バッファ５１ａ、５１ｂ、…、５１ｎを選択するために利用する印刷データ受信モジュール４１の受信バッファ選択処理の動作について説明する。
【０１２０】
図１９は本発明の第３の実施の形態における画像形成装置の印刷データ受信モジュールの受信バッファ選択処理の動作を示すフローチャートである。
【０１２１】
まず、印刷データ受信モジュール４１は、ジョブキャンセル中フラグが０であるものの中から、印刷データ翻訳モジュール４２に渡す受信バッファ５１ａ、５１ｂ、…、５１ｎ、すなわち、データを読み出すことができる状態になっているものを探す。
【０１２２】
次に、フローチャートについて説明する。
ステップＳ１６１  すべての受信バッファ５１についての処理が終了したか否かを判断する。終了した場合は処理を終了し、終了しない場合はステップＳ１６２に進む。
ステップＳ１６２  ジョブキャンセル中フラグが０で、かつ、受信バッファ５１上にデータがあるか否かを判断する。
ステップＳ１６３  受信バッファ５１の番号を返す。
ステップＳ１６４  受信バッファ５１にデータがないことを示すコードとして１を返す。
【０１２３】
このように、本実施の形態においては、現在印刷中の印刷ジョブデータ１１のジョブ終端データ１４までデータを読み飛ばすキャンセル処理を、印刷ジョブデータ１１のデータを翻訳する処理と並行して行うことができるので、セントロ、ＲＳ２３２Ｃ、ＵＳＢ、ＬＡＮ等の複数のホストＩ／Ｆからデータを受信することができる画像形成装置２１においては、ある一つのホストＩ／Ｆを通して受信している印刷ジョブデータ１１をキャンセルしている間に、別のホストＩ／Ｆから送られてくる別の印刷ジョブデータ１１を受信して翻訳し、印刷を行うことができる。これは、ＬＡＮ等のネットワーク環境下で、一つの画像形成装置２１が、複数のホストコンピュータ２０ａ、２０ｂ、…、２０ｎとの間で印刷ジョブデータ受信用のコネクションを同時に張って、複数のホストコンピュータ２０ａ、２０ｂ、…、２０ｎから印刷ジョブデータを受信する場合には、特に有効である。
【０１２４】
ところで、前記第３の実施の形態においては、ジョブキャンセルモジュール６５は、キャンセルジョブリスト６８の先頭からキャンセル対象の印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎを読み出すための受信バッファ番号Ａ、Ｂ、…、Ｚを一つずつ取り出し、各ジョブを順番にキャンセルするようになっている。すなわち、一つのジョブのキャンセルが終了してから、次のジョブのキャンセルを行うようになっている。
【０１２５】
したがって、ジョブキャンセルモジュール６５は、キャンセル対象のジョブ（受信バッファ５１ａ、５１ｂ、…、５１ｎ）が複数存在する場合でも、一つのジョブのキャンセルが終了するまでは、次のジョブのキャンセルを行うことができない。このような方法では、一つ目の受信バッファからのデータ読み出しが遅い（印刷ジョブデータ１１の送信が遅い）場合には、後続のジョブをキャンセルするまでの待ち時間が長くなってしまう。
【０１２６】
そこで、前述されたようにジョブのキャンセルを逐次的に行うのではなく、キャンセルジョブリスト６８に複数の受信バッファ５１ａ、５１ｂ、…、５１ｎがつながれている場合には、複数の受信バッファ５１ａ、５１ｂ、…、５１ｎからデータを読み出すことによって、複数の印刷ジョブデータ１１ａ、１１ｂ、…、１１ｎを同時にキャンセルすることができる本発明の第４の実施の形態について説明する。なお、本実施の形態における画像形成装置２１のモジュールの構成については、前記第３の実施の形態における画像形成装置２１のモジュールの構成と同じであるので、図１４を援用して説明する。
【０１２７】
次に、前記構成の画像形成装置の動作について説明する。
【０１２８】
まず、ジョブキャンセルモジュール６５の動作について説明する。
【０１２９】
図２０は本発明の第４の実施の形態における画像形成装置のジョブキャンセルモジュールの動作を示す第１のフローチャート、図２１は本発明の第４の実施の形態における画像形成装置のジョブキャンセルモジュールの動作を示す第２のフローチャートである。
【０１３０】
本実施の形態においては、キャンセル対象のジョブが複数存在する場合、すなわち、キャンセルジョブリスト６８（図１６）に複数の受信バッファ番号Ａ、Ｂ、…、Ｚがつながれている時、ラウンドロビン式に、各受信バッファ５１ａ、５１ｂ、…、５１ｎを変更しながらデータを読み出している。前記ラウンドロビン式のデータ読み出しは、キャンセルジョブリスト６８につながれているいずれかの受信バッファ５１ａ、５１ｂ、…、５１ｎからデータを読み出すことができている間は繰り返される。
【０１３１】
そして、いずれの受信バッファ５１ａ、５１ｂ、…、５１ｎからからもデータを読み出すことができなくなると、受信データポーリング時間Ｔ３だけ待ち、再びラウンドロビン式のデータ読み出しを行う。
【０１３２】
このラウンドロビン式のデータ読み出しの過程においては、データを読み出すことができた最新のデータ読出時刻を各受信バッファ５１ａ、５１ｂ、…、５１ｎ毎に保持しておき、データを読み出す順番が回ってきた際にデータを読み出すことができなければ、最新のデータ読出時刻から現在の時刻を減算して、受信待ち（データを受信することができていない時間）を計算することができる。
【０１３３】
これにより、ラウンドロビン式のデータ読み出しの過程において、各受信バッファ５１ａ、５１ｂ、…、５１ｎ毎に受信タイムアウトの発生を検出することができる。また、受信タイムアウトが発生した場合には、その受信バッファ番号Ａ、Ｂ、…、Ｚをキャンセルジョブリスト６８から取り除き、受信バッファ５１ａ、５１ｂ、…、５１ｎのジョブキャンセル中フラグを０にしている。そして、受信バッファ５１ａ、５１ｂ、…、５１ｎからデータを読み出す際に、ジョブの終端を示すコードが返された場合にも、同様の処理が行われる。
【０１３４】
次に、フローチャートについて説明する。
ステップＳ１７１  キャンセルジョブリスト６８が空であるか否かを判断する。
空である場合はステップＳ１７２に進み、空である場合はステップＳ１７３に進む。
ステップＳ１７２  キャンセルジョブリスト６８に要素が追加されるまで待つ。
ステップＳ１７３  繰り返しフラグを０にセットする。
ステップＳ１７４  キャンセルジョブリスト中の各受信バッファｎについて処理が終了したか否かを判断する。終了した場合はステップＳ１８６に進み、終了しない場合はステップＳ１７５に進む。
ステップＳ１７５  キャンセルジョブリスト６８中の受信バッファｎを指定し、印刷データ受信モジュール４１にデータの読み出しを要求する。
ステップＳ１７６  データを読み出すことができたか否かを判断する。データを読み出すことができた場合はステップＳ１７７に進み、データを読み出すことができない場合はステップＳ１７９に進む。
ステップＳ１７７  受信バッファのデータ受信時刻を現在の時刻にセットする。
ステップＳ１７８  繰り返しフラグを１にセットする。
ステップＳ１７９  ジョブ終端コードが返されたか否かを判断する。ジョブ終端コードが返された場合はステップＳ１８０に進み、ジョブ終端コードが返されない場合はステップＳ１８２に進む。
ステップＳ１８０  受信バッファｎをジョブキャンセルリストから削除する。
ステップＳ１８１  受信バッファｎのジョブキャンセル中フラグを０にセットする。
ステップＳ１８２  受信バッファｎのデータ受信時刻と現在時刻の差をデータ受信待ち時間ｗｔとする。
ステップＳ１８３  データ受信待ち時間ｗｔは受信バッファｎの受信タイムアウト値以上か否かを判断する。受信バッファｎの受信タイムアウト値以上である場合はステップＳ１８４に進み、受信バッファｎの受信タイムアウト値以上でないる場合はステップＳ１７４に戻る。
ステップＳ１８４  受信バッファｎをジョブキャンセルリストから削除する。
ステップＳ１８５  受信バッファｎのジョブキャンセル中フラグを０にセットする。
ステップＳ１８６  繰り返しフラグが１であるか否かを判断する。１である場合はステップＳ１７３に戻り、１でない場合はステップＳ１８７に進む。
ステップＳ１８７  受信データポーリング時間Ｔ３だけ待つ。
【０１３５】
このように、本実施の形態においては、キャンセル対象のジョブが複数ある場合、ラウンドロビン式に受信バッファ５１ａ、５１ｂ、…、５１ｎから順番にデータを読み出していくので、いずれかの受信バッファ５１ａ、５１ｂ、…、５１ｎからのデータ受信が遅い場合では、他も受信バッファ５１ａ、５１ｂ、…、５１ｎからデータ読み出しはその影響を受けることなく、データ受信（ジョブキャンセル処理）を進めることができる。
【０１３６】
なお、本発明は前記実施の形態に限定されるものではなく、本発明の趣旨に基づいて種々変形させることが可能であり、それらを本発明の範囲から排除するものではない。
【０１３７】
【発明の効果】
以上詳細に説明したように、本発明によれば、画像通信方法においては、通常の受信の場合、第１の受信タイムアウト値に基づいて前記受信タイムアウトを検出し、前記通信の区切りを判断し、予め設定した条件となると、第２の受信タイムアウト値に基づいて受信タイムアウトを検出し、通信の区切りを判断する。
【０１３８】
この場合、利用者の指示に従って受信タイムアウト値やキャンセルの方法を変えることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態における画像形成装置の制御ユニット内のモジュールの構成を示す図である。
【図２】本発明の第１の実施の形態における画像形成装置の構成を示すブロック図である。
【図３】本発明の第１の実施の形態における印刷ジョブデータの構成を示す図である。
【図４】本発明の第１の実施の形態における画像形成装置の制御ユニット内のＲＡＭに展開されるデータの構成を示す図である。
【図５】本発明の第１の実施の形態における画像形成装置のオペレータパネル監視モジュールの動作を示すフローチャートである。
【図６】本発明の第１の実施の形態における画像形成装置の印刷データ受信モジュールの動作を示すフローチャートである。
【図７】本発明の第１の実施の形態における画像形成装置の印刷データ翻訳モジュールの動作を示す第１のフローチャートである。
【図８】本発明の第１の実施の形態における画像形成装置の印刷データ翻訳モジュールの動作を示す第２のフローチャートである。
【図９】本発明の第２の実施の形態における画像形成装置の制御ユニット内のＲＡＭに展開されるデータの構成を示す図である。
【図１０】本発明の第２の実施の形態における画像形成装置のオペレータパネル監視モジュールの動作を示すフローチャートである。
【図１１】本発明の第２の実施の形態における画像形成装置の印刷データ受信モジュールの動作を示すフローチャートである。
【図１２】本発明の第２の実施の形態における画像形成装置の印刷データ翻訳モジュールの動作を示す第１のフローチャートである。
【図１３】本発明の第２の実施の形態における画像形成装置の印刷データ翻訳モジュールの動作を示す第２のフローチャートである。
【図１４】本発明の第３の実施の形態における画像形成装置の制御ユニット内のモジュールの構成を示す図である。
【図１５】本発明の第３の実施の形態における画像形成装置の印刷ジョブデータの流れを示す図である。
【図１６】本発明の第３の実施の形態における画像形成装置のキャンセルジョブリストの流れを示す図である。
【図１７】本発明の第３の実施の形態における画像形成装置の印刷データ翻訳モジュールの動作を示すフローチャートである。
【図１８】本発明の第３の実施の形態における画像形成装置のジョブキャンセルモジュールの動作を示すフローチャートである。
【図１９】本発明の第３の実施の形態における画像形成装置の印刷データ受信モジュールの受信バッファ選択処理の動作を示すフローチャートである。
【図２０】本発明の第４の実施の形態における画像形成装置のジョブキャンセルモジュールの動作を示す第１のフローチャートである。
【図２１】本発明の第４の実施の形態における画像形成装置のジョブキャンセルモジュールの動作を示す第２のフローチャートである。
【符号の説明】
１１    印刷ジョブデータ
１４    ジョブ終端データ
２１    画像形成装置
２７    ホストＩ／Ｆデバイス
【図１】
2004272765.tif 000003
【図２】
2004272765.tif 000004
【図３】
2004272765.tif 000005
【図４】
2004272765.tif 000006
【図５】
2004272765.tif 000007
【図６】
2004272765.tif 000008
【図７】
2004272765.tif 000009
【図８】
2004272765.tif 000010
【図９】
2004272765.tif 000011
【図１０】
2004272765.tif 000012
【図１１】
2004272765.tif 000013
【図１２】
2004272765.tif 000014
【図１３】
2004272765.tif 000015
【図１４】
2004272765.tif 000016
【図１５】
2004272765.tif 000017
【図１６】
2004272765.tif 000018
【図１７】
2004272765.tif 000019
【図１８】
2004272765.tif 000020
【図１９】
2004272765.tif 000021
【図２０】
2004272765.tif 000022
【図２１】
2004272765.tif 000023