| 【発明の名称】 |
プリンタ、プリンタの制御方法、そのためのプログラム、及び、そのプログラムを記録した記録媒体 |
| 【発明者】 |
【氏名】渡 辺 博 之
【氏名】中▲槙▼基 裕
|
| 【要約】 |
【課題】プリンタが不要な印刷を行うのを可及的に少なくする。
【解決手段】メインタスク44は、読み出しタスク42が実際に受信バッファ22から受信データを読み出す前に、適宜受信バッファ22から受信データを先読みする。先読みした結果、メインタスク44がキャンセルコマンドを見つけた場合には、それまで印刷管理タスク46に送信した印刷要求データをキャンセルする指令を、印刷管理タスク46に送信する。これにより、印刷のキャンセルが行われる。 |
【特許請求の範囲】
【請求項1】受信した印刷用データと制御用データとを受信データとして受信した順に受信バッファに格納する、格納手段と、前記受信バッファから格納した順に前記受信データを読み出し、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、解釈実行手段と、前記受信バッファに格納されている前記受信データを、前記解釈実行手段で読み出す前に先読みし、この先読みした受信データの中から制御用データのうちの特定の制御コマンドを検出した場合には、その検出した制御コマンドに応じた処理を前記解釈実行手段よりも先に行う、先読み処理手段と、を備えることを特徴とするプリンタ。 【請求項2】前記特定の制御コマンドは、それ以前に受信した印刷用データに基づく印刷を、キャンセルするためのキャンセルコマンドであり、前記先読み処理手段が前記キャンセルコマンドを検出した場合には、このキャンセルコマンドを前記解釈実行手段よりも先に実行する、ことを特徴とする請求項1に記載のプリンタ。 【請求項3】前記先読み処理手段が、前記キャンセルコマンドを実行した場合には、前記解釈実行手段が前記受信バッファから前記受信データを読み出す位置を、前記キャンセルコマンドの次の位置からに変更させる、読み出し位置変更手段を、さらに備えることを特徴とする請求項2に記載のプリンタ。 【請求項4】前記先読み処理手段が、前記制御コマンドのうち特定の制御コマンドを実行した場合には、前記受信バッファにおける実行した制御コマンドの部分をノーオペレーションコマンドに書き替える、書き替え手段を、さらに備えることを特徴とする請求項1に記載のプリンタ。 【請求項5】前記印刷用データと前記制御用データとをコンピュータから受信するための論理チャネルが1本である、ことを特徴とする請求項1乃至請求項4のいずれかに記載のプリンタ。 【請求項6】前記解釈実行手段は、前記受信バッファから読み出しポインタに基づいて前記受信データを読み出して出力するとともに、その都度前記読み出しポインタをカウントアップする、読み出しタスクと、前記読み出しタスクから取得した前記受信データに基づいて、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、メインタスクと、を所定の優先順位で中央処理装置に割り当てて実行することにより実現され、前記先読み処理手段は、前記メインタスクに組み込まれた先読み実行処理であって、前記受信バッファから先読みポインタに基づいて前記受信データを読み出して、その都度この先読みポインタをカウントアップするとともに、この受信データの中からキャンセルコマンドを検出した場合には、このキャンセルコマンドよりも前に受信した前記印刷用データに基づく印刷をキャンセルする先読み実行処理により実現される、ことを特徴とする請求項2に記載のプリンタ。 【請求項7】前記解釈実行手段は、前記受信バッファから読み出しポインタに基づいて前記受信データを読み出して出力するとともに、その都度前記読み出しポインタをカウントアップする、読み出しタスクと、前記読み出しタスクから取得した前記受信データに基づいて、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、メインタスクと、を所定の優先順位で中央処理装置に割り当てて実行することにより実現され、前記先読み処理手段は、前記受信バッファから先読みポインタに基づいて前記受信データを読み出して、その都度この先読みポインタをカウントアップするとともに、この受信データの中からキャンセルコマンドを検出した場合には、このキャンセルコマンドよりも前に受信した前記印刷用データに基づく印刷をキャンセルするメッセージを前記メインタスクに送信する、先読みタスクを、所定の優先順位で中央処理装置に割り当てて実行することにより実現される、ことを特徴とする請求項2に記載のプリンタ。 【請求項8】前記解釈実行手段は、前記受信バッファから読み出しポインタに基づいて前記受信データを読み出して出力するとともに、その都度前記読み出しポインタをカウントアップする、読み出しタスクと、前記読み出しタスクから取得した前記受信データに基づいて、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドの内容を実行する、メインタスクと、を所定の優先順位で中央処理装置に割り当てて実行することにより実現され、前記先読み処理手段は、前記受信バッファから先読みポインタに基づいて前記受信データを読み出して、その都度この先読みポインタをカウントアップするとともに、この受信データの中からキャンセルコマンドを検出した場合には、このキャンセルコマンドよりも前に受信した前記印刷用データに基づく印刷をキャンセルするメッセージを前記読み出しタスクに送信する、先読みタスクを、所定の優先順位で中央処理装置に割り当てて実行することにより実現される、ことを特徴とする請求項2に記載のプリンタ。 【請求項9】前記先読みタスクに中央処理装置が割り当てられる優先順位は、前記読み出しタスクと前記メインタスクとの優先順位よりも、低い、ことを特徴とする請求項7又は請求項8に記載のプリンタ。 【請求項10】前記読み出しタスクは、前記先読み処理手段により前記キャンセルコマンドが検出された場合には、前記読み出しポインタを前記先読みポインタの次の位置まで進める、ことを特徴とする請求項6乃至請求項9のいずれかに記載のプリンタ。 【請求項11】前記特定の制御コマンドは、その後に受信した印刷用データを印刷する紙のサイズを指定する紙サイズ指定コマンドであり、前記先読み処理手段が前記紙サイズ指定コマンドを検出した場合には、その紙サイズ指定コマンドで指定するサイズの紙に印刷が可能であるか否かを事前に判断し、印刷が不可能である場合にはその旨をユーザに通知する、ことを特徴とする請求項1に記載のプリンタ。 【請求項12】前記先読み処理手段が前記紙サイズ指定コマンドを検出した場合には、前記紙サイズ指定コマンドで指定するサイズの給紙トレイがあるかどうかを判断し、そのサイズの給紙トレイがない場合には、その旨をユーザに通知し、前記紙サイズ指定コマンドで指定するサイズの給紙トレイに紙があるかどうかを判断し、その紙がない場合には、その旨をユーザに通知する、ことを特徴とする請求項11に記載のプリンタ。 【請求項13】前記解釈実行手段は、前記受信バッファから読み出しポインタに基づいて前記受信データを読み出して出力するとともに、その都度前記読み出しポインタをカウントアップする、読み出しタスクと、前記読み出しタスクから取得した前記受信データに基づいて、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、メインタスクと、を所定の優先順位で中央処理装置に割り当てて実行することにより実現され、前記先読み処理手段は、前記メインタスクに組み込まれた先読み判断処理であって、前記受信バッファから先読みポインタに基づいて前記受信データを読み出して、その都度この先読みポインタをカウントアップするとともに、この受信データの中から紙サイズ指定コマンドを検出した場合には、その紙サイズ指定コマンドで指定するサイズの紙に印刷が可能であるか否かを事前に判断し、印刷が不可能である場合にはその旨をユーザに通知する、先読み判断処理により実現される、ことを特徴とする請求項11に記載のプリンタ。 【請求項14】前記解釈実行手段は、前記受信バッファから読み出しポインタに基づいて前記受信データを読み出して出力するとともに、その都度前記読み出しポインタをカウントアップする、読み出しタスクと、前記読み出しタスクから取得した前記受信データに基づいて、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、メインタスクと、を所定の優先順位で中央処理装置に割り当てて実行することにより実現され、前記先読み処理手段は、前記受信バッファから先読みポインタに基づいて前記受信データを読み出して、その都度この先読みポインタをカウントアップするとともに、この受信データの中から紙サイズ指定コマンドを検出した場合には、その紙サイズ指定コマンドで指定するサイズの紙に印刷が可能であるか否かを事前に判断し、印刷が不可能である場合にはその旨をユーザに通知する、先読みタスクを、所定の優先順位で中央処理装置に割り当てて実行することにより実現される、ことを特徴とする請求項11に記載のプリンタ。 【請求項15】受信した印刷用データと制御用データとを受信データとして受信した順に受信バッファに格納する、格納工程と、前記受信バッファから格納した順に前記受信データを読み出し、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、解釈実行工程と、前記受信バッファに格納されている前記受信データを、前記解釈実行工程で読み出す前に先読みし、この先読みした受信データの中から制御用データのうちの特定の制御コマンドを検出した場合には、その検出した制御コマンドに応じた処理を前記解釈実行工程よりも先に行う、先読み処理工程と、を備えることを特徴とするプリンタの制御方法。 【請求項16】プリンタを制御するためのプログラムであって、前記プリンタに、受信した印刷用データと制御用データとを受信データとして受信した順に受信バッファに格納する、格納ステップと、前記受信バッファから格納した順に前記受信データを読み出し、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、解釈実行ステップと、前記受信バッファに格納されている前記受信データを、前記解釈実行ステップで読み出す前に先読みし、この先読みした受信データの中から制御用データのうちの特定の制御コマンドを検出した場合には、その検出した制御コマンドに応じた処理を前記解釈実行ステップよりも先に行う、先読み処理ステップと、を実行させることを特徴とするプログラム。 【請求項17】プリンタを制御するためのプログラムが記録された記録媒体であって、前記プリンタに、受信した印刷用データと制御用データとを受信データとして受信した順に受信バッファに格納する、格納ステップと、前記受信バッファから格納した順に前記受信データを読み出し、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、解釈実行ステップと、前記受信バッファに格納されている前記受信データを、前記解釈実行ステップで読み出す前に先読みし、この先読みした受信データの中から制御用データのうちの特定の制御コマンドを検出した場合には、その検出した制御コマンドに応じた処理を前記解釈実行ステップよりも先に行う、先読み処理ステップと、を実行させるプログラムを記録したことを特徴とする記録媒体。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、プリンタ、プリンタの制御方法、そのためのプログラム、及び、そのプログラムを記録した記録媒体に関し、例えば、1つの論理チャネルでコンピュータからのデータを受信するプリンタ、プリンタの制御方法、そのためのプログラム、及び、そのプログラムを記録した記録媒体に関する。 【0002】 【従来の技術】一般に、プリンタには、印刷を行うための印刷用データと、プリンタを制御するための制御用データとが、入力される。これら入力された印刷用データと制御用データとは、プリンタの受信バッファに格納される。 【0003】この場合、コンピュータとプリンタとの間の論理チャネルが1本しかないインターフェース仕様で接続されている場合、これら印刷用データと制御用データとは、1本の論理チャネルを使って、コンピュータからプリンタに送信され、受信した順に受信バッファに格納される。 【0004】制御用データに含まれる制御コマンドの代表的なものとしては、これまで送信した印刷用データの印刷をキャンセルするキャンセルコマンドや、プリンタの設定状態の回答を求めるステータスリプライコマンドや、これから印刷する印刷データの紙サイズを指定する紙サイズ指定コマンドなどが、あげられる。 【0005】受信バッファに格納された印刷用データと制御用データとは、格納された順に読み出されて、言語解釈が行われ、印刷用データであればビットイメージデータに展開され、制御用データであればその制御コマンドに基づいた処理が実行される。 【0006】 【発明が解決しようとする課題】上述したような1本の論理チャネルしか有しないインターフェース仕様のプリンタにおいては、コンピュータから送信された順でしかプリンタでデータが処理されないため、様々な不自由な点が存在していた。 【0007】例えば、すでにコンピュータからプリンタへ送信済みの印刷用データに基づく印刷をキャンセルするべく、コンピュータからプリンタにキャンセルコマンドを送信した場合でも、すでに送信済みの印刷用データの言語解釈を終えた後でないと、キャンセルコマンドの解釈を行ってもらえず、結局無駄な印刷を行ってしまうという問題があった。 【0008】そこで本発明は、前記課題に鑑みてなされたものであり、受信バッファに格納された受信データを必要に応じて先読みすることにより、印刷用データの実際の処理を行う前に制御用データの解釈をできるプリンタを提供することを目的とする。 【0009】 【課題を解決するための手段】上記課題を解決するため、本発明に係るプリンタは、受信した印刷用データと制御用データとを受信データとして受信した順に受信バッファに格納する、格納手段と、前記受信バッファから格納した順に前記受信データを読み出し、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、解釈実行手段と、前記受信バッファに格納されている前記受信データを、前記解釈実行手段で読み出す前に先読みし、この先読みした受信データの中から制御用データのうちの特定の制御コマンドを検出した場合には、その検出した制御コマンドに応じた処理を前記解釈実行手段よりも先に行う、先読み処理手段と、を備えることを特徴とする。このようにすることにより、解釈実行手段が受信データについて本来の解釈を行うよりも前に、先読み処理手段が特定の制御コマンドについて必要な処理を行うことができるようになる。 【0010】この場合、前記特定の制御コマンドは、それ以前に受信した印刷用データに基づく印刷を、キャンセルするためのキャンセルコマンドであってもよい。前記先読み処理手段がキャンセルコマンドを検出した場合には、このキャンセルコマンドを解釈実行手段よりも先に実行する。このようにすることにより、キャンセルコマンドをプリンタが受信するまでに既に受信していた印刷用データに基づく印刷を、キャンセルすることができるようになり、無駄な印刷を可及的に少なくすることができる。 【0011】さらに、前記先読み処理手段が、前記キャンセルコマンドを実行した場合には、前記解釈実行手段が前記受信バッファから前記受信データを読み出す位置を、前記キャンセルコマンドの次の位置からに変更させる、読み出し位置変更手段を、備えるようにしてもよい。このようにすることにより、プリンタはキャンセルコマンドが入力された後に受信した受信データに基づく処理を、速やかに実行することができるようになる。 【0012】またさらに、前記先読み処理手段が、前記制御コマンドのうち特定の制御コマンドを実行した場合には、前記受信バッファにおける実行した制御コマンドの部分をノーオペレーションコマンドに書き替える、書き替え手段を、備えるようにしてもよい。このようにすることにより、先読み処理手段ですでに実行した特定の制御コマンドを、解釈実行手段が再び実行してしまうのを回避することができる。 【0013】本発明は、前記印刷用データと前記制御用データとをコンピュータから受信するための論理チャネルが1本であるプリンタに適用することにより、極めて優れた効果を発揮し得る。 【0014】さらに、前記解釈実行手段は、前記受信バッファから読み出しポインタに基づいて前記受信データを読み出して出力するとともに、その都度前記読み出しポインタをカウントアップする、読み出しタスクと、前記読み出しタスクから取得した前記受信データに基づいて、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、メインタスクと、を所定の優先順位で中央処理装置に割り当てて実行することにより実現され、前記先読み処理手段は、前記メインタスクに組み込まれた先読み実行処理であって、前記受信バッファから先読みポインタに基づいて前記受信データを読み出して、その都度この先読みポインタをカウントアップするとともに、この受信データの中からキャンセルコマンドを検出した場合には、このキャンセルコマンドよりも前に受信した前記印刷用データに基づく印刷をキャンセルする先読み実行処理により実現されるようにしてもよい。 【0015】また、前記解釈実行手段は、前記受信バッファから読み出しポインタに基づいて前記受信データを読み出して出力するとともに、その都度前記読み出しポインタをカウントアップする、読み出しタスクと、前記読み出しタスクから取得した前記受信データに基づいて、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、メインタスクと、を所定の優先順位で中央処理装置に割り当てて実行することにより実現され、前記先読み処理手段は、前記受信バッファから先読みポインタに基づいて前記受信データを読み出して、その都度この先読みポインタをカウントアップするとともに、この受信データの中からキャンセルコマンドを検出した場合には、このキャンセルコマンドよりも前に受信した前記印刷用データに基づく印刷をキャンセルするメッセージを前記メインタスクに送信する、先読みタスクを、所定の優先順位で中央処理装置に割り当てて実行することにより実現されるようにしてもよい。 【0016】一方、前記解釈実行手段は、前記受信バッファから読み出しポインタに基づいて前記受信データを読み出して出力するとともに、その都度前記読み出しポインタをカウントアップする、読み出しタスクと、前記読み出しタスクから取得した前記受信データに基づいて、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドの内容を実行する、メインタスクと、を所定の優先順位で中央処理装置に割り当てて実行することにより実現され、前記先読み処理手段は、前記受信バッファから先読みポインタに基づいて前記受信データを読み出して、その都度この先読みポインタをカウントアップするとともに、この受信データの中からキャンセルコマンドを検出した場合には、このキャンセルコマンドよりも前に受信した前記印刷用データに基づく印刷をキャンセルするメッセージを前記読み出しタスクに送信する、先読みタスクを、所定の優先順位で中央処理装置に割り当てて実行することにより実現されるようにしてもよい。 【0017】これらのように、解釈実行手段と先読み実行処理を各種のタスクという形式で中央処理装置で実行することにより、本発明は容易に実現することができる。 【0018】この場合、前記先読みタスクに中央処理装置が割り当てられる優先順位は、前記読み出しタスクと前記メインタスクとの優先順位よりも、低くしてもよい。このようにすることにより、先読みタスクよりも読み出しタスクやメインタスクを優先的に実行させることができる。 【0019】さらに、前記読み出しタスクは、前記先読み処理手段により前記キャンセルコマンドが検出された場合には、前記読み出しポインタを前記先読みポインタの次の位置まで進めるようにしてもよい。これにより、読み出しタスクは受信バッファにおけるキャンセルコマンドの次の位置から受信データの読み出しを再開することができるようになる。 【0020】これに対して、前記特定の制御コマンドは、その後に受信した印刷用データを印刷する紙のサイズを指定する紙サイズ指定コマンドであってもよい。前記先読み処理手段が前記紙サイズ指定コマンドを検出した場合には、その紙サイズ指定コマンドで指定するサイズの紙に印刷が可能であるか否かを事前に判断し、印刷が不可能である場合にはその旨をユーザに通知する。これにより、このプリンタでこのままでは印刷が不可能であることを事前にユーザは知ることができ、必要な対処をとることができる。 【0021】例えば、前記先読み処理手段が前記紙サイズ指定コマンドを検出した場合には、前記紙サイズ指定コマンドで指定するサイズの給紙トレイがあるかどうかを判断し、そのサイズの給紙トレイがない場合には、その旨をユーザに通知し、前記紙サイズ指定コマンドで指定するサイズの給紙トレイに紙があるかどうかを判断し、その紙がない場合には、その旨をユーザに通知するようにしてもよい。これにより、印刷しようとしたサイズの給紙トレイがないことを、ユーザは事前に知ることができる。また、印刷しようとしたサイズの給紙トレイに紙がないことを、ユーザは事前に知ることができる。このため、ユーザは事前に必要な対処をとることができるようになる。 【0022】なお、前記解釈実行手段は、前記受信バッファから読み出しポインタに基づいて前記受信データを読み出して出力するとともに、その都度前記読み出しポインタをカウントアップする、読み出しタスクと、前記読み出しタスクから取得した前記受信データに基づいて、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、メインタスクと、を所定の優先順位で中央処理装置に割り当てて実行することにより実現され、前記先読み処理手段は、前記メインタスクに組み込まれた先読み判断処理であって、前記受信バッファから先読みポインタに基づいて前記受信データを読み出して、その都度この先読みポインタをカウントアップするとともに、この受信データの中から紙サイズ指定コマンドを検出した場合には、その紙サイズ指定コマンドで指定するサイズの紙に印刷が可能であるか否かを事前に判断し、印刷が不可能である場合にはその旨をユーザに通知する、先読み判断処理により実現されるようにしてもよい。 【0023】また、前記解釈実行手段は、前記受信バッファから読み出しポインタに基づいて前記受信データを読み出して出力するとともに、その都度前記読み出しポインタをカウントアップする、読み出しタスクと、前記読み出しタスクから取得した前記受信データに基づいて、印刷用データであればイメージ展開を行い、制御用データであればその制御コマンドを実行する、メインタスクと、を所定の優先順位で中央処理装置に割り当てて実行することにより実現され、前記先読み処理手段は、前記受信バッファから先読みポインタに基づいて前記受信データを読み出して、その都度この先読みポインタをカウントアップするとともに、この受信データの中から紙サイズ指定コマンドを検出した場合には、その紙サイズ指定コマンドで指定するサイズの紙に印刷が可能であるか否かを事前に判断し、印刷が不可能である場合にはその旨をユーザに通知する、先読みタスクを、所定の優先順位で中央処理装置に割り当てて実行することにより実現されるようにしてもよい。 【0024】なお、本発明は上述したようにプリンタを制御するプリンタの制御方法として実現することもでき、また、上述したようにプリンタを制御するためのプログラムとして実現することもでき、さらにはそのようなプログラムを記録した記録媒体としても実現することができる。 【0025】 【発明の実施の形態】〔第1実施形態〕本発明の第1実施形態に係るプリンタは、メインタスクで受信データの言語解釈を行った後に、一定の分量だけ受信バッファに格納されているデータを先読みして言語解釈を行い、先読みした受信データがキャンセルコマンドであった場合には、受信バッファにおけるこのキャンセルコマンドよりも前の位置にあるデータの印刷処理を行わないようにしたものである。より詳しくを、以下に説明する。 【0026】図1は、本発明の第1実施形態に係るプリンタのハードウェア構成を示す図である。この図1に示すように、プリンタ10は、インターフェース20と、受信バッファ22と、制御部24と、印刷実行部26とを備えて構成されている。制御部24は、本実施形態における中央処理装置(CPU:Central Processing Unit)を含んでいる。 【0027】インターフェース20には、プリンタ10に接続されたコンピュータから、印刷用データや制御用データが入力される。このインターフェース20に入力された印刷用データと制御用データとは、受信バッファ22に、受信した順に受信データとして格納される。本実施形態においては、インターフェース20はパラレルインターフェースやシリアルインターフェース等のいずれの仕様でもよい。但し、本実施形態では、インターフェース20とコンピュータとの間は、1本の論理チャネルのみで接続されている。したがって、コンピュータからプリンタ10に向けて、これら印刷用データと制御用データとを送信した順に、プリンタ10で受信され、この順で受信バッファ22に格納される。 【0028】受信バッファ22に格納された受信データのうち、印刷用データは、制御部24において、言語解釈処理、ビットイメージ展開がなされた後、印刷実行部26に送信される。そして、この印刷実行部26でプリンタエンジンを駆動した印刷が行われる。受信バッファ22に格納された受信データのうち、制御用データは、制御部24において、言語解釈処理がなされ、その制御用データの示す制御コマンドに基づいた処理が実行される。つまり、その制御コマンドに応じた、必要な処理が行われる。 【0029】次に、図2に基づいて、本実施形態に係るプリンタ10が備えているタスクについて説明する。この図2には、本実施形態を説明するのに必要なタスクのみを示しているが、このプリンタ10は他のタスクも備えている。 【0030】図2に示すように、プリンタ10は、受信タスク40と、読み出しタスク42と、メインタスク44と、印刷管理タスク46と、印刷実行タスク48とを有している。これらのタスクは、所定の優先順位で中央処理装置(CPU)が割り当てられることにより、実行される。 【0031】受信タスク40は、インターフェース20で受信された印刷用データ及び制御用データを、受信した順に受信データとして受信バッファ22に格納する。読み出しタスク42は、受信バッファ22に格納された受信データを格納された順に読み出し、メインタスク44に送信する。すなわち、読み出しタスク42は、読み出しポインタに基づいて受信バッファ22から受信データを読み出して、その都度読み出しポインタをカウントアップしていく。 【0032】メインタスク44は、受信データについて、言語解釈を行い、受信データが印刷用データである場合にはビットイメージに展開する。そして、このビットイメージに展開したデータを印刷要求データとして、印刷管理タスク46に送信する。受信データが制御用データである場合には、メインタスク44は、その制御用データが表している制御コマンドを実行する。例えば、制御コマンドが印刷をキャンセルするキャンセルコマンドであった場合には、すでに送信した印刷要求データをキャンセルする指令を印刷管理タスク46に送信する。 【0033】また、本実施形態においては、このメインタスク44は、受信バッファ22に格納されている受信データを先読みする。そして、受信データの中にキャンセルコマンドが存在するか否かを判断する。但し、メインタスク44が受信バッファ22から受信データの先読みをしても、読み出しタスク42が受信バッファ22から読み出す位置を示す読み出しポインタは変化しない。 【0034】キャンセルコマンドが見つかった場合には、メインタスク44は、印刷管理タスク46にすでに送信した印刷要求データのキャンセルをする指令を、印刷管理タスク46に送信する。印刷管理タスク46は、このキャンセル指令に基づいて、これまで受信した印刷要求データのうち、まだ印刷していない印刷要求データをキャンセルする。さらに、メインタスク44は、受信バッファ22におけるキャンセルコマンドが見つかった次の位置まで読み飛ばすように読み出しポインタを変更するよう、読み出しタスク42に指令を送信する。 【0035】印刷管理タスク46では、受信した印刷要求データをキューを用いて管理し、印刷実行タスク48の印刷処理が空き次第、印刷要求データを印刷実行タスク48に送信する。印刷実行タスク48ではこの印刷要求データに基づいて、印刷実行部26にあるプリンタエンジンを駆動して、印刷用紙に印刷を行う。印刷管理タスク46は、印刷が完了した時点で、その印刷要求データを格納しているキューの領域を開放する。 【0036】次に、図3に基づいて、メインタスク44の処理を詳しく説明する。この図3は、メインタスク44で行われるメイン処理について説明するフローチャートを示す図である。 【0037】図3に示すように、まず、メインタスク44は、読み出しタスク42から受信データを取得する(ステップS10)。続いて、この受信データについての言語解釈を行う(ステップS11)。 【0038】これに続く、ステップS12〜ステップS17とステップS19とステップS20が、本実施形態における先読み処理に相当する。すなわち、メインタスク44は、ループの回数をカウントする変数iを1に設定する(ステップS12)。続いて、メインタスク44は、先読み用の受信データを受信バッファ22の先読みポインタの位置から読み出して、取得する(ステップS13)。 【0039】次に、この先読み用の受信データが、キャンセルコマンドであるか否かを判断する(ステップS14)。キャンセルコマンドでない場合(ステップS14:No)には、先読みポインタを次のコマンドを指すようにカウントアップする(ステップS15)。例えば、キャンセルコマンドは1バイトで構成されているので、先読みポインタを1バイト分カウントアップする。但し、キャンセルコマンド以外のコマンドを先読みする場合には、カウントアップの量は1バイトとは限らない。例えば、文字品位選択コマンドは3バイトで構成されているので、先読みポインタを3バイト分カウントアップすることになる。また、構成するバイト数が不定であり、このためそのコマンド中にサイズを指定した領域を有するコマンドについては、そのコマンドのサイズを指定した領域部分を解釈し、必要な量のカウントアップを実行する。このように先読みで検索するコマンドに応じてカウントアップ量を変えるのは、先読みの効率を高めるためである。但し、この先読みポインタのカウントアップを先読みするコマンドによらずに、1バイト単位で行うようにしてもよい。 【0040】次に、メインタスク44は、ループの回数をカウントするための変数iを1つカウントアップする(ステップS16)。続いて、この変数iが5以上であるかどうかを判断する(ステップS17)。つまり、ループ回数が5回以上になったかどうかを判断する。本実施形態では、受信データを5回先読みする設定にしているが、このループ回数は5回でなくともよい。また、このループ回数は、受信バッファ22に格納されている受信データのデータ量や、印刷管理タスク46がキューに格納している印刷要求データのデータ量などによって、動的に変更することも可能である。例えば、受信バッファ22や印刷管理タスク46のキューに格納されているデータ量がある一定量を超えた場合には、先読みのループ回数を10回に増やしてもよく、これとは逆に受信バッファ22や印刷管理タスク46のキューに格納されているデータ量がある一定値を下回った場合には、先読みのループ回数を3回に減らしてもよい。 【0041】このステップS17において、5回以上先読みをしていない場合(ステップS17:No)には、上述したステップS13からの処理を繰り返す。 【0042】一方、5回以上先読みをしていた場合(ステップS17:Yes)には、上述したステップS11で行った言語解釈の結果に基づいて、実際の処理を行う(ステップS18)。すなわち、受信データを言語解釈した結果、この受信データが印刷用データであった場合には、そのデータ内容に基づいて、ビットイメージを展開し、これを印刷要求データとして、印刷管理タスク46に送信する。また、受信データを言語解釈した結果、この受信データが制御用データであった場合には、その制御用データが示す制御コマンドの内容を実行する。そして、上述したステップS10の処理に戻る。 【0043】これに対して、上述したステップS14において、先読み用の受信データが、キャンセルコマンドであると判断した場合(ステップS14:Yes)には、メインタスク44は、印刷管理タスク46に、すでに送信してある印刷要求データをキャンセルする命令を送信する(ステップS19)。続いて、その時点の先読みポインタを読み出しタスク42に送信し、読み出しタスク42における受信バッファ22からの読み出し位置を示す読み出しポインタを、先読みポインタの次の位置まで進めさせる(ステップS20)。この場合、先読みポインタの位置は、先読み処理毎に初期化することなく、継続して使用する。これにより、受信バッファ22に格納されている同じ受信データを、複数回先読みしてしまうことを避けることができる。そして、上述したステップS10の処理に戻る。 【0044】以上のように、本実施形態に係るプリンタ10によれば、メインタスク44が受信バッファ22に格納されている受信データを、随時先読みし、その中にキャンセルコマンドを見つけだした場合には、そのキャンセルコマンドよりも以前にプリンタ10が受信している印刷用データをキャンセルするようにしたので、不必要な印刷をプリンタ10が続けてしまうのを回避することができる。 【0045】〔第2実施形態〕本発明の第2実施形態は、上述した第1実施形態におけるメインタスク中の先読み処理を、別タスクとして独立に設けたものである。より詳しくを、以下に説明する。なお、第2実施形態に係るプリンタのハードウェア構成は、図1に示したものと同様である。 【0046】まず、図4に基づいて、本実施形態に係るプリンタ10のタスク構成を説明する。この図4に示すように、本実施形態に係るプリンタ10は、上述した図2に加えて、先読みタスク50を備えている。 【0047】この先読みタスク50は、先読みポインタに基づいて、受信バッファ22から受信データを順次先読みし、キャンセルコマンドが含まれていないかどうかを検索するタスクである。そして、キャンセルコマンドを見つけた場合には、このキャンセルコマンドを受信するよりも前に受信した受信データに基づく印刷をキャンセルすべく、メインタスク44にキャンセルメッセージを送信する。 【0048】メインタスク44では、上述した図3における先読み処理に関する処理は省かれており、この受信したキャンセルメッセージに基づいて、印刷をキャンセルするのに必要な処理を行う。 【0049】次に、図5に基づいて、先読みタスク50により行われる先読み処理について説明する。この図5は、先読みタスク50の先読み処理の内容を説明するフローチャートを示す図である。 【0050】図5に示すように、先読みタスク50は、まず、先読み用の受信データを、先読みポインタが示す位置の受信バッファ22から取得する(ステップS30)。次に、先読みタスク50は、その取得した受信データがキャンセルコマンドであるかどうかを判断する(ステップS31)。 【0051】受信データがキャンセルコマンドでない場合(ステップS31:No)には、先読みポインタをカウントアップする(ステップS32)。上述した第1実施形態と同様に、本実施形態でも、キャンセルコマンドは1バイトで構成されているので、先読みポインタを1バイト分カウントアップする。また、カウントアップの量を1バイトに限るものではないことも、上述した第1実施形態と同様である。このステップS32の処理が終了した後、上述したステップS30に戻る。 【0052】一方、ステップS31において、受信データがキャンセルコマンドである場合(ステップS31:Yes)には、先読みタスク50はキャンセルメッセージをメインタスク44に送信する(ステップS33)。そして、上述したステップS30の処理に戻る。 【0053】次に、図6に基づいて、メインタスク44により行われるメイン処理について説明する。この図6は、メインタスク44のメイン処理の内容を説明するフローチャートである。 【0054】図6に示すように、メインタスク44は、何からのメッセージを、読み出しタスク42及び先読みタスク50から受信する(ステップS40)。続いて、メインタスク44は、この受信したメッセージがキャンセルコマンドであるかどうかを判断する(ステップS41)。 【0055】受信したメッセージがキャンセルコマンドでない場合(ステップS41:No)には、その受信したメッセージが印刷用データであるかどうかを判断する(ステップS42)。受信したメッセージが印刷用データである場合(ステップS42:Yes)には、その印刷用データに基づいて印刷要求データを作成する(ステップS43)。すなわち、印刷用データについて言語解釈を行い、その解釈に基づいてビットイメージに展開して、印刷要求データを生成し、印刷管理タスク46に送信する。そして、上述したステップS40の処理に戻る。 【0056】一方、ステップS42において、受信したメッセージが印刷用データでないと判断した場合(ステップS42:No)、つまり、受信したメッセージが制御用データであると判断した場合には、その制御用データに含まれる制御コマンドを実行する(ステップS44)。そして、上述したステップS40の処理に戻る。 【0057】これに対して、上述したステップS41において、受信したメッセージがキャンセルコマンドであると判断した場合(ステップS41:Yes)には、メインタスク44は、印刷管理タスク46に、すでに送信してある印刷要求データをキャンセルする命令を送信する(ステップS45)。続いて、読み出しタスク42における受信バッファ22からの読み出し位置を示す読み出しポインタを、先読みポインタの次の位置まで進めさせる(ステップS46)。この際、先読みタスク50の先読みポインタの位置を、先読みタスク50から直接的に読み出しタスク42に送信するようにしてもよいし、メインタスク44を介して読み出しタスク42に送信するようにしてもよい。そして、上述したステップS40の処理に戻る。 【0058】図7は、プリンタ10における各タスクの優先順位を説明する図である。この図7において優先順位の高いタスクほど、制御部24に含まれている中央処理装置(CPU)が優先的に割り当てられる。 【0059】図7に示すように、これらのタスクのうち、受信タスク40の優先順位が最も高く、次に印刷実行タスク48の優先順位が高い。次に優先順位が高いのが、読み出しタスク42とメインタスク44と印刷管理タスク46である。これら読み出しタスク42とメインタスク44と印刷管理タスク46の優先順位は、同等になっている。そして、先読みタスク50の優先順位が最も低い。これは、先読みタスク50は、プリンタ10が印刷を行う上で必須の処理を行うわけではないので、制御部24に含まれている中央処理装置(CPU)の負荷が軽くなったときに適宜実行すれば足りるからである。このように先読みタスク50の優先順位は低く設定されているので、先読み処理をしていない受信データが、本来の処理である読み出しタスク42及びメインタスク44で先に処理されることもある。このような場合は、本来の処理が済んでいる、読み出しタスク42における受信バッファ22からの読み出し位置から先を、先読みタスク50は先読みすればよいことになる。 【0060】以上のように、本実施形態に係るプリンタ10によれば、先読みタスク50が受信バッファ22に格納されている受信データを、適宜先読みし、その中にキャンセルコマンドを検出した場合には、メインタスク44に通知して、そのキャンセルコマンドよりも以前にプリンタ10が受信している印刷用データをキャンセルするようにしたので、不必要な印刷をプリンタ10が続けてしまうのを回避することができる。 【0061】〔第3実施形態〕本発明の第3実施形態は、上述した第2実施形態を変形して、先読みタスク50がキャンセルコマンドを見つけた場合に、この先読みタスク50はキャンセルメッセージをメインタスク44にではなく、読み出しタスク42に送信するようにしたものである。より詳しくを、以下に説明する。なお、この第3実施形態に係るプリンタのハードウェア構成も、図1に示したものと同様である。また、この第3実施形態に係る各タスクの優先順位は、上述した第2実施形態と同様である。 【0062】まず、図8に基づいて、本実施形態に係るプリンタ10のタスク構成を説明する。この図8に示すように、本実施形態に係るプリンタ10は、上述した図4を変形して、先読みタスク50からのキャンセルメッセージを読み出しタスク42に送信するようにしている。 【0063】すなわち、この先読みタスク50は、先読みポインタに基づいて、受信バッファ22から受信データを順次先読みし、キャンセルコマンドが含まれていないかどうかを検索する。そして、キャンセルコマンドを見つけた場合には、このキャンセルコマンドを受信するよりも前に受信した受信データに基づく印刷をキャンセルすべく、読み出しタスク42にキャンセルメッセージを送信する。 【0064】読み出しタスク42では、このキャンセルメッセージを受信した場合、メインタスク44にあたかも通常通り受信バッファ22からキャンセルコマンドを読み出したように、キャンセルメッセージを送信する。また、読み出しタスク42は、先読みポインタの次の位置まで、実際の受信データを読み出す読み出しポインタを進め、受信バッファ22の先読みポインタの次の位置から受信データを読み出すようにする。 【0065】次に、図9に基づいて、先読みタスク50により行われる先読み処理について説明する。この図9は、先読みタスク50の先読み処理の内容を説明するフローチャートを示す図である。 【0066】上述した第2実施形態における図5に示した先読み処理と異なる部分のみ説明する。図9に示すように、先読みタスク50は、ステップS31において取得した受信データがキャンセルコマンドであると判断した場合(ステップS31:Yes)に、キャンセルメッセージを読み出しタスク42に送信する(ステップS33A)。これ以外の点は、上述した第2実施形態と同様である。 【0067】次に、図10に基づいて、メインタスク44により行われるメイン処理について説明する。この図10は、メインタスク44のメイン処理の内容を説明するフローチャートを示す図である。 【0068】上述した第2実施形態における図6に示したメイン処理と異なる部分のみ説明する。図10に示すように、メインタスク44は、ステップS45で印刷管理タスク46にこれまで送信した印刷要求データをキャンセルする命令を送信した後、ステップS40の処理に戻る。すなわち、読み出しタスク42の読み出しポインタは読み出しタスク42自身で進めているので、上述した第2実施形態のステップS46の処理は本実施形態では必要ない。これ以外の点は、上述した第2実施形態と同様である。 【0069】以上のように、本実施形態に係るプリンタ10によれば、先読みタスク50が受信バッファ22に格納されている受信データを、適宜先読みし、その中にキャンセルコマンドを見つけだした場合には、読み出しタスク42に通知し、読み出しタスク42からメインタスク44にキャンセルメッセージを送信することにしたので、そのキャンセルコマンドよりも以前にプリンタ10が受信している印刷用データをキャンセルすることができ、不必要な印刷をプリンタ10が続けてしまうのを回避することができる。 【0070】〔第4実施形態〕本発明の第4実施形態は、上述した第1実施形態において、受信バッファ22から先読みした受信データの中から紙サイズ指定コマンドを検出して、その紙サイズ指定コマンドの指定するサイズの紙への印刷が可能であるか否かを事前に判断し、現状では印刷が不可能である場合には、その旨をユーザに事前に知らせるようにしたものである。より詳しくを、以下に説明する。なお、第4実施形態に係るプリンタ10のハードウェア構成は、図1に示したものと同様である。 【0071】まず、図11に基づいて、本実施形態に係るプリンタ10が備えているタスクの構成について説明する。この図11に示すように、本実施形態に係るプリンタ10が備えるタスクは、第1実施形態である図2に示すものと同じであるが、メインタスク44が印刷実行タスク48に問い合わせをする点が相違する。すなわち、メインタスク44は、印刷実行タスク48に、プリンタ10が保有している給紙トレイのサイズを問い合わせたり、給紙トレイに紙があるか否かを問い合わせたりする。印刷実行タスク48は、これに対する応答をメインタスク44に返す。これ以外の点は、上述した第1実施形態と同様である。 【0072】次に、図12に基づいて、本実施形態に係るメインタスク44の処理を詳しく説明する。この図12は、上述した第1実施形態の図3に対応する図であるが、ここでは、上述した第1実施形態と異なる部分のみ説明する。 【0073】ステップS13で先読み用の受信データを取得したメインタスク44は、これが紙サイズ指定コマンドであるか否かを判断する(ステップS100)。紙サイズ指定コマンドとは、コンピュータから実際の印刷用データが送信される前に送信される制御コマンドであり、その後に受信した印刷用データの印刷を行う印刷用紙のサイズを指定するための制御コマンドである。 【0074】紙サイズ指定コマンドである場合(ステップS100:Yes)には、メインタスク44は、印刷実行タスク48に、紙サイズ指定コマンドで指定しているサイズの給紙トレイを保有しているか否かを問い合わせる(ステップS101)。そして、その問い合わせの結果、プリンタ10が指定サイズの給紙トレイを保有していない旨の応答が帰ってきた場合(ステップS102:No)には、ユーザに指定サイズの給紙トレイがないことを通知する(ステップS103)。そして、先読みポインタのカウントアップを行い(ステップS104)、先頭であるステップS10の処理に戻る。なお、先読みポインタのカウントアップの量を必要に応じて任意に設定できることは、上述した第1実施形態と同様である。 【0075】一方、ステップS102で、印刷実行タスク48から、プリンタ10が指定サイズの給紙トレイを保有している旨の応答が返ってきた場合(ステップS102:Yes)には、メインタスク44は、印刷実行タスク48に、指定サイズの給紙トレイに紙が入っているか否かを問い合わせる(ステップS105)。そして、その問い合わせの結果、プリンタ10の指定サイズの給紙トレイに紙がない旨の応答が返ってきた場合(ステップS106:No)には、ユーザに紙がないことを通知する(ステップS107)。そして、先読みポインタのカウントアップを行い(ステップS104)、ステップS10の処理に戻る。 【0076】これに対して、ステップS106で、印刷実行タスク48から指定サイズの給紙トレイに紙がある旨の応答を受信した場合(ステップS106:Yes)には、その紙サイズ指定コマンドは正常に実行されることが期待できるので、単に、先読みポインタのカウントアップを行うだけで(ステップS104)、ステップS10の処理に戻る。 【0077】以上のように、本実施形態に係るプリンタ10によれば、受信バッファ22を先読みすることにより、今後実行される紙サイズ指定コマンドを見つけ出し、この紙サイズ指定コマンドで指定されるサイズの給紙トレイをプリンタ10が保有していない場合には、事前にその旨をユーザに知らせることとした。このため、プリンタ10が別の印刷用データの印刷処理を行っている最中に、その後に印刷処理が行われる予定である自分の印刷が、指定した紙サイズの給紙トレイがないことを理由として、このままではできないことを事前に知ることができる。その際には、ユーザは、その印刷自体をキャンセルしたり、給紙トレイが2段以上あるプリンタ10であれば、現在使われていない方の給紙トレイのサイズを変更したりすることができる。 【0078】また、本実施形態に係るプリンタ10によれば、受信バッファ22を先読みすることにより、今後実行される紙サイズ指定コマンドを見つけ出し、この紙サイズ指定コマンドで指定されるサイズの給紙トレイに紙がない場合には、事前にその旨をユーザに知らせることとした。このため、プリンタ10が別の印刷用データの印刷処理を行っている最中に、その後に行われる予定である自分の印刷は、指定した紙サイズの紙なしを理由として、このままではできないことを事前に知ることができる。その際には、ユーザは、事前に給紙トレイに紙を補給することができる。 【0079】このような事態は、プリンタ10をネットワークプリンタとして複数のユーザで共有している場合に、しばしば発生すると予測できる。本実施形態に係るプリンタ10によれば、ユーザは他人の印刷用データの印刷処理が終わる前に、自分の印刷用データのエラーに対する必要な対処をすることができるので、ユーザの利便性が高まる。なお、本実施形態は上述した第1実施形態とともに併せて実現することもできる。すなわち、メインタスク44において、受信バッファ22から受信データを先読みし、キャンセルコマンドと紙サイズ指定コマンドの双方を見つけだし、それぞれ、上述した処理を行うようにしてもよい。 【0080】〔第5実施形態〕本発明の第5実施形態は、上記第4実施形態を、上述した第2実施形態に適用したものである。すなわち、上述した第2実施形態において、受信バッファ22から受信データを先読みして、紙サイズ指定コマンドを検出し、その紙サイズ指定コマンドの指定するサイズの紙への印刷が可能であるか否かを事前に判断し、不可能である場合にはその旨をユーザに知らせるようにしたものである。より詳しくを、以下に説明する。なお、第5実施形態に係るプリンタ10のハードウェア構成は、図1に示したものと同様である。 【0081】まず、図13に基づいて、本実施形態に係るプリンタ10が備えているタスクの構成について説明する。この図13に示すように、本実施形態に係るプリンタ10が備えるタスクは、第2実施形態である図4に示すものと同じであるが、先読みタスク60が印刷実行タスク48に問い合わせをする点が相違する。すなわち、先読みタスク60は、印刷実行タスク48に、プリンタ10が保有している給紙トレイのサイズを問い合わせたり、給紙トレイに紙があるか否かを問い合わせたりする。印刷実行タスク48は、これに対する応答を先読みタスク60に返す。また、本実施形態においては、受信バッファ22を先読みして実行不可能な紙サイズ指定コマンドを見つけだした場合でも、その時点で実行中の印刷処理には影響を与えるものではないので、先読みタスク60からメインタスク44にメッセージを送信することはない。これ以外の点は、上述した第1実施形態と同様である。また、本実施形態に係る各タスクの優先順位も、上述した第2実施形態と同様である。 【0082】次に、図14に基づいて、本実施形態に係る先読みタスク60の先読み処理を詳しく説明する。この図14は、先読みタスク60の先読み処理の内容を説明するフローチャートを示す図である。 【0083】図14に示すように、先読みタスク60は、まず、先読み用の受信データを、先読みポインタが示す位置の受信バッファ22から取得する(ステップS200)。次に、先読みタスク60は、その取得した受信データが紙サイズ指定コマンドであるかどうかを判断する(ステップS201)。 【0084】受信データが紙サイズ指定コマンドでない場合(ステップS201:No)には、先読みポインタをカウントアップする(ステップS202)。なお、先読みポインタのカウントアップの量を任意に設定できることは、上述した第2実施形態と同様である。このステップS202の処理が終了した後、上述したステップS200に戻る。 【0085】一方、ステップS201において、受信データが紙サイズ指定コマンドである場合(ステップS201:Yes)には、先読みタスク60は、印刷実行タスク48に、紙サイズ指定コマンドで指定しているサイズの給紙トレイを保有しているか否かを問い合わせる(ステップS203)。そして、その問い合わせの結果、プリンタ10が指定サイズの給紙トレイを保有していない旨の応答を受信した場合(ステップS204:No)には、ユーザに指定サイズの給紙トレイがないことを通知する(ステップS205)。そして、先読みポインタのカウントアップを行い(ステップS202)、先頭であるステップS200の処理に戻る。 【0086】一方、ステップS204で、印刷実行タスク48から、プリンタ10が指定サイズの給紙トレイを保有している旨の応答を受信した場合(ステップS204:Yes)には、先読みタスク60は、印刷実行タスク48に、指定サイズの給紙トレイに紙が入っているか否かを問い合わせる(ステップS206)。そして、その問い合わせの結果、プリンタ10の指定サイズの給紙トレイに紙がない旨の応答を受信した場合(ステップS207:No)には、ユーザに紙がないことを通知する(ステップS208)。そして、先読みポインタのカウントアップを行い(ステップS202)、ステップS200の処理に戻る。 【0087】これに対して、ステップS207で、印刷実行タスク48から、指定サイズの給紙トレイに紙がある旨の応答を受信した場合(ステップS207:Yes)には、その紙サイズ指定コマンドは正常に実行されることが期待できるので、単に、先読みポインタのカウントアップを行うだけで(ステップS202)、ステップS200の処理に戻る。 【0088】以上のように、本実施形態に係るプリンタ10によれば、先読みにより今後実行される紙サイズ指定コマンドを検出し、この紙サイズ指定コマンドで指定されるサイズの給紙トレイをプリンタ10が保有していない場合には、事前にその旨をユーザに知らせることとした。また、先読みにより今後実行される紙サイズ指定コマンドを検出し、この紙サイズ指定コマンドで指定されるサイズの給紙トレイに紙がない場合には、事前にその旨をユーザに知らせることとした。このため、ユーザは他人の印刷用データの処理が終わる前に、自分の印刷用データのエラーに対する必要な対処をすることができるので、ユーザの利便性を高めることができる。 【0089】なお、本実施形態は上述した第2実施形態とともに併せて実現することもできる。すなわち、先読みタスク60において、受信バッファ22から受信データを先読みし、キャンセルコマンドと紙サイズ指定コマンドの双方を見つけだし、それぞれ、上述した処理を行うようにしてもよい。 【0090】なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した実施形態においては、先読みした結果、制御コマンドとしてキャンセルコマンドや紙サイズ指定コマンドを検出した場合に、これに基づく必要な処理をすることとしたが、他の制御コマンドを検出した場合にも、その制御コマンドに応じた必要な処理をするようにしてもよい。例えば、先読み処理の結果、ステータスリプライの制御コマンドを見つけた場合には、印刷用データの処理よりも先にこれを実行してもよい。但し、この場合、ステータスリプライが格納されていた受信バッファ22の位置に、何の処理もしないことを意味するノーオペレーションコマンドを格納しておく必要がある。 【0091】また、上述の実施形態で説明した各処理については、これら各処理を実行するためのプログラムをフロッピー(登録商標)ディスク、CD−ROM(Compact Disc-Read Only Memory)、ROM、メモリカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、このプログラムが記録された記録媒体をプリンタ10のDRAMに読み込ませ、実行させることにより、上述した実施形態を実現することができる。 【0092】また、プリンタ10は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、プリンタ10の備える他のプログラムを活用し、記録媒体にはそのプリンタ10が備えるプログラムの中から、本実施形態と同等の処理を実現するプログラムを呼び出すような命令を記録するようにしてもよい。 【0093】さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、プリンタ10に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。 【0094】また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだプリンタ10は、そのプログラムの復号化や伸張化を行った上で、実行する必要がある。 【0095】 【発明の効果】以上説明したように、本発明によれば、受信バッファに格納されている受信データを、解釈実行手段で読み出す前に先読みし、この先読みした受信データの中から制御用データのうちの特定の制御コマンドを検出した場合には、その検出した制御コマンドに応じた処理を解釈実行手段よりも先に行う、先読み処理手段を設けたので、解釈実行手段がその特定の制御コマンドを解釈するのを待つことなく、特定の制御コマンドに対する必要な処理を行うことができる。
|
| 【出願人】 |
【識別番号】000002369 【氏名又は名称】セイコーエプソン株式会社
|
| 【出願日】 |
平成13年5月28日(2001.5.28) |
| 【代理人】 |
【識別番号】100075812 【弁理士】 【氏名又は名称】吉武 賢次 (外5名)
|
| 【公開番号】 |
特開2002−108579(P2002−108579A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2001−158815(P2001−158815) |
|