(57)【特許請求の範囲】
【請求項１】
ホストコンピュータからの制御コマンドを含むデータを一時的に保持する受信バッファを備え、該受信バッファ内のデータを解釈してその内容に従い動作するプリンタの制御方法であって、
プリンタが、前記データの解釈をしないオフライン状態又は前記データの解釈をするオンライン状態の何れの状態にあるかを検出する工程と、
プリンタが前記オフライン状態にあることが検出された場合に、前記受信バッファ内のデータをクリアする工程と、
前記受信バッファ内のデータをクリアする工程の後、プリンタが前記オンライン状態になるまでの間、前記ホストコンピュータから受信するデータを破棄する工程と、
プリンタが前記オフライン状態にあるときの前記データの取り扱い方法を設定する工程と、
プリンタが前記オフライン状態にあることが検出された場合に、前記設定されたデータの取り扱い方法を読み出す工程と、
を実行し、
前記受信バッファ内のデータをクリアする工程は、プリンタが前記オフライン状態になった直後に実行され、
前記受信バッファ内のデータをクリアする工程は、前記読み出されたデータの取り扱い方法が、前記受信バッファ内のデータをクリアすることを許容するものである場合にのみ実行され、
前記オフライン状態にあるときの前記データの取り扱い方法を設定する工程は、ホストコンピュータからの所定の制御コマンドに従って実行されることを特徴とするプリンタの制御方法。
【請求項２】
前記オフライン状態にあることが検出された後に、プリンタが、前記オフライン状態又は前記オンライン状態の何れの状態にあるかを検出する工程と、
前記検出する工程により、プリンタが前記オンライン状態にあることが検出された場合に、前記受信バッファ内のデータをクリアする工程と、
を実行する請求項１に記載のプリンタの制御方法。
【請求項３】
前記プリンタが、印字データを展開して保持するプリントバッファを更に備え、前記受信バッファ内のデータをクリアする各工程が、前記受信バッファ内のデータと共に、前記プリントバッファ内のデータをクリアする請求項２に記載のプリンタの制御方法。
【請求項４】
請求項１〜３の何れかに記載の制御方法により動作されるプリンタに、制御コマンドを含むデータを送出するホストコンピュータの制御方法であって、
印字の終了通知を要求するコマンドを伴った印字データを、前記プリンタへ送出する工程と、
前記コマンドに対する前記プリンタからの前記印字の終了通知を待ち受ける工程と、
前記印字の終了通知の待ち受け中に前記プリンタからのオフライン状態の通知を受信したとき、前記印字データを前記プリンタからのオンライン状態の通知を受信した後に前記プリンタへ再送する工程と、
を実行するホストコンピュータの制御方法。
【請求項５】
ホストコンピュータからの制御コマンドを含むデータを一時的に保持
する受信バッファを備え、該受信バッファ内のデータを解釈してその内容に従い動作するプリンタにおいて、
プリンタが、前記データの解釈をしないオフライン状態又は前記データの解釈をするオンライン状態の何れの状態にあるかを検出するライン状態検出手段と、
前記ライン状態検出手段により、プリンタが前記オフライン状態にあることが検出された場合に、前記受信バッファ内のデータをクリアするデータクリア手段と、
プリンタが前記オフライン状態にある間、前記ホストコンピュータから受信するデータを破棄するデータ破棄手段と、
プリンタが受信した前記データが、直ちに実行するよう規定された制御コマンドであるか否かを判断するコマンド判定手段と、
前記オフライン状態において、前記コマンド判定手段により、受信したデータが前記直ちに実行するよう規定された制御コマンドであると判断された場合に、該コマンドを解釈し、その内容に従いプリンタを動作するプリンタ動作手段と、
前記コマンドを破棄するコマンド破棄手段と、
を備え、
前記データクリア手段は、前記ライン状態検出手段が前記オフライン状態を検出した後に前記オンライン状態を検出した場合にも、前記受信バッファ内のデータをクリアすることを特徴とするプリンタ。
【請求項６】
ホストコンピュータからのデータを受信する受信手段と、
前記受信手段により受信したデータを格納する受信バッファと、
前記受信バッファ内の受信データを解釈しないオフライン状態における、データクリアモードとデータ保持モードのいずれかを保持する保持手段と、
前記保持手段が前記データクリアモードを保持しているとき、前記オフライン状態では、前記受信バッファ内のデータをクリアするデータクリア手段と、
前記保持手段が前記データクリアモードを保持しているとき、前記オフライン状態では、新たに前記ホストコンピュータから受信したデータを受信バッファに格納しないよう制御する制御手段と、
前記受信手段には、前記ホストコンピュータから前記オフライン状態でも実行可能なコマンドを受信したとき、前記オフライン状態でも、オンライン状態でも、前記保持手段に保持されているモードにもよらず、前記実行可能なコマンドを実行する実行手段と、
を備えたことを特徴とするプリンタ。
【請求項７】
前記保持手段は、前記データクリアモードと前記データ保持モードとを、前記ホストコンピュータからの受信コマンドによって設定される請求項６に記載のプリンタ。
【請求項８】
請求項５〜７に記載のプリンタに、制御コマンドを含むデータを送出するホストコンピュータであって、
印字の終了通知を要求するコマンドを伴った印字データを、前記プリンタへ送出するデータ送出手段と、
前記コマンドに対する前記プリンタからの前記印字の終了通知を待ち受ける通知待ち受け手段と、
前記プリンタからの前記オフライン状態又は前記オフライン状態の何れかの状態の通知を受信する状態通知受信手段と、
前記状態通知受信手段が、前記印字の終了通知の待ち受け中に、前記オフライン状態の通知を受信した場合に、前記印字データを、前記プリンタからの前記オンライン状態の通知を受信した後に、前記プリンタへ再送する印字データ再送手段と、
を備えたホストコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータからの制御コマンドを含むデータを受信し動作するプリンタ及びその制御方法に関し、特に、いわゆるオフライン状態におけるプリンタの制御に特徴を有するプリンタ及びその制御方法に関する。
【０００２】
【従来の技術】
ホストコンピュータに接続されたプリンタにおいては、ホストコンピュータからの制御コマンドを含むデータを受信し、該制御コマンドに従って所望の印字を実現する。受信したデータは、一時的にＦＩＦＯ（First-In First-Out）で構成された受信バッファに保持され、順次ＣＰＵで実現される解釈部において解釈され、プリンタはその内容に従った処理を実行する。受信データの中には、リアルタイムコマンドと一般に称される、プリンタが受信すると直ちに実行するよう規定された制御コマンド群が含まれ、該制御コマンドを受信したプリンタは、他の制御に先立って、受信バッファに保持する前に、このコマンドで指定された制御を実行する。リアルタイムコマンドには、たとえばプリンタの様々な状態をステータスとしてホストコンピュータに送信するコマンドや、復帰可能なエラー状態から復帰させるコマンド等が含まれ、プリンタにエラーが発生してオフライン状態（後述）になっても実行できるものである。
【０００３】
この種のプリンタでは、通常、オンライン状態及びオフライン状態という２つのデータ処理状態を有している。オンライン状態は、ホストコンピュータから受信したデータを、受信バッファに保持し、順次ＣＰＵによって解釈していく。
【０００４】
一方、オフライン状態は、受信バッファ内のデータを解釈しない状態である。
従来のプリンタにおいては、プリンタがオフライン状態にあるときでも、データをホストコンピュータから受け付け、ホストコンピュータから受信したデータは、受信バッファに順次蓄積されていくが、ＣＰＵでは、リアルタイムコマンドを除いてこの解釈を行わない。
【０００５】
【発明が解決しようとする課題】
従って、プリンタがオフライン状態にあるときに、ホストコンピュータからビットイメージデータなどの大量のデータを受信した場合、受信バッファがフル（追加のデータを記憶する領域がない又は極めて少ない状態）になってしまう。このような場合、プリンタの通信インタフェースは、ホストコンピュータからのデータを受け付けることができないことを示す、いわゆるビジー状態となり、ホストコンピュータはリアルタイムコマンドを含む一切のデータをプリンタへ送信できなくなってしまい、従って、プリンタの状態を把握したり、又はエラー状態からの復帰をすることができない。
【０００６】
例えば、図５に示すように、特定のプリンタにおいては、所定サイズ（図の例では、４０９６バイト）の受信バッファ５０に、所定量以上のデータ（例えば、バッファサイズの９５％以上。図の例では、３８４０バイト）が格納された場合、受信バッファがフルであるとして、プリンタはホストコンピュータに対してビジー状態を示す。ここで、１ラインが６４０ドット程度（すなわち、１ライン８０バイト）の印字ヘッドで構成されるプリンタにおいては、用紙の送り方向に４８ドット（約６ｍｍ）分のデータを受信すると、受信バイト数は３８４０バイトを超えることになり（３８４０÷８０＝４８ドット）、受信バッファがフルとなる。
【０００７】
従って、図６に示すような、１レシート分ほどのビットマップ印字データが、プリンタのオフライン中に送られてくると、またたく間に受信バッファはフルとなってしまう。
【０００８】
また、ホストコンピュータ側でプリンタスプーラを介して印字データをプリンタへ送信する構成においては、プリンタが長い間ビジーを出しているとプリンタスプーラがエラーになってしまうが、通常、既にプリンタスプーラに渡したデータは、印字命令を送出したアプリケーション側で削除することができず、ユーザがプリンタスプーラ上のデータを直接削除等する必要があった。
【０００９】
そこで本発明の目的は、前記従来の課題を解決し、プリンタがオフライン状態にあるときに、大量のデータを受信したような場合であっても、受信バッファがフルにならず、ひいてはホストコンピュータとの通信インタフェースがビジー状態にならないようにしたプリンタ及びその制御方法を提供することにある。
【００１０】
本発明の別の目的は、プリンタがオフライン状態にあるときに、受信データを保持するモードと破棄するモードとを選択可能にしたプリンタ及びその制御方法を提供することにある。
【００１１】
本発明の更に別の目的は、前記ビジー状態を回避するモードにおいて、リアルタイムコマンドが解釈され、その内容に従った処理が実行されるプリンタ及びその制御方法を提供することにある。
【００１２】
また、ホストコンピュータのアプリケーションソフト側で、送信済みのデータを削除するのではなく、プリンタ側で受信データを削除することが可能で、アプリケーションソフトに負荷をかけないプリンタを提供することを目的とする。
【００１３】
更に本発明の別の目的は、プリンタが前記設定によって、受信したデータが破棄されるような場合であっても、ホストコンピュータが送出する印字データを確実に印字できるようにすることにある。
【００１４】
【課題を解決するための手段】
本発明のプリンタの制御方法は、ホストコンピュータからの制御コマンドを含むデータを一時的に保持する受信バッファを備え、該受信バッファ内のデータを解釈してその内容に従い動作するプリンタの制御方法であって、
プリンタが、前記データの解釈をしないオフライン状態又は前記データの解釈をするオンライン状態の何れの状態にあるかを検出する工程と、
プリンタが前記オフライン状態にあることが検出された場合に、前記受信バッファ内のデータをクリアする工程と、
前記受信バッファ内のデータをクリアする工程の後、プリンタが前記オンライン状態になるまでの間、前記ホストコンピュータから受信するデータを破棄する工程と、
プリンタが前記オフライン状態にあるときの前記データの取り扱い方法を設定する工程と、
プリンタが前記オフライン状態にあることが検出された場合に、前記設定されたデータの取り扱い方法を読み出す工程と、
を実行し、
前記受信バッファ内のデータをクリアする工程は、プリンタが前記オフライン状態になった直後に実行され、
前記受信バッファ内のデータをクリアする工程は、前記読み出されたデータの取り扱い方法が、前記受信バッファ内のデータをクリアすることを許容するものである場合にのみ実行され、
前記オフライン状態にあるときの前記データの取り扱い方法を設定する工程は、ホストコンピュータからの所定の制御コマンドに従って実行されることを特徴とする。
【００１５】
本発明の請求項１に記載のプリンタの制御方法は、前記オフライン状態にあることが検出された後に、プリンタが、前記オフライン状態又は前記オンライン状態の何れの状態にあるかを検出する工程と、
前記検出する工程により、プリンタが前記オンライン状態にあることが検出された場合に、前記受信バッファ内のデータをクリアする工程と、
を実行することを特徴とする。
【００１６】
本発明の請求項２に記載のプリンタの制御方法は、前記プリンタが、印字データを展開して保持するプリントバッファを更に備え、前記受信バッファ内のデータをクリアする各工程が、前記受信バッファ内のデータと共に、前記プリントバッファ内のデータをクリアすることを特徴とする。
【００１７】
本発明の請求項１〜３の何れかに記載の制御方法により動作されるプリンタに、制御コマンドを含むデータを送出するホストコンピュータの制御方法は、
印字の終了通知を要求するコマンドを伴った印字データを、前記プリンタへ送出する工程と、
前記コマンドに対する前記プリンタからの前記印字の終了通知を待ち受ける工程と、
前記印字の終了通知の待ち受け中に前記プリンタからのオフライン状態の通知を受信したとき、前記印字データを前記プリンタからのオンライン状態の通知を受信した後に前記プリンタへ再送する工程と、
を実行することを特徴とする。
【００１８】
本発明のプリンタは、ホストコンピュータからの制御コマンドを含むデータを一時的に保持する受信バッファを備え、該受信バッファ内のデータを解釈してその内容に従い動作するプリンタにおいて、
プリンタが、前記データの解釈をしないオフライン状態又は前記データの解釈をするオンライン状態の何れの状態にあるかを検出するライン状態検出手段と、
前記ライン状態検出手段により、プリンタが前記オフライン状態にあることが検出された場合に、前記受信バッファ内のデータをクリアするデータクリア手段と、
プリンタが前記オフライン状態にある間、前記ホストコンピュータから受信するデータを破棄するデータ破棄手段と、
プリンタが受信した前記データが、直ちに実行するよう規定された制御コマンドであるか否かを判断するコマンド判定手段と、
前記オフライン状態において、前記コマンド判定手段により、受信したデータが前記直ちに実行するよう規定された制御コマンドであると判断された場合に、該コマンドを解釈し、その内容に従いプリンタを動作するプリンタ動作手段と、
前記コマンドを破棄するコマンド破棄手段と、
を備え、
前記データクリア手段は、前記ライン状態検出手段が前記オフライン状態を検出した後に前記オンライン状態を検出した場合にも、前記受信バッファ内のデータをクリアすることを特徴とする。
【００１９】
本発明のプリンタは、ホストコンピュータからのデータを受信する受信手段と、
前記受信手段により受信したデータを格納する受信バッファと、
前記受信バッファ内の受信データを解釈しないオフライン状態における、データクリアモードとデータ保持モードのいずれかを保持する保持手段と、
前記保持手段が前記データクリアモードを保持しているとき、前記オフライン状態では、前記受信バッファ内のデータをクリアするデータクリア手段と、
前記保持手段が前記データクリアモードを保持しているとき、前記オフライン状態では、新たに前記ホストコンピュータから受信したデータを受信バッファに格納しないよう制御する制御手段と、
前記受信手段には、前記ホストコンピュータから前記オフライン状態でも実行可能なコマンドを受信したとき、前記オフライン状態でも、オンライン状態でも、前記保持手段に保持されているモードにもよらず、前記実行可能なコマンドを実行する実行手段と、
を備えたことを特徴とする。
【００２０】
本発明の請求項６に記載のプリンタは、前記保持手段は、前記データクリアモードと前記データ保持モードとを、前記ホストコンピュータからの受信コマンドによって設定されることを特徴とする。
【００２１】
本発明の請求項５〜７に記載のプリンタに、制御コマンドを含むデータを送出するホストコンピュータは、
印字の終了通知を要求するコマンドを伴った印字データを、前記プリンタへ送出するデータ送出手段と、
前記コマンドに対する前記プリンタからの前記印字の終了通知を待ち受ける通知待ち受け手段と、
前記プリンタからの前記オフライン状態又は前記オフライン状態の何れかの状態の通知を受信する状態通知受信手段と、
前記状態通知受信手段が、前記印字の終了通知の待ち受け中に、前記オフライン状態の通知を受信した場合に、前記印字データを、前記プリンタからの前記オンライン状態の通知を受信した後に、前記プリンタへ再送する印字データ再送手段と、
を備えたことを特徴とする。
【００４７】
また、前記ホストコンピュータから受信したデータのうち、リアルタイムコマンドのみを実行することを特徴とする。
【００４８】
この方法によれば、プリンタがオフライン状態のとき、受信バッファがフルになることなく、ビジーがプリンタからホストコンピュータに送信されることもない。
【００４９】
従って、ホストコンピュータからリアルタイムコマンドを確実に受信することができ、さらにリアルタイムコマンドを実行することができる。
【００５０】
【発明の実施の形態】
以下、本発明の一実施形態を図面に沿って説明する。図１は本発明の実施に際し採用されるプリンタ及びホストコンピュータの一般的接続形態を示す概念図である。プリンタ１５は、セントロニクスその他のインタフェースケーブル１４を介してパーソナルコンピュータなどのホストコンピュータ（以下、単にホストという）１０に接続され、ホスト１０からの制御コマンドを含むデータを受信して動作する。代表的なホスト１０からのデータの送信手順は、ホスト１０上で稼動される任意のアプリケーション１１上で、ユーザが印刷命令を実行することによって開始される。アプリケーション１１における印刷命令は、プリンタドライバ１２を介して、プリンタスプーラ１３に渡される。プリンタスプーラ１３では、複数の印刷要求をローカルのメモリ上に一時的に蓄え、順次これらをプリンタ１５へ送信する。
【００５１】
プリンタ１５側では、前記順次送られるデータを、それが後に説明するリアルタイムコマンドである場合を除き、ＦＩＦＯで構成された受信バッファ１７に一時的に格納する。受信バッファ１７に格納されたデータは、ＣＰＵ１６で実現される受信データ解釈部１８において、最初に格納されたものから順次読み出され、その制御コマンドが解釈される。プリンタのメカ制御部１９はこの解釈された制御コマンドに従って、プリンタのメカ部を駆動制御し、印字その他の機能を実行させる。受信データ解釈部１８で解釈されたデータが印字命令である場合、ＣＰＵ１６は、受信バッファ１７内の印字データをプリントバッファ２０に展開し、印刷ヘッド２１及び紙送り機構２２を動作させて、このプリントバッファ２０に展開された印字データを印字出力する。
【００５２】
本発明に係るプリンタ１５は、前記ホスト１０からの制御コマンドによって、その動作の設定が可能に構成されている。すなわちプリンタ１５は、そのＲＡＭ２３の所定領域を各種設定用のものとして確保してあり、該領域に所定の値を設定し又はこれを変更することができる。ＲＡＭ２３上に記録された各種設定は、必要に応じてＣＰＵ１６により読み出されて解釈され、該設定に応じた処理が実行される。
【００５３】
また、その動作設定は、ここでは図示しないＥＥＰＲＯＭ（Electrically Erasable Programable ROM：電気的に書き換え可能な不揮発性メモリ）やフラッシュメモリといった、書き換え可能な不揮発性メモリに保存するようにしてもよい。この場合、不揮発性メモリに保存されるため、プリンタ１５の電源がオフされても、その設定内容が消えることはない。
【００５４】
本発明に係るプリンタ１５は、プリンタ１５がオフライン状態にあるときの前記受信データの取り扱い方法を設定するＲＡＭ２３上の領域を有している。これは、プリンタ１５がオフライン状態にあるときに、既に受信バッファ１７上にあるデータ及びオフライン状態の間に受信したデータ、並びにプリントバッファ２０上に展開されたデータを保持するか又は破棄するかを設定するものである。初期状態において前記設定は、例えばデータを「保持する」に設定することができ、ホスト１０からの制御コマンドによって、後にこれを「破棄する」に変更することができる。
【００５５】
本発明に係る制御に関連して、プリンタ１５はＣＰＵ１６で実現されるリアルタイムコマンド判断部及び実行部２５を有する。リアルタイムコマンド判断部及び実行部２５は、受信したデータを受信バッファ１７に格納するのに先立って、それがリアルタイムコマンドであるか否かを判定する。判定されたコマンドがリアルタイムコマンドである場合、他の処理に先立って直ちにこのコマンドで指定された処理を実行する。後に説明するように、前記オフライン状態におけるデータ処理の設定が「破棄する」に設定されている場合においても、該リアルタイムコマンドは解釈され、実行される。なお、ＲＯＭ２４には、ＣＰＵ１６による制御を実行するためのプログラム、各種設定データ及びフォントデータが格納されている。該ＲＯＭ２４は、これが物理的に複数のメモリ素子により構成されるものであって良く、またＥＥＰＲＯＭなどの書き替え可能な不揮発性メモリによりこれを構成しても良い。
【００５６】
プリンタ１５はまた、ＣＰＵ１６で実現されるステータス処理部２６を有する。ステータス処理部２６は、プリンタ１５の各種状態情報を、ホスト１０側からの要求に基づかず、自動的にホスト１０へ通知する自動状態情報通知機能（ＡＳＢ：Automatic Status Back、以下、ＡＳＢという）を実現する。ＡＳＢの実現に際しては、予めホスト１０によって、ＡＳＢの対象となる状態情報をプリンタ１５に設定しておく。プリンタ１５は、ＡＳＢの対象とされた状態情報に変化があった場合に、ホスト１０にこれを通知する。ＡＳＢを自動的に受信することによって、ホスト１０は、状態情報をプリンタ１５へ要求することなく、ＡＳＢによって得られた情報に基づいて、印字データの送出、プリンタ１５の制御が可能となる。
【００５７】
本発明においてホスト１０は、プリンタ１５がオンライン状態にあるのかオフライン状態にあるのかを監視するために、プリンタ１５からのＡＳＢ及びリアルタイムコマンドに対する応答を用いる。
【００５８】
図２は、本発明の一実施形態に係るプリンタ１５のオフライン時における制御を示すフローチャートである。所定の要因によりプリンタ１５がオフライン状態にされたときに、本図に従う処理が実行される。プリンタ１５をオフライン状態にする要因としては、例えば、ユーザによるプリンタ１５のカバーオープン時や、紙なし時、プリンタ制御上における所定のエラーの発生時などがある。
【００５９】
前記所定の要因によりプリンタ１５がオフライン状態にされると、ＣＰＵ１６はこれを検知し、図２のオフライン処理を実行する。オフライン処理の最初の工程２０１で、先に説明したＲＡＭ２３上の設定情報が読み出され、解釈される。
読み出された設定モードが「破棄する」に設定されている場合、処理は工程２０２に渡され、受信バッファ１７及びプリントバッファ２０に保持された全てのデータがクリアされる。一つの実施態様として、受信バッファ１７及びプリントバッファ２０の読み出し位置を指定するポインタを初期化することによって、これを実現することができる。設定モードが「保持する」に設定されている場合は、受信バッファ１７及びプリントバッファ２０をクリアすることなく、処理を工程２０３に移す。
【００６０】
工程２０３では、プリンタ１５がオフライン状態にあるか否かが判断される。
本オフライン処理の開始後に、ユーザ等によってプリンタ１５がオンライン状態に切り替えられた場合、処理は工程２１５に移り、設定モードが「破棄する」に設定されている場合、受信バッファ１７及びプリントバッファ２０をクリアした後に、オンラインに復帰した場合の処理２０５が実行される。設定モードが「保持する」に設定されている場合は、受信バッファ１７及びプリントバッファ２０をクリアすることなく処理を工程２０５に移す。
【００６１】
後述するように、設定モードが「破棄する」に設定されている場合は、オフライン中、各バッファにデータが蓄積されることはないので、必ずしもオンライン復帰時にバッファをクリアする必要はないが、設定モードが「保持する」に設定されている場合には、これをクリアすることにより、該復帰時にバッファ内のデータに基づくエラーの発生などを回避することができる。
【００６２】
なお、プリンタ１５は、オフライン状態にあるときでも、ホスト１０からデータを受信できるようにされている。
【００６３】
工程２０３の判断で、オフライン状態が維持されている場合、プリンタ１５はホスト１０からのデータの待機状態になり（工程２０６）、オフライン状態が維持されている間に、ホスト１０からのデータを受信すると、処理は工程２０７に渡される。次に、工程２０７では、リアルタイムコマンド判断部及び実行部２５において、このデータがリアルタイムコマンドを含むか否かが判断される。データがリアルタイムコマンドを含まない場合、処理は工程２１０へ移る。
【００６４】
データがリアルタイムコマンドを含む場合、処理は工程２０８へ移り、ここでリアルタイムコマンドが解釈され、実行され、次いで、工程２１０へ移る。工程２１０では、前記バッファ内のデータを保持するか破棄するかの設定が確認される。設定モードが「破棄する」に設定されている場合、ここで受信したデータは受信バッファ１７に格納されることなく、工程２１１で破棄され、処理は次の受信データのために、工程２０３〜２１０を繰り返す。前記工程２０３〜２１０の処理は、プリンタ１５がオフライン状態にある間繰り返される。この結果、オフライン状態中に、受信バッファ１７がフルになることがなくなり、通信インタフェースがビジー状態になることがない。
【００６５】
一方、前記オフライン状態時の設定モードが「保持する」に設定されている場合、工程２１０で、処理は工程２１２に渡される。工程２１２では、受信バッファ１７がフルであるか否かが判断される。その結果、フルでない場合、受信バッファ１７内に受信したデータを受信バッファ１７に順次蓄積する（工程２１３）。工程２１２でフルである場合、ホスト１０に対しインタフェースがビジーである旨の通知をする（工程２１４）。
【００６６】
次に、プリンタ１５の制御に対するホスト１０側の制御について説明する。図２に示した制御において、オフライン時におけるデータ処理の設定モードが、「破棄する」の設定にされている場合、プリンタ１５がオフライン中にホスト１０から送出された印字データは、全て破棄されてしまい、印刷されることがない。
本実施形態におけるホスト１０の制御では、これに対処するために、オフライン時に送出された印字データを、オフライン後に再送できるようにする。
【００６７】
ホスト１０は、プリンタ１５に送出された印字データが、プリンタ１５で全て印刷されたか否かを把握するために、印刷の終了の通知を要求する制御コマンド（以下、これを印刷終了コマンドという）を用いる。印刷終了コマンドは、ホスト１０からの該コマンドの送出に応答して、対象印刷データの印刷が終了した後に、プリンタ１５から返送されるコマンドである。本実施形態では、該コマンドと共に、該コマンドの前に送出された印字データを対象の印刷データとする。
【００６８】
本発明の実施に際し、前記印刷終了コマンドは、同様の特徴を持った、すなわち印刷の終了を待ってから返送されるコマンドをもってこれに代えることができる。一つの実施例において、「ＥＳＣ  ｒ  １」コマンドを、印刷終了コマンドとして用いることができる。該コマンドは、プリンタ１５の用紙の状態を１バイトのステータスとしてホスト１０へ返信するコマンドである。このコマンドは、プリンタ１５が印刷中の状態にある場合は、その印刷が終了するまで待ってから用紙の状態を確認し、ホスト１０にこれを通知する。
【００６９】
図３は、印字データをプリンタ１５に送出する際のホスト１０側の制御を示すフローチャートである。以下では、本フローチャートに従って、ホスト１０側の処理の手順を説明する。プリンタ１５がオンライン状態にあることが確認されると（工程３０１）、ホスト１０は印字データを、その最後に印刷終了コマンドを付加して送出する（工程３０２）。印字データが、印刷終了コマンドを付加したかたちで、プリンタ１５側へ送出されると、ホスト１０は、印刷終了後にプリンタ１５から返送される印刷終了コマンドに対する応答を待ち受ける（工程３０３）。該待ち受けは、プリンタ１５がオフライン状態に遷移されない限り続けられる（工程３０４）。そして、プリンタ１５において印字データに対する印字が終了し、印刷終了コマンドに対する応答がホスト１０へ返されると（工程３０３における肯定応答）、ホスト１０側では、送出した印字データの印字が無事に行われたと判断し、この処理を終了する。
【００７０】
一方、印刷終了コマンドが返送される前に、プリンタ１５側において障害等が発生し、プリンタ１５がオフライン状態に遷移すると、プリンタ１５からはオフラインを示す状態通知が送られてくる（工程３０４）。ホスト１０側では、前記オフラインを示す状態通知を受信した場合、プリンタ１５がオンラインになることを待ち受ける処理３０５に移行する。次いで、プリンタ１５における障害等の問題が解消され、その状態がオンラインにされると、ホスト１０は工程３０５においてその通知を受け、先に送った印字データを印刷終了コマンドと共に再送する（工程３０６）。なお、プリンタ１５からのオフライン又はオンラインの状態通知は、先に説明したプリンタ１５のＡＳＢ機能によって実現される。
【００７１】
図２に示すオフライン時のプリンタ１５の制御において、設定モードが「破棄する」にされている場合、プリンタ１５がオフラインに遷移した際に受信バッファ１７及びプリントバッファ２０に保持されていたデータは、破棄されてしまう。ホスト１０において印字データの送出時に、図３に示した処理を実行することによって、前記設定にも拘わらず、送出した印字データを確実に印刷できるようになる。
【００７２】
図４は、プリンタ１５がオンライン状態にあるときに、図３の処理に従ってホスト１０から印字データが送られてきた場合のプリンタ１５における処理を示すフローチャートである。プリンタ１５は、受信バッファ１７内にデータがあるか確認し（工程４０１）、データがある場合にはこれを所定のデータ単位毎に読み出して、受信データ解釈部１８に渡す（工程４０２）。受信データ解釈部１８において、読み出したデータが印字データであるか判断され（工程４０３）、印字データである場合、ＣＰＵ１６は印字処理を実行し（工程４０４）、全ての印字データが読み出されるまでこの処理を繰り返す。
【００７３】
工程４０２で全ての印字データが読み出され処理されると、該データに付加された印刷終了コマンドが読み出されるので、工程４０３で処理は工程４０５に移される。工程４０５では、読み出されたデータが印刷終了コマンドであると、印刷の処理が完全に終了するのを待って（工程４０６）、終了コマンドに対する応答をホスト１０へ返送する（４０７）。前述のようにホスト１０側ではこの応答を受信し、送出した印字データに対する全ての印刷が終了したことを確認する。
印刷が終了する前に、プリンタ１５に障害等が発生しオフラインに遷移されると（工程４０８）処理は、図２に示したオフライン処理４０９に移される。
【００７４】
以上、本発明の一実施形態を図面に沿って説明したが、本発明は前記実施形態において示された事項に限定されず、特許請求の範囲及び発明の詳細な説明の記載、並びに周知の技術に基づいて、当業者がその変更・応用を行うことができる範囲が含まれる。本実施形態に示したホスト１０におけるデータの送信手順は、本発明を限定するものではなく、既知の他の方法に従ってデータを送信する手順が含まれる。また、前記実施形態においては、設定によって、プリンタ１５がオフライン状態にあるときに、ホスト１０から送出されたデータはそれがリアルタイムコマンドである場合を除き、全て破棄するように構成した。しかしながら、オフライン状態の遷移時に受信バッファ１７及びプリントバッファ２０をクリアするが、オフライン中に受信したデータは、これを保持するように構成しても良い。この場合、設定モードを２ビットで構成し、１ビットをオフライン状態の遷移時におけるデータ処理の設定用とし、１ビットをオフライン中に受信したデータ処理の設定用にすれば良い。
【００７５】
また、ビジー信号をホスト１０に送信するのは、受信バッファ１７がフルになったときであるので、オフラインのとき、プリントバッファ２０はクリアせず、受信バッファ１７のみをクリアしてもよい。
【００７６】
【発明の効果】
以上の如く本発明によれば、プリンタがオフライン状態にあるときに、大量のデータを受信したような場合であっても、プリンタの受信バッファはフルにならず、ホストコンピュータとの通信インタフェースがビジー状態になることはない。従ってこのような場合でもホストコンピュータは制御コマンドをプリンタへ送信することができるので、プリンタの状態を把握したり、又はエラー状態から復帰したりすることが可能となる。また、このようにプリンタ側でデータが破棄されるので、ホストコンピュータからプリンタスプーラを介して印字データを送出するような構成のシステムにおいては、該プリンタスプーラがエラーになることがなくなる。
【００７７】
また、本発明によって、プリンタがオフライン状態にあるときに、前記受信データを保持するモードと破棄するモードとを選択可能にでき、その使用状況に応じた設定が可能となる。
【００７８】
更に、本発明によれば、オフライン状態においてもリアルタイムコマンドに従う制御が実行可能になり、この内容に従ってプリンタの状態の把握や障害からの回復が可能となる。
【００７９】
また、本発明によれば、前記プリンタの処理により受信バッファ内のデータがクリアされる場合においても、ホストコンピュータ側では対象のデータを再送することができるようになり、従ってプリンタにおいて、印字データに対する印字を確実に行わせることができる。
【図面の簡単な説明】
【図１】本発明の実施に際し採用されるプリンタ及びホストコンピュータの一般的接続形態を示す概念図である。
【図２】本発明の一実施形態に係るプリンタのオフライン時における制御を示すフローチャートである。
【図３】印字データをプリンタに送出する際のホスト側の制御を示すフローチャートである。
【図４】図３の処理に従ってホストコンピュータから印字データが送られてきた場合のプリンタにおける処理を示すフローチャートである。
【図５】受信バッファがフルになる場合を説明するための受信バッファの概念図である。
【図６】レシート印刷用のプリンタにおける一般的ビットマップ印字例である。
【符号の説明】
１０  ホストコンピュータ
１１  アプリケーション
１２  プリンタドライバ
１３  プリンタスプーラ
１４  インタフェースケーブル
１５  プリンタ
１６  ＣＰＵ
１７  受信バッファ
１８  受信データ解釈部
１９  メカ制御部
２０  プリントバッファ
２１  印刷ヘッド
２２  紙送り機構
２３  ＲＡＭ
２４  ＲＯＭ
２５  リアルタイムコマンド判断部及び実行部
２６  ステータス処理部
【図１】
0004560917.tif 000002
【図２】
0004560917.tif 000003
【図３】
0004560917.tif 000004
【図４】
0004560917.tif 000005
【図５】
0004560917.tif 000006
【図６】
0004560917.tif 000007