(57)【要約】【課題】  印刷スループットを出来るだけ低下させず、かつリアルタイムで正確なプリンタ情報を、必要に応じたタイミングで取得できる情報取得方法を提供する。【解決手段】  プリンタから情報を取得する際に、取得する情報を指定するための書き込み処理を行う前に、情報を取得するための読み取り処理を試み、読み取り処理に成功した場合はその取得した情報を用いる事を特徴とし、さらに、取得した情報と、情報を取得した時刻とを記録することを特徴とする。【選択図】        図１
2006338359.tif 000002
【特許請求の範囲】
【請求項１】
プリンタから情報を取得する際に、取得する情報を指定するための書き込み処理を行う前に、情報を取得するための読み取り処理を試み、読み取り処理に成功した場合はその取得した情報を用いるが、この場合、取得した情報と、情報を取得した時刻とを記録することを特徴とする情報取得方法。
【請求項２】
前記記録された時刻を元に、所定時間を経過している場合は前記以前に取得した情報の記録を古いと判定し、経過していない場合は新しいと判定することを特徴とする請求項１に記載の情報取得方法。
【請求項３】
情報を取得するための読み取り処理が出来なかった場合に、請求項２に記載の判定の結果、以前に記録した情報が新しければ、その記録された情報を用いる事を特徴とする請求項１又は２に記載の情報取得方法。
【請求項４】
情報を取得するための読み取り処理が出来なかった場合に、請求項２に記載の判定の結果、以前に記録した情報が古ければ、その記録された情報を用いることなく、取得する情報を指定するための書き込み処理を行うことを特徴とする請求項１乃至３の何れかに記載の情報取得方法。
【請求項５】
情報を取得するための読み取り処理に失敗し、さらに以前に取得した情報が古いと判定された場合に、取得する情報を指定するための書き込み処理を行い、取得する情報を指定するための書き込み処理が成功した場合に、情報を取得する為の読み取り処理を試み、読み取り処理に成功した場合はその取得した情報を用いることを特徴とし、さらに、取得した情報と、情報を取得した時刻とを記録することを特徴とする請求項１乃至４の何れかに記載の情報取得方法。
【請求項６】
前記情報はプリンタに着脱可能なカートリッジの情報であることを特徴とする請求項１乃至５の何れかに記載の情報取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理速度を低下させずに正確なプリンタの状態情報を取得するための情報取得方法に関する。
【背景技術】
【０００２】
プリンタドライバおよびプリンタによる印刷処理過程において、プリンタドライバがインクカートリッジやオプション装着品の搭載形態に応じた印字データ生成をしたり、それらの搭載状況をユーザインタフェース上に最新情報として随時表示したりする場合、プリンタから、搭載されているカートリッジやオプション装着品に関する情報を取得する必要がある。例えば特許文献１にこの取得技術が開示されている。
【０００３】
このとき、カートリッジやオプション装着品は一般的にユーザによる着脱が容易であり、印刷前に用途に応じてユーザが装着状態を変更する可能性があるため、この情報は、必要となった時点でその都度プリンタから取得するのが望ましい。しかし、情報取得前にプリンタにステータス返却を指示する必要がある場合などは、処理にまとまった時間を要する可能性があり、印刷スループットを低下させる原因となってしまう。
【０００４】
これを解決するため、時間を要する処理を避け、以前の印刷時にプリンタドライバがプリンタと双方向通信して取得した情報を、システムのレジストリや自身のバッファ内など任意の記憶領域に記録しておき、情報を必要とするモジュールがそれを参照する方法がある。
【特許文献１】特開平１０−２３５９７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述のとおり、情報が必要となるタイミングでリアルタイムにプリンタから情報を取得する場合、印刷スループットを低下させる可能性がある。例えば、プリンタに対するステータス返却指示、つまりプリンタに対するステータス返却指示コマンドの書き込みによりステータス返却を指示する制御が一般的に用いられるが、このときコマンドの書き込み完了までに待ち時間が発生する可能性がある。プリンタなどのデバイスは、一般的に起動処理中や回復動作中など、ビジー状態に相当する期間は一貫して排他制御をしており、外部からの書き込みを受け付けない事が多い。このようなケースでステータス返却指示コマンドの書き込みを行った場合、デバイスのビジー状態が終了するまで待つことになり、さらには、オペレーティングシステムなどによる一定のタイムアウト時間が経過した場合は書き込みエラーとなり、エラーの解除操作が必要となることもある。
【０００６】
また、上記のようにステータス返却指示による待ち時間やエラーの発生を避ける為の方法として、プリンタドライバが前回の印刷等でプリンタと双方向通信して取得した情報を、適当な記憶領域に保持しておいて利用する方法がある。例えば、マイクロソフト社のウインドウズ（登録商標）では、プリントデータをいったんスプールしてから出力するスプールサブシステムにおいて、ランゲージモニタと呼ばれるプロセスが実行され、これにより、ＩＥＥＥ１２８４やＵＳＢ１．１／２．０などに準拠した双方向通信によってコンピュータに接続されたプリンタとの間で通信を行い、プリンタデバイスに装着されたパーツの情報や、各印刷ジョブの排紙完了、プリンタ内で発生したエラー情報などを知ることが可能である。この、ランゲージモニタを介してプリンタから返却された情報をその都度、オペレーティングシステムのレジストリと呼ばれる記憶領域や、自身が確保したメモリバッファ内等、記憶装置の任意の場所に記録しておき、情報が必要となったタイミングで、情報を必要とするモジュールがそこから読み出す方法である。
【０００７】
しかしこのとき利用する情報は、過去最後にプリンタと通信した際に取得した情報であるため、その後ユーザによるインクカートリッジやオプション装着品の装着状態の変更が行われていた場合には不正な情報となってしまう。
【０００８】
このような課題を鑑み、本発明では、印刷スループットを出来るだけ低下させず、かつ極力リアルタイムの正確な情報を、必要に応じたタイミングで取得することの出来る情報取得方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明によるプリンタドライバは、プリンタから取得した情報を、オペレーティングシステムのレジストリ等の所定の場所に、情報の取得時刻と合わせて記録するように構成する。さらに、プリンタなどのデバイスは、一般的に起動処理中や回復動作中など、ビジー状態に相当する期間は一貫して排他制御をしており、外部からの書き込みを受け付けない事が多いが、その間も読み出しに対しては即応が可能な場合が多く、プリンタからの情報取得を行う際に必要となる書き込み処理と読み出し処理を完全な対にせず、処理に要する時間を考慮して片方だけ行うようにし、さらに、前記以前に記録しておいた情報を適切に利用することにより、印刷スループットを出来るだけ低下させず、かつリアルタイムの正確な情報を、必要に応じたタイミングで取得できるようにする。
【００１０】
すなわち本発明は、プリンタから情報を取得する際に、取得する情報を指定するための書き込み処理を行う前に、情報を取得するための読み取り処理を試み、読み取り処理に成功した場合はその取得した情報を用いる事を特徴とし、さらに、取得した情報と、情報を取得した時刻とを記録することを特徴とする情報取得方法である。
【発明の効果】
【００１１】
本発明によれば、搭載されたパーツの状態が変化するプリンタにおいて、ユーザによるパーツ状態の入力を要せずリアルタイムのパーツ状態に応じた印刷データ生成を自動的に行う機能の提供において、印刷スループットの向上が期待される。また、結果的にユーザによる復旧作業が必要となるエラーの発生確率を下げるため、操作の簡易性の点でも、より快適な印刷環境を提供する事が可能となる。また、ユーザに単純にパーツ状態を表示する機能においても、本発明による処理方法を用いることで、パーツ状態表示の応答性向上が期待される。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を、具体例を用いて説明する。
【００１３】
［第１実施形態］
まず、図１は本発明の実施形態における印刷システムのハードウェア構成を示すブロック図である。本図において、１０１は、ＣＲＴ表示装置であり、プリンタドライバが提供する印刷設定ダイアログやプリンタステータス情報等を表示する。１０２はＣＲＴＣで表示装置用のコントローラである。１０３は、キーボードなどのデータ入力装置であり、１０４は、キーボードコントローラである。１０５は、ポインティングデバイス等の座標入力装置であり、１０６は、ポインティングデバイスコントローラである。１０７は、装置全体の制御を司るＣＰＵである。１０８は、ブートプログラムなどを記憶しているＲＯＭである。１０９は、ＯＳ、各アプリケーションプログラムやプリンタドライバプログラムを格納したり、さらにはワークエリアとしても利用されるＲＡＭである。１１０は、ＯＳ、各アプリケーションプログラムとプリンタドライバプログラム、フォントデータを記憶しており、さらにはスプールファイル等を一時的に記憶するハードディスク装置であり、１１１はハードディスクコントローラである。１１２は、可搬性記憶媒体の駆動装置であるフロッピー（登録商標）ディスク装置であり、１１３はフロッピー（登録商標）ディスクコントローラである。１１４は、インターフェースであり、インターフェースケーブルを介してインクジェットプリンタなどのプリンタ１１５に接続される。１１６は、各デバイスを接続するバスである。本装置に電源が投入されると、ＣＰＵ１０７はＲＯＭ１０８に格納されているブートプログラムに従って起動し、ハードディスク装置１１０からＯＳをロードし、ユーザの操作待ち状態になる。そして、ユーザからＫＢ１０３またはＰＤ１０５からアプリケーションを介して印刷指示やプリンタドライバの印刷設定変更指示を受けた場合、もしくは自動的に起動するように設定されている場合は、ハードディスク装置１１０に格納されているプリンタドライバプログラムがＲＡＭ１０９にロードされ実行される。
【００１４】
次に、図２は本発明の実施形態における印刷システムのソフトウェア（主にプリンタドライバ）の構成を示すブロック図である。本図において、アプリケーション２０１は文書を作成し、その文書を印刷するためにユーザインタフェースドライバ２０３にプリンタシステムの機能を問い合わせた後、オペレーティングシステムのＧＤＩ２０２を含む印刷システムに印刷開始を通知する。ここでＧＤＩ２０２は、アプリケーション２０１から印刷開始の通知を受けると、ユーザインタフェースドライバ２０３にアプリケーション２０１による印刷開始の印刷イベントを通知する。続いてアプリケーション２０１は印刷対象の文書の印刷データをＧＤＩ２０２に供給し印刷処理を続行する。ＧＤＩ２０２を経由した印刷データはスプールファイル２０４に格納される。プリントプロセッサ２０５は、スプールファイル２０４から印刷データを読み出し、その印刷データはグラフィクスドライバ２０６を介した後、ランゲージモニタ２０７に送られる。ランゲージモニタ２０７は、プリンタ２０８と双方向通信を行いながら、印刷データをプリンタ２０８へと送信する。このとき、ランゲージモニタ２０７は、プリンタ２０８から取得した情報を、図１のハードディスク装置１１０の任意の場所に、取得時刻と合わせて記録するようにする。
【００１５】
一方、搭載するインクカートリッジを変更可能なプリンタ、例えば一般的なカラー文書を印刷するためにはカラーインクカートリッジを装着するが、写真などグラデーション部をより美しく印刷するためにフォトインクカートリッジに装着し替えるような形態を持つプリンタにおいて、ユーザの手により、ディスプレイ上のユーザインタフェースから搭載カートリッジを指定させることなく、プリンタドライバが自動的にプリンタに搭載されたカートリッジの種別を識別し、各々に応じた最適な印刷データを生成する事が望ましい。そのため、印刷開始時にユーザインタフェースドライバあるいはグラフィクスドライバがランゲージモニタを介して搭載カートリッジの情報を取得するが、本発明の実施形態では、ここで図３に示す処理フローを行う。なお、以下の説明ではユーザインタフェースドライバがランゲージモニタを介して搭載カートリッジの情報を取得する方法について述べるが、グラフィクスドライバや、プリンタドライバを構成するその他のモジュールが情報を取得するケースも考えられる。また、取得する情報としては搭載カートリッジの情報に関して述べるが、インク等消耗品の残量に応じたデータ生成など、プリンタが返却可能なあらゆる情報に対して適用可能である。これらの応用方法は自明であるため、ここでは説明を省略する。
【００１６】
まずユーザインタフェースドライバは、ステップＳ１において、ランゲージモニタに対してカートリッジ情報の読み出しを要求する。情報の読み出しに成功し、その情報に所望のカートリッジ情報が含まれていた場合、ランゲージモニタは情報の読み出しが成功した旨およびその情報をユーザインタフェースドライバに対して返却する。（ここでも、ランゲージモニタは、読み出した情報および現在時刻を、オペレーティングシステムが提供するレジストリなどの記憶領域に記録する。）ユーザインタフェースドライバは、ステップＳ９へと進み、取得したカートリッジ情報を印刷データ生成に反映させる。一方、何らかの理由により所望のデータの読み出しに失敗した場合、ステップＳ３において、ランゲージモニタが過去にプリンタと通信した際に読み出した情報の記録を参照する。記録された情報が存在する場合、ステップＳ４において、プリンタからその情報を読み出した時刻と情報を必要としている現在の時刻とを比較し、記録された情報が所定の時間を経過したものであるかどうかを調べる。所定の時間を経過していなければ、情報は新しい信用できるものと見なし、ステップＳ９へと進み、取得したカートリッジ情報を印刷データ生成に反映させる。ここで述べた所定の時間とは、情報が信頼できると見なされる時間であり、数秒でもよいし、あるいはユーザによるカートリッジ交換が不可能と思われる短い時間、例えば１０秒などに設定しておいてもよい。これら所定の時間を経過していた場合は、ユーザによりカートリッジ交換が行われた可能性もあり、情報は信用できないと見なし、再度プリンタからの最新情報を取得する為にステップＳ５へと進む。このとき、ステップＳ２でステータス情報の単純な読み出しに失敗しているため、ステータス情報読み出しのために必要となるステータス返却指示をプリンタに対して行うよう、ランゲージモニタに指示する。ランゲージモニタは、具体的には、カートリッジ情報の返却を指定するコマンドをプリンタに書き込む。
【００１７】
その後、ステップＳ６で、ステータス返却指示コマンドの書き込みに成功した場合、ランゲージモニタはステップＳ７においてステータス情報を読み出し、その結果をユーザインタフェースドライバに返却する。所望の情報の読み出しに成功した場合は、ステップＳ９へと進み、取得したカートリッジ情報を印刷データ生成に反映させる。一方、ステップＳ６において書き込みに失敗した場合は、ステップＳ１０で任意の待ち時間を経て、再び同コマンドの書き込みを行う。この待ち時間の合計がステップＳ１１にて所定のタイムアウト時間を超過した場合は、ステップＳ１２へと進み、処理はエラーとなる。ここで、書き込み失敗時のステップＳ１０、Ｓ１１、Ｓ１２や、書き込みの再試行は、一般的にオペレーティングシステムが制御する。そのため、ステップＳ１１のタイムアウト時間もオペレーティングシステムによる任意の値である。また、ステップＳ８において、書き込みには成功したが、所望の情報の読み出しには失敗したという場合も、ステップＳ１２へと進み、エラーとなる。エラーとなった場合、ユーザインタフェースドライバはカートリッジ情報を取得できないことになるため、ユーザに印刷失敗を提示して印刷を中止してもよいし、改めてユーザに搭載カートリッジを入力させてもよい。あるいは、任意のカートリッジ設定と見なして印刷データを生成し、印刷を続行させてもよい。また、書き込みに失敗した場合と読み出しに失敗した場合とで、その後の操作フローを変えてもよい。
【００１８】
［第１実施形態における本発明の効果］
本実施形態によれば、最初にプリンタの情報を読み出すため、プリンタが所望の情報を即時返却可能な状態にある場合は、最新の情報をリアルタイムに利用する事が可能となる。また、プリンタが所望の情報を即時返却可能な状態にない場合も、以前に情報を取得していればそれを利用し、さらにその情報の鮮度を適切に判断する為、実用的には何ら問題のない、事実上最新の情報を利用する事が可能となる。またこれらの処理には、近年の一般的なコンピュータにおいては処理時間を殆ど要さないため、印刷スループットを低下させる事がない。
【００１９】
一方、これらの処理が失敗した際も、一般的にステータスを取得するための処理を行うだけであるので、結果的に搭載カートリッジに応じたデータ生成を自動的に行う機能を、最悪のケースに置いても一般的な処理速度で実現することが可能である。
【００２０】
［第２実施形態］
ネットワークプリンタやＢｌｕｅｔｏｏｔｈなどによる無線接続が可能なプリンタにおいて、ＰＣを操作するユーザの手元にプリンタが無く、プリンタに搭載されているパーツの情報をすぐには確認出来ない環境など、ユーザがパーツを目視するために必要な操作が煩雑に感じられるケースにおいて、プリンタドライバのユーザインタフェース上に、現在プリンタに搭載されているインクカートリッジやインク残量等、状態が変化し得るパーツに関する情報を表示する機能がある。この時画面上のボタン押下等ユーザからの情報取得指示に応じて、ユーザインタフェースモジュールが、実施形態１と同様の処理フローを用いることにより搭載されているパーツ情報を取得し、ディスプレイ上に表示する事が可能である。
【００２１】
［第２実施形態における本発明の効果］
本実施形態によれば、従来より優れた応答速度で搭載されたパーツの情報表示が可能となり、ユーザが感じるストレスを軽減する事が可能となる。
【００２２】
［第３実施形態］
プリンタによる印刷処理過程において、印刷を開始したものの紙詰まりで印刷が途中でストップしたり、インク切れにより出力結果に何も印字されていなかったりといった状況は多々起こりうる。こういった場合、ユーザが印刷に失敗したプリンタを眺めて印刷失敗の原因を特定するのは困難である。そこでインク切れや紙詰まりといった異常なプリンタの状態をオペレータの手元で、グラフィカルに、かつリアルタイムに提示するツールとして、プリンタとコンピュータの双方向通信を利用したステータスモニタと呼ばれるユーティリティがある。このステータスモニタがプリンタから情報を取得する際も、本発明による情報取得手段を用いることが可能である。
【００２３】
［第３実施形態の効果］
本実施形態によれば、従来より優れた応答速度でプリンタの状態表示をする事が可能となり、またプリンタビジーの間も随時ステータスを表示できる可能性の向上も期待できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態における印刷システムのハードウェア構成を示すブロック図である。
【図２】本発明の実施形態における印刷システムのソフトウェア構成を示すブロック図である。
【図３】本発明の実施形態における情報取得に係る処理のフローチャートである。
【符号の説明】
【００２５】
１０１  ＣＲＴ
１０２  ＣＲＴＣ
１０３  ＫＢ
１０４  ＫＢＣ
１０５  ＰＤ
１０６  ＰＤＣ
１０７  ＣＰＵ
１０８  ＲＯＭ
１０９  ＲＡＭ
１１０  ＨＤＤ
１１１  ＨＤＣ
１１２  ＦＤＤ
１１３  ＦＤＣ
１１４  Ｉ／Ｆ
１１５  ＰＲ
１１６  バス
【図１】
2006338359.tif 000003
【図２】
2006338359.tif 000004
【図３】
2006338359.tif 000005