(57)【特許請求の範囲】
【請求項１】
ホストコンピュータと接続するためのホストインタフェースと、
プリンタステータスが変化したことを検出する検出手段と、
前記検出手段の検出に応答して、プリンタステータスを示したステータス情報を前記ホストインタフェースに送信する非定期ステータスリプライ手段と、
定期的に前記ホストインタフェースに前記ステータス情報を送信する定期ステータスリプライ手段と、
前記ホストインタフェースに対応したモード値を有し、前記ホストインタフェースから受信したデータに基づき前記モード値を設定し、前記モード値に基づいて前記非定期ステータスリプライ手段と前記定期ステータスリプライ手段の一方を選択するモード選択手段と
を備えたターミナルプリンタ。
【請求項２】
複数のホストコンピュータと接続するための複数のホストインタフェースと、
プリンタステータスが変化したことを検出する検出手段と、
前記検出手段の検出に応答して、プリンタステータスを示したステータス情報を前記ホストインタフェースに送信する非定期ステータスリプライ手段と、
定期的に前記ホストインタフェースに前記ステータス情報を送信する定期ステータスリプライ手段と、
前記複数のホストインタフェースの各々について個別に、前記非定期ステータスリプライ手段と前記定期ステータスリプライ手段の一方を選択するモード選択手段と
を備えたターミナルプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムのターミナルプリンタに関わり、特に、プリンタのステータスをホストコンピュータへ通知するためのステータスリプライ機能の改良に関する。
【背景技術】
【０００２】
多くのプリンタは、そのプリンタのステータス（例えば、待機・ビジー・エラーなどの状態、エラーの詳細、インク残量、用紙有無、用紙パスの選択など）をホストコンピュータに通知するステータスリプライ機能を有する。プリンタステータスは、一般に、文字列の形式でホストコンピュータに送られ、この文字列はステータスリプライ文字列などと呼ばれる。
【０００３】
複数のホストコンピュータが接続できるよう複数のホストインタフェースを有したプリンタが知られている。この種のプリンタは、どのホストインタフェースにデータが到来したかを認識して、そのデータの受信中、そのホストインタフェースのみを選択状態にするホストインタフェース自動切替機能を有してる。このインタフェース自動切替機能を有した従来のプリンタにおけるステータスリプライ機能は、選択状態にある一つのホストインタフェースのみに対し、ステータスリプライ文字列を送るのものである。
【０００４】
また、従来のプリンタは、一定の時間間隔で定期的にステータスリプライ文字列をホストコンピュータに通知している。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ホストインタフェース自動切替機能を有した従来のプリンタでは、非選択状態にあるホストインタフェースにはプリンタステータスが通知されないため、そこに接続されているホストコンピュータ側では、プリンタにデータを送ろうとしたとき、単に「通信エラーである」という認識しか得ることができない。従って、非選択状態のホストコンピュータ側では、送ったデータがプリンタに受入れられない理由、例えば、別のホストコンピュータが使用中である、エラーが発生した、或は、通信路に問題があるなどが判別できず、少し待てば通信が出来るのか、或は不具合を解消する必要があるのかといった判断ができない。
【０００６】
また、従来のプリンタでは、定期的にプリンタステータスを通知している。しかし、プリンタステータスに何の変化もない場合には、そのような定期的な通知は無駄な通信であり、その無駄な通信が肝心の印刷処理を遅らせる原因となる。
【０００７】
従って、本発明の目的は、ホストインタフェース自動切替機能を有したプリンタにおいて、非選択状態のホストインタフェースにもプリンタステータスを通知できるようにすることにある。
【０００８】
本発明の別の目的は、ホストコンピュータとプリンタ間の、プリンタステータス文字列の無駄な送信をなくすことにある。
【課題を解決するための手段】
【０００９】
本発明の第１の側面に従うターミナルプリンタは、複数のホストコンピュータと接続するための複数のホストインタフェースと、ステータスリプライを要求しているホストコンピュータが接続されているホストインタフェースを識別する要求インタフェース識別手段と、この識別手段により識別されたホストインタフェースの各々に、プリンタステータスを示したステータ情報を送信するステータスリプライ手段とを備える。
【００１０】
このターミナルプリンタによれば、ステータスリプライを要求しているホストコンピュータが接続されているホストインタフェースに対しては、それが選択状態か否かに関わらず、ステータス情報が送られる。
【００１１】
好適な実施形態では、複数のホストインタフェースにそれぞれ対応して設けられたフラグと、ホストインタフェースの各々から受信したステータスリプライを要求するデータに応答して、対応するフラグの状態をオン状態にする手段と、全てのフラグの状態を調べる手段と、オン状態にあるフラグに対応したホストインタフェースの各々にステータス情報を送信する手段とが備えられる。
【００１２】
この実施形態によれば、各ホストコンピュータがステータスリプライを要求するデータをプリンタに一旦送れば、対応するフラグがオン状態となるため、以後、ホストインタフェースが選択されているか否かに関わらず、プリンタステータスをプリンタから通知されることができる。
【００１３】
本発明の第２の側面に従うターミナルプリンタは、ホストコンピュータと接続するためのホストインタフェースと、プリンタステータスが変化したことを検出する検出手段と、この検出手段の検出に応答して、プリンタステータスを示したステータス情報を前記ホストインタフェースに送信する非定期ステータスリプライ手段とを備える。
【００１４】
このターミナルプリンタは、プリンタステータスが変化したときにステータス情報をホストコンピュータに返す。
【００１５】
好適な実施形態は、定期的にホストインタフェースにステータス情報を送信する定期ステータスリプライ手段と、非定期ステータスリプライ手段と定期ステータスリプライ手段の一方を選択するモード選択手段とを更に備える。
【００１６】
この実施形態によれば、ステータスリプライを定期的に行うか、ステータスが変化したときのみ行うかが選択できる。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明のターミナルプリンタの一実施形態の構成を、これに接続されたホストコンピュータと共に示す。
【００１８】
図示のプリンタ１は、３つのホストインタフェース５Ａ、５Ｂ、５Ｃを有し、３台のホストコンピュータ３Ａ、３Ｂ、３Ｃと接続されている。プリンタ１は、インタフェース制御部７、メインコントローラ９、メモリ１１、及び印刷エンジン１３を有する。メモリ１１には、３つのホストインタフェース５Ａ、５Ｂ、５Ｃにそれぞれ対応した３つのステータスリプライ（以下、ＳＲと略す）フラグ１５Ａ、１５Ｂ、１５Ｃ、３つのホストインタフェース５Ａ、５Ｂ、５Ｃにそれぞれ対応したＳＲモード値１６Ａ、１６Ｂ、１６Ｃ、及び各種のプリンタステータス１７などが記憶されている。さらに、メモリ１１には受信バッファ１９及びイメージバッファ２１などが設けられている。
【００１９】
インタフェース制御部７は、ホストインタフェース５Ａ、５Ｂ、５Ｃを制御して、ホストコンピュータ３Ａ、３Ｂ、３Ｃと通信を行うためのものである。このインタフェース制御部７は、ホストインタフェース５Ａ、５Ｂ、５Ｃのどれからデータが到来しているかを認識し、そのデータの受信中、そのホストインタフェースのみを選択状態にするホストインタフェース自動切替機能を有する。受信されたデータは、メモリ１１内の受信バッファ１９に書き込まれる。インタフェース制御部７はさらに、メモリ１７に記憶されたプリンタステータス１７に基づいてＳＲ文字列を生成し、各ホストインタフェース５Ａ、５Ｂ、５Ｃへ送るＳＲ機能も有する。
【００２０】
メインコントローラ９は、受信バッファ１９からデータを取り込み処理するためのものである。メインコントローラ９は、印刷のためのデータを処理することにより印刷イメージを生成して、イメージバッファ２１に展開する機能を有する。メインコントローラ９はさらに、ＳＲ機能に関するデータに応答して、インタフェース制御部７のＳＲ機能を制御する機能を有している。
【００２１】
印刷エンジン１３は、イメージバッファ２１から印刷イメージを読み込み、用紙上に実際のイメージを印刷するための機構である。
【００２２】
メモリ１１には、プリンタステータス１７として、待機・ビジー・エラーなどの状態、エラー発生時のエラー内容、インク残量、用紙有無、用紙パスの選択、ホストインタフェースの選択などが記憶されている。各ＳＲフラグ１５Ａ、１５Ｂ、１５Ｃは、それがオン状態であれば、対応するホストインタフェースにＳＲ文字列を送信すべきことを意味し、それがオフ状態であれば、対応するホストインタフェースにＳＲ文字列を送信する必要がないことを意味する。各ＳＲモード値１６Ａ、１６Ｂ、１６Ｃは、対応するホストインタフェースにＳＲ文字列を定期的に送るのか非定期に送るのかを示すもので、その値が０であれば、非定期に送る（つまり、プリンタステータスに変化があったときのみ送る）ことを意味し、その値が０以外であれば、その値が示す時間間隔で定期的に送ることを意味する。プリンタステータス１７は、インタフェース制御部７によって参照される。ＳＲフラグ１５Ａ、１５Ｂ、１５Ｃ及びＳＲモード値１６Ａ、１６Ｂ、１６Ｃは、インタフェース制御部７によって更新及び参照される。
【００２３】
図１における矢印は、ホストインタフェース５Ａが選択状態にあるときの信号の流れを例示している。
【００２４】
このとき、ホストコンピュータ３Ａからの印刷データはインタフェース制御部７を通じて受信バッファ１９に一旦入り、次いでメインコントローラ９に取り込まれて処理される。この処理の結果として、印刷イメージがイメージバッファに展開され、印刷エンジンが印刷イメージを取り込んで用紙上に実際のイメージを印刷する。
【００２５】
印刷データの受信と並行して、インタフェース制御部７は、ＳＲフラグ１５Ａ、１５Ｂ、１５Ｃがオン状態になっているホストインタフェースに対し、ＳＲモード値１６Ａ、１６Ｂ、１６Ｃによって指定される方法で、ＳＲ文字列を送信する。従って、このとき例えば全てのＳＲフラグ１５Ａ、１５Ｂ、１５Ｃがオン状態になっていたとすると、全てのホストインタフェース５Ａ、５Ｂ、５Ｃに対し、選択状態か非選択状態かに関わらず、ＳＲ文字列が送られる。ＳＲフラグ１５Ａ、１５Ｂ、１５ＣとＳＲモード値１６Ａ、１６Ｂ、１６Ｃの設定は、インタフェース制御部７が、メインコントローラ９からのＳＲ制御指示に従って行う。メインコントローラ９は、各ホストコンピュータ３Ａ、３Ｂ、３Ｃから受信したＳＲ機能に関わるコマンドに従って、各ＳＲフラグ１５Ａ、１５Ｂ、１５Ｃ及び各ＳＲモード値１６Ａ、１６Ｂ、１６Ｃをどのように設定するかを決め、それをインタフェース制御部７に指示する。
【００２６】
図２は、メインコントローラ９の動作を示す。
【００２７】
メインコントローラ９は、受信バッファ１９から受信データを読み込み（Ｓ１）、その読み込んだデータがラスタイメージデータである場合は、そのデータからラスタイメージを生成する（Ｓ３）。また、読み込んだデータがコマンドである場合は、そのコマンドを解釈する（Ｓ４）。コマンド解釈の結果、そのコマンドがＳＲ機能のオンを要求するコマンドである場合は、そのコマンドが指定したＳＲモード値を設定してＳＲフラグをターンオンせよというＳＲ制御指示をインタフェース制御部７へ送り（Ｓ５）、また、そのコマンドがＳＲ機能のオフを要求している場合は、ＳＲフラグをターンオフせよというＳＲ制御指示をインタフェース制御部７へ送る（Ｓ６）。また、受信したコマンドがＳＲ機能以外のコマンドである場合は、そのコマンドに応じた処理（例えば、テキストイメージの生成、グラフィックイメージの生成など）を行う（Ｓ７）。
【００２８】
尚、ホストコンピュータ３Ａ、３Ｂ、３Ｃでは、例えばプリンタドライバの起動時に、ＳＲ機能のオンを要求するコマンドをプリンタ１へ送るようになっている。また、ＳＲ機能のオフを要求するコマンドについては、ホストコンピュータ３Ａ、３Ｂ、３Ｃは必ずしもこのコマンドを送る必要はない。
【００２９】
図３は、メインコンピュータ９からＳＲ制御指示を受けたインタフェース制御部７の動作を示す。
【００３０】
メインコンピュータ９からＳＲ制御指示を受けたインタフェース制御部７は、３つのホストインタフェース５Ａ、５Ｂ、５Ｃの中から今選択状態にあるもの（つまり、上記したＳＲ機能オン又はオフのコマンドが到来したホストインタフェース）を識別する（Ｓ１１）。そして、ＳＲ制御指示がＳＲフラグのターンオンを指示している場合は、その選択状態にあるホストインタフェースに対応するＳＲフラグ１５Ａ、１５Ｂ又は１５Ｃをターンオンし、かつ、対応するＳＲモード値１６Ａ、１６Ｂ又は１６ＣをＳＲ制御指示の指定した値に設定する（Ｓ１２、Ｓ１３又はＳ１４）。一方、ＳＲ制御指示がＳＲフラグのターンオフを指示している場合は、その選択状態にあるホストインタフェースに対応するＳＲフラグ１５Ａ、１５Ｂ又は１５Ｃをターンオフする（Ｓ１２、Ｓ１３又はＳ１４）。
【００３１】
上記の図２及び図３に示した動作によれば、図１に示すホストコンピュータ３Ａ、３Ｂ、３Ｃの各々が１回プリンタドライバを立ち上げれば、以後、各ホストコンピュータに対応するＳＲフラグ１５Ａ、１５Ｂ、１５Ｃがオン状態になることになる。従って、３台のホストコンピュータ３Ａ、３Ｂ、３Ｃの全てが１回以上プリンタドライバを立ち上げた以降は、全てのＳＲフラグ１５Ａ、１５Ｂ、１５Ｃがオン状態にあるため、ホストインタフェースの選択・非選択に関わらず、全てのホストコンピュータ３Ａ、３Ｂ、３Ｃに対してＳＲ文字列が送信されることになる。
【００３２】
図４は、ＳＲ文字列をホストコンピュータ３Ａ、３Ｂ、３Ｃへ送るためのインタフェース制御部７の動作を示す。
【００３３】
図４に示す処理ルーチンは、所定数秒間隔で繰り返し起動される。インタフェース部７は、まず、ホストインタフェース５ＡにＳＲ文字列を送るための処理（Ｓ２１）を行う。この処理では、まず、ＳＲフラグ１５Ａを調べ（Ｓ３１）、これがオフ状態であれば何も行わず、オン状態であれば、ＳＲモード値１６Ａを調べる（Ｓ３２）。ＳＲモード値１６Ａが０の場合（つまり、非定期の送信の場合）は、プリンタステータス１７が前回の当該処理ルーチン実行時から変化しているか否かを調べる（Ｓ３３）。変化しているか否かは、例えば、今のプリンタステータス１７からＳＲ文字列を作成し、これを前回に作成したＳＲ文字列と比較する方法などにより分る。その結果、プリンタステータス１７が変化していた場合に限り、今のプリンタステータス１７から作成したＳＲ文字列をホストインタフェース５Ａに送る（Ｓ３６）。
【００３４】
また、ステップＳ３２で、ＳＲモード値１６Ａが０以外の値ｎであった場合（つまり、定期的な送信の場合）は、送信周期をカウントするためのタイムカウンタの値（その初期値はｎに等しい）を１だけ減らし（Ｓ３４）、次に、このタイムカウンタの値が０か否かチェックする（Ｓ３５）。その結果、タイムカウンタの値が０である場合にのみ、タイムカウンタの値を初期値ｎにリセットし（Ｓ３７）、そして、今のプリンタステータス１７から作成したＳＲ文字列をホストインタフェース５Ａに送る（Ｓ３６）。
【００３５】
以上でホストインタフェース５ＡにＳＲ文字列を送るための処理（Ｓ２１）が終わる。次に、インタフェース制御部７は、ホストインタフェース５ＢにＳＲ文字列を送るための処理（Ｓ２２）を行う。この処理では、ホストインタフェース５Ｂに対応するＳＲフラグ１５Ｂ及びＳＲモード値１６Ｂを参照して、ステップＳ２１と同様の動作を行う。その後、ホストインタフェース５ＣにＳＲ文字列を送るための処理（Ｓ２３）を、同様にＳＲフラグ１５Ｃ及びＳＲモード値１６Ｃを参照して行う。
【００３６】
この図４に示した処理ルーチンを所定秒間隔で繰り返すことにより、ＳＲフラグがオン状態になっているホストインタフェースに対し、選択状態か非選択状態かに関わらず、プリンタステータスに変化があった時又は定期的に、プリンタステータスが通知されることになる。
【００３７】
尚、各ホストインタフェースに送信するＳＲ文字列は、そのホストインタフェースが選択状態であるか否かによって変えることができる。例えば、非選択状態にあるホストインタフェースに送るＳＲ文字列には、そのホストインタフェースが非選択状態であることを示す文字コードを含ませることができる。それにより、非選択状態のホストコンピュータ側では、例えば「他のホストからのデータを印刷中です」といったメッセージをユーザに示すことが可能となる。
【図面の簡単な説明】
【００３８】
【図１】本発明のターミナルプリンタの一実施形態の構成を示すブロック図。
【図２】メインコントローラ９の動作を示すフローチャート。
【図３】メインコンピュータ９からＳＲ制御指示を受けたインタフェース制御部７の動作を示すフローチャート。
【図４】ＳＲ文字列をホストコンピュータ３Ａ、３Ｂ、３Ｃへ送るためのインタフェース制御部７の動作を示すフローチャート。
【符号の説明】
【００３９】
１  プリンタ
３  ホストコンピュータ
５  ホストインタフェース
７  インタフェース制御部
９  メインコントローラ
１１  メモリ
１５  ステータスリプライ（ＳＲ）フラグ
１６  ＳＲモード値
１７  プリンタステータス
【図１】
0003693178.tif 000002
【図２】
0003693178.tif 000003
【図３】
0003693178.tif 000004
【図４】
0003693178.tif 000005