(57)【特許請求の範囲】
【請求項１】
記録媒体に記録を行う記録ヘッド、前記記録ヘッドを駆動して前記記録媒体に記録を行うための駆動データを展開するバッファー、前記バッファーに展開された記録開始位置を示す情報と前記駆動データに関する情報とを記憶する記憶部を有する記録装置と、
前記記録装置の前記記憶部に記憶される前記記録開始位置を示す情報と前記駆動データに関する情報との応答を要求し、前記記録装置からの当該要求に対する応答に基づいて前記記録装置の異常を検出する制御部を有する制御装置と、
を備えることを特徴とする記録システム。
【請求項２】
記録ヘッドで記録媒体に記録を行う記録装置でデータを受信し、
受信したデータに基づいて前記記録ヘッドを駆動して前記記録媒体に記録を行うための駆動データを生成し、
生成した前記駆動データをバッファーに展開し、
前記バッファーに展開された記録開始位置を示す情報及び前記駆動データに関する情報を記憶し、
前記記録装置に記憶される前記記録開始位置を示す情報及び前記駆動データに関する情報の応答を制御装置から前記記録装置に要求し、
前記記録装置からの当該要求に対する応答に基づいて、前記制御装置で前記記録装置の異常を検出することを特徴とする記録システムの制御方法。
【請求項３】
前記記録装置からの応答に基づいて前記記録装置の異常を検出した場合、前記制御装置は、前記記録装置に前記バッファーをクリアさせるコマンドを送信する請求項２に記載の記録システムの制御方法。
【請求項４】
前記記録装置で所定の一連の記録を行わせている間に、前記記録装置の異常を検出した場合は、前記コマンドを送信して当該記録装置の異常を解消させた後、前記所定の一連の記録を最初から行わせる要求を送信する請求項３に記載の記録システムの制御方法。
【請求項５】
前記制御装置は、前記記録装置に前記データに続く第２のデータを送信する前に前記応答を要求し、当該要求に対する応答に基づいて、当該データに係る処理を前記記録装置が正常に実行できるか否かを判別する請求項３または４に記載の記録システムの制御方法。
【請求項６】
前記制御装置は、前記第２のデータに係る処理を前記記録装置が正常に実行できないと判別した場合、前記記録装置を制御して、当該処理を実行できる状態へと移行させる請求項５に記載の記録システムの制御方法。
【請求項７】
前記制御装置は、前記記録装置の前記記録開始位置の情報と前記駆動データに関する情報との組み合わせが、前記第２のデータに係る処理を正常に実行可能な組み合わせでないことに起因して、当該処理を前記記録装置が正常に実行できないと判別した場合、
前記記録装置に、前記バッファーをクリアさせる前記コマンドを送信することにより、前記記録開始位置と前記駆動データに関する情報との組み合わせを、当該処理を正常に実行可能な組み合わせとした上で、前記第２のデータを送信する請求項６に記載の記録システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録媒体に記録を行う記録装置と制御装置とを備える記録システム、及び、当該記録システムの制御方法に関する。
【背景技術】
【０００２】
従来、制御装置（情報処理装置）と、記録装置（画像形成装置）と、を備え、制御装置の制御の下、記録装置が記録に係る動作を実行する記録システムが知られている（例えば、特許文献１参照）。
この種の記録システムでは、記録媒体への記録に際し、制御装置から、記録を行わせるコマンドが記録装置に出力され、記録装置が、コマンドに基づいて記録を行った後、すなわち、各種機構による記録に係る動作が終了した後、記録が終了した旨の通知を制御装置に出力するものがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１５２６６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したシステムのように、記録装置が、記録の終了後、その旨制御装置に通知するものでは、制御装置は、当該通知に基づいて、記録に係る動作が終了したことは検出できるものの、記録の結果、記録媒体に正常に画像が記録されているか否かまでは判別することはできない。例えば、ホストコンピューター側と記録装置側とのボーレートの設定のミスマッチに起因して、記録装置が、ホストコンピューターから受信したコマンドを正常に実行できず、いわゆる文字化けが発生した場合であっても、ホストコンピューターは、そのことを検出することはできなかった。この場合、正常に画像が記録されなかった原因が解消されていない状態で継続して記録装置による記録が行われてしまう可能性があるため、記録装置の記録の異常が発生した場合は、できるだけ迅速にそのことを検出したいとするニーズがあった。
本発明は、上述した事情に鑑みてなされたものであり、記録装置の記録の異常を迅速に検出可能とすることを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、記録システムであって、記録媒体に記録を行う記録ヘッド、前記記録ヘッドを駆動して前記記録媒体に記録を行うための駆動データを展開するバッファー、前記バッファーに展開された記録開始位置を示す情報と前記駆動データに関する情報とを記憶する記憶部を有する記録装置と、前記記録装置の前記記憶部に記憶される前記記録開始位置を示す情報と前記駆動データに関する情報との応答を要求し、前記記録装置からの当該要求に対する応答に基づいて前記記録装置の異常を検出する制御部を有する制御装置と、を備えることを特徴とする。
また、上記目的を達成するために、本発明は、記録システムの制御方法であって、記録ヘッドで記録媒体に記録を行う記録装置でデータを受信し、受信したデータに基づいて前記記録ヘッドを駆動して前記記録媒体に記録を行うための駆動データを生成し、生成した前記駆動データをバッファーに展開し、前記バッファーに展開された記録開始位置を示す情報及び前記駆動データに関する情報を記憶し、前記記録装置に記憶される前記記録開始位置を示す情報及び前記駆動データに関する情報の応答を制御装置から前記記録装置に要求し、前記記録装置からの当該要求に対する応答に基づいて、前記制御装置で前記記録装置の異常を検出することを特徴とする。
また、本発明は、前記記録装置からの応答に基づいて前記記録装置の異常を検出した場合、前記制御装置は、前記記録装置に前記バッファーをクリアさせるコマンドを送信する。
また、本発明は、前記記録装置で所定の一連の記録を行わせている間に、前記記録装置の異常を検出した場合は、前記コマンドを送信して当該記録装置の異常を解消させた後、前記所定の一連の記録を最初から行わせる要求を送信する。
また、本発明は、前記制御装置は、前記記録装置に前記データに続く第２のデータを送信する前に前記応答を要求し、当該要求に対する応答に基づいて、当該データに係る処理を前記記録装置が正常に実行できるか否かを判別する。
また、本発明は、前記制御装置は、前記第２のデータに係る処理を前記記録装置が正常に実行できないと判別した場合、前記記録装置を制御して、当該処理を実行できる状態へと移行させる。
また、本発明は、前記制御装置は、前記記録装置の前記記録開始位置の情報と前記駆動データに関する情報との組み合わせが、前記第２のデータに係る処理を正常に実行可能な組み合わせでないことに起因して、当該処理を前記記録装置が正常に実行できないと判別した場合、前記記録装置に、前記バッファーをクリアさせる前記コマンドを送信することにより、前記記録開始位置と前記駆動データに関する情報との組み合わせを、当該処理を正常に実行可能な組み合わせとした上で、前記第２のデータを送信する。
また、上記目的を達成するために、本発明は、受信したデータに基づき、記録ヘッドを駆動して記録媒体に記録を行うための駆動データを生成してバッファーに展開し、前記バッファーにおける記録開始位置を示す情報、及び、前記バッファーにおける駆動前の前記駆動データに関する情報を記憶する記録装置に接続可能な制御装置であって、前記記録装置に対して、記憶されている前記記録開始位置を示す情報、及び、前記駆動データに関する情報の応答を要求し、前記記録装置からの当該要求に対する応答に基づいて、前記記録装置の異常を検出する制御部を備えることを特徴とする。
ここで、バッファーには、記録開始位置を基準して記録ヘッド駆動用の駆動データが展開される。従って、記録開始位置の状態、及び、バッファーの駆動前の駆動データの状態により、駆動データが正しく利用されて、正常に記録ヘッドが駆動されたか否か、すなわち、記録装置の記録に異常があったか否かを判別可能である。
そして、上記構成によれば、制御装置は、記録装置に対して、記録開始位置を示す情報、及び、バッファーの駆動データの情報の応答を要求し、記録装置から当該要求に対する応答を受け取った上で、記録開始位置の状態、及び、バッファーの状態を取得することにより、記録装置の記録の異常を迅速に検出できる。
【０００６】
また、上記目的を達成するために、本発明は、受信したデータに基づき、記録ヘッドを駆動して記録媒体に記録を行うための駆動データを生成してバッファーに展開し、前記バッファーにおける記録開始位置を示す情報、及び、前記バッファーにおける駆動前の前記駆動データに関する情報を記憶する記録装置に接続可能な制御装置の制御方法であって、前記記録装置に対して、記憶されている前記記録開始位置を示す情報、及び、前記駆動データに関する情報の応答を要求し、前記記録装置からの当該要求に対する応答に基づいて、前記記録装置の異常を検出することを特徴とする。
ここで、バッファーには、記録開始位置を反映して記録ヘッド駆動用の駆動データが展開される。従って、記録開始位置の状態、及び、バッファーの状態により、駆動データが正しく利用されて、正常に記録ヘッドが駆動されたか否か、すなわち、記録装置の記録に異常があったか否かを判別可能である。
そして、上記の制御方法によれば、制御装置は、記録装置に対して、記録開始位置を示す情報、及び、バッファーの駆動データの情報の応答を要求し、記録装置から当該要求に対する応答を受け取った上で、記録開始位置の状態、及び、バッファーの状態を取得することにより、記録装置の異常を迅速に検出できる。
【０００７】
また、上記発明の制御装置の制御方法であって、本発明は、前記記録装置からの応答に基づいて前記記録装置の異常を検出した場合、前記記録装置に、少なくとも前記バッファーをクリアさせるコマンドを送信することを特徴とする。
この制御方法によれば、記録開始位置の状態、バッファーの状態に起因して、記録装置の異常が発生している場合であっても、速やかに、当該異常の原因を解消できる。
【０００８】
また、上記発明の制御装置の制御方法であって、本発明は、前記記録装置に前記データを送信し、所定の一連の記録を行わせている間に、前記記録装置の異常を検出した場合は、前記コマンドを送信して当該記録装置の異常を解消させた後、前記所定の一連の記録を最初から行わせる要求を送信することを特徴とする。
この制御方法によれば、異常に記録された画像が含まれていない状態で、最初から記録媒体に一連の画像が記録された状態とすることが可能となる。
【０００９】
また、上記発明の制御装置の制御方法であって、本発明は、前記記録装置に前記データを送信する前に前記応答を要求し、当該要求に対する応答に基づいて、当該データに係る処理を前記記録装置が正常に実行できるか否かを判別することを特徴とする。
この制御方法によれば、上記応答の要求をできることを利用して、データを出力する前に、記録装置が当該データに係る処理を正常に実行できるか否かを判別できる。
【００１０】
また、上記発明の制御装置の制御方法であって、本発明は、前記送信しようとするデータに係る処理を前記記録装置が正常に実行できないと判別した場合、前記記録装置を制御して、当該処理を実行できる状態へと移行させることを特徴とする。
この制御方法によれば、データを出力する前に、記録装置が、当該データに係る処理を正常に実行できない状態であった場合であっても、正常に実行できる状態とした上で、データを出力できる。
【００１１】
また、上記発明の制御装置の制御方法であって、本発明は、前記記録装置の前記バッファーにおける前記記録開始位置の情報と、前記バッファーにおける駆動前の前記駆動データに関する情報との組み合わせが、送信しようとする前記データに係る処理を正常に実行可能な組み合わせでないことに起因して、当該処理を前記記録装置が正常に実行できないと判別した場合、前記記録装置に、少なくとも前記バッファーをクリアさせる前記コマンドを送信することにより、前記バッファーにおける前記記録開始位置と、前記バッファーにおける駆動前の前記駆動データに関する情報との組み合わせを、当該処理を正常に実行可能な組み合わせとした上で、当該データを送信することを特徴とする。
この制御方法によれば、データを出力する前に、記録装置のバッファーにおける記録開始位置と、駆動データの状態との組み合わせが、出力しようとするデータに係る処理を正常に実行可能な組み合わせでないことに起因して、当該処理を記録装置が正常に実行できない場合であっても、正常に実行できる状態とした上で、データを出力できる。
【００１２】
また、上記目的を達成するために、本発明は、受信したデータに基づき、記録ヘッドを駆動して記録媒体に記録を行うための駆動データを生成してバッファーに展開し、前記バッファーにおける記録開始位置を示す情報、及び、前記バッファーにおける駆動前の前記駆動データに関する情報を記憶する記録装置に接続可能な制御装置の制御部により実行されるプログラムであって、前記制御部を、前記記録装置に対して、記憶されている前記記録開始位置を示す情報、及び、前記駆動データに関する情報の応答を要求し、前記記録装置からの当該要求に対する応答に基づいて、前記記録装置の異常を判別する手段として機能させることを特徴とする。
このプログラムを実行すれば、制御装置は、記録装置に対して、記録開始位置を示す情報、及び、バッファーの駆動データの状態を示す情報の応答を要求し、記録装置から当該要求に対する応答を受け取った上で、記録開始位置の状態、及び、バッファーの状態を取得することにより、記録装置の記録の異常を迅速に検出できる。
【００１３】
また、上記目的を達成するために、本発明は、ホストコンピューターに接続可能な記録装置であって、前記ホストコンピューターから受信したデータに基づき、記録ヘッドを駆動して記録媒体に記録を行うための駆動データを生成してバッファーに展開する制御部を備え、前記制御部は、前記ホストコンピューターからの要求に応じて、前記バッファーにおける記録開始位置を示す情報、及び、前記バッファーにおける駆動前の前記駆動データに関する情報を応答することを特徴とする。
この構成によれば、記録装置は、ホストコンピューターからの要求に応じて、記憶されている記録開始位置を示す情報、及び、バッファーの駆動前の駆動データに関する情報を出力するため、ホストコンピューターは、当該応答に基づいて、記録装置の異常を迅速に検出可能である。
【００１４】
また、上記目的を達成するために、本発明は、ホストコンピューターと、前記ホストコンピューターから受信したデータに基づき、記録ヘッドを駆動して記録媒体に記録を行うための駆動データを生成してバッファーに展開する記録装置とを備える記録システムであって、前記ホストコンピューターは、前記記録装置に対して、前記バッファーにおける記録開始位置を示す情報、及び、前記バッファーにおける駆動前の前記駆動データに関する情報の応答を要求し、前記記録装置は、前記ホストコンピューターからの要求に応じて、前記記録開始位置を示す情報、及び、前記駆動データに関する情報を応答することを特徴とする。
この構成によれば、制御装置は、記録装置に対して、記録開始位置を示す情報、及び、バッファーの駆動データに関する情報の応答を要求し、記録装置から当該要求に対する応答を受け取った上で、記録開始位置の状態、及び、バッファーの状態を取得することにより、記録装置の異常を迅速に検出できる。
【発明の効果】
【００１５】
本発明によれば、記録装置の異常を迅速に検出できる。
【図面の簡単な説明】
【００１６】
【図１】記録システムの機能的構成を示すブロック図である。
【図２】感熱ロール紙及びラインサーマルヘッドを模式的に示す図である。
【図３】ホストコンピューター及びプリンターの動作を示すフローチャート。
【図４】ホストコンピューターの動作を示すフローチャートである。
【図５】ホストコンピューターの動作を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本実施形態に係る記録システム１の機能的構成を示すブロック図である。
記録システム１は、スーパーマーケットやコンビニエンスストア等の店舗に適用され、店舗に来店した顧客の代金の支払いに応じてレシートを発行するシステムであり、図１に示すように、ホストコンピューター１０（制御装置）と、プリンター１２（記録装置）とを備えている。
【００１８】
図１に示すように、ホストコンピューター１０は、制御部１５と、表示部１６と、入力部１７と、インターフェイス部１８と、記憶部１９と、を備えている。
制御部１５は、ホストコンピューター１０の各部を中枢的に制御するものであり、演算実行部としてのＣＰＵや、このＣＰＵに実行される基本制御プログラムや、この基本制御プログラムに係るデータ等を不揮発的に記憶するＲＯＭ、ＣＰＵに実行されるプログラムやこのプログラムに係るデータ等を一時的に記憶するＲＡＭ、その他の周辺回路等を備えている。
図１に示すように、制御部１５は、ＰＯＳアプリケーション実行部１５ａと、プリンタードライバー実行部１５ｂと、を備えているが、これらについては後述する。
【００１９】
表示部１６は、液晶ディスプレーパネルや、有機ＥＬパネル等の表示パネルを備え、制御部１５の制御の下、表示パネルに各種情報を表示する。
入力部１７は、キーボードや、マウス、バーコードリーダー、カードリーダー等の入力デバイスに接続され、これら入力デバイスの出力信号を制御部１５に出力する。バーコードリーダーは商品の包装紙等に記録されたバーコードの読み取りに利用され、カードリーダーはクレジットカードや、会員カード等に記録された情報の読み取りに利用される。バーコードリーダーやカードリーダー等の入力デバイスを用いて取得した情報は、レシートの発行に係る処理に用いられる。
インターフェイス部１８は、制御部１５の制御の下、プリンター１２との間で通信規格に準拠した通信を行う。
記憶部１９は、各種データを書き換え可能に記憶する部位であり、ハードディスクや、ＥＥＰＲＯＭ等の記憶装置を備えている。
【００２０】
一方、プリンター１２は、記録媒体であるロール状に巻かれた感熱ロール紙Ｒ（図２）を、ローラー状のプラテンにより搬送し、この感熱ロール紙Ｒの記録面に、発熱素子１４（図２）を備えたラインサーマルヘッド１３（記録ヘッド）によって熱を与えて画像を記録した上で、所定の位置で感熱ロール紙Ｒを切断することにより、レシートを発行するサーマルヘッド式プリンターである。
図１に示すように、プリンター１２は、プリンター側制御部３０と、送受信制御部３１と、受信バッファー３２と、プリンター側表示部３３と、プリンター側入力部３４と、プリントエンジン３５と、プリンター側記憶部３６と、プリントバッファー３７と、を備えている。
プリンター側制御部３０は、プリンター１２を中枢的に制御するものであり、上述した制御部１５と同様、ＣＰＵやＲＯＭ、ＲＡＭその他の周辺回路等を備えている。
送受信制御部３１は、ホストコンピューター１０との間で所定のプロトコルに準拠した通信を行う。特に、送受信制御部は、ホストコンピューター１０から送信される信号を受信し、受信した信号を復調（デコード）してコマンドやデータを生成し、受信バッファー３２に順次記憶する。
受信バッファー３２は、送受信制御部３１が出力したコマンドやデータを順次記憶する一時記憶装置である。受信バッファー３２には、送受信制御部３１がホストコンピューター１０から受信したコマンドが、受信した順に格納される。この受信バッファー３２に記憶されているコマンドやデータは、プリンター側制御部３０によって、基本的に、受信した順に読み出されて、実行される。
【００２１】
プリンター側表示部３３は、プリンター１２の動作状態等の各種情報を表示するＬＥＤや表示パネル等を備え、プリンター側制御部３０の制御の下、ＬＥＤや表示パネルに各種情報を表示する。
プリンター側入力部３４は、プリンター１２に設けられた各種操作スイッチに接続され、操作スイッチに対する操作を検出してプリンター側制御部３０に出力する。
プリントエンジン３５は、プリンター側制御部３０の制御の下、用紙端センサーや用紙残量センサー等の各種センサーの検出値を監視しながら、上述したラインサーマルヘッド１３のほか、感熱ロール紙Ｒを搬送するプラテンローラーを駆動するための搬送モーターや、所定の位置で感熱ロール紙Ｒを切断するためのカッター機構が備えるカッターを駆動するためのカッター駆動モーターを動作させて、感熱ロール紙Ｒに画像を記録し、画像を記録した感熱ロール紙Ｒを切断することによりレシートを発行する。
プリンター側記憶部３６は、フラッシュメモリーやハードディスク等の不揮発性メモリーを備え、各種データを書き換え可能に記憶する。
プリントバッファー３７は、各種データを一時的に記憶するバッファーである。プリントバッファー３７には、記録開始位置データ３７ａと、ラインバッファー状態データ３７ｂとが記憶され、また、所定の記憶領域にラインバッファー３７ｃが形成されているが、これらについては後述する。なお、プリントバッファー３７は、プリンター側制御部３０のＲＡＭの所定の記憶領域に形成する構成としてもよく、また、専用のメモリーを設ける構成としてもよい。
【００２２】
次いで、ＰＯＳアプリケーション実行部１５ａ及びプリンタードライバー実行部１５ｂの説明を通して、記録システム１がレシートを発行する際の基本的な動作について説明する。
ＰＯＳアプリケーション実行部１５ａは、ホストコンピューター１０に予めインストールされたＰＯＳアプリケーションを実行することにより、取引毎に、適宜、図示せぬサーバーにアクセスした上で、取引において購入された商品を示す情報や、商品の単価を示す情報、購入金額を示す情報等のレシートに記載すべき情報を取得し、取得した情報に基づいて、レシートに記録すべき画像に係る記録データを生成し、プリンタードライバー実行部１５ｂに出力する。
プリンタードライバー実行部１５ｂは、ホストコンピューター１０に予めインストールされたプリンタードライバーを実行することにより、ＰＯＳアプリケーション実行部１５ａから入力された記録データに基づいて、プリンター１２のコマンド仕様に対応した制御コマンド（データ）を生成し、プリンター側制御部３０に出力する。
この制御コマンドには、搬送機構に感熱ロール紙Ｒを搬送させるコマンドや、ラインサーマルヘッド１３を駆動して感熱ロール紙Ｒに画像を記録させるコマンド（画像記録コマンド）、切断機構に感熱ロール紙Ｒを切断させるコマンド等のプリンター１２にレシートを発行させるための各種コマンドや、感熱ロール紙Ｒに記録する画像を示す画像データ等のデータが含まれている。
プリンター１２に入力された制御コマンドに含まれるコマンドや、データは、送受信制御部３１により、受信バッファー３２に、順次、格納され、プリンター側制御部３０によって、順次、読み出されて、実行される。
【００２３】
次いで、感熱ロール紙Ｒに画像を記録する際のプリンター１２の動作について詳述する。
本実施形態では、感熱ロール紙Ｒに画像を記録するにあたり、ホストコンピューター１０からプリンター１２に対して、感熱ロール紙Ｒに画像を記録することを指示するコマンド（以下、「画像記録コマンド」という）と共に、記録すべき画像を示す画像データが出力され、プリンター１２の受信バッファー３２に格納される。
プリンター側制御部３０は、受信バッファー３２に格納された画像記録コマンドを読み出すことにより、画像の記録を実行する。
具体的には、まず、プリンター側制御部３０は、受信バッファー３２に格納された画像データに基づいて、記録開始位置データ３７ａを参照し、記録開始位置（後述）を取得した上で、ラインバッファー３７ｃに駆動データを展開する。
上述したラインサーマルヘッド１３には、所定の解像度に準拠して複数の発熱素子１４が並んで配列されている。そして、駆動データとは、感熱ロール紙Ｒの記録面に記録すべき画像に応じて、発熱素子１４によって形成される「行」ごとに、発熱素子１４のそれぞれの駆動を制御するための画素データである。
ラインバッファー３７ｃへの駆動データの展開後、プリントエンジン３５に実装された駆動回路（不図示）が、ラインバッファー３７ｃに展開された駆動データに基づいて、タイミング調整用の信号と同期をとりつつ、行ごとに、発熱素子１４のそれぞれに駆動信号を出力することによりこれら発熱素子１４を駆動する。このようにして、感熱ロール紙Ｒへの画像の記録が実行される。
ここで、ラインバッファー３７ｃに駆動データを展開する際に、プリンター側制御部３０によって展開される記録開始位置データ３７ａとは、感熱ロール紙Ｒにおいて画像の記録を開始する位置である記録開始位置に係る情報を保持するデータであり、具体的には、デフォルト値（記録開始位置が設定されていないことを示す値）、又は、記録開始位置を示す値のいずれかを保持するデータである。
【００２４】
図２は、記録開始位置を説明するため、ラインサーマルヘッド１３によって感熱ロール紙Ｒに画像が記録される様子を模式的に示す図である。
図２に示すように、ラインサーマルヘッド１３は、感熱ロール紙Ｒの幅方向に亘って延在しており、幅方向に所定の間隔で発熱素子１４が並ぶことにより１つの行が形成されている。
そして、記録開始位置とは、感熱ロール紙Ｒに画像を記録する際に、当該画像が記録される起点を示す情報のことであり、感熱ロール紙Ｒに記録される画像は、記録開始位置を起点として、搬送方向に向かって右側の領域に記録される。
図２の例で言えば、記録開始位置が符号Ｌ１で示す位置である場合、ロゴ等の図形を示す画像Ｇ１、及び、幅方向に連続した複数の文字からなる文字列を示す画像Ｇ２のいずれも、感熱ロール紙Ｒに記録される場合、記録開始位置Ｌ１を起点として、搬送方向に向かって右側の領域に記録される。
上述したように、プリンター側制御部３０は、受信バッファー３２に格納された画像データに基づいて、ラインバッファー３７ｃに駆動データを展開する場合、記録開始位置データ３７ａを参照し、記録開始位置を取得した上で、当該展開を実行する。この処理について詳述すると、プリンター側制御部３０は、記録開始位置データ３７ａを参照することにより、記録開始位置を示す値を取得する。記録開始位置の値は、例えば、基準位置Ｌ２からの離間量（何ドット離れているかを示す値）として設定されている。そして、プリンター側制御部３０は、取得した値が示す記録開始位置を起点として、搬送方向に向かって右側の領域に当該画像データに係る画像が記録されるようにラインサーマルヘッド１３の各発熱素子１４を駆動させる駆動データをラインバッファー３７ｃに展開する。図２の例で言えば、プリンター側制御部３０は、基準位置Ｌ２と記録開始位置Ｌ１とで挟まれる領域については、発熱素子１４による画像の記録が行われず、記録開始位置Ｌ１よりも搬送方向に向かって右側に配置された発熱素子１４によって画像が記録されるようにラインサーマルヘッド１３を駆動させるような駆動データを、ラインバッファー３７ｃに展開する。
【００２５】
記録開始位置データ３７ａの値は、以下のようにして設定される。
すなわち、画像記録コマンドには、当該画像記録コマンドによって記録させようとする画像の記録開始位置を示すデータが含まれている。そして、プリンター側制御部３０は、画像記録コマンドを読み出したときに、記録開始位置を示すデータに基づいて、当該画像記録コマンドによって記録すべき画像の記録開始位置を取得し、取得した記録開始位置を示す値を保持するように記録開始位置データ３７ａの内容を書き換える。
なお、記録開始位置データ３７ａは、記録開始位置が設定されていない場合は、デフォルト値となる。
【００２６】
以上のように、ラインバッファー３７ｃに展開された駆動データに基づいてラインサーマルヘッド１３が駆動し、感熱ロール紙Ｒに画像が記録されるが、ラインバッファー３７ｃに展開された、ある１行の発熱素子１４を駆動するための駆動データは、当該１行の発熱素子１４の駆動に利用された後適宜のタイミングでラインバッファー３７ｃから消去される。
また、記録開始位置データ３７ａは、画像記録コマンドにより記録することが指示された一連の画像の記録が終了したタイミングで、リセットされ、デフォルト値となる。
従って、１の画像記録コマンドに基づく画像の記録の実行が終了した後は、基本的には、ラインバッファー３７ｃには駆動データが残存していない状態であり、かつ、記録開始位置データ３７ａは、デフォルト値となっている。
【００２７】
ところで、従来の記録システムでは、プリンターが画像記録コマンドに基づいて記録を行った後、すなわち、各種機構による記録に係る動作が終了した後、記録が終了した旨の通知をホストコンピューターに出力していた。この場合、ホストコンピューターは、記録に係る動作が終了したことは検出できるものの、記録の結果、感熱ロール紙に正常に画像が記録されているか否かまでは判別することはできない。例えば、ホストコンピューター側とプリンター側とのボーレートの設定のミスマッチに起因して、プリンターが、ホストコンピューターから受信したコマンドを正常に実行できず、いわゆる文字化けが発生した場合であっても、ホストコンピューターは、そのことを検出することはできなかった。この場合、正常に画像が記録されなかった原因が解消されていない状態で継続してプリンターによる記録が行われてしまう可能性があるため、プリンターの記録の異常が発生した場合は、できるだけ迅速にそのことを検出したいとするニーズがあった。
これを踏まえ、本実施形態では、以下の動作を実行することにより、ホストコンピューター１０は、プリンター１２の記録の異常が発生したことを迅速に検出している。
【００２８】
図３は、ホストコンピューター１０、及び、プリンター１２の動作を示すフローチャートであり、図３（Ａ）がホストコンピューター１０の、図３（Ｂ）がプリンター１２の動作をそれぞれ示している。
図３に示す一連の処理は、ホストコンピューター１０からプリンター１２に、レシートを発行させるための制御コマンドが出力された後、この制御コマンドに基づいてプリンター１２によりレシートの発行に係る動作を実行している間に行われる処理である。
まず、ホストコンピューター１０のプリンタードライバー実行部１５ｂは、プリンター１２に対して応答要求コマンドを出力する（ステップＳＡ１）。この応答要求コマンドの出力は、プリンタードライバーの機能により実現される。
応答要求コマンドは、プリンター１２に対して、記録開始位置データ３７ａが示す情報、及び、ラインバッファー３７ｃに駆動データが展開された状態であるか否かを示す情報を含んだデータを送信（応答）することを要求するコマンドである。この応答要求コマンドに対応するプリンター１２の処理については、後述する。
この応答要求コマンドは、プリンター１２が、上述した画像記録コマンドに基づいて感熱ロール紙Ｒへの画像の記録を実行した直後に、当該応答要求コマンドに応じた応答を実行することとなるように、適切なタイミングで、ホストコンピューター１０からプリンター１２に対して出力される。例えば、応答要求コマンドを、受信バッファー３２に未実行のコマンドが格納されている場合であっても、当該応答要求コマンドが受信バッファー３２に格納された場合、他のコマンドに優先して当該応答要求コマンドを実行するようなコマンドとし、かつ、プリンター１２を、画像記録コマンドに基づく画像の記録が終了した場合、ホストコンピューター１０に対してその旨通知する構成とする。そして、ホストコンピューター１０は、画像記録コマンドに基づく画像の記録が終了した旨の通知を受けたときに、応答要求コマンドを出力する。その他、制御コマンドにおいて、画像記録コマンドの次に応答要求コマンドが実行されるように、制御コマンドの中に応答要求コマンドを含むようにしてもよい。
【００２９】
応答要求コマンドが入力されたプリンター１２のプリンター側制御部３０は、記録開始位置データ３７ａを参照し、記録開始位置データ３７ａがデフォルト値を保持しているか、何らかの記録開始位置を示す値を保持しているかを判別する（ステップＳＢ１）。
次いで、プリンター側制御部３０は、ラインバッファー状態データ３７ｂを参照し、ラインバッファー３７ｃに何らかの駆動データが残存しているか否かを判別する（ステップＳＢ２）。ラインバッファー状態データ３７ｂとは、ラインバッファー３７ｃの全領域のデータが消去され、データが全く残存していない状態であるか、又は、ラインバッファー３７ｃに少しでも駆動データが残存している状態であるかを示す情報を保持するデータである。プリンター側制御部３０は、ラインバッファー３７ｃの状態を監視し、ラインバッファー３７ｃの状態に応じて、適宜、ラインバッファー状態データ３７ｂの内容を更新する。
次いで、プリンター側制御部３０は、記録開始位置データ３７ａがデフォルト値、及び、何らかの記録開始位置を示す値のいずれを保持しているかを示す情報、及び、ラインバッファー３７ｃに駆動データが残存しているか否かを示す情報を含んだデータ（以下、「応答データ」という）を、ホストコンピューター１０に出力する（ステップＳＢ３）。
応答データが入力されたホストコンピューター１０のプリンタードライバー実行部１５ｂは、応答データに基づいて、プリンター１２の記録に異常があった可能性があるか否かを判別する（ステップＳＡ２）。
【００３０】
ステップＳＡ２の処理について詳述すると、上述したように、画像記録コマンドに基づいて画像の記録を実行した後は、基本的には、ラインバッファー３７ｃには、駆動データが残存していない状態であり、かつ、記録開始位置データ３７ａは、デフォルト値を保持した状態となっている。
一方、画像記録コマンドに基づいて画像の記録を実行した後に、ラインバッファー３７ｃに駆動データが残存している場合がある。
これは、例えば、ホストコンピューター１０とプリンター１２とのボーレートの設定のミスマッチに起因して、受信バッファー３２に正常な状態で、画像記録コマンドや、画像データが格納されず、このため、ラインバッファー３７ｃへの駆動データの展開が正常に行われていなかったり、また、画像記録コマンドの読み取りエラーや、発熱素子１４の駆動に係る処理の処理エラーに起因して、展開された駆動データに基づく発熱素子１４の駆動が正常に行われていなかったりした場合に、発生する。この場合、感熱ロール紙Ｒに文字化けした状態で画像が記録され、また、必要な画像が記録されていない等、記録された画像に異常が発生している可能性がある。
また、画像記録コマンドに基づいて画像の記録を実行した後に、ラインバッファー３７ｃに駆動データが残存していない場合であっても、記録開始位置データ３７ａが、デフォルト値ではない場合がある。これは、例えば、上述したようなコマンドの読み取りエラー等に起因してラインバッファー３７ｃに展開すべき画像データが読み捨てられたり、また、処理エラーに起因して展開された駆動データが異常な態様で用いられたりした場合に、発生する。この場合、感熱ロール紙Ｒに文字化けした状態で画像が記録され、また、必要な画像が記録されていない等、記録された画像に異常が発生している可能性がある。
これを踏まえ、ステップＳＡ２において、プリンタードライバー実行部１５ｂは、プリンター１２から入力された応答データに基づいて、ラインバッファー３７ｃに駆動データが残存しているか否か、また、駆動データが残存していない場合であっても、記録開始位置データ３７ａがデフォルト値でないか否かを判別し、ラインバッファー３７ｃに駆動データが残存している場合、又は、駆動データが残存していない場合であっても記録開始位置データ３７ａがデフォルト値でない場合は、画像記録コマンドに基づいて感熱ロール紙Ｒに記録された画像に異常が発生している可能性がある、すなわち、プリンター１２の記録に異常があった可能性がある、と判別する。
なお、ラインバッファー３７ｃに駆動データが残存し、また、記録開始位置データ３７ａがデフォルト値でない状態で、画像の記録を行った場合、ラインバッファー３７ｃへの駆動データの正常な展開や、正しい記録開始位置の取得等が阻害され、正常な画像の記録が実行できない。
【００３１】
ステップＳＡ２の判別の結果、プリンター１２の記録に異常があった可能性があることが検出されなかった場合（ステップＳＡ３：ＮＯ）、プリンタードライバー実行部１５ｂは、処理を終了する。
一方、ステップＳＡ２の判別の結果、プリンター１２の記録に異常があった可能性があることを検出した場合、プリンタードライバー実行部１５ｂは、記録異常時処理を実行し（ステップＳＡ４）、処理を終了する。
【００３２】
図４は、ステップＳＡ４の記録異常時処理の動作を詳細に示すフローチャートである。
この記録異常時処理は、画像記録コマンドに基づく画像の記録が正常に行われていない可能性がある場合に実行される処理である。この場合、発行しようとしているレシートの記録面に、異常な状態で画像が記録されてしまっている可能性がある。ここで、レシートは、顧客に引き渡すものであるため、発行されるレシートの画像には、異常な状態で記録された画像が全くないことが求められる。これを踏まえ、記録異常時処理は、異常な状態で画像が記録されてしまっている可能性が検出されたレシートは破棄し、新たにレシートを発行することを目的としている。
記録異常時処理において、まず、プリンタードライバー実行部１５ｂは、受信バッファー３２をクリアさせるコマンドをプリンター１２に出力し、これにより、引き続き行われる予定であったレシートの発行に係る処理を停止し、レシートの発行に係る処理を中断する（ステップＳＣ１）。
次いで、プリンタードライバー実行部１５ｂは、ラインバッファー３７ｃをクリアさせるコマンドをプリンター１２に出力し、ラインバッファー３７ｃをクリアする（ステップＳＣ２）。
次いで、プリンタードライバー実行部１５ｂは、記録開始位置データ３７ａをリセットさせるコマンドをプリンター１２に出力し、記録開始位置データ３７ａをデフォルト値とする（ステップＳＣ３）。なお、ステップＳＣ３の処理は、記録開始位置データ３７ａがデフォルト値でない状態のときのみ行うようにしてもよい。
このステップＳＣ２、及び、ステップＳＣ３の処理により、異常な記録の原因であった、ラインバッファー３７ｃにおける駆動データの残存、及び、記録開始位置データ３７ａがデフォルト値でないこと、が解消し、正常な画像の記録を実現できる状態となる。
次いで、プリンタードライバー実行部１５ｂは、感熱ロール紙Ｒを切断することを指示するカットコマンドをプリンター１２に出力する（ステップＳＣ４）。このカットコマンドが入力されたプリンター１２は、感熱ロール紙Ｒを適切な距離だけ搬送した上で、感熱ロール紙Ｒを切断する。これにより、感熱ロール紙Ｒにおいて異常な状態で記録された可能性のある画像に係る部分が切り取られ、分離される。
次いで、プリンタードライバー実行部１５ｂは、レシートの発行に係る動作を実行させる一連のコマンドを含む制御コマンドを改めてプリンター１２に出力する（ステップＳＡ５）。
これにより、正常な画像の記録を実現できる状態で、改めてレシートが発行されることとなる。
【００３３】
以上、図３及び図４で示したように、本実施形態に係る記録システム１では、感熱ロール紙Ｒに異常な状態で画像が記録された可能性があることを、ホストコンピューター１０は迅速に検出でき、さらに、検出した場合に有効な処理を行う。
【００３４】
ところで、ホストコンピューター１０からプリンター１２に出力されるコマンドの中には、ラインバッファー３７ｃに何ら駆動データが残存しておらず、かつ、記録開始位置データ３７ａがデフォルト値である場合にのみ、プリンター１２がコマンドに係る処理を正常に実行可能なコマンドがある。例えば、上述した画像記録コマンドや、記録開始位置データ３７ａがデフォルト値であることを前提として画像の記録に係る処理を行わせるコマンド（例えば、感熱ロール紙Ｒにおいて、「中央揃え」や「右揃え」して画像を記録させることを指示するコマンド等、設定記録開始位置以外の基準によって画像を記録すべき位置を規定した上で画像を記録させるコマンド）等である。以下、このようなコマンドを「第１コマンド」という。
また、ホストコンピューター１０からプリンター１２に出力されるコマンドの中には、記録開始位置データ３７ａが保持する値にかかわらず、ラインバッファー３７ｃに何ら駆動データが残存していない場合に、プリンター１２がコマンドに係る処理を正常に実行可能なコマンドがある。例えば、画像の記録にあたり、記録開始位置を利用せず、所定の領域に強制的に画像を記録させることを指示するコマンド等である。以下、このようなコマンドを「第２コマンド」という。
そして、本実施形態に係る記録システム１では、第１コマンド、及び、第２コマンドが存在することに着目し、上述した応答要求コマンドを利用して、以下のような有効な処理を実行する。
【００３５】
図５は、ホストコンピューター１０の動作を示すフローチャートである。
まず、ホストコンピューター１０のプリンタードライバー実行部１５ｂは、第１コマンド、又は、第２コマンドをプリンター１２に出力しようとしているか否かを監視する（ステップＳＤ１）。
第１コマンド、又は、第２コマンドを出力しようとしている場合（ステップＳＤ１：ＹＥＳ）、プリンタードライバー実行部１５ｂは、コマンドを出力する前に、上述した応答要求コマンドを出力する（ステップＳＤ２）。
次いで、プリンタードライバー実行部１５ｂは、プリンター１２から応答要求コマンドに対応する応答データを受信する（ステップＳＤ３）。上述したように、この応答データには、記録開始位置データ３７ａがデフォルト値を保持しているか、何らかの記録開始位置を示す値を保持しているかを示す情報、及び、ラインバッファー３７ｃに駆動データが残存しているか否かを示す情報が含まれている。
次いで、プリンタードライバー実行部１５ｂは、第１コマンドを出力しようとしている場合は、プリンター１２が第１コマンドを正常に実行できる状態であるか否かを判別し、また、第２コマンドを出力しようとしている場合は、プリンター１２が第２コマンドを正常に実行できる状態であるか否かを判別する（ステップＳＤ４）。
具体的には、第１コマンドを出力しようとしている場合、プリンタードライバー実行部１５ｂは、ラインバッファー３７ｃに何ら駆動データが残存しておらず、かつ、記録開始位置データ３７ａがデフォルト値であるか否かを判別し、ラインバッファー３７ｃに何ら駆動データが残存しておらず、かつ、記録開始位置データ３７ａがデフォルト値である場合は、プリンター１２が第１コマンドに係る処理を正常に実行できる状態であると判別する。
また、第２コマンドを出力しようとしている場合、プリンタードライバー実行部１５ｂは、記録開始位置データ３７ａがデフォルト値であるか否かにかかわらず、ラインバッファー３７ｃに何ら駆動データが残存していない状態であるか否かを判別し、ラインバッファー３７ｃに何ら駆動データが残存していない状態である場合は、プリンター１２が第２コマンドに係る処理を正常に実行できる状態であると判別する。
【００３６】
ステップＳＤ４において、プリンター１２がコマンドに係る処理を正常に実行できる状態であると判別した場合（ステップＳＤ４：ＹＥＳ）、プリンタードライバー実行部１５ｂは、第１コマンド、又は、第２コマンドを出力する（ステップＳＤ５）。
一方、プリンター１２がコマンドに係る処理を正常に実行できる状態ではないと判別した場合（ステップＳＤ４：ＮＯ）、プリンタードライバー実行部１５ｂは、出力しようとしているコマンドに応じて、プリンター１２の状態を、コマンドを正常に実行できる状態へと移行させる（ステップＳＤＣ６）。
具体的には、第１コマンドを出力しようとしている場合、プリンタードライバー実行部１５ｂは、プリンター１２に制御用のコマンドを出力し、ラインバッファー３７ｃに残存する駆動データをクリアし、また、記録開始位置データ３７ａをリセットさせその値をデフォルト値とする。また、第２コマンドを出力しようとしている場合、プリンタードライバー実行部１５ｂは、プリンター１２に制御用のコマンドを出力し、ラインバッファー３７ｃに残存する駆動データをクリアする。これにより、プリンター１２は、コマンドに係る処理を正常に実行できる状態となる。
次いで、プリンタードライバー実行部１５ｂは、第１コマンド、又は、第２コマンドをプリンター１２に出力する（ステップＳＤ７）。
以上のような処理を実行することにより、第１コマンドや、第２コマンドを出力する場合において、プリンター１２に確実にこれらコマンドに係る処理を実行させることが可能となる。
【００３７】
以上説明したように、本実施形態に係る記録システム１は、ホストコンピューター１０と、プリンター１２とを備えている。そして、ホストコンピューター１０は、記録開始位置データ３７ａが示す情報、及び、ラインバッファー３７ｃに駆動データが残存した状態（展開された状態）であるか否かを示す情報（駆動データに関する情報）の応答を要求する応答要求コマンドを出力できる。そして、プリンター１２が応答要求コマンドに対応して出力した応答データに基づいて、プリンター１２の記録の異常を検出する。
これによれば、ホストコンピューター１０は、適宜、応答要求コマンドをプリンター１２に出力し、応答データを受信することにより、プリンター１２の記録開始位置の状態、及び、ラインバッファー３７ｃの状態を取得でき、かつ、取得したこれら情報に基づいて、迅速にプリンター１２の記録の異常を検出できる。
【００３８】
また、本実施形態では、ホストコンピューター１０は、プリンター１２から入力された応答データに基づいてプリンター１２の記録の異常を検出した後、プリンター１２に、記録開始位置データ３７ａをリセットさせ、また、ラインバッファー３７ｃをクリアさせることにより、プリンター１２の記録の異常を解消させる。
これによれば、記録開始位置の状態、ラインバッファー３７ｃの状態に起因して、プリンター１２の記録の異常が発生している場合であっても、速やかに、当該異常の原因を解消できる。
【００３９】
また、本実施形態では、プリンター１２に、レシートの発行に係る動作を行わせている間に、プリンター１２の記録の異常を検出した場合は、当該記録の異常を解消させた後、レシートの発行に係る一連の動作を最初から行わせる。
これによれば、異常に記録された画像が含まれていない状態で、一連の画像が記録されたレシートを発行することができる。
【００４０】
また、本実施形態では、ホストコンピューター１０は、第１コマンド、又は、第２コマンドを出力する前に応答要求コマンドを出力し、当該要求コマンドに対応して入力された応答データに基づいて、第１コマンド、第２コマンドに係る処理をプリンター１２が正常に実行できるか否かを判別する。
これによれば、応答要求コマンドを利用して、第１コマンド、第２コマンドを出力する前に、プリンター１２がこれらコマンドに係る処理を正常に実行できるか否かを判別できる。
【００４１】
また、本実施形態では、ホストコンピューター１０は、出力しようとする第１コマンド、第２コマンドに係る処理をプリンター１２が正常に実行できないと判別した場合、プリンター１２を制御して、当該処理を実行できる状態へと移行させる。
これによれば、第１コマンド又は第２コマンドを出力する前に、プリンター１２が、当該コマンドに係る処理を正常に実行できない状態であった場合であっても、正常に実行できる状態とした上で、第１コマンド又は第２コマンドを出力できる。
【００４２】
また、本実施形態では、ホストコンピューター１０は、第１コマンド又は第２コマンドの出力に際し、プリンター１２における記録開始位置データ３７ａの記録開始位置の値と、ラインバッファー３７ｃの状態との組み合わせが、出力しようとする第１コマンド又は第２コマンドに係る処理を正常に実行可能な組み合わせでないことに起因して、当該処理をプリンター１２が正常に実行できないと判別した場合、プリンター１２に、記録開始位置データ３７ａをリセットさせ、また、ラインバッファー３７ｃをクリアさせることにより、プリンター１２における記録開始位置の値と、ラインバッファー３７ｃの状態との組み合わせを、これらコマンドに係る処理を正常に実行可能な組み合わせとした上で、これらコマンドを出力する。
これによれば、第１コマンド又は第２コマンドを出力する前に、プリンター１２における記録開始位置データ３７ａの記録開始位置の値と、バッファーの状態との組み合わせが、出力しようとする第１コマンド又は第２コマンドに係る処理を正常に実行可能な組み合わせでないことに起因して、当該処理をプリンター１２が正常に実行できない場合であっても、正常に実行できる状態とした上で、第１コマンド又は第２コマンドを出力できる。
【００４３】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
上述した実施形態では、応答要求コマンドの出力や、プリンター１２の記録の異常の有無の判別等をプリンタードライバーの機能により実現する構成であったが、これら機能は、プリンタードライバー以外のプログラムによって実現されていてもよい。
また、上述した実施形態では、プリンター１２として、サーマルラインプリンターを適用する場合を例として発明を説明したが、ホストコンピューター１０によって制御されるプリンター１２は、サーマルラインプリンターに限らず、例えば、インクジェット式プリンターや、ドットインパクト式プリンターであってもよい。すなわち、本発明は、バッファーに駆動データを展開し、展開した駆動データに基づいて記録ヘッドを駆動する記録装置、当該記録装置を制御する制御装置、及び、当該記録装置と当該制御装置とを備えるシステムに広く適用可能である。
【符号の説明】
【００４４】
１…記録システム、１０…ホストコンピューター（制御装置）、１２…プリンター（記録装置）、１３…ラインサーマルヘッド（記録ヘッド）、１５…制御部、１５ｂ…プリンタードライバー実行部、３０…プリンター側制御部、３７…プリントバッファー、３７ｃ…ラインバッファー、Ｒ…感熱ロール紙（記録媒体）。
【図１】
0005625791.tif 000002
【図２】
0005625791.tif 000003
【図３】
0005625791.tif 000004
【図４】
0005625791.tif 000005
【図５】
0005625791.tif 000006