(57)【特許請求の範囲】
【請求項１】
省電力状態への移行を指示するコマンドに基づいて省電力状態へ移行する外部機器と接続するインターフェイスと、
アプリケーションプログラム及び前記外部機器を制御する制御プログラムのいずれか一方を含むプログラムにより送信されるコマンドに基づき、前記インターフェイスを介して接続される前記外部機器を制御可能なデバイスドライバーと、
前記インターフェイスを介して接続される前記外部機器を省電力状態に移行させる電源管理モジュールと、
前記プログラムにより送信されるコマンドを前記デバイスドライバーへ中継する応答制御部と、を備え、
前記応答制御部は、前記プログラムにより送信されるコマンドが特定のコマンドである場合には、前記特定のコマンドを前記デバイスドライバーに中継し、前記プログラムにより送信されるコマンドが前記特定のコマンド以外であった場合には前記プログラムにより送信されるコマンドを前記デバイスドライバーに中継せず、前記特定のコマンドが送信されない期間が所定時間以上継続した場合に前記電源管理モジュールを制御し、
前記電源管理モジュールは、前記応答制御部の制御に基づいて前記外部機器に前記省電力状態への移行を指示するコマンドを送信することを特徴とする制御装置。
【請求項２】
前記応答制御部は、前記外部機器を省電力状態に移行させた後で前記特定のコマンドを受信した場合には、前記電源管理モジュールの機能により前記外部機器を省電力状態から復帰させて、前記特定のコマンドを中継する請求項１に記載の制御装置。
【請求項３】
前記特定のコマンドは前記外部機器に記録実行を指示する記録ジョブである請求項１または２に記載の制御装置。
【請求項４】
省電力状態への移行を指示するコマンドに基づいて省電力状態へ移行する外部機器と、
前記外部機器と接続するインターフェイス、アプリケーションプログラム及び前記外部機器を制御する制御プログラムのいずれか一方を含むプログラムにより送信されるコマンドに基づき前記インターフェイスを介して接続される前記外部機器を制御可能なデバイスドライバー、前記インターフェイスを介して接続される前記外部機器を省電力状態に移行させる電源管理モジュール、及び前記プログラムにより送信されるコマンドを前記デバイスドライバーへ中継する応答制御部を有する制御装置と、を備え、
前記応答制御部は、前記プログラムにより送信されるコマンドが特定のコマンドである場合には、前記特定のコマンドを前記デバイスドライバーに中継し、前記プログラムにより送信されるコマンドが前記特定のコマンド以外であった場合には前記プログラムにより送信されるコマンドを前記デバイスドライバーに中継せず、前記特定のコマンドが送信されない期間が所定時間以上継続した場合に前記電源管理モジュールを制御し、
前記電源管理モジュールは、前記応答制御部の制御に基づいて前記外部機器に前記省電力状態への移行を指示するコマンドを送信することを特徴とする制御システム。
【請求項５】
アプリケーションプログラム及び省電力状態への移行を指示するコマンドに基づいて省電力状態へ移行する外部機器を制御する制御プログラムのいずれか一方を含むプログラムによりコマンドが送信され、
前記プログラムにより送信されたコマンドが特定のコマンドである場合には、応答制御部を中継して前記特定のコマンドは前記外部機器を制御可能なデバイスドライバーに送信され、
前記プログラムにより送信されたコマンドが前記特定のコマンド以外であった場合には、前記応答制御部は前記プログラムにより送信されたコマンドを前記デバイスドライバーに中継せず、前記特定のコマンドが送信されない期間が所定時間以上継続した場合に電源管理モジュールを制御して前記電源管理モジュールに前記外部機器に前記省電力状態への移行を指示するコマンドを送信させることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象の記録装置などの外部機器に接続された制御装置、この制御装置を含む制御システム、上記制御装置により実行される制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
一般に、外部機器を制御するコンピューター等の制御装置には、制御対象の記録装置に対応したデバイスドライバー等のプログラムがインストールされ、このデバイスドライバーの機能により記録装置が制御される（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−０７７２２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、外部機器とコンピューターとの接続インターフェイスの高機能化が進み、様々な外部機器に対して同様の制御を行える汎用のデバイスドライバーが使用されるようになっている。この汎用デバイスドライバーは、外部機器の機種毎に対応して用意されることもあるが、外部機器を制御するための機能が共通化されている。このため、低コストで様々な機種の外部機器に対応できる等の利点がある。
しかしながら、汎用デバイスドライバーは様々な外部機器に共通した制御を行うよう設計されており、一部の外部機器のみが有する一般的でない制御機能には対応していない。典型的な例としては、省電力化を目的として、外部機器が使用されていない状態が所定時間継続した場合に外部機器を待機状態に移行させる機能が知られているが、この機能を汎用デバイスドライバーがサポートしていない場合、汎用デバイスドライバーに代えて独自のデバイスドライバーを用いる必要があった。そして、汎用デバイスドライバーを利用しながら汎用デバイスドライバーが備えていない機能を用いるため別のプログラムで外部機器を制御しようとすれば、汎用デバイスドライバーとの制御の衝突が発生するおそれがあるため、汎用デバイスドライバーの一部の機能のみを使用することもできなかった。
本発明は、上述した事情に鑑みてなされたものであり、汎用デバイスドライバーが外部機器の電源管理機能を持たない場合であっても、外部機器の省電力化を達成し、かつ、汎用デバイスドライバーを利用して外部機器を制御することが可能な制御装置、制御システム、制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明は、省電力状態への移行を指示するコマンドに基づいて省電力状態へ移行する外部機器と接続するインターフェイスと、アプリケーションプログラム及び前記外部機器を制御する制御プログラムのいずれか一方を含むプログラムにより送信されるコマンドに基づき、前記インターフェイスを介して接続される前記外部機器を制御可能なデバイスドライバーと、前記インターフェイスを介して接続される前記外部機器を省電力状態に移行させる電源管理モジュールと、前記プログラムにより送信されるコマンドを前記デバイスドライバーへ中継する応答制御部と、を備え、前記応答制御部は、前記プログラムにより送信されるコマンドが特定のコマンドである場合には、前記特定のコマンドを前記デバイスドライバーに中継し、前記プログラムにより送信されるコマンドが前記特定のコマンド以外であった場合には前記プログラムにより送信されるコマンドを前記デバイスドライバーに中継せず、前記特定のコマンドが送信されない期間が所定時間以上継続した場合に前記電源管理モジュールを制御し、前記電源管理モジュールは、前記応答制御部の制御に基づいて前記外部機器に前記省電力状態への移行を指示するコマンドを送信することを特徴とする。
この構成によれば、上位プログラムの動作により外部機器に関して特定のコマンドが送信された場合には、このコマンドを応答制御部が汎用デバイスドライバーに送って、汎用デバイスドライバーの制御により外部機器が動作や設定等をし、特定のコマンド以外のコマンドが送信された場合は応答制御部が汎用デバイスドライバーに代わってダミー（擬似）の応答を上位プログラムに送信して、汎用デバイスドライバーを動作させない。そして、特定のコマンドが送信されない期間が所定時間以上続いた場合には電源管理モジュールの機能により外部機器を省電力状態に移行させる。これにより、上位プログラムの動作に影響を及ぼすことなく、汎用デバイスドライバーにより外部機器を制御させる必要がある場合にのみ外部機器を動作させ、汎用デバイスドライバーの機能に頼らず、汎用デバイスドライバー及び外部機器の動作を効率化できる。また、汎用デバイスドライバー及び外部機器を動作させない状態が継続した場合に外部機器を省電力状態に移行させ、外部機器の省電力化及び動作の効率化を図れる。従って、汎用デバイスドライバーを利用して外部機器を制御するとともに、汎用デバイスドライバーの機能に頼らず、省電力化及び動作の効率化を図ることができる。
【０００６】
また、本発明は、上記の制御装置において、前記電源管理モジュールは、前記応答制御部の制御に従って、前記外部機器に対して省電力状態への移行を指示するコマンドを前記外部機器へ送信することを特徴とする。
この構成によれば、電源管理モジュールが省電力状態への移行を指示するコマンドを外部機器へ送信するので、外部機器が、省電力状態への移行を指示するコマンドに対応した機種であれば、汎用デバイスドライバーの機能に頼らず、外部機器を容易に省電力状態に移行させることができる。
【０００７】
また、本発明は、上記の制御装置において、前記応答制御部は、前記外部機器を省電力状態に移行させた後で前記特定のコマンドを受信した場合には、前記電源管理モジュールの機能により前記外部機器を省電力状態から復帰させて、前記特定のコマンドを中継することを特徴とする。
この構成によれば、外部機器が省電力状態に移行した状態で特定のコマンドが上位プログラムの動作により送信された場合に、応答制御部が外部機器を省電力状態から通常の動作モードに復帰させて、特定のコマンドを実行させるので、上位プログラムの動作に影響を与えることなく、外部機器を省電力状態に移行させ、また外部機器を省電力状態から復帰させて、省電力化及び動作の効率化を図ることができる。
【０００８】
また、本発明は、上記の制御装置において、前記特定のコマンドは前記外部機器に記録実行を指示する記録ジョブであることを特徴とする。
この構成によれば、上位プログラムの動作に基づいて外部機器に記録実行を指示する記録ジョブが送信された場合に、汎用デバイスドライバーの制御により外部機器を動作させ、記録ジョブ以外のコマンドに対しては、応答制御部がダミーの応答を送信することによって外部機器を動作させないので、上位プログラムの動作に影響を与えることなく、省電力化及び動作の効率化を図ることができる。
【０００９】
また、上記課題を解決するため、本発明の制御システムは、省電力状態への移行を指示するコマンドに基づいて省電力状態へ移行する外部機器と、前記外部機器と接続するインターフェイス、アプリケーションプログラム及び前記外部機器を制御する制御プログラムのいずれか一方を含むプログラムにより送信されるコマンドに基づき、前記インターフェイスを介して接続される前記外部機器を制御可能なデバイスドライバー、前記インターフェイスを介して接続される前記外部機器を省電力状態に移行させる電源管理モジュール、及び前記プログラムにより送信されるコマンドを前記デバイスドライバーへ中継する応答制御部を有する制御装置と、を備え、前記応答制御部は、前記プログラムにより送信されるコマンドが特定のコマンドである場合には、前記特定のコマンドを前記デバイスドライバーに中継し、前記プログラムにより送信されるコマンドが前記特定のコマンド以外であった場合には前記プログラムにより送信されるコマンドを前記デバイスドライバーに中継せず、前記特定のコマンドが送信されない期間が所定時間以上継続した場合に前記電源管理モジュールを制御し、前記電源管理モジュールは、前記応答制御部の制御に基づいて前記外部機器に前記省電力状態への移行を指示するコマンドを送信することを特徴とする。
この構成によれば、制御装置が備える上位プログラムの動作により外部機器に関して特定のコマンドが送信された場合には、このコマンドを応答制御部が汎用デバイスドライバーに送って、汎用デバイスドライバーの制御により外部機器が動作や設定等をし、特定のコマンド以外のコマンドが送信された場合は応答制御部が汎用デバイスドライバーに代わってダミーの応答を上位プログラムに送信して、汎用デバイスドライバーを動作させない。そして、特定のコマンドが送信されない期間が所定時間以上続いた場合には電源管理モジュールにより外部機器を省電力状態に移行させる。これにより、上位プログラムの動作に影響を及ぼすことなく、汎用デバイスドライバーにより外部機器を制御させる必要がある場合にのみ外部機器を動作させ、汎用デバイスドライバーの機能に頼らず、汎用デバイスドライバー及び外部機器の動作を効率化できる。また、汎用デバイスドライバー及び外部機器を動作させない状態が継続した場合に外部機器を省電力状態に移行させ、外部機器の省電力化及び動作の効率化を図れる。従って、汎用デバイスドライバーを利用して外部機器を制御するとともに、汎用デバイスドライバーの機能に頼らず、省電力化及び動作の効率化を図ることができる。
【００１０】
また、上記課題を解決するため、本発明の制御方法は、アプリケーションプログラム及び省電力状態への移行を指示するコマンドに基づいて省電力状態へ移行する外部機器を制御する制御プログラムのいずれか一方を含む上位プログラムによりコマンドが送信され、前記プログラムにより送信されたコマンドが特定のコマンドである場合には、応答制御部を中継して前記特定のコマンドは前記外部機器を制御可能なデバイスドライバーに送信され、前記プログラムにより送信されたコマンドが前記特定のコマンド以外であった場合には、前記応答制御部は前記プログラムにより送信されたコマンドを前記デバイスドライバーに中継せず、前記特定のコマンドが送信されない期間が所定時間以上継続した場合に電源管理モジュールを制御して前記電源管理モジュールに前記外部機器に前記省電力状態への移行を指示するコマンドを送信させることを特徴とする。
この方法によれば、制御装置が備える上位プログラムの動作により外部機器に関して特定のコマンドが送信された場合には、このコマンドを応答制御部が汎用デバイスドライバーに送って、汎用デバイスドライバーの制御により外部機器が動作し、特定のコマンド以外のコマンドが送信された場合は応答制御部が汎用デバイスドライバーに代わってダミーの応答を上位プログラムに送信して、汎用デバイスドライバーを動作させない。そして、特定のコマンドが送信されない期間が所定時間以上続いた場合には電源管理モジュールの機能により外部機器を省電力状態に移行させる。これにより、上位プログラムの動作に影響を及ぼすことなく、汎用デバイスドライバーにより外部機器を制御させる必要がある場合にのみ外部機器を動作させ、汎用デバイスドライバーの機能に頼らず、汎用デバイスドライバー及び外部機器の動作を効率化できる。また、汎用デバイスドライバー及び外部機器を動作させない状態が継続した場合に外部機器を省電力状態に移行させ、外部機器の省電力化及び動作の効率化を図れる。従って、汎用デバイスドライバーを利用して外部機器を制御するとともに、汎用デバイスドライバーの機能に頼らず、省電力化及び動作の効率化を図ることができる。
【００１１】
また、上記課題を解決するため、本発明のプログラムは、アプリケーションプログラム及び外部機器を制御する制御プログラムのいずれか一方を含むプログラムの動作により送信されるコマンドに基づき前記外部機器を制御可能なデバイスドライバーと、前記外部機器を省電力状態に移行させる電源管理モジュールとが動作する場合に、制御装置を前記プログラムにより送信されるコマンドを前記デバイスドライバーへ中継する応答制御部として機能させ、前記応答制御部は、前記プログラムにより送信されるコマンドが特定のコマンドである場合には、前記特定のコマンドを前記デバイスドライバーに中継し、前記プログラムにより送信されるコマンドが前記特定のコマンド以外であった場合には前記プログラムにより送信されるコマンドを前記デバイスドライバーに中継せず、前記特定のコマンドが送信されない期間が所定時間以上継続した場合に前記電源管理モジュールにより前記外部機器を省電力状態に移行させることを特徴とする。
このプログラムを実行することにより、外部機器に接続された制御装置が備える上位プログラムの動作によって外部機器に関して特定のコマンドが送信された場合には、このコマンドを応答制御部が汎用デバイスドライバーに送って、汎用デバイスドライバーの制御により外部機器が動作し、特定のコマンド以外のコマンドが送信された場合は応答制御部が汎用デバイスドライバーに代わってダミーの応答を上位プログラムに送信して、汎用デバイスドライバーを動作させない。そして、特定のコマンドが送信されない期間が所定時間以上続いた場合には電源管理モジュールの機能により外部機器を省電力状態に移行させる。これにより、上位プログラムの動作に影響を及ぼすことなく、汎用デバイスドライバーにより外部機器を制御させる必要がある場合にのみ外部機器を動作させ、汎用デバイスドライバーの機能に頼らず、汎用デバイスドライバー及び外部機器の動作を効率化できる。また、汎用デバイスドライバー及び外部機器を動作させない状態が継続した場合に外部機器を省電力状態に移行させ、外部機器の省電力化及び動作の効率化を図れる。従って、汎用デバイスドライバーを利用して外部機器を制御するとともに、汎用デバイスドライバーの機能に頼らず、省電力化及び動作の効率化を図ることができる。
【発明の効果】
【００１２】
本発明によれば、汎用デバイスドライバーを利用して外部機器を制御するとともに、汎用デバイスドライバーの機能に頼らず、省電力化及び動作の効率化を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係るプリントシステムの構成を示す機能ブロック図である。
【図２】ホストコンピューターの機能的構成を模式的に示す図である。
【図３】ホストコンピューターの動作を示すフローチャートである。
【図４】プリンターの動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本発明を適用した実施形態に係るプリントシステム１００の構成を示すブロック図である。
この図１に示すように、プリントシステム１００は、ホストコンピューター１と、ホストコンピューター１に対して通信可能に接続されたプリンター３をと、を備える。ホストコンピューター１は、例えば、小売店等の店頭に設置され、売上登録処理及び精算処理を行う販売時点管理システム（ＰＯＳシステム）を搭載したＰＯＳ端末装置であり、取引毎にプリンター３によってレシートを印刷（記録）させる。なお、ホストコンピューター１には、売上登録処理時に商品に付されたバーコードを読み取るバーコードスキャナー、精算用の現金を収容するキャッシュドロワー等を備えているが、これらの各部については図示及び説明を省略する。プリントシステム１００は、本発明の制御システムに相当し、ホストコンピューター１は制御装置、プリンター３は制御対象の外部機器としての記録装置に相当する。
【００１５】
ホストコンピューター１は、各種プログラムを実行するＣＰＵ１１、ＣＰＵ１１により実行される基本制御プログラム等を記憶したＲＯＭ１２、ＣＰＵ１１が実行するプログラムや処理対象のデータ等を一時的に記憶するワークエリアを形成するＲＡＭ１３、ＣＰＵ１１が実行するアプリケーションプログラムや処理対象のデータ等を記憶する記憶部１４、オペレーターに操作される売上登録キー等の各種キーを備えた入力部１５、売上登録処理及び精算処理の処理内容を表示するディスプレイを備えた表示部１６、及び、プリンター３に有線接続され、プリンター３との間の通信制御を行うＵＳＢホストコントローラー１７を備え、これらの各部はバス１９を介して相互に接続されている。ＵＳＢホストコントローラー１７は、ＵＳＢ端子（図示略）を介して、プリンター３を含む各種機器に接続可能なＵＳＢインターフェイスとして機能する。
【００１６】
記憶部１４には、ＣＰＵ１１が実行するプログラムとして、ホストコンピューター１のオペレーティングシステム２（図２）、ＰＯＳシステムとして売上登録処理及び精算処理を行うアプリケーションプログラムであるＰＯＳアプリケーション２１（図２）、ＰＯＳアプリケーション２１の要求に応じてプリンター３に対応した印刷ジョブを生成する制御プログラムとしてのプリンタードライバー２２（図２）、オペレーティングシステム２の動作に係る各種設定値を格納したレジストリー（図示略）等が記憶される。
【００１７】
また、プリンター３は、ホストコンピューター１の制御に従って、取引毎にレシートを出力する。プリンター３は、例えば、ロール状に巻かれた感熱記録紙である感熱ロール紙を、ロール状のプラテン（図示略）により搬送し、この感熱ロール紙の記録面に、発熱素子を備えたラインサーマルヘッド（図示略）によって熱を与えることによりモノクロまたは多色で文字や画像を印刷（記録）するサーマルラインプリンターである。プリンター３は、ホストコンピューター１に有線接続されるＵＳＢデバイスコントローラー３１、ＵＳＢデバイスコントローラー３１を介してホストコンピューター１から受信したコマンドに従ってプリンター３の各部を制御するコントローラー３２、ホストコンピューター１から受信したコマンドやデータ等を一時的に保持する受信バッファー３３、及び、上述したラインサーマルヘッド及びプラテンを含む各部により感熱ロール紙への印刷を実行するプリントエンジン３４を備えている。
【００１８】
図２は、ホストコンピューター１の機能的構成を模式的に示す図である。この図２に示す各機能部のうち、ＣＰＵ１１がプログラムを実行してＵＳＢホストコントローラー１７を制御することにより、ハードウェアとソフトウェアとの協働により実現される。
図２に示すように、ホストコンピューター１は、オペレーティングシステム２のカーネル・モードにおいて、ＵＳＢホストコントローラー１７（図１）を制御するＵＳＢドライバースタック２５と、このＵＳＢドライバースタック２５を利用してプリンター３を制御する汎用デバイスドライバー２４とを有する。
また、オペレーティングシステム２のユーザー・モードでは、ＰＯＳアプリケーション２１、ＰＯＳアプリケーション２１の印刷要求に応じてプリンター３に適した印刷ジョブを生成するプリンタードライバー２２が実行される。プリンタードライバー２２は、ＰＯＳアプリケーション２１によって呼び出され、或いは単独で実行されるプログラムであり、プリンター３により実行される印刷ジョブを生成するほか、プリンター３の動作状態（ステータス）の管理等を行う機能を有する。
ＰＯＳアプリケーション２１及びプリンタードライバー２２は、オペレーティングシステム２のカーネル・モードにおいてプリンター３を制御するプログラムに対し、プリンター３のステータスを送信するよう要求するステータス要求等を送信し、このステータス要求に対する応答を受信する機能を有する。
【００１９】
プリンタードライバー２２は、ＰＯＳアプリケーション２１が生成した文字や画像を含む文書データの通りに文字及び画像を印刷するための印刷データを生成し、生成した印刷データをプリンター３に印刷させるための制御コマンドを生成し、これらの制御コマンド及び印刷データを含む印刷ジョブを生成する。
汎用デバイスドライバー２４は、ＵＳＢインターフェイスとしてのＵＳＢホストコントローラー１７を介して接続される複数の機種のプリンターに共通して使用可能なデバイスドライバーである。オペレーティングシステム２としてMicrosoft（登録商標）社のWindows（登録商標）OSを使用する場合、汎用デバイスドライバー２４は、様々な機種のプリンターに対応するＵＳＢプリンタークラス用のデバイスドライバーとして、Windows（登録商標）OSに実装されている。
汎用デバイスドライバー２４は、ＰＯＳアプリケーション２１から印刷ジョブが入力されると、この印刷ジョブを実行するためにＵＳＢドライバースタック２５を呼び出してプリンター３との間の通信制御を行う。
【００２０】
汎用デバイスドライバー２４によるプリンター３との通信は、汎用デバイスドライバー２４をホスト装置、プリンター３をターゲット装置とするポーリング方式により行われる。具体的には、汎用デバイスドライバー２４は、ＵＳＢドライバースタック２５の機能によってプリンター３に対してクリア命令を送信し、このクリア命令を受信したプリンター３は、受信したデータのデータ量をカウントするカウンターの値をクリアしてクリア後の応答をホストコンピューター１へ送信する。汎用デバイスドライバー２４は、プリンター３からの応答を受信した後、制御コマンドと印刷データとを含む印刷ジョブのデータを、所定サイズのパケットに分割してプリンター３へ送信し、所定数のパケットを送信する毎にプリンター３から受信確認応答を受信する。汎用デバイスドライバー２４は、プリンター３から受信確認応答や印刷完了の応答を受信するまで、待機する。
【００２１】
また、ホストコンピューター１は、オペレーティングシステム２のカーネル・モードにおいて、ＰＯＳアプリケーション２１及びプリンタードライバー２２から送信される要求をフィルタリングして汎用デバイスドライバー２４に中継するフィルタードライバー２３（応答制御部）を備えている。
フィルタードライバー２３は、ＰＯＳアプリケーション２１及びプリンタードライバー２２と、汎用デバイスドライバー２４との間に介在して、ＰＯＳアプリケーション２１またはプリンタードライバー２２がコマンドを送信した場合に、このコマンドを汎用デバイスドライバー２４に中継して送信する。また、フィルタードライバー２３は、フィルタリングの機能を備え、印刷ジョブ以外のコマンドは汎用デバイスドライバー２４に中継しない。すなわち、ＰＯＳアプリケーション２１またはプリンタードライバー２２から印刷ジョブが送信された場合、フィルタードライバー２３は、この印刷ジョブを汎用デバイスドライバー２４に出力する。その一方で、ＰＯＳアプリケーション２１またはプリンタードライバー２２からステータス要求が送信された場合には、このステータス要求に応答してダミーのステータス通知を生成し、ステータス要求の送信元のＰＯＳアプリケーション２１またはプリンタードライバー２２へ送信するとともに、汎用デバイスドライバー２４にステータス要求を送信しない。このため、汎用デバイスドライバー２４、ＵＳＢドライバースタック２５及びプリンター３は、ステータス要求に対する動作は行わない。
また、フィルタードライバー２３は、ステータス要求に限らず、印刷ジョブ以外のコマンドは汎用デバイスドライバー２４へ送信しないで、応答を要するコマンドに対しては、汎用デバイスドライバー２４に代わってダミーの応答を送信する。このため、汎用デバイスドライバー２４、ＵＳＢドライバースタック２５及びプリンター３は、ＰＯＳアプリケーション２１及びプリンタードライバー２２から送信されるコマンドのうち、印刷ジョブのみ実行し、他のコマンドを受信することはない。
【００２２】
さらに、ホストコンピューター１は、オペレーティングシステム２のカーネル・モードにおいて動作する電源管理モジュール２６を備えている。電源管理モジュール２６は、フィルタードライバー２３の制御に従って、プリンター３に対してスリープモード（省電力状態）への移行を指示するコマンド、及び、スリープモードからの復帰（レジューム）を指示するコマンドを送信する。より具体的には、電源管理モジュール２６は、ＵＳＢドライバースタック２５を適宜呼び出し、このＵＳＢドライバースタック２５の機能によって上記コマンドをプリンター３に送信する。
スリープモードとは、プリンター３の電源がオンになっており、ＵＳＢデバイスコントローラー３１がホストコンピューター１との間の通信を実行可能であるが、コントローラー３２が動作を停止している状態を指す。この状態は、スリープモードの他、サスペンド、スタンバイ、休止モード等と呼ばれるが、本出願ではスリープモードと呼ぶ。スリープモードに対して、ＵＳＢデバイスコントローラー３１が動作する通常の動作状態を、通常動作モードと呼ぶ。
【００２３】
スリープモードにおいて、プリンター３は、ホストコンピューター１から送信されるコマンドやデータ等をＵＳＢデバイスコントローラー３１により受信し、受信バッファー３３に順次格納するものの、受信したコマンドを実行しないので、受信したコマンドは受信順に受信バッファー３３に格納されていく。但し、ＵＳＢデバイスコントローラー３１は、受信したコマンドがリアルタイム制御コマンドである場合には、このリアルタイム制御コマンドを検出して、プリンター３をスリープモードから通常動作モードに復帰（レジューム）させ、ＵＳＢデバイスコントローラー３１によってリアルタイム制御コマンドを実行させる。リアルタイム制御コマンドとは、例えば、スリープモードから通常動作モードへの復帰、受信バッファー３３のクリア、プリンター３の初期化、ステータス通知の送信、キャッシュドロワー（図示略）の開動作等を指示するコマンドであり、スリープモードか通常動作モードかに関わらず即時実行することが要求される。
また、プリンター３は、例えば受信バッファー３３がバッファーフルになった場合や、感熱ロール紙（図示略）を出し入れするためのカバー（図示略）が開かれた場合に、オフライン状態に移行して、印刷ジョブ等の実行を停止するが、このオフライン状態であってもリアルタイム制御コマンドをＵＳＢデバイスコントローラー３１が受信した場合は、このリアルタイム制御コマンドを実行する。
【００２４】
電源管理モジュール２６がプリンター３に送信するスリープモードへの移行を指示するコマンド及びスリープモードから通常動作モードへの復帰を指示するコマンドは、いずれもリアルタイム制御コマンドである。このため、電源管理モジュール２６が送信したコマンドに対してはプリンター３が即座に応答し、プリンター３からホストコンピューター１へ応答が返される。この応答は、ＵＳＢドライバースタック２５及び汎用デバイスドライバー２４を介して電源管理モジュール２６が受信できる。
【００２５】
また、フィルタードライバー２３は、時間の経過をカウントするタイマーを備えている。このタイマーは、汎用デバイスドライバー２４に対してコマンドが送信されない状態が継続した場合に、その継続時間をカウントする。そして、フィルタードライバー２３は、このタイマーのカウント値が、予め設定された所定時間を超えた場合に、電源管理モジュール２６を制御して、プリンター３をスリープモードに移行させる。
【００２６】
図３及び図４は、プリントシステム１００の動作を示すフローチャートであり、図３はホストコンピューター１の動作を示し、より詳細にはフィルタードライバー２３の機能に基づく動作を示す。
図３に示す動作は、ホストコンピューター１のフィルタードライバー２３が、ＰＯＳアプリケーション２１またはプリンタードライバー２２から送信されたコマンドを受信する毎に実行される。フィルタードライバー２３は、コマンドを受信すると（ステップＳ１）、受信したコマンドが印刷ジョブであるか否かを判別する（ステップＳ２）。
【００２７】
受信したコマンドが印刷ジョブであると判別した場合（ステップＳ２；Ｙｅｓ）、フィルタードライバー２３は、プリンター３がスリープモードであるか否かを判別し（ステップＳ３）、プリンター３がスリープモードであれば（ステップＳ３；Ｙｅｓ）、電源管理モジュール２６の機能によりプリンター３に対してスリープモードからの復帰を指示するコマンドを送信し（ステップＳ４）、スリープモードから復帰したことを示すプリンター３からの応答を待機する（ステップＳ５）。スリープモードからの復帰を示すレジューム応答信号をプリンター３から受信すると（ステップＳ５；Ｙｅｓ）、フィルタードライバー２３は、ＰＯＳアプリケーション２１またはプリンタードライバー２２から送信された印刷ジョブを、汎用デバイスドライバー２４へ送信し（ステップＳ６）、本処理を終了する。なお、フィルタードライバー２３は、印刷ジョブがプリンター３によって実行され、実行完了後にプリンター３からジョブ完了を示すステータス通知を受信した場合に、このステータス通知を、印刷ジョブを送信したＰＯＳアプリケーション２１またはプリンタードライバー２２へ送信する。
また、プリンター３がスリープモードでない場合（ステップＳ３；Ｎｏ）、フィルタードライバー２３は、ステップＳ６に移行して印刷ジョブを汎用デバイスドライバー２４に送信する。
【００２８】
一方、ＰＯＳアプリケーション２１またはプリンタードライバー２２から送信されたコマンドが、印刷ジョブでない場合（ステップＳ２；Ｎｏ）、フィルタードライバー２３は、当該コマンドが応答を要求する、ステータス要求等のコマンドであるか否かを判別する（ステップＳ７）。ここで、応答を要求するコマンドであった場合（ステップＳ７；Ｙｅｓ）、フィルタードライバー２３は、ダミーの応答を生成して、コマンドの送信元のＰＯＳアプリケーション２１またはプリンタードライバー２２に送信する（ステップＳ８）。
続いて、フィルタードライバー２３は、プリンター３がスリープモードであるか否かを判別し（ステップＳ９）、プリンター３がスリープモードでない場合（ステップＳ９；Ｎｏ）、フィルタードライバー２３はタイマー（図示略）のカウント値を取得して（ステップＳ１０）、このカウント値が、予め設定された所定値（所定時間）を超過したか否かを判別する（ステップＳ１１）。ここで、タイマーのカウント値が設定された時間を超過した場合（ステップＳ１１；Ｙｅｓ）、フィルタードライバー２３は、電源管理モジュール２６を制御して、プリンター３に対してスリープモードへの移行を指示するコマンドを送信し（ステップＳ１２）、このコマンドに対して、プリンター３から送信される応答を待機する（ステップＳ１３）。
【００２９】
フィルタードライバー２３は、プリンター３から、スリープモードへの移行を示す応答（ステータス通知）を受信した場合に（ステップＳ１３；Ｙｅｓ）、本処理を終了する。また、プリンター３がスリープモードでないと判別した場合（ステップＳ９；Ｙｅｓ）、タイマーのカウント値が設定された所定時間を超えていない場合（ステップＳ１１；Ｎｏ）も、本処理を終了する。
また、フィルタードライバー２３は、ＰＯＳアプリケーション２１またはプリンタードライバー２２から受信したコマンドが、印刷ジョブでも応答を要求するコマンドでもない場合（ステップＳ７；Ｎｏ）、受信したコマンドを読み捨てて（ステップＳ１４）、本処理を終了する。
【００３０】
図４は、フィルタードライバー２３の制御によって汎用デバイスドライバー２４からＵＳＢドライバースタック２５を介して送信されるコマンドを受信した場合のプリンター３の動作を示すフローチャートである。
プリンター３は、ＵＳＢデバイスコントローラー３１の機能によりホストコンピューター１から送信されたコマンドを受信すると（ステップＳ２１）、プリンター３がスリープモードであるか否かを判別する（ステップＳ２２）。
プリンター３がスリープモードである場合（ステップＳ２２；Ｙｅｓ）、ＵＳＢデバイスコントローラー３１は、受信したコマンドがリアルタイム制御コマンドであるか否かを判別し（ステップＳ２３）、リアルタイム制御コマンドであった場合はコントローラー３２を停止状態から起動させ、スリープモードから復帰する（ステップＳ２４）。ここで、起動したコントローラー３２は、ＵＳＢデバイスコントローラー３１を制御してホストコンピューター１に対してレジューム応答信号を送信し（ステップＳ２５）、コントローラー３２によってリアルタイム制御コマンドを実行して（ステップＳ２６）、本処理を終了する。また、スリープモードにおいて受信したコマンドがリアルタイム制御コマンドでない場合（ステップＳ２３；Ｎｏ）、ＵＳＢデバイスコントローラー３１は、受信したコマンドを受信バッファー３３に格納して、本処理を終了する。
【００３１】
一方、プリンター３がスリープモードでない場合（ステップＳ２２；Ｎｏ）、すなわち通常動作モードである場合には、プリンター３のＵＳＢデバイスコントローラー３１またはコントローラー３２は、受信したコマンドが印刷ジョブであるか否かを判別し（ステップＳ２７）、印刷ジョブであれば（ステップＳ２７；Ｙｅｓ）、コントローラー３２が印刷ジョブを実行することにより、感熱ロール紙への印刷を行う（ステップＳ２８）。その後、コントローラー３２が印刷完了を示すステータス通知を生成して、ＵＳＢデバイスコントローラー３１の機能によりホストコンピューター１へ送信し（ステップＳ２９）、本処理を終了する。
【００３２】
また、プリンター３が通常動作モードであり、受信したコマンドが印刷ジョブでない場合（ステップＳ２７；Ｎｏ）、プリンター３のＵＳＢデバイスコントローラー３１またはコントローラー３２は、受信したコマンドが応答を要求するコマンドであるか否かを判別し（ステップＳ３０）、応答を要求するコマンドであった場合（ステップＳ３０；Ｙｅｓ）、コントローラー３２が、このコマンドに対する応答を生成して、ＵＳＢデバイスコントローラー３１の機能によりホストコンピューター１へ送信し（ステップＳ３１）、本処理を終了する。
【００３３】
また、プリンター３が通常動作モードであり、受信したコマンドが応答を要求するコマンドでない場合（ステップＳ３０；Ｎｏ）、プリンター３は、ＵＳＢデバイスコントローラー３１またはコントローラー３２の機能によって、受信したコマンドがスリープモードへの移行の指示であるか否かを判別する（ステップＳ３２）。
受信したコマンドがスリープモードへの移行を指示するコマンドでなければ（ステップＳ３２；Ｎｏ）、プリンター３のＵＳＢデバイスコントローラー３１は当該コマンドを読み捨てて本処理を終了する。
また、受信したコマンドがスリープモードへの移行を指示するコマンドであった場合（ステップＳ３２；Ｙｅｓ）、コントローラー３２はスリープモードへの移行を示すステータス通知を生成して、ＵＳＢデバイスコントローラー３１の機能によりホストコンピューター１へ送信し（ステップＳ３３）、その後スリープモードに移行し（ステップＳ３４）、本処理を終了する。
【００３４】
なお、プリンター３は、図４に示した動作の他、感熱ロール紙を出し入れするカバーが開かれた場合や、印刷実行中に感熱ロール紙が紙切れになった場合、受信バッファー３３がバッファーフルになった場合など、オフラインの要因が発生した場合に、直ちにオフライン状態に移行する動作を行う。このオフライン状態への移行は、オフライン要因の発生をトリガーとする割込処理であり、図４に示す動作の実行中、停止中（待機中）のいずれにおいても随時実行される。
また、プリンター３は、プリンター３の電源をオン／オフする電源スイッチ（図示略）や、プリンター３のリセット、感熱ロール紙の送り動作等を指示する操作スイッチ（図示略）等を備えており、この電源スイッチや操作スイッチの操作に対応した動作も行う。この動作も、電源スイッチや操作スイッチの操作をトリガーとする割込処理である。
プリンター３は、スリープモードにおいて割込処理が実行された場合、スリープモードから通常動作モードに復帰する。この場合、プリンター３は、通常動作モードに復帰したことを示すステータス通知をホストコンピューター１に対して送信する。これにより、ホストコンピューター１のプリンタードライバー２２、フィルタードライバー２３、及び汎用デバイスドライバー２４の各部は、プリンター３が通常動作モードに復帰したことを検出できる。例えば、ホストコンピューター１は、プリンター３をスリープモードに移行させた後で、ＵＳＢホストコントローラー１７をスリープモードに移行させることも可能であり、この場合、ＵＳＢホストコントローラー１７を、汎用デバイスドライバー２４の制御によって通常動作モードに復帰させることも、プリンター３からのステータス通知により通常動作モードに復帰させることも可能になる。このため、ホストコンピューター１からプリンター３にコマンドを送信することでプリンター３をスリープモードに移行させるとともに、必要に応じて、プリンター３を容易に通常動作モードに復帰させて、処理を行わせることが可能である。
【００３５】
以上のように、本発明を適用した実施形態に係るプリントシステム１００は、外部機器接続用のインターフェイスとしてのＵＳＢホストコントローラー１７を備え、ＵＳＢホストコントローラー１７を介して制御対象のプリンター３に接続されたホストコンピューター１が、上位プログラムとしてのＰＯＳアプリケーション２１またはプリンター３を制御するプリンタードライバー２２の動作により送信されるコマンドに従って、ＵＳＢホストコントローラー１７を介して接続される複数種類のプリンター３を制御可能な汎用デバイスドライバー２４と、ＵＳＢホストコントローラー１７を介して接続された機器をスリープモードに移行させる電源管理モジュール２６と、上位プログラムの動作に基づき送信されたコマンドを汎用デバイスドライバー２４へ選択的に中継するフィルタードライバー２３と、を備え、フィルタードライバー２３は、上位プログラムの動作に基づき送信されたコマンドが印刷ジョブである場合には汎用デバイスドライバー２４に中継し、印刷ジョブ以外のコマンドであった場合には該コマンドを汎用デバイスドライバー２４に中継せず、該コマンドへのダミーの応答を上位プログラムに対して送信し、印刷ジョブを受信しない期間が、予め設定された所定時間以上継続した場合に、電源管理モジュール２６の機能によりプリンター３をスリープモードに移行させる。
【００３６】
これにより、ＰＯＳアプリケーション２１及びプリンタードライバー２２の動作に影響を及ぼすことなく、印刷ジョブの実行時には汎用デバイスドライバー２４を活用してプリンター３を制御させる一方で、印刷ジョブを実行していない期間は、フィルタードライバー２３及び電源管理モジュール２６の機能によりプリンター３をスリープモードに移行させて、省電力化、及び、汎用デバイスドライバー２４及びプリンター３の動作を効率化できる。従って、汎用デバイスドライバー２４を有効に利用してプリンター３を制御するとともに、汎用デバイスドライバー２４の機能に頼らず、省電力化及び動作の効率化を図ることができる。
【００３７】
また、ホストコンピューター１の電源管理モジュール２６は、フィルタードライバー２３の制御に従って、プリンター３に対してスリープモードへの移行を指示するコマンドをプリンター３へ送信する。このため、プリンター３がスリープモードへの移行を指示するコマンドに対応した機種であればよく、プリンター３は、受信したコマンドに基づいてスリープモードへの移行や印刷ジョブを実行するだけで、特別な動作を行う必要がない。このため、汎用デバイスドライバー２４の機能に頼らず省電力化及び動作の効率化を図ることが可能な構成を、容易に実現できる。
【００３８】
また、フィルタードライバー２３は、プリンター３をスリープモードに移行させた後で印刷ジョブを受信した場合には、電源管理モジュール２６の機能により、プリンター３をスリープモードから復帰させるリアルタイム制御コマンドを送信し、プリンター３をスリープモードから通常動作モードに復帰させて、印刷ジョブを送信する。このため、プリンター３をスリープモードに移行させても、必要な場合に通常動作モードに復帰させるので、上位プログラムの動作に影響を与えることなく、プリンター３のスリープモードを活用し、省電力化及び動作の効率化を図ることができる。
【００３９】
さらに、フィルタードライバー２３は、オペレーティングシステム２のカーネル・モードにおいて動作する。このため、フィルタードライバー２３は、ユーザー・モードで動作する場合に比べ、オペレーティングシステム２やプリンター３の仕様への依存性が低く、フィルタードライバー２３を、ＰＯＳシステム以外のオペレーティングシステム２に容易に適用することが可能であり、また、プリンター３以外の機種のプリンターを対象として動作させることも容易である。
【００４０】
なお、上記実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、上記実施形態においては、フィルタードライバー２３とは別に電源管理モジュール２６を備える構成を例に挙げて説明したが、本発明はこれに限定されるものではなく、フィルタードライバー２３が電源管理モジュール２６の機能を備えていてもよい。また、電源管理モジュール２６を、ＵＳＢドライバースタック２５の一部として実装してもよく、オペレーティングシステム２のユーザー・モードで動作するモジュールとして電源管理モジュール２６を構成することも可能である。また、上記実施形態では、ホストコンピューター１とプリンター３とがＵＳＢインターフェイスを介して接続される構成として説明したが、本発明はこれに限定されるものではなく、プリンター３を、スリープモード或いは他の省電力状態に移行させ、この状態から通常の動作状態に復帰させることが可能な構成であれば、ＵＳＢ以外の有線または無線通信インターフェイスを採用可能である。
【００４１】
また、上記実施形態では、発熱素子を備えたラインサーマルヘッドにより感熱ロール紙に印刷するサーマルプリンターを外部機器として使用する場合を例に挙げて説明したが、本発明を適用可能な外部機器は、予め記憶した画像データを印刷できるプリンターであれば特に制限されず、ドットインパクトプリンターやインクジェット式プリンター、レーザープリンター等にも本発明を適用可能であり、他の装置に組み込まれるプリンターにも本発明を適用可能である。
【符号の説明】
【００４２】
１…ホストコンピューター（制御装置）、２…オペレーティングシステム、３…プリンター（外部機器）、１１…ＣＰＵ、２１…ＰＯＳアプリケーション（アプリケーションプログラム）、２２…プリンタードライバー（制御プログラム）、２３…フィルタードライバー（応答制御部）、２４…汎用デバイスドライバー、２６…電源管理モジュール、１００…プリントシステム（制御システム）。
【図１】
0005556171.tif 000002
【図２】
0005556171.tif 000003
【図３】
0005556171.tif 000004
【図４】
0005556171.tif 000005