(57)【要約】【課題】ワールドワイドウェブに接続したプリンタに対する印字においても、印字するラインの順番を狂わせることなく、受信バッファの容量も増やすことなく印字ができるプリンタシステムを提供する。【解決手段】印字データ生成部１０３は、印字コマンドを生成する領域をブロックに分割し、ブロックごとに印字データを生成する。そして、スキャン命令を含む全てのパケットにシーケンス番号を付加して、スキャン命令を生成しプリンタ１０２に送信する。印字コマンド解析部１０８は、１ブロック分の受信パケットが全て揃ったかどうかを判断し、全て揃ったことが確認できたら、印字制御部１１１にスキャンを開始させる。これにより、印字するラインの順番を狂わせたり、ライン抜けが発生したりすることを防ぐことができる。【選択図】図１
2008257465.tif 000002
【特許請求の範囲】
【請求項１】
双方向に情報を伝達できるインターフェースを持ち、印字コマンドを生成する領域をブロックに分割し、ブロックごとに印字データを生成する生成手段と、
１ブロック分の印字データの生成が終了した事を判断する第１の判断手段と、
前記生成が終了したらスキャン命令を送信する第１の送信手段と、
スキャン命令を含む全てのパケットにシーケンス番号を付ける付加手段と、
ブロックの受信パケットが全て揃ったかどうかを判断する第２の判断手段と、
１ブロック分のパケットが全て揃うまで受信データを保持する保持手段と、
１ブロック分のパケット全てが揃ったと判断したときにスキャンを行うスキャン手段とを備えたことを特徴とするプリンタシステム。
【請求項２】
１ブロック分の印字データの受信を開始してから、一定時間経過したことを計測する手段と、
一定時間経過したときに１ブロック分の全てのパケットが揃っているかどうかを判断する第３の判断手段と、
１ブロック分の全てのパケットが揃っていないときに、スキャンブロックの最初に戻って再送する再送手段と、
１ブロック分の全てのパケットが揃っていないときに、受信バッファをスキャンブロックの最初に戻す戻し手段とを更に備えたことを特徴とする請求項１に記載のプリンタシステム。
【請求項３】
パケットのシーケンシャル番号に日付・時刻を含めて書き込み送信する第２の送信手段と、
受信したパケットの日付・時刻がブロック開始パケットの日付・時刻とブロック終了パケットの日付・時刻との間にない場合は、失ったパケットを受信したと判断する第４の判断手段と、
失ったパケットを受信したと認識したときは、このパケットを無視して印字に用いないように制御する制御手段とを更に備えたことを特徴とする請求項２に記載のプリンタシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルプリンタシステムに関するものである。
【背景技術】
【０００２】
従来、ワールドワイドウェブやＩＥＥＥ１３９４やＵＳＢ等でプリンタシステムを構成するときには、パケット間の順番が保証されておらず、特にワールドワイドウェブでは送信したパケットがなくなってしまう場合もある。そのために、普通に印字すると、途中で印字データが途切れたり、印字するラインの順番が狂ったりしてしまい、意図したとおりの文字や画像を印刷することができなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は上記の問題点に鑑みて、ワールドワイドウェブに接続したプリンタに対する印字においても、印字するラインの順番を狂わせることなく、受信バッファの容量も増やすことなく印字ができるプリンタシステムを提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明のプリンタシステムは、双方向に情報を伝達できるインターフェースを持ち、印字コマンドを生成する領域をブロックに分割し、ブロックごとに印字データを生成する生成手段と、１ブロック分の印字データの生成が終了した事を判断する第１の判断手段と、前記生成が終了したらスキャン命令を送信する第１の送信手段と、スキャン命令を含む全てのパケットにシーケンス番号を付ける付加手段と、ブロックの受信パケットが全て揃ったかどうかを判断する第２の判断手段と、１ブロック分のパケットが全て揃うまで受信データを保持する保持手段と、１ブロック分のパケット全てが揃ったと判断したときにスキャンを行うスキャン手段とを備えたことを特徴とする。
【発明の効果】
【０００５】
本発明によれば、ワールドワイドウェブやＩＥＥＥ１３９４やＵＳＢに接続したプリンタに対する印字においても、印字するラインの順番を狂わせたり、ライン抜けが発生したり、ごみデータが印字されたりすることを防ぐ。また、受信バッファの容量も増やすことなく印字ができる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の好適な実施形態を添付図面を用いて詳細に説明する。図１は、本発明を実施したホストコンピュータとプリンタ装置で構成された印字システム装置（プリンタシステム）を示す。
【０００７】
図１において、１０１はホストコンピュータであり、１０２はプリンタ装置（以下、プリンタ）である。本実施形態では、ＩＥＥＥ１２８４やＵＳＢやＩＥＥＥ１３９４等の双方向インターフェースでホストコンピュータ１０１とプリンタ１０２とが接続されている。
【０００８】
印字データはホストコンピュータ１０１で生成され、双方向インターフェースを介してプリンタ１０２に送信され印字される。ホストコンピュータ１０１上のアプリケーションで作成した文書等を印刷するときは、アプリケーションの印刷メニューから印刷を選択する。すると、印字データ生成部１０３で印字データを生成し、生成した印字データを印字データバッファ部１０４で一時的に蓄え、プリンタ１０２の送受信バッファ１０５が受信可能な状態であれば、双方向インターフェースを介してプリンタ１０２に送信（伝達）する。
【０００９】
一方プリンタ１０２では、送受信バッファ１０５に受信してある印字データを印字できる状況にあるとプリンタ機能管理部１０９が判断したときには、印字コマンド解析部１０８が送受信バッファ１０５から順番に印字データを取り出して解析する。そして、印字データを印字バッファ１１０に展開して、印字制御部１１１に印字指示して印字を行う。
【００１０】
さて、本発明では、ホストコンピュータ１０１における印字データ生成部１０３において、印字コマンドを生成する領域をブロックに分割し、ブロックごとに印字データを生成する（本発明でいう生成手段に対応）。そして、スキャン命令を含む全てのパケットにシーケンス番号を付加する（本発明でいう付加手段に対応）。そして、１ブロック分の印字データの生成が終了したかどうかを判断する（本発明でいう第１の判断手段に対応）。そして、印字データの生成が終了したらスキャン命令を生成し印字データバッファ部１０４に送信する（本発明でいう第１の送信手段に対応）。
【００１１】
プリンタ１０２における印字コマンド解析部１０８は、１ブロック分の受信パケットが全て揃ったかどうかを判断する（本発明でいう第２の判断手段に対応）。
【００１２】
そして、受信パケットが全て揃うまで、受信データを保持するようにプリンタ機能管理部１０９に通知する。
【００１３】
そして、全て揃ったかどうかは印字コマンド解析部１０８がシーケンス番号を見ることによって確認し、全て揃ったことが確認できたら確認通知をプリンタ機能管理部１０９に通知する。そうすると、印字制御部１１１はスキャンを開始して、今そろった１ブロックの印字を行う（本発明でいうスキャン手段に対応）。なお、受信データを保持するプリンタ機能管理部１０９は本発明でいう保持手段に対応する。
【００１４】
図２は、本発明を実施したプリンタ１０２が１ブロック分のパケット全てが揃ったと判断するときのフローチャートである。
【００１５】
まずステップＳ２０１において、プリンタ１０２は、受信を始めるためにブロック番号を０に初期化する。次にステップＳ２０２において、プリンタ１０２は、受信したシーケンス番号のチェックに使用するシーケンス番号テーブルの初期化をし、何も受信していない状態にして、ステップＳ２０３において１単位のデータ受信を行う。１単位とは、点順次の場合は１ピクセル、線順次の場合は１ラスターと呼ばれる画像単位もしくは１パケットの事である。
【００１６】
次にステップＳ２０４において、プリンタ１０２は、受信したコマンドを解釈して印字終了と判断できないときは、ステップＳ２０５に進む。ステップＳ２０５において、プリンタ１０２は、今受信した１単位のデータのパケットから取り出したシーケンス番号を、先ほど初期化したシーケンス番号テーブルに記憶する。
【００１７】
次にステップＳ２０６において、プリンタ１０２は、全シーケンス番号がテーブルにあるかチェックする。このときの判断基準の例は、１ブロック全体のパケットに０から順番にシーケンス番号を付け、途中で必ず番号抜けが無いようにすれば、０から１ブロックで最後のシーケンス番号までそろったかを検証すればよい。ここで、全シーケンス番号がそろっていなければ、ステップＳ２０３からの１単位のデータ受信を繰り返す。
【００１８】
ステップＳ２０６で全シーケンス番号がそろっていれば、プリンタ１０２はステップＳ２０７に進み、ステップＳ２０７で次のブロックの受信に移るために、ブロック番号をインクリメントしてステップＳ２０２に戻る。そして、シーケンス番号テーブルの初期化から繰り返す。ここで、ステップＳ２０３で受信したデータをステップＳ２０４で解釈して印刷終了と判断したら、プリンタ１０２は印刷を終了する。
【００１９】
図３は、本発明を実施したホストコンピュータ１０１とプリンタ１０２とで送受信されるパケットの構成図であり、全体は１パケットを表している。
【００２０】
３０１はＡで表されているアドレスフィールド、３０２はＣで表されているコントロールフィールド、３０３は日付・時刻データ、３０４は本パケットのシーケンス番号、３０５はＩで表されている情報フィールドである。３０６はＦＣＳで表されているフレームチェックシーケンスである。アドレスフィールド３０１、コントロールフィールド３０２、情報フィールド３０５、フレームチェックシーケンス３０６の情報は、ＩＥＥＥ１３９４やＵＳＢ等のそれぞれのプロトコルで決まったフォーマットで作成され運用される。
【００２１】
本発明では、それらのプロトコルに影響が出ないように、情報フィールドに３０３、３０４の情報を付加して、これらのプロトコルの上位の層で情報の受け渡しを行うことを説明している。これ以外の受け渡し方法としては、現状のプロトコルを修正して３０１や３０２の領域に３０３や３０４のデータを付加してより下位層で受け渡す方法も容易に考えられる。
【００２２】
図４は、１ブロック分のパケットが揃わなかった時の再送手段のフローチャートである。１ブロック分の印字データの受信を開始してから、一定時間経過したことを計測し、一定時間経過したときに１ブロック分の全てのパケットが揃っていないときには、スキャンブロックの最初に戻って再送する。これにより、送信したパケットがなくなってしまうことがないので、途中で印字データが途切れたりすることがなくなる。
【００２３】
まずステップＳ４０１において、プリンタ１０２は、ブロック番号を初期化し、ステップＳ４０２でブロック受信の再送要求をするまでの期限を計測するための、ブロック受信時限計測タイマーを起動する。そして、ステップＳ４０３ではシーケンス番号テーブルを初期化する。
【００２４】
次にステップＳ４０４において、プリンタ１０２は、１単位のデータを受信し、Ｓ４０５で受信したデータを解釈して印字終了を表すデータでなければステップＳ４０６に進む。そして、ステップＳ４０６において、プリンタ１０２は、受信したパケットのシーケンス番号をシーケンス番号テーブルに記憶する。
【００２５】
次にステップＳ４０７において、プリンタ１０２は、全シーケンス番号がテーブルにあるかどうか検証し揃っていなければステップＳ４０９に進む。ステップＳ４０９において、ブロック受信時限タイマーの値がまだ再送要求期限を示していなければ、プリンタ１０２はステップＳ４０４に処理を戻し、再びＳ４０４で１単位のデータを受信する。
【００２６】
ステップＳ４０６で全シーケンスが揃う前に、ステップＳ４０９においてブロック受信時限タイマーの値が再送要求期限を示していたら、プリンタ１０２はステップＳ４１０に処理を進める。そして、ステップＳ４１０で再送要求送信済みかどうかをみて送信していなければ、プリンタ１０２は、処理をステップＳ４１１に進め、ステップＳ４１１で再送信要求を送りステップＳ４０１に戻る。
【００２７】
ステップＳ４１０ですでに１回再送信要求を送信していた場合は、プリンタ１０２は、処理をステップＳ４０８に進めて、そのシーケンス番号のパケットはあきらめステップＳ４０８でブロック番号をインクリメントし次のブロック受信に進む。
【００２８】
ステップＳ４０７で全シーケンス番号がシーケンステーブルに揃った場合も、プリンタ１０２は、処理をステップＳ４０８に進めて、ブロック番号をインクリメントし次のブロック受信に進む。
【００２９】
ステップＳ４０４で受信したデータをステップＳ４０５で解釈し印字終了と判断したら、プリンタ１０２は処理をステップＳ４１２に進めて、ブロック受信の再送要求をするまでの期限を計測するための、ブロック受信時間計測タイマーを停止して終了する。
【００３０】
以上で説明した処理は、本発明でいう計測手段、第３の判断手段及び戻し手段による処理に対応する。また、ステップＳ４１１の再送信要求後における、スキャンブロックの再送処理についは、ホストコンピュータ１０１で実行され、この処理は、本発明でいう再送手段の処理に対応する。
【００３１】
図５は、受信パケットの有効期限判断手段のフローチャートである。本実施形態では、パケットのシーケンシャル番号に日付・時刻を含めて書き込み送信するようにしている（本発明でいう第２の送信手段の処理に対応）。これにより、受信したパケットの日付・時刻がブロック開始パケットの日付・時刻よりも前の日付・時刻のパケットを受信した場合は、失ったパケットを受信したと判断することができる。換言すれば、受信したパケットの日付・時刻がブロック開始パケットの日付・時刻とブロック終了パケットの日付・時刻との間にない場合は、失ったパケットを受信したと判断することができる（本発明でいう第４の判断手段に対応）。そして、失ったパケットを受信したと認識したときは、このパケットを無視して印字に用いないように制御する（本発明で制御手段に対応）。これにより、ごみデータを印字することがなくなる。
【００３２】
まずステップＳ５０１において、プリンタ１０２はブロック番号を初期化し、ステップＳ５０２でブロック受信開始時間を記憶し、ステップＳ５０３でブロック受信の再送要求をするまでの期限を計測するための、ブロック受信時限計測タイマーを起動する。
【００３３】
次にステップＳ５０４において、プリンタ１０２は、シーケンス番号テーブルを初期化し、ステップＳ５０５で１単位のデータを受信し、ステップＳ５０６でブロック受信開始時間以前の日付時刻パケットがあったらその場でそのパケットを廃棄する。
【００３４】
次にステップＳ５０７において、受信したデータを解釈して印字終了を表すデータでなければ、プリンタ１０２は処理をステップＳ５０８に進めて、ステップＳ５０８で受信したパケットのシーケンス番号をシーケンス番号テーブルに記憶する。
【００３５】
ステップＳ５０９において、全シーケンス番号がテーブルにあるかどうか検証し揃っていなければ、プリンタ１０２は、処理をステップＳ５１１に進める。ステップＳ５１１でブロック受信時限タイマーの値がまだ再送要求期限を示していなければ、プリンタ１０２は処理を戻し、再びＳ５０５で１単位のデータを受信する。
【００３６】
ステップＳ５０９で全シーケンスが揃う前に、ステップＳ５１１でブロック受信時限タイマーの値が再送要求期限を示していたら、プリンタ１０２は、処理をステップＳ５１２に進める。ステップＳ５１２で再送要求送信済みかどうかをみて送信していなければ、プリンタ１０２は処理をステップＳ５１３に進めて、ステップＳ５１３で再送信要求を送りステップＳ５０１に戻る。
【００３７】
ステップＳ５１２ですでに１回再送信要求を送信していた場合は、プリンタ１０２は、処理をステップＳ５１０に進めて、そのシーケンス番号のパケットはあきらめステップＳ５１０でブロック番号をインクリメントし次のブロック受信に進む。
【００３８】
ステップＳ５０９で全シーケンス番号がシーケンステーブルに揃った場合も、プリンタ１０２は処理をステップＳ５１０に進めて、ブロック番号をインクリメントし次のブロック受信に進む。
【００３９】
ステップＳ５０５で受信したデータをステップＳ５０６でブロック受信開始時間以前の日付時刻パケットがあったら、プリンタ１０２は、その場でそのパケットを廃棄する。そして、ステップＳ５０７で解釈し印字終了と判断したら、プリンタ１０２は、ステップＳ５１３でブロック受信の再送要求をするまでの期限を計測するための、ブロック受信時間計測タイマーを停止して終了する。
【００４０】
なお、本発明を実現するために、上述した実施形態の機能を実現するソフトウェアのプログラムコード（コンピュータプログラム）を記録した記憶媒体を用いても良い。この場合には記憶媒体をシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによって本発明の目的が達成される。
【００４１】
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４２】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００４３】
また、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（基本システム或いはオペレーティングシステム）等が実際の処理の一部又は全部を行う場合も含まれることは言うまでもない。
【００４４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。この場合には、書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行ってもよい。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施の形態に係るプリンタシステムの構成を示す図である。
【図２】本発明の実施の形態に係るプリンタシステムにおいて、１ブロック分が揃ったかどうかと判断するときの処理を説明するためのフローチャートである。
【図３】本発明の実施の形態に係るプリンタシステムにおいて用いられるパケットの構成を示す図である。
【図４】本発明の実施の形態に係るプリンタシステムにおいて、１ブロック分のパケットが揃わなかった時の再送の処理を説明するためのフローチャートである。
【図５】本発明の実施の形態に係るプリンタシステムにおいて、受信パケットの有効期限判断の処理を説明するためのフローチャートである。
【符号の説明】
【００４６】
１０１  ホストコンピュータ
１０２  プリンタ装置（プリンタ）
１０３  印字データ生成部
１０４  印字データバッファ部
１０５  送受信バッファ
１０６  プリンタ状態管理部
１０７  プリンタ操作部
１０８  印字コマンド解析部
１０９  プリンタ機能管理部
１１０  印字バッファ
１１１  印字制御部
【図１】
2008257465.tif 000003
【図２】
2008257465.tif 000004
【図３】
2008257465.tif 000005
【図４】
2008257465.tif 000006
【図５】
2008257465.tif 000007