(57)【要約】【課題】ステータス監視の間隔をプリンタの受信バッファの状態に応じて変化させる。【解決手段】言語モニタ６のステータス監視部６２がデータの送受信部６４を介してポートモニタ７にステータス要求を送信すると、ポートモニタ７の各種Ｉ／Ｆに対する送受信部７１は、このステータス要求をプリンタ１０に送信する。このステータス要求を受信したプリンタ１０のＣＰＵは受信バッファの状態を示すデータを含むステータスをポートモニタ７に返す。ポートモニタ７はこのステータスを言語モニタ６に送信する。言語モニタ６のステータス監視部６２は、受信したステータスに基づいてプリンタ１０の受信バッファがバッファニアフルの状態であると判断すると、バッファニアフル時の所定の時間間隔（通常時より長い時間間隔）でステータス監視を行うようにする。【選択図】図２ 
2005135119.tif 000002
【特許請求の範囲】
【請求項１】
プリンタのステータスを監視するステータス監視方法であって、
前記プリンタに対して所定の時間間隔でステータス要求を送信するステータス要求ステップと、
前記ステータス要求に対して前記プリンタから返送されてきた前記ステータスを受信するステータス受信ステップと、
前記ステータスに含まれる前記プリンタの受信バッファの状態に応じて、前記ステータス要求を前記プリンタに対して送信する前記時間間隔を調整する調整ステップと
を備えることを特徴とするステータス監視方法。
【請求項２】
前記調整ステップにおいては、前記プリンタの受信バッファの状態がバッファニアフルの状態であるとき、前記時間間隔を、前記プリンタの受信バッファの状態がバッファニアフルの状態ではないときより長くし、
前記ステータス要求ステップにおいては、前記調整ステップにおいて調整された前記時間間隔で前記ステータス要求を前記プリンタに対して送信する
ことを特徴とする請求項１に記載のステータス監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はステータス監視方法に関し、双方向通信によりステータス監視が可能なステータス監視方法に関する。
【背景技術】
【０００２】
従来、プリンタは、プリンタと接続されたパーソナルコンピュータと双方向通信を行い、パーソナルコンピュータからの要求に応じてプリンタのステータスを送信する機能を有し、パーソナルコンピュータからプリンタのステータスを監視することが可能となっている。プリンタは、このステータスをパーソナルコンピュータのプリンタドライバから印字データとは別のステータス要求が送信されてきたときに返す。また、プリンタは、１つのＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）を用いて印字処理と印字データやコマンド等を受信する受信処理を行っている。
また、プリンタは受信バッファを有し、パーソナルコンピュータから送信されてきた印字データを受信バッファに蓄積することが可能となっており、蓄積された印字データは、印字処理されたものから順に受信バッファから削除されるようになっている。このため、受信バッファが印字データで一杯になりそうな状態（バッファニアフル状態）になると、受信バッファにはそれ以上印字データを蓄積することができなくなるため、印字処理された印字データが削除されて受信した印字データの蓄積が可能になるまで、新たに受信した印字データを受け付けないようになっている。
また、上位装置がプリンタから通知された受信可能サイズ分の印字データを転送し、再度プリンタから受信可能サイズが通知されるまで、次の印刷データの転送を行わないようにし、プリンタの受信バッファフルを防止し、また、受信可能サイズをユーザからの指定によって変更可能とし、上位装置の転送性能に合わせた最適な受信可能サイズに変更するようにしたものがある。
【特許文献１】特開２０００−２０７１４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来技術では、受信バッファフルを防止することはできても、受信バッファの状態に応じて印字処理を効率的に行わせるようにすることはできないという問題があった。
【０００４】
本発明はこのような状況に鑑みてなされたものであり、受信バッファニアフル状態ではステータス監視の間隔を広げることにより、ＣＰＵが印字処理にかけることができる時間を増やし、印字処理時のスループットを向上させることができるようにするものである。
【課題を解決するための手段】
【０００５】
請求項１に記載のステータス監視方法は、プリンタのステータスを監視するステータス監視方法であって、プリンタに対して所定の時間間隔でステータス要求を送信するステータス要求ステップと、ステータス要求に対してプリンタから返送されてきたステータスを受信するステータス受信ステップと、ステータスに含まれるプリンタの受信バッファの状態に応じて、ステータス要求をプリンタに対して送信する時間間隔を調整する調整ステップとを備えることを特徴とする。
また、調整ステップにおいては、プリンタの受信バッファの状態がバッファニアフルの状態であるとき、時間間隔を、プリンタの受信バッファの状態がバッファニアフルの状態ではないときより長くし、ステータス要求ステップにおいては、調整ステップにおいて調整された時間間隔でステータス要求をプリンタに対して送信するようにすることができる。
【発明の効果】
【０００６】
本発明によれば、受信バッファニアフル状態において、ＣＰＵが印字処理にかける時間を増やすことができ、プリンタのスループットを向上させることができる。
【発明を実施するための最良の形態】
【０００７】
図１は、本発明が適用されるパーソナルコンピュータ（ＰＣ）のソフトウェア構成例を示す図である。本実施の形態は、ユーザインタフェースドライバ１と、アプリケーション２と、ＧＤＩ３２（３）（ただし、かっこ内の数字３は符号である）と、グラフィックスドライバ４と、スプーラ５と、言語モニタ６と、ポートモニタ７と、グラフィックエンジン８と、デバイスドライバ９とから構成され、ポートモニタ７はデバイスドライバ９を介してプリンタ１０とステータス要求を行い、プリンタ１０から返送されてきたステータスを受け取るようになっている。
【０００８】
ユーザインタフェースドライバ１は、３２ｂｉｔ／ＵＮＩＣＯＤＥ版であり、プリンタ１０の設定を行うユーザインタフェースを提供する部分である。アプリケーション２は、テキスト編集ソフトウェア等である。ＧＤＩ３２（３）は、グラフィックデバイスインタフェース（３２ｂｉｔ版）であり、描画ツールを実現するライブラリである。例えば、線を描くためのペンや、色を塗りつぶすブラシなどに該当する。
【０００９】
グラフィックスドライバ４は、３２ｂｉｔ／ＵＮＩＣＯＤＥ版であり、アプリケーション２からの印刷要求をプリンタコマンドに変換し、後述するスプーラ５に送信する部分である。スプーラ５は、グラフィックスドライバ４から送信されたプリンタコマンドを受信して一旦記憶した後、受信したプリンタコマンドを順次、後述する言語モニタ６及びポートモニタ７に供給するようになっている。
【００１０】
言語モニタ６は、３２ｂｉｔ／ＵＮＩＣＯＤＥ版であり、双方向通信を行う際に、フロー制御を行うモジュールである。ポートモニタ７は、プリンタ１０とのデバイスインタフェース機能を実現する部分である。デバイスドライバ９は、ＯＳ（オペレーティングシステム）上で物理的なデバイスをファイルとして抽象化したものである。
【００１１】
ユーザモードはＯＳ上でシステムを保護する目的で、ＣＰＵの命令の実行が制限を受けているモードである。カーネルモードは、ＯＳ上でＣＰＵが特権命令を実行可能なモードである。
【００１２】
図２は、ステータスを監視する方法を示すブロック図である。同図に示すように、言語モニタ６はポートモニタ７に印字データ及びステータス要求を送信し、ポートモニタ７から送信されてきたステータスを受信するようになっている。ポートモニタ７は、言語モニタ６から送信されてきた印字データ及びステータス要求をデバイスドライバ９を介してプリンタ１０に送信するとともに、プリンタ１０から送信されてきたステータスを言語モニタ６に送信するようになっている。
【００１３】
言語モニタ６は、コマンド解析部６１と、ステータス監視部６２と、スプーラのフロー制御部６３と、データの送受信部６４を有している。ポートモニタ７は、各種Ｉ／Ｆ（インタフェース）に対する送受信部７１を有している。
【００１４】
言語モニタ６のコマンド解析部６１は、スプーラ５から送信されてきたプリンタコマンドを解析し、印字データとしてポートモニタ７に供給するようになっている。ステータス監視部６２は、ポートモニタ７に対して所定の時間間隔でステータス要求を送信するようになっている。スプーラのフロー制御部６３は、プリンタ１０の受信バッファの状態に応じて、プリンタ１０に流れるデータ量を抑制するようになっている。データの送受信部６４は、ポートモニタ７に対して印字データ及びステータス要求を送信し、ポートモニタ７から送信されてきたステータスを受信するようになっている。
【００１５】
ポートモニタ７は、各種Ｉ／Ｆに対する送受信部７１を備え、言語モニタ６より送信されてきた印字データ及びステータス要求を、デバイスドライバ９を介してプリンタ１０に送信し、プリンタ１０から送信されてきたステータスを受信するようになっている。
【００１６】
プリンタ１０は、ポートモニタ７からデバイスドライバ９を介して送信されてきた印字データ及びステータス要求を受信するとともに、ステータスをデバイスドライバを介してポートモニタ７に返送する図示せぬ送受信部と、印字データを記憶する図示せぬ受信バッファと、受信バッファの状態を検出し、ステータスを送受信部を介してポートモニタ７に返送したり、印字データを印字する処理等の各種処理を実行する図示せぬＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）等を備えており、ポートモニタ７からデバイスドライバ９を介して送信されてきた印字データ及びステータス要求を受信し、印字データを一旦受信バッファに記憶させ、ステータス要求に応じて、ステータスを返送するようになっている。
【００１７】
次に、図３のフローチャートを参照して、本実施の形態の動作について説明する。まず最初に、ステップＳ１において、言語モニタ６のステータス監視部６２により、要ステータス監視か否か、即ち、ステータス監視を行う必要があるか否かが判定される。ステータス監視の要否は予めユーザによって設定されており、この設定に基づいてステータス監視の要否が判定される。
【００１８】
その結果、ステータス監視が必要ではないと判定された場合、本処理を終了する。一方、ステータス監視が必要であると判定された場合、ステップＳ２に進む。ステップＳ２においては、言語モニタ６のステータス監視部６２により、データの送受信部６４を介してステータス要求がポートモニタ７に送信される。
【００１９】
ポートモニタ７の各種Ｉ／Ｆに対する送受信部７１によって、言語モニタ６から送信されてきたステータス要求が受信されると、受信されたステータス要求がデバイスドライバ９を介してプリンタ１０に送信される。プリンタ１０の図示せぬＣＰＵは、ポートモニタ７からデバイスドライバ９を介して送信されてきたステータス要求を図示せぬ送受信部を介して受信すると、このステータス要求に対してプリンタ１０のステータスを送受信部を介して返す。
【００２０】
次に、ステップＳ３において、ポートモニタ７は、プリンタ１０から返送されてきたステータスをデバイスドライバ９を介して受信すると、受信したステータスを言語モニタ６に送信する。このステータスは、言語モニタ６のデータの送受信部６４によって受信され、ステータス監視部６２に供給される。
【００２１】
プリンタ１０から返送されるステータスには、プリンタ１０の図示せぬ受信バッファの状態を示すデータが含まれており、ステップＳ４において、言語モニタ６のステータス監視部６２は、このステータスに含まれるプリンタ１０の受信バッファの状態を示すデータから、受信バッファがバッファニアフルの状態であるか否かを判定する。
【００２２】
その結果、言語モニタ６のステータス監視部６２により、プリンタ１０の受信バッファがバッファニアフルの状態であると判定された場合、ステップＳ５に進み、バッファニアフル時の所定のステータス監視間隔時間Ａが設定される。一方、言語モニタ６のステータス監視部６２により、プリンタ１０の受信バッファがバッファニアフルの状態ではないと判定された場合、ステップＳ６に進み、通常時（バッファニアフルではないとき）の所定のステータス監視間隔時間Ｂが設定される。ステップＳ５又はステップＳ６の処理が終了すると、ステップＳ７に進む。
【００２３】
ステップＳ７においては、ステータス監視部６２により、ステップＳ５においてステータス監視間隔時間Ａが設定された場合には、このステータス監視間隔時間Ａだけ待った後（Ｗａｉｔした後）、ステップＳ１に戻り、ステップＳ１以降の処理が繰り返し実行される。一方、ステップＳ６においてステータス監視間隔時間Ｂが設定された場合には、このステータス監視間隔時間Ｂだけ待った後（Ｗａｉｔした後）、ステップＳ１に戻り、ステップＳ１以降の処理が繰り返し実行される。
【００２４】
これにより、ステータス監視部６２によってプリンタ１０のステータス監視が行われる時間間隔がプリンタ１０の受信バッファの状態に応じて変化することになる。ステータス監視間隔時間Ａ（バッファニアフル状態時に設定される）をステータス監視間隔時間Ｂ（通常時に設定される）より長い時間にすることにより、プリンタ１０の受信バッファがバッファニアフル状態であるときには、そうでないとき（通常時）より、ステータス監視の時間間隔を長くすることができる。従って、受信バッファがバッファニアフル状態にあるときにはプリンタ１０の図示せぬＣＰＵがステータスを返送する処理に費やす時間を通常時より短くし、その分を印字処理に当てることができ、スループットを向上させることができる。
【００２５】
また、プリンタ１０の受信バッファがバッファニアフルの状態にあるとき、プリンタ１０とパーソナルコンピュータとの間を流れるデータ量を少なくすることができるので、パーソナルコンピュータにＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）等を介してプリンタ１０及びその他の機器が接続され、パーソナルコンピュータを共有している場合には、トラフィック量を減らすことができる。
【００２６】
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更することができることは言うまでもない。
【図面の簡単な説明】
【００２７】
【図１】本発明が適用されるパーソナルコンピュータ（ＰＣ）のソフトウェア構成例を示す図である。
【図２】ステータスを監視する方法を説明するためのブロック図である。
【図３】本実施の形態の動作を説明するためのフローチャートである。
【符号の説明】
【００２８】
１  ユーザインタフェースドライバ
２  アプリケーション
３  ＧＤＩ３２
４  グラフィックスドライバ
５  スプーラ
６  言語モニタ
７  ポートモニタ
８  グラフィックエンジン
９  デバイスドライバ
１０  プリンタ
６１  コマンド解析部
６２  ステータス監視部
６３  スプーラのフロー制御部
６４  データの送受信部
７１  各種Ｉ／Ｆに対する送受信部
【図１】
2005135119.tif 000003
【図２】
2005135119.tif 000004
【図３】
2005135119.tif 000005