(57)【要約】【課題】簡単な構成で、プリンタの状態を監視する処理と、プリンタとのデータの入出力を制御する処理とを分散させて、プリンタポートの管理やマルチユーザ環境におけるＵＩの表示処理が複雑になるのを回避する。【解決手段】プリンタ（１００）とのインタフェース（Ｉ／Ｆ）におけるデータ入出力を制御するＩ／Ｆコントローラが、印刷キューとして蓄積されている印刷データのプリンタ（１００）への転送をいったん停止したうえ、プリンタドライバ（６３）から独立して構成されたステータスモニタ（６４）からの通知内容に応じてＩ／Ｆコントローラ（６２）がドットカウントクリアコマンドを生成しプリンタ（１００）に転送する。【選択図】　図６
2004094350.tif 000002
【特許請求の範囲】
【請求項１】
プリンタと通信可能な情報処理装置であって、
印刷データおよび制御コマンドの前記プリンタへの転送を制御する通信制御手段と、
前記プリンタのステータス情報をユーザに提供しユーザからの指示を入力するユーザインタフェースを制御し、入力された指示に基づく情報をプログラム間通信を介して前記通信制御手段に通知するステータス監視手段と、を有し、
前記通信制御手段は、プログラム間通信を介して前記ステータス監視手段から通知された情報に基づいて、それに対応する制御コマンドの前記プリンタへの転送を制御することを特徴とする情報処理装置。
【請求項２】
プリンタと通信するための情報処理方法であって、
印刷データおよび制御コマンドの前記プリンタへの転送を、通信制御プログラムに制御させる第１のステップと、
前記プリンタのステータス情報をユーザに提供しユーザからの指示を入力するユーザインタフェースを、ステータス監視プログラムに制御させる第２のステップと、
前記ユーザからの指示に基づく情報を、プログラム間通信を介して、前記ステータス監視プログラムから前記通信制御プログラムに通知する第３のステップと、を有し、
前記第１のステップでは、プログラム間通信を介して前記ステータス監視プログラムから通知された情報に基づいて、それに対応する制御コマンドの前記プリンタへの転送を、前記通信制御プログラムに制御させることを特徴とする情報処理方法。
【請求項３】
複数の前記ステータス監視プログラムを複数のユーザのそれぞれごとに起動させ、
前記通信制御プログラムは、起動された複数の前記ステータス監視プログラムのそれぞれから通知された情報に基づいて、それぞれに対応する制御コマンドの前記プリンタへの転送を制御することを特徴とする請求項２に記載の情報処理方法。
【請求項４】
前記通信制御プログラムが、前記ステータス監視プログラムから通知された情報に基づいて、それに対応する制御コマンドを作成することを特徴とする請求項２または３に記載の情報処理方法。
【請求項５】
前記ステータス監視プログラムを第１の情報処理装置で起動させ、前記通信制御プログラムを第２の情報処理装置で起動させることを特徴とする請求項２から４までのいずれかに記載の情報処理方法。
【請求項６】
プリンタと通信可能なコンピュータを制御するためのプログラムであって、
印刷データおよび制御コマンドの前記プリンタへの転送を制御する通信制御プログラムと、
前記プリンタのステータス情報をユーザに提供しユーザからの指示を入力するユーザインタフェースを制御し、入力された指示に基づく情報をプログラム間通信を介して前記通信制御プログラムに通知するステータス監視プログラムと、を含み、
前記通信制御プログラムは、プログラム間通信を介して前記ステータス監視プログラムから通知された情報に基づいて、それに対応する制御コマンドの前記プリンタへの転送を制御することを特徴とするプログラム。
【請求項７】
インク消費量測定用のカウンタを用いてインク残量を検知する検知手段を備えたプリンタに接続され、そのプリンタに印刷データおよび制御コマンドを転送する情報処理装置であって、
印刷キューとして蓄積された印刷データを順次、前記プリンタに転送する転送制御手段と、
前記プリンタから受け取ったステータス情報がインクカートリッジが交換された可能性を示す場合に、実際にインクカートリッジが交換されたかどうかの確認をユーザに促すためのユーザインタフェースを提供する手段と、
を備え、
前記転送制御手段は、前記印刷キューからのプリンタへの転送を停止し、その停止中に、前記ユーザインタフェースにおける確認結果に基づいて前記カウンタをリセットするための制御コマンドを前記プリンタに転送することを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタに印刷データ等を転送する情報処理装置および方法に関する。
【０００２】
【従来の技術】
インクジェットプリンタにおけるインク残量検知機能は、インクが無いまま記録動作を行ってしまうことに起因するインク吐出不良を未然に防止するという効果がある。この機能によれば、インクタンク内のインク残量を検知して、その残量を表示するか、或は、その残量が少なくなった場合に、装置利用者に警告を発したり記録動作を停止することができる。
【０００３】
インクタンク内のインク残量を検知する一方法として、例えば、インク滴の吐出回数をカウントし、そのカウント値にあらかじめ見積もった１吐出当りのインク量を掛け合わせることにより、インク消費量を推定するものがある。この方式は、「ドットカウント方式」と呼ばれている。
【０００４】
このドットカウント方式によれば、インクタンクを交換した際にそれまでのカウント値をリセットすべく、ホストコンピュータは、ユーザからの指示に応じてドットカウントリセットコマンドをプリンタに送る必要がある。
【０００５】
【発明が解決しようとする課題】
しかしながら、通常、ホストコンピュータがプリンタにコマンドやデータを送信する場合には、コマンドやデータはいったん印刷キューに蓄積されることになる。したがって、印刷キューに既に印刷ジョブが蓄積されている場合には、ドットカウントクリアコマンドもその印刷ジョブの後にキューイングされてしまう。このため、新たなインクタンクの使用開始時に合わせてリセットすべきドットカウントが狂ってしまい正確なインク残量の検知ができなくなるという問題がある。この問題はキューイングされている印刷ジョブのサイズが大きいほど顕著なものとなる。
【０００６】
ホストコンピュータに設けられているプリンタの状態を監視するためのステータスモニタがプリンタドライバから独立して、ここから直接プリンタポートにドットカウントクリアコマンドを送るように構成すればドットカウントクリアコマンドがキューイングされるのを回避することが可能である。しかし、そうするとステータスモニタがポートの管理をする必要があり、双方向インタフェースを経由するデータの入出力を制御するインタフェース制御部と、ステータスモニタとの両方が、直接プリンタポートにアクセスすることになるため、両者がプリンタポートにアクセスするのを調整する必要があり、プリンタポートの管理が複雑になってしまうという問題がある。また、複数ユーザがコンピュータにログインして、それぞれのユーザが所望するプログラムを起動することができるマルチユーザ環境においては、ステータスモニタが複数起動される可能性がある。この場合にも、複数のステータスモニタがプリンタポートにアクセスするのを調整することは、プリンタポートの管理を複雑にする。
【０００７】
また、この構成でクライアントコンピュータ（クライアント）からサーバコンピュータ（サーバ）を介してネットワーク印刷を行うことを考えると、クライアント側のステータスモニタが、サーバとプリンタとの間のプリンタポートに直接アクセスするのは非常に困難であるという問題もある。
【０００８】
また、インタフェース制御部自身が、インクタンク交換に関するユーザからの指示を仰ぐためのユーザインタフェース（ＵＩ）を表示させるとともに、ドットカウントクリアコマンドをプリンタに送るように構成することも考えられる。しかし、この場合、マルチユーザ環境を考えると、ユーザインタフェース制御部自身がどのユーザの環境にＵＩを表示させるかを判定する必要があり、インタフェース制御部が行わなければならない処理が複雑になるという問題が生じる。さらに、ネットワーク印刷の場合、インタフェース制御部はサーバにしか存在しないため、そもそもクライアントにはＵＩを表示させることができないという問題もある。
【０００９】
そこで、本発明は、簡単な構成で、プリンタの状態を監視する処理と、プリンタとのデータの入出力を制御する処理とを分散させて、プリンタポートの管理やマルチユーザ環境におけるＵＩの表示処理が複雑になるのを回避し、例えば、さまざまな印刷環境においてもドットカウントクリアコマンドを迅速に送信できるようにすることを目的とする。
【００１０】
【課題を解決するための手段】
上記した課題を解決するために、例えば本発明の情報処理装置は、次の構成を備える。すなわち、プリンタと通信可能な情報処理装置であって、印刷データおよび制御コマンドの前記プリンタへの転送を制御する通信制御手段と、前記プリンタのステータス情報をユーザに提供しユーザからの指示を入力するユーザインタフェースを制御し、入力された指示に基づく情報をプログラム間通信を介して前記通信制御手段に通知するステータス監視手段と、を有し、前記通信制御手段は、プログラム間通信を介して前記ステータス監視手段から通知された情報に基づいて、それに対応する制御コマンドの前記プリンタへの転送を制御することを特徴とする。
【００１１】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
【００１２】
（実施形態１）
図１は、本実施形態に係る印刷システムの構成を示す図である。５０が情報処理装置としてのホストコンピュータ、１００が印刷装置としてのプリンタであり、両者は通信可能に接続されている。ホストコンピュータ５０において印刷データが生成され、生成された印刷データがプリンタ１００に転送されて印刷が行われる。
【００１３】
図２は、ホストコンピュータ５０のハードウェア構成例を示す図である。
【００１４】
ホストコンピュータ５０は、図示するように、ホストコンピュータ全体の制御をつかさどるＣＰＵ５１、ブートプログラム等を記憶しているＲＯＭ５２、メインメモリとして機能するＲＡＭ５３をはじめ、以下の構成を備える。
【００１５】
ＨＤＤ５４は各種プログラムやデータを記憶するハードディスク装置、ＶＲＡＭ５５は表示しようとするイメージデータを展開するメモリであり、ここにイメージデータ等を展開することでＣＲＴ５６に表示させることができる。５７および５８はそれぞれ、各種設定を行うためのキーボードおよびマウスである。５９はプリンタ１００と接続するための双方向のインタフェース（Ｉ／Ｆ）である。
【００１６】
図３は、プリンタ１００の構成の概要を示す外観斜視図である。実施形態におけるプリンタ１００は、いわゆるインクジェットプリンタである。図３において、キャリッジモータ１３の正逆回転に連動して駆動力伝達ギア９〜１１を介して回転するリードスクリュー５の螺旋溝４に対して係合するキャリッジＨＣはピン（不図示）を有し、ガイドレール３に支持されて矢印ａ，ｂ方向を往復移動する。キャリッジＨＣには、記録ヘッドＩＪＨとインクタンクＴとが内蔵されたインクジェットカートリッジＩＪＣが搭載されている。ここで、インクタンクＴは、ブラックインクを収容したモノクロタンクＴ１と、イエロー、マゼンタ、シアンの各インクを収容したカラータンクＴ２とで構成され、別々に交換が可能である。もちろん本発明はこれに限定されるものではなく、インクジェットカートリッジＩＪＣが記録ヘッドＩＪＨとインクタンクＴとを一体的に内蔵するものであり、インクジェットカートリッジＩＪＣごと交換するものであってもよい。ただし、以下の説明では、モノクロタンクＴ１とカラータンクＴ２をそれぞれ別々に交換可能に構成されたものとする。
【００１７】
２は紙押え板であり、キャリッジＨＣの移動方向にわたって記録用紙Ｐをプラテン２５に対して押圧する。７，８はフォトカプラで、キャリッジＨＣのレバー６のこの域での存在を確認して、キャリッジモータ１３の回転方向切り換え等を行うためのホームポジション検知器である。
【００１８】
１６は記録ヘッドＩＪＨの前面をキャップするキャップ部材２２を支持する部材、１５はこのキャップ内を吸引する吸引器で、キャップ内開口２３を介して記録ヘッドの吸引回復を行う。１７はクリーニングブレードで、１９はこのブレードを前後方向に移動可能にする部材であり、本体支持板１８にこれらが支持されている。ブレードは、この形態でなく周知のクリーニングブレードが本例に適用できることは言うまでもない。
【００１９】
また、２１は、吸引回復の吸引を開始するためのレバーで、キャリッジと係合するカム２０の移動に伴って移動し、駆動モータからの駆動力がクラッチ切り換え等の公知の伝達機構で移動制御される。
【００２０】
これらのキャッピング、クリーニング、吸引回復は、キャリッジがホームポジション側の領域に来たときにリードスクリュー５の作用によってそれらの対応位置で所望の処理が行えるように構成されている。
【００２１】
次に、プリンタ１００の記録制御を実行するための制御構成について説明する。
【００２２】
図４はプリンタ１００の制御回路の構成を示すブロック図である。制御回路を示す同図において、４０はホストコンピュータ５０との通信を行うためのインタフェース（Ｉ／Ｆ）、４１はプリンタ１００全体の動作をつかさどるＭＰＵ、４２はＭＰＵ４１が実行する制御プログラムを格納するＲＯＭ、４３は各種データを保存しておくＲＡＭである。４４は記録ヘッドＩＪＨに対する記録データの供給制御を行うゲートアレイ（Ｇ．Ａ．）であり、Ｉ／Ｆ４０、ＭＰＵ４１、ＲＡＭ４３間のデータ転送制御も行う。
【００２３】
４５は記録紙搬送のためのフィードモータである。４６は記録ヘッドＩＪＨを駆動するヘッドドライバ、４７，４８はそれぞれキャリッジモータ１３、フィードモータ４５を駆動するためのモータドライバである。
【００２４】
上記構成において、Ｉ／Ｆ４０に印刷データが入力されると、ゲートアレイ４４とＭＰＵ４１との間でその印刷データが所定形式の記録データに変換される。そして、モータドライバ４７、４８が駆動されるとともに、ヘッドドライバ４６に送られた記録データに従って記録ヘッドＩＪＨが駆動され、記録が行われる。
【００２５】
また、上記動作において、ＭＰＵ４１はまた、例えばインク消費量測定用のカウンタを用いてインク残量を検知するドットカウント方式により、モノクロタンクＴ１、カラータンクＴ２それぞれのインク残量を検知する。すなわち、モノクロタンクＴ１、カラータンクＴ２それぞれに対して、インク滴の吐出回数をカウントし、そのカウント値にあらかじめ見積もった１吐出当りのインク量を掛け合わせることにより、インク消費量を推定し、プリンタステータスとしてのインク残量を検知する。
【００２６】
実施形態におけるプリンタ１００の構成は概ね上記のとおりであるが、本発明はインクジェットプリンタに限定するものではなく、例えばレーザビームプリンタでトナーカートリッジを交換可能なものであってもよい。
【００２７】
ホストコンピュータ５０のＨＤＤ５４にインストールされている主なプログラムの例は、図５に示すとおりである。
【００２８】
６１はＯＳ、６２はＩ／Ｆ５９のデータ入出力を制御するためのプログラムであるＩ／Ｆコントローラ（通信制御手段として機能する）、６３はプリンタ１００に対する制御プログラムであるプリンタドライバである。また、６４はインクタンクＴの交換に関する問い合わせをユーザに提供するユーザインタフェース（ＵＩ）およびユーザからの指示に基づく情報を管理するためのプログラムであるステータスモニタで、ＵＩの表示処理を制御するＵＩコントローラモジュール６５を含む。６６は受け取った印刷要求に従い印刷ジョブを例えばこのＨＤＤ５４に蓄積して印刷キューを生成するためのプログラムであるプリント・スプーラ、６７は画像データ等を作成するためのアプリケーションプログラムである。これらのプログラムは、ホストコンピュータの電源投入時または他のプログラムからの起動指示があった時にＲＡＭ５３にロードされＣＰＵ５１によって実行される。
【００２９】
図６は、ホストコンピュータ５０にインストールされているプログラムによる機能構成を示す図である。
【００３０】
同図において、プリンタドライバ６３は、ＯＳ６１やアプリケーション６７から受け取った画像データ等をプリンタ１００で解釈可能な印刷データに変換し、プリント・スプーラ６６に渡す役目を担う。プリント・スプーラ６６は、上記のとおり例えばＨＤＤ５４に印刷キューとして受け取った印刷データを蓄積していく。なお、このプリント・スプーラ６６はＯＳ６１に含まれる構成であってもよい。一般にはこのようなプリント・スプーラ６６の機能はＯＳに含まれる場合が多い。Ｉ／Ｆコントローラ６２は印刷キューとして蓄積された印刷データを順次、プリンタ１００に転送することになる。
【００３１】
また、ステータスモニタ６４は、図示のように、プリンタドライバ６３を介さずに、Ｉ／Ｆコントローラ６２とのプログラム間通信によってプリンタ１００のステータス情報を得ることができる。ＵＩコントローラ６５は、取得したステータス情報に応じてＵＩを提供し、ユーザからの指示を入力する。
【００３２】
次に、ホストコンピュータ５０におけるマルチユーザ環境について説明する。図７は、図６に示した環境に対するマルチユーザ環境を表した概念図である。図６に示したホストコンピュータ５０の機能は、ユーザ毎に作られるセッション（Ｓｅｓｓｉｏｎ）と全ユーザ共通の共通部５０１とで構成される。例えば２ユーザの場合、Ｓｅｓｓｉｏｎ１とＳｅｓｓｉｏｎ２がそれぞれのユーザ用に作成される。Ｓｅｓｓｉｏｎ１は、そのＳｅｓｓｉｏｎ専用のプリンタドライバ６３ａ、ステータスモニタ６４ａ、およびＵＩコントローラ６５ａから構成される。また、Ｓｅｓｓｉｏｎ２は、そのＳｅｓｓｉｏｎ専用のプリンタドライバ６３ｂ、ステータスモニタ６４ｂ、およびＵＩコントローラ６５ｂから構成される。
【００３３】
共通部５０１は、プリンタドライバ６３、プリント・スプーラ６６、Ｉ／Ｆコントローラ６２から構成される。ホストコンピュータ５０を使用しているユーザはＳｅｓｓｉｏｎ１とＳｅｓｓｉｏｎ２をいつでも自由に切り替えることができる。
【００３４】
プリンタドライバ６３ａはユーザが印刷をするために起動したＳｅｓｓｉｏｎ１上のアプリケーションなどからロードされ、プリンタドライバ６３ｂはユーザが印刷をするために起動したＳｅｓｓｉｏｎ２上のアプリケーションなどからロードされる。また、ステータスモニタ６４ａは印刷開始時にプリンタドライバ６３ａによって起動され、ステータスモニタ６４ｂは印刷開始時にプリンタドライバ６３ｂによって起動される。
【００３５】
どのＳｅｓｓｉｏｎから印刷を開始されても、ステータスモニタは必ず印刷を開始したＳｅｓｓｉｏｎ上に起動される。そして、Ｉ／Ｆコントローラ６２は、ステータスモニタ６４ａ、ステータスモニタ６４ｂとそれぞれ７０で示されるプログラム間通信を介して通信可能である。
【００３６】
プリンタ１００は、インクカートリッジとしてのインクタンクＴ（モノクロタンクＴ１またはカラータンクＴ２のいずれか）が交換されたとき、もしくは交換したと思われる状況が発生したときに、インクタンクが交換された可能性を示すインクタンク交換ステータスを作成しＩ／Ｆ４０を介してホストコンピュータ５０に送出する。
【００３７】
また、プリンタ１００は、上述したとおり、ドットカウント方式によるインク残量検知を行っている。プリンタ１００は、制御コマンドであるインクタンク交換ステータスクリアコマンドを受信するとインクタンク交換ステータスを解除し、ドットカウントクリアコマンドを受信すると対応するインクタンクのカウンタをリセットする。
【００３８】
図８は、本実施形態におけるＩ／Ｆコントローラ６２によるホストコンピュータ５０の動作を示すフローチャートである。なお、このフローチャートに示すＩ／Ｆコントローラ６２の機能を実行するのは、上記したとおりＣＰＵ５１である。
【００３９】
まず、ステップＳ１で、印刷キューからの印刷データのプリンタ１００への転送をコマンドブロックの区切りなど適切なタイミングでいったん停止する。
【００４０】
次に、ステップＳ２で、プリンタ１００からステータスを取得し、ステップＳ３で、取得したステータスがインク交換ステータスかどうかを判定する。取得したステータスがインク交換ステータスでなければ、ステップＳ４に進み、プリンタ１００への印刷データ転送を再開し、通常の処理を継続する。一方、取得したステータスがインク交換ステータスであった場合には、ステップＳ５に進み、プログラム間通信７０を介して対応するステータスモニタ（６４ａ／６４ｂ）にインク交換ステータスを通知する。そして、ステップＳ６で、ステータスモニタ（６４ａ／６４ｂ）からのレスポンスを待ち、レスポンスがありしだい、後述する図１０のステップＳ７に進む。
【００４１】
ステップＳ７以降の処理内容を説明する前に、ステータスモニタによるホストコンピュータ５０の動作を図９のフローチャートを用いて説明する。この動作は、上記したステップＳ４でのインク交換ステータスの通知がなされたステータスモニタの動作に係わる。
【００４２】
まず、ステップＳ４０１で、ステータスモニタ（６４ａ／６４ｂ）がＩ／Ｆコントローラ６２からステータスの通知を受信する。次に、ステップＳ４０２で、受け取った通知がインクタンク交換ステータスであるか否かを判断する。ここで、その通知がインクタンク交換ステータスでなければ、この処理を終え次のステータス通知の受信を待機することになる。一方、受け取った通知がインクタンク交換ステータスであったときは、ステップＳ４０３に進み、対応するＵＩコントローラ（６５ａ／６５ｂ）に、実際にインクカートリッジが交換されたかどうかの確認をユーザに促すためのＵＩを（ＣＲＴ５６に）表示させ、ステータスモニタ（６４ａ／６４ｂ）は、ステップＳ４０４でユーザからのレスポンスを待つ。
【００４３】
図１１はステップＳ４０３で表示されるＵＩの一例を示す図である。同図に示されるように、インクタンクの交換を行った場合にはモノクロタンクＴ１を交換したのかカラータンクＴ２を交換したのかをユーザに確認させる。ユーザは、例えばマウス５８を用いて、タンクを交換していない場合はキャンセル（Ｃａｎｃｅｌ）ボタンをクリックしてＵＩを閉じる。タンクを交換した場合にはチェックボックス１１１または１１２をチェックすることでどちらのタンクを交換したのかを確認し、その後ＯＫボタンを押す。
【００４４】
上述したとおり、実際にインクカートリッジが交換されたかどうかの確認をユーザに促すためのユーザインタフェース（ＵＩ）は、インタフェース制御部であるＩ／Ｆコントローラが直接表示させる構成をとることも考えられるが、本実施形態によれば、印刷開始時に各ユーザのセッション上で起動されたステータスモニタ（６４ａ／６４ｂ）が対応するＵＩコントローラ（６５ａ／６５ｂ）を介してＵＩの表示を管理するようにしたので、Ｉ／Ｆコントローラ６２は、どのユーザに対してＵＩを表示するかを直接判断する必要がない点で、構成を簡単なものにすることができる。
【００４５】
説明を図９に戻す。
【００４６】
ステップＳ４０４で、ＵＩにおける確認結果としてのユーザからの指示情報（レスポンス）があると、ステップＳ４０５に進み、ステータスモニタ（６４ａ／６４ｂ）は、以下のステップでそのレスポンスの種類に応じた処理を行う。
【００４７】
ステップＳ４０５では、ユーザからのレスポンスがキャンセルボタンが押されたことでユーザがタンクを交換していないことを示すものであったか否かを判断する。ｙｅｓの場合には、ステップＳ４０６に進み、「タンク交換をしていない」通知を作成し、ステップＳ４１１でＩ／Ｆコントローラ６２に返送する。
【００４８】
ステップＳ４０７では、ユーザからのレスポンスがカラータンクＴ２を交換したことを示すものであったかどうかを判断する。ｙｅｓであればステップＳ４０８に進み、「カラータンク交換」通知を作成し、ステップＳ４１１でＩ／Ｆコントローラ６２に返送する。
【００４９】
ステップＳ４０９では、ユーザからのレスポンスがモノクロタンクＴ１を交換したことを示すものであったかどうかを判断する。ｙｅｓであればステップＳ４１０に進み、「モノクロタンク交換」通知を作成し、ステップＳ４１１でＩ／Ｆコントローラ６２に返送する。
【００５０】
ステップＳ４１１での返送処理が図８のステップＳ５に相当することは理解されよう。
【００５１】
続いて、図１０のフローチャートを用いてステップＳ７以降のＩ／Ｆコントローラ６２によるホストコンピュータ５０の動作を説明する。
【００５２】
ステップＳ７では、インクタンク交換ステータスクリアコマンドを作成する。
【００５３】
次に、ステップＳ８で、ステップＳ６で受け取ったステータスモニタ（６４ａ／６４ｂ）からの通知が、「タンク交換をしていない」通知であるか否かを判断する。ｙｅｓの場合にはそのままステップＳ１３に進み、ｎｏの場合にはステップＳ９に進む。
【００５４】
ステップＳ９では、ステップＳ６で受け取ったステータスモニタ（６４ａ／６４ｂ）からの通知が、「カラータンク交換」通知であるか否かを判断する。ｙｅｓの場合にはステップＳ１０に進み、カラータンクＴ２のカウンタをクリアするためのドットカウントクリアコマンドを作成してステップＳ１３に進む。ｎｏの場合にはステップＳ１１に進む。
【００５５】
ステップＳ１１では、ステップＳ６で受け取ったステータスモニタ（６４ａ／６４ｂ）からの通知が、「モノクロタンク交換」通知であるか否かを判断する。ｙｅｓの場合にはステップＳ１２に進み、モノクロタンクＴ１のカウンタをクリアするためのドットカウントクリアコマンドを作成してステップＳ１３に進む。
【００５６】
ステップＳ１３では、ステップＳ７で作成したインクタンク交換ステータスクリアコマンド、および／または、ステップＳ１０もしくはステップＳ１２で作成したコマンドをプリンタ１００に送信し、その後、ステップＳ１４で、ステップＳ１で停止させていた印刷データのプリンタ１００への転送を再開する。このように、通信制御手段としてのＩ／Ｆコントローラ６２は、プログラム間通信を介してステータスモニタから通知された情報に基づいて、それに対応する制御コマンドのプリンタ１００への転送を制御する。
【００５７】
以上説明した実施形態によれば、プリンタとのインタフェースにおけるデータ入出力を制御するＩ／Ｆコントローラが、印刷キューとして蓄積されている印刷データのプリンタへの転送をいったん停止したうえ、プリンタドライバから独立して構成されたステータスモニタからの通知内容に応じてＩ／Ｆコントローラ自身がドットカウントクリアコマンドを生成し、直接プリンタに転送するようにした。これにより、ドットカウントのリセットタイミングが狂ってしまうことがなくなり、正確なインク残量検知を実現することができる。またＩ／Ｆコントローラのみがプリンタ１００にアクセスするので、特別なプリンタポートの管理も不要である。
【００５８】
（実施形態２）
図１２は、実施形態２における印刷システムの構成を示す図である。図示のとおり、プリンタ１００はプリントサーバとしてのサーバＰＣ６００と接続され、このサーバＰＣ（パーソナル・コンピュータ）６００に対するクライアントＰＣ５００がネットワーク７００を介して接続されている。かかる構成でもってネットワーク印刷環境が実現される。
【００５９】
クライアントＰＣ５００は、実施形態１と同様のプリンタドライバ５０１、ステータスモニタ５０２、ＵＩコントローラ５０３を備えている。一方、実施形態１におけるプリント・スプーラ６６に相当するプリント・スプーラ６０１（印刷キューを生成する）と、実施形態１におけるＩ／Ｆコントローラ６２に相当するＩ／Ｆコントローラ６０２は、サーバＰＣ６００に備えられている。
【００６０】
クライアントＰＣ５００において、ステータスモニタ５０２は、印刷が開始されるとプリンタドライバ５０１によって起動される。ただし、このステータスモニタ５０２は、プリンタドライバ５０１を介さずにネットワーク７００を経由してサーバＰＣ６００におけるＩ／Ｆコントローラ６０２とプログラム間通信でプリンタ１００のステータスを取得することができる。
【００６１】
このような構成により、実施形態１と同様に、サーバＰＣ６００におけるＩ／Ｆコントローラ６０２が、プリント・スプーラ６０２によって生成された印刷キューに入っている印刷データのプリンタへの転送をいったん中止し、クライアントＰＣ５００におけるステータスモニタ５０２からの通知内容に応じてＩ／Ｆコントローラ６０２自身がドットカウントクリアコマンドを生成し、直接プリンタ１００に転送することができる。これによって、ドットカウントのリセットタイミングが狂ってしまうことがなくなり、正確なインク残量検知を実現することができる。
【００６２】
また、このような構成によれば、サーバＰＣ６００におけるＩ／Ｆコントローラ６０２自身がＵＩ表示制御を行う必要がなく、このようなネットワーク印刷環境においてもクライアントＰＣ上にそれぞれのＵＩを表示することが可能である。
【００６３】
（他の実施形態）
以上、本発明の実施形態を詳述したが、本発明は、上述のとおり複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタ等）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
【００６４】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（図８〜１０に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムを読み出して実行することによっても達成される場合を含む。
【００６５】
したがって、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００６６】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００６７】
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ等）、光磁気ディスク、磁気テープ、メモリカード等がある。
【００６８】
その他、プログラムの供給方法としては、インターネットを介して本発明のプログラムをファイル転送によって取得する態様も含まれる。
【００６９】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介して暗号化を解く鍵情報を取得させ、その鍵情報を使用することで暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００７０】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現され得る。
【００７１】
さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００７２】
【発明の効果】
本発明によれば、簡単な構成で、プリンタの状態を監視する処理と、プリンタとのデータの入出力を制御する処理とを分散させて、プリンタポートの管理やマルチユーザ環境におけるＵＩの表示処理が複雑になるのを回避することができる。例えば、さまざまな印刷環境においてもドットカウントクリアコマンドを迅速に送信できる。
【図面の簡単な説明】
【図１】実施形態に係る印刷システムの構成を示す図である。
【図２】実施形態におけるホストコンピュータのハードウェア構成例を示す図である。
【図３】実施形態におけるプリンタの構成の概要を示す外観斜視図である。
【図４】実施形態におけるプリンタの制御回路の構成を示すブロック図である。
【図５】実施形態におけるＨＤＤにインストールされているプログラムの例を示す図である。
【図６】実施形態におけるホストコンピュータの機能構成を示す図である。
【図７】実施形態におけるホストコンピュータのマルチユーザ環境を説明する図である。
【図８】実施形態におけるＩ／Ｆコントローラによるホストコンピュータの動作を示すフローチャートである。
【図９】実施形態におけるステータスモニタによるホストコンピュータの動作を示すフローチャートである。
【図１０】実施形態におけるＩ／Ｆコントローラによるホストコンピュータの動作を示すフローチャートである。
【図１１】実施形態におけるＵＩの表示例を示す図である。
【図１２】ネットワーク印刷環境を実現する実施形態に係る印刷システムの構成を示す図である。
【図１】
2004094350.tif 000003
【図２】
2004094350.tif 000004
【図３】
2004094350.tif 000005
【図４】
2004094350.tif 000006
【図５】
2004094350.tif 000007
【図６】
2004094350.tif 000008
【図７】
2004094350.tif 000009
【図８】
2004094350.tif 000010
【図９】
2004094350.tif 000011
【図１０】
2004094350.tif 000012
【図１１】
2004094350.tif 000013
【図１２】
2004094350.tif 000014