(57)【特許請求の範囲】
【請求項１】
記録データを生成する記録データ生成部と、
前記記録データを識別する識別子を生成する識別子生成部と、
前記識別子を格納するヘッダー部と、前記記録データを格納するデータ部と、を備える制御データを送信する送信部と、を有し、
前記送信部により、前記ヘッダー部に属するデータ、前記データ部に属するデータの順番で前記制御データを送信する制御装置と、
記録を実行する記録部と、
前記識別子と前記記録データとを関連付けてテーブルに格納する記憶部と、
前記制御装置の前記送信部で送信された前記ヘッダー部と前記データ部とをこの順で受信して、前記ヘッダー部に属するデータ、及び、前記データ部に属するデータを、この順に受信バッファーに格納する受信部と、
前記受信部により前記ヘッダー部に属するデータの前記受信バッファーへの格納が完了したか否かを監視し、前記ヘッダー部に属するデータの前記受信バッファーへの格納が完了した場合に、前記テーブルを参照し、受信した前記ヘッダー部に格納された前記識別子が前記テーブルに格納された前記識別子に含まれるか否かを判定する識別子判定部と、
前記識別子判定部で含まれると判定された場合、前記受信部による前記記録データの受信の完了を待たずに、前記識別子に関連付けて前記テーブルに格納された前記記録データを取得し、取得した記録データに基づいて、前記記録部に記録を実行させる記録制御部と、
前記識別子判定部で含まれないと判定された場合、前記受信部で受信した前記識別子と、前記記録データとを関連付けて前記テーブルに格納する格納部と、を有する記録装置と、を備え、
前記記録装置において、前記ヘッダー部に属するデータの前記受信バッファーへの格納が完了した場合に、前記識別子判定部は前記テーブルを参照せずに前記受信部で受信した前記ヘッダー部に特定のデータが格納されているか否かを認識し、前記識別子判定部が前記特定のデータが格納されていることを認識した場合、前記記録制御部は、前記テーブルを参照することなく、前記受信部による前記データ部の受信が完了するまで待機し、前記格納部は前記識別子と前記記録データとを関連付けて前記テーブルに格納する処理を行わない、ことを特徴とする記録システム。
【請求項２】
前記記録装置の前記記録制御部は、
前記識別子判定部で含まれないと判定された場合、前記受信部による前記記録データの受信が完了した後、受信が完了した前記記録データに基づいて、前記記録部に記録を実行させることを特徴とする請求項１記載の記録システム。
【請求項３】
前記記録装置は、
所定の条件が成立した場合、前記テーブルに記憶された前記識別子と前記記録データとの組み合わせを消去する消去部を備えることを特徴とする請求項１または２に記載の記録システム。
【請求項４】
前記記録装置の前記消去部は、
前記識別子判定部で含まれると判定される回数の低い前記識別子と、前記記録データとの組み合わせを優先的に消去することを特徴とする請求項３に記載の記録システム。
【請求項５】
制御装置で、記録データを生成し、前記記録データを識別する識別子を生成し、前記識別子を格納するヘッダー部と前記記録データを格納するデータ部とを備える制御データを、前記ヘッダー部に属するデータ、前記データ部に属するデータの順番で送信し、
記録装置で、前記識別子と前記記録データとを関連付けてテーブルに記憶し、前記制御装置で送信された前記ヘッダー部と前記データ部とをこの順で受信して、前記ヘッダー部に属するデータ、及び、前記データ部に属するデータを、この順に受信バッファーに格納する第１処理と、前記ヘッダー部に属するデータの前記受信バッファーへの格納が完了したか否かを監視し、前記ヘッダー部に属するデータの前記受信バッファーへの格納が完了した場合に、前記テーブルを参照し、受信した前記ヘッダー部に格納された前記識別子が、前記テーブルに格納された前記識別子に含まれるか否かを判定する第２処理と、を実行し、前記第２処理で含まれないと判定された場合、受信した前記識別子と、前記記録データとを関連付けて前記テーブルに格納し、前記第２処理で含まれると判定した場合、前記記録データの受信の完了を待たずに、前記識別子に関連付けた前記記録データを取得し、取得した記録データに基づいて記録を実行し、
前記ヘッダー部に属するデータの前記受信バッファーへの格納が完了した場合に、前記テーブルを参照せずに、受信した前記ヘッダー部に特定のデータが格納されているか否かを認識し、前記特定のデータが格納されていることを認識した場合、前記テーブルを参照することなく、前記データ部の受信が完了するまで待機し、前記識別子と前記記録データとを関連付けて前記テーブルに格納する処理を行わない、ことを特徴とする記録制御方法。
【請求項６】
記録を実行する記録部と、
識別子と記録データとを関連付けてテーブルに格納する記憶部と、
外部装置から、前記識別子が格納されたヘッダー部と前記記録データが格納されたデータ部とを備える制御データを、前記ヘッダー部に属するデータ、前記データ部に属するデータの順番で受信して、前記ヘッダー部に属するデータ、及び、前記データ部に属するデータを、この順に受信バッファーに格納する受信部と、
前記受信部により前記ヘッダー部に属するデータの前記受信バッファーへの格納が完了したか否かを監視し、前記ヘッダー部に属するデータの前記受信バッファーへの格納が完了した場合に、前記テーブルを参照し、受信した前記ヘッダー部に格納された前記識別子が前記テーブルに格納された前記識別子に含まれるか否かを判定する識別子判定部と、
前記識別子判定部で含まれると判定された場合、前記受信部による前記記録データの受信の完了を待たずに、前記識別子に関連付けて前記テーブルに格納された前記記録データを取得し、取得した記録データに基づいて、前記記録部に記録を実行させる記録制御部と、
前記識別子判定部で含まれないと判定された場合、前記受信部で受信した前記識別子と、前記記録データとを関連付けて前記テーブルに格納する格納部と、を有し、
前記ヘッダー部に属するデータの前記受信バッファーへの格納が完了した場合に、前記識別子判定部は前記テーブルを参照せずに前記受信部で受信した前記ヘッダー部に特定のデータが格納されているか否かを認識し、前記識別子判定部が前記特定のデータが格納されていることを認識した場合、前記記録制御部は、前記テーブルを参照することなく、前記受信部による前記データ部の受信が完了するまで待機し、前記格納部は前記識別子と前記記録データとを関連付けて前記テーブルに格納する処理を行わない、ことを特徴とする記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置と制御装置とを備える記録システム、記録制御方法、及び、記録装置に関する。
【背景技術】
【０００２】
従来、制御装置（端末装置）と、記録装置（ネットワークプリンタ）とが通信する記録システム（ネットワークプリンタシステム）が知られている（例えば、特許文献１参照）。特許文献１の記録システムでは、制御装置は、記録データ（印刷データ）の送信に際し、記録データに識別子を付与し、識別子のみを記録装置に送信する。記録装置は、受信した識別子が、予め記憶した識別子と一致する場合は、予め記憶した識別子と対応付けて予め記憶した記録データに基づく記録を実行する。一方、記録装置は、受信した識別子が、予め記憶した識別子と一致しない場合は、制御装置に対して記録データを要求し、要求に応じて制御装置により送信された記録データを受信し、受信した記録データに基づく記録を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１６３２２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した特許文献１の記録システムでは、記録装置による記録データに基づく記録に際し、記録装置が、制御装置から受信した識別子を予め記憶しない場合、制御装置と記録装置との間でデータの送受信を複数回行う必要があり、このことに起因してスループットが低下する可能性があった。
本発明は、上述した事情に鑑みてなされたものであり、記録システム、記録制御方法、及び、記録装置について、記録のスループットを向上することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の記録システムは、記録データを生成する記録データ生成部と、前記記録データを識別する識別子を生成する識別子生成部と、前記識別子と前記記録データとをこの順で送信する送信部と、を有する制御装置と、記録を実行する記録部と、前記識別子と前記記録データとを関連付けて格納する記憶部と、前記制御装置の前記送信部で送信された前記識別子と前記記録データとをこの順で受信する受信部と、前記受信部で前記識別子を受信した場合、受信した前記識別子が前記記憶部に格納された前記識別子に含まれるか否かを判定する識別子判定部と、前記識別子判定部で含まれると判定された場合、前記識別子に関連付けて前記記憶部に格納された前記記録データに基づいて、前記記録部に記録を実行させる記録制御部と、を有する記録装置と、を備えることを特徴とする。
本発明の構成によれば、記録装置は、制御装置から識別子を受信した場合、受信した識別子が、予め格納（記憶）した識別子と一致する場合、対応する記録データの受信の完了を待たずに、予め識別子と関連付けて格納した記録データに基づいて記録を開始できる。このため、受信した識別子と、予め格納した識別子とが一致する場合は、受信した記録データの受信を完了した後に記録を開始する場合と比較して、記録を開始するタイミングを早くでき、スループットを向上できる。
【０００６】
また、本発明の記録システムは、前記記録装置の前記記録制御部は、前記識別子判定部で含まれると判定された場合、前記受信部による前記記録データの受信の完了を待たずに、前記識別子に関連付けて前記記憶部に格納された前記記録データに基づいて、前記記録部に記録を実行させることを特徴とする。
本発明の構成によれば、スループットを向上できる。
【０００７】
また、本発明の記録システムは、前記記録装置の前記記録制御部は、前記識別子判定部で含まれないと判定された場合、前記受信部による前記記録データの受信が完了した後、受信が完了した前記記録データに基づいて、前記記録部に記録を実行させることを特徴とする。
本発明の構成によれば、記録装置は、受信した識別子と、予め格納した識別子とが一致しない場合、受信した記録データに基づいて記録を実行できる。
【０００８】
また、本発明の記録システムは、前記記録装置は、前記識別子判定部で含まれないと判定された場合、前記受信部で受信した前記識別子と、前記記録データとを関連付けて前記記憶部に格納する格納部を有することを特徴とする。
本発明の構成によれば、記録装置は、制御装置から過去に受信した識別子、及び、記録データを用いて、スループットを向上できる。
【０００９】
また、本発明の記録システムは、前記記録装置は、所定の条件が成立した場合、前記記憶部に記憶された前記識別子と前記記録データとの組み合わせを消去する消去部を備えることを特徴とする。
本発明の構成によれば、記録装置は、所定の条件が成立した場合に、記憶部に記憶された識別子と記録データとの組み合わせを消去することにより、記憶領域のオーバーフローを防止できる。
【００１０】
また、本発明の記録システムは、前記記録装置の前記消去部は、前記識別子判定部で含まれると判定される頻度の低い前記識別子と、前記記録データとの組み合わせを優先的に消去することを特徴とする。
本発明の構成によれば、記録装置は、記憶部から識別子と記録データとの組み合わせを消去する際に、今後、利用される可能性の低いものから消去できる。
【００１１】
また、上記目的を達成するために、本発明の記録制御方法は、制御装置で、記録データを生成し、前記記録データを識別する識別子を生成し、前記識別子と前記記録データとをこの順で送信し、記録装置で、前記識別子と前記記録データとを関連付けて記憶し、前記制御装置で送信された前記識別子を受信し、受信した前記識別子が前記記憶部に格納された前記識別子に含まれるか否かを判定し、含まれると判定した場合、前記識別子に関連付けた前記記録データに基づいて記録を実行することを特徴とする。
本発明の構成によれば、記録装置は、制御装置から識別子を受信した場合、受信した識別子が、予め格納（記憶）した識別子と一致する場合、対応する記録データの受信の完了を待たずに、予め識別子と関連付けて格納した記録データに基づいて記録を開始できる。このため、受信した識別子と、予め格納した識別子とが一致する場合は、受信した記録データの受信を完了した後に記録を開始する場合と比較して、記録を開始するタイミングを早くでき、スループットを向上できる。
【００１２】
また、上記目的を達成するために、本発明の記録装置は、記録を実行する記録部と、識別子と記録データとを関連付けて格納する記憶部と、外部装置で送信された前記識別子と前記記録データとをこの順で受信する受信部と、前記受信部で前記識別子を受信した場合、受信した前記識別子が、記憶した前記識別子に含まれるか否かを判定する識別子判定部と、前記識別子判定部で含まれると判定された場合、前記識別子に関連付けて前記記憶部に格納された前記記録データに基づいて、前記記録部に記録を実行させる記録制御部と、を有することを特徴とする。
本発明の構成によれば、記録装置は、外部装置から識別子を受信した場合、受信した識別子が、予め格納（記憶）した識別子と一致する場合、対応する記録データの受信の完了を待たずに、予め識別子と関連付けて格納した記録データに基づいて記録を開始できる。このため、受信した識別子と、予め格納した識別子とが一致する場合は、受信した記録データの受信を完了した後に記録を開始する場合と比較して、記録を開始するタイミングを早くでき、スループットを向上できる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係る記録システムの機能的構成を示すブロック図。
【図２】ホストコンピューター、及び、記録装置の動作を示すフローチャート。
【図３】制御データのデータ構造を示す図。
【図４】記録データ格納テーブルを示す図。
【図５】記録装置の動作を示すフローチャート。
【図６】変形例に係る記録装置が発行するレシートを示す図。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本実施形態に係る記録システム１の機能的構成を示すブロック図である。
図１に示すように、記録システム１は、記録装置１０と、記録装置１０に通信可能に接続されたホストコンピューター１１（制御装置）と、を備える。
【００１５】
記録システム１は、いわゆるＰＯＳシステムの一部を構成するシステムである。本実施形態では、記録装置１０及びホストコンピューター１１は、店舗に設けられたレジカウンターに設けられる。後述するように、記録装置１０は、ホストコンピューター１１の制御で、クーポンを発行する。
【００１６】
記録装置１０は、ロール紙を収納し、ライン型のサーマルヘッドによりロール紙に記録するラインサーマルプリンターである。
図１に示すように、記録装置１０は、制御部２０と、入力部２１と、表示部２２と、記憶部２３と、記録部２４と、通信部２５（受信部）と、を備える。
【００１７】
制御部２０は、ＣＰＵや、ＲＯＭ、ＲＡＭ、その他の制御回路等を備え、記録装置１０を制御する。制御部２０は、ＲＯＭに記憶された制御プログラムを読み出して実行することにより、識別子判定部２０１と、記録制御部２０２と、格納部２０３と、消去部２０４と、として機能する。識別子判定部２０１、及び、記録制御部２０２については後述する。
【００１８】
入力部２１は、記録装置１０に設けられた操作スイッチに接続され、操作スイッチに対する操作を検出して、制御部２０に出力する。制御部２０は、入力部２１からの入力に基づいて、操作に対応する処理を実行する。
【００１９】
表示部２２は、記録装置１０に設けられた複数のＬＥＤに接続され、制御部２０の制御で、複数のＬＥＤを所定の態様で駆動して、記録装置１０の動作モードや、状態、エラーの発生の有無等を報知する。
【００２０】
記憶部２３は、ＥＥＰＲＯＭ等の不揮発性メモリーを備え、各種データを記憶する。記憶部２３は、記録データ格納テーブル２３１を記憶する。記録データ格納テーブル２３１については後述する。
【００２１】
記録部２４は、制御部２０の制御で、ロール紙への記録を実行する。詳述すると、記録部２４は、記録機構２４１と、搬送機構２４２と、切断機構２４３と、を備える。記録機構２４１は、ライン型のサーマルヘッドや、サーマルヘッドを駆動する駆動機構、駆動機構を制御する制御回路等のロール紙にドットを形成して画像を記録する各種機構を備える。搬送機構２４２は、ロール紙を搬送するプラテンローラーや、プラテンローラーを回転させる搬送モーター等のロール紙を搬送する各種機構を備える。切断機構２４３は、カッターや、カッターを駆動するカッター駆動モーター等のロール紙を切断する各種機構を備える。
記録部２４は、搬送機構２４２によりロール紙を搬送し、記録機構２４１によりロール紙にドットを形成して画像を記録し、切断機構２４３によりロール紙を切断して、画像が記録された紙片を発行する。
【００２２】
通信部２５は、制御部２０の制御で、所定の通信規格に従って、ホストコンピューター１１と通信する。
【００２３】
ホストコンピューター１１は、記録装置１０を制御して、記録装置１０に記録を実行させるコンピューターである。
図１に示すように、ホストコンピューター１１は、ホスト制御部３０と、ホスト入力部３１と、ホスト表示部３２と、ホスト記憶部３３と、ホスト通信部３４（送信部）と、を備える。
【００２４】
ホスト制御部３０は、ＣＰＵや、ＲＯＭ、ＲＡＭ、その他の制御回路等を備え、ホストコンピューター１１を制御する。ホスト制御部３０は、アプリケーション実行部３０１と、プリンタードライバー実行部３０２とを備える。プリンタードライバー実行部３０２は、記録データ生成部３０２１と、識別子生成部３０２２とを備える。これら機能ブロックについては後述する。
【００２５】
ホスト入力部３１は、キーボードや、バーコードリーダー、カードリーダー等の入力デバイスに接続され、入力デバイスからの入力を検出して、ホスト制御部３０に出力する。ホスト制御部３０は、ホスト入力部３１からの入力に基づいて、入力に対応する処理を実行する。
【００２６】
ホスト表示部３２は、カスタマーディスプレー等の表示装置に接続され、ホスト制御部３０の制御で、表示装置に各種情報を表示する。
【００２７】
ホスト記憶部３３は、ＥＥＰＲＯＭ等の不揮発性メモリーを備え、各種データを記憶する。
【００２８】
ホスト通信部３４は、ホスト制御部３０の制御で、所定の通信規格に従って、記録装置１０と通信する。
【００２９】
以上の構成の下、ホストコンピューター１１は、店舗に来店した顧客の会計に応じて、記録装置１０にクーポンを発行させる。クーポンの発行に際し、ホストコンピューター１１、及び、記録装置１０は、以下の処理を実行することにより、クーポンの発行に係る処理のスループットを向上する。
以下、顧客の会計に応じてクーポンの発行時の、ホストコンピューター１１、及び、記録装置１０の処理について詳述する。
【００３０】
図２は、クーポンの発行時におけるホストコンピューター１１、及び、記録装置１０の動作を示すフローチャートであり、（Ａ）はホストコンピューター１１の動作を示し、（Ｂ）は記録装置１０の動作を示す。
【００３１】
図２（Ａ）に示すように、ホストコンピューター１１、及び、記録装置１０が設けられたレジカウンターにおいて顧客による会計が行われた場合、ホストコンピューター１１のホスト制御部３０のアプリケーション実行部３０１は、会計に関する情報、及び、顧客に関する情報を取得する（ステップＳＡ１）。
アプリケーション実行部３０１とは、インストールされた所定のアプリケーションの機能によって処理を実行する機能ブロックである。
会計に関する情報とは、顧客が購入した商品や、合計購入金額等である。ホスト制御部３０が取得する会計に関する情報は、事前に設定される。
顧客に関する情報とは、ホスト入力部３１に接続されたカードリーダーによって会員カードが読み取られることにより取得されたユーザーＩＤ等である。ホスト制御部３０が取得する顧客に関する情報は、事前に設定される。
【００３２】
次いで、アプリケーション実行部３０１は、ステップＳＡ１で取得した会計に関する情報、及び、顧客に関する情報に基づいて、クーポンを発行するか否かを判定する（ステップＳＡ２）。ここで、クーポンを発行する場合に成立する１又は複数の条件が事前に設定されており、ステップＳＡ２で、アプリケーション実行部３０１は、事前に設定した条件が成立する場合、クーポンを発行すると判定する。なお、条件は、ステップＳＡ１でアプリケーション実行部３０１が取得した情報や、事前に記憶した情報等に基づいて、その成否が判定できるものである。一例として、ステップＳＡ１で、アプリケーション実行部３０１が、会計に関する情報として合計購入金額を取得する構成の場合に、条件は、合計購入金額が所定の閾値を上回ること、である。
【００３３】
クーポンを発行しない場合（ステップＳＡ２：ＮＯ）、アプリケーション実行部３０１は、処理を終了する。
【００３４】
クーポンを発行する場合（ステップＳＡ２：ＹＥＳ）、アプリケーション実行部３０１は、発行するクーポンの種類を特定する（ステップＳＡ３）。本実施形態では、発行可能なクーポンとして複数の種類が存在する。そして、ホスト記憶部３３は、クーポンの種類ごとに、クーポンの種類を示す情報と、対応する種類のクーポンを発行するときの条件とを関連付けたテーブルを記憶する。条件は、ステップＳＡ１でホスト制御部３０が取得した情報や、事前に記憶した情報等に基づいて、その成否が判定できるものである。ステップＳＡ３で、アプリケーション実行部３０１は、ホスト記憶部３３が記憶する上記テーブルを参照し、テーブルに格納された条件のうち、成立する条件を特定し、成立した条件と関連付けられた情報が示すクーポンの種類を、発行するクーポンの種類として特定する。
【００３５】
次いで、アプリケーション実行部３０１は、ステップＳＡ３で特定した種類のクーポンの発行に必要な情報を、プリンタードライバー実行部３０２に出力する（ステップＳＡ４）。
クーポンの発行に必要な情報とは、クーポンに記録する画像に関する情報や、画像を記録する位置に関する情報等である。
プリンタードライバー実行部３０２とは、インストールされたプリンタードライバーの機能によって処理を実行する機能ブロックである。
【００３６】
次いで、プリンタードライバー実行部３０２の記録データ生成部３０２１は、アプリケーション実行部３０１から入力された情報に基づいて、記録データを生成する（ステップＳＡ５）。
記録データとは、記録装置１０に記録させる画像をドットマトリックス状に配置したドットによって表すデータである。記録データを構成する各ドットは、ドットの濃淡を表す諧調値を保持する。本実施形態では、記録装置１０は２値のモノクロで記録を実行する構成であり、記録データを構成する各ドットは、ドットの濃淡を表す諧調値として、白黒２値を保持する。アプリケーション実行部３０１がプリンタードライバー実行部３０２に出力する情報には、記録データを生成するのに必要な情報が含まれる。
【００３７】
次いで、プリンタードライバー実行部３０２の識別子生成部３０２２は、記録データ生成部３０２１が生成した記録データに基づいて、識別子を生成する（ステップＳＡ６）。識別子とは、記録データを識別する識別情報であり、同一の記録データには、同一の値の識別子が付与される。本実施形態では、識別子は、記録データに基づいて所定の計算式により算出されるＣＲＣ値である。識別子はＣＲＣ値に限らず、異なる記録データの場合は異なる値となり、同一の記録データの場合は同一の値となる情報であれば、どのような情報であってもよい。
【００３８】
次いで、プリンタードライバー実行部３０２は、制御データを生成する（ステップＳＡ７）。制御データは、ステップＳＡ５で生成された記録データ、及び、ステップＳＡ６で生成された識別子を含み、記録データに基づく記録の実行を指示するデータである。
図３は、制御データのデータ構造を模式的に示す図である。
図３に示すように、制御データは、ヘッダー部Ｄ１と、データ部Ｄ２とを備える。ヘッダー部Ｄ１は、データ部Ｄ２に格納された記録データに基づく記録の実行を指示する命令コード等の記録に関する制御情報が格納されるエリアである。図３に示すように、ヘッダー部Ｄ１には、識別子格納エリアＤ１１が設けられる。識別子格納エリアＤ１１は、識別子が格納されるエリアである。
データ部Ｄ２は、記録データが格納されるエリアである。
ステップＳＡ７で、プリンタードライバー実行部３０２は、図３で示すデータ構造に従った制御データを生成する。制御データの生成に際し、プリンタードライバー実行部３０２は、制御データのヘッダー部Ｄ１の識別子格納エリアＤ１１にステップＳＡ６で生成された識別子を格納し、データ部Ｄ２にステップＳＡ５で生成された記録データを格納する。
【００３９】
図２（Ａ）に示すように、ステップＳＡ７で制御データを生成した後、プリンタードライバー実行部３０２は、ホスト通信部３４を制御して、制御データを、記録装置１０に送信する（ステップＳＡ８）。図３で説明したように、制御データは、ヘッダー部Ｄ１→データ部Ｄ２の順番で各エリアが形成される。従って、ヘッダー部Ｄ１に属するデータ（識別子を含む）、データ部Ｄ２に属するデータ（記録データ）の順番で、送信される。
ホスト通信部３４は、識別子と、記録データとをこの順で送信する「送信部」に相当する。
【００４０】
図２（Ｂ）に示すように、ホストコンピューター１１による制御データの送信に応じて、記録装置１０の通信部２５は、制御データの受信を開始する（ステップＳＢ１）。通信部２５は、受信した制御データを、順次、受信バッファーに格納する。
通信部２５は、識別子と記録データとをこの順で受信する「受信部」に相当する。
【００４１】
制御データの受信の開始後、制御部２０は、受信バッファーを参照し、制御データのうち、ヘッダー部Ｄ１に属するデータの受信バッファーへの格納が完了したか否かを監視する（ステップＳＢ２）。上述したように、制御データは、ヘッダー部Ｄ１→データ部Ｄ２の順番で各エリアが形成されるため、受信バッファーには、ヘッダー部Ｄ１→データ部Ｄ２の順番で、対応するデータが格納される。
【００４２】
ヘッダー部Ｄ１に属するデータの受信バッファーへの格納が完了した場合（ステップＳＢ２：ＹＥＳ）、制御部２０は、ヘッダー部Ｄ１の識別子格納エリアＤ１１に格納された識別子を取得する（ステップＳＢ３）。
【００４３】
次いで、制御部２０の識別子判定部２０１は、記憶部２３が記憶する記録データ格納テーブル２３１を参照する（ステップＳＢ４）。
図４は、記録データ格納テーブル２３１のデータ構造を示す図である。
図４に示すように、記録データ格納テーブル２３１の１件のレコードは、識別子フィールドＦ１と、記録データフィールドＦ２と、回数フィールドＦ３とを備える。識別子フィールドＦ１には、識別子が格納される。記録データフィールドＦ２には、記録データが格納される。回数フィールドＦ３には、回数情報が格納される。回数情報は、詳細は後述するが、対応する記録データが利用されて記録が実行された回数を示す情報である。
記録データ格納テーブル２３１の１件のレコードは、識別子と、識別子に対応する記録データと、回数情報（後述）とを関連付けて格納する。
なお、記録データ格納テーブル２３１のレコードがどのような場合に、どのような方法で生成されるのかについては後述する。
以上のように、記憶部２３は、識別子と記録データとを関連付けて格納する記録データ格納テーブル２３１を記憶する。
【００４４】
次いで、識別子判定部２０１は、記録データ格納テーブル２３１に、ステップＳＢ３で取得した識別子が識別子フィールドＦ１に格納されたレコードがあるか否かを判定する（ステップＳＢ５）。
【００４５】
レコードがない場合（ステップＳＢ５：ＮＯ）、制御部２０の記録制御部２０２は、受信バッファーを参照し、データ部Ｄ２に属するデータ（記録データ）の受信バッファーへの格納が完了したか否かを監視する（ステップＳＢ６）。
【００４６】
データ部Ｄ２に属するデータ（記録データ）の受信バッファーへの格納が完了した場合（ステップＳＢ６：ＹＥＳ）、記録制御部２０２は、受信バッファーに格納された記録データを取得し、ＲＡＭ等に形成された画像バッファーに展開する（ステップＳＢ７）。
【００４７】
次いで、記録制御部２０２は、画像バッファーに展開した記録データに基づいて、記録部２４を制御して記録部２４に記録を実行させ、クーポンを発行する（ステップＳＢ８）。
【００４８】
次いで、制御部２０の格納部２０３は、以下の処理を実行する（ステップＳＢ９）。格納部２０３は、記録データ格納テーブル２３１に１件のレコードを生成する。次いで、格納部２０３は、生成したレコードの識別子フィールドＦ１に、ステップＳＢ３で取得した識別子を格納する。次いで、格納部２０３は、生成したレコードの記録データフィールドＦ２に、ステップＳＢ７で取得した記録データを格納する。次いで、格納部２０３は、「０回」を示す回数情報を、回数フィールドＦ３に格納する。回数フィールドＦ３に格納された回数情報は、記録データフィールドＦ２に格納された記録データに基づく記録が実行された回数を示す情報である。後述するように、記録データフィールドＦ２に格納された記録データに基づく記録が実行される度に、回数情報が示す回数は、「１」、増加する。
【００４９】
このステップＳＢ９の処理により、記録データ格納テーブル２３１には、ホストコンピューター１１から過去に受信した制御データに含まれる識別子と、記録データとが関連付けて格納される。つまり、記録データ格納テーブル２３１には、過去に発行したクーポンに対応する識別子と、記録データとが関連付けて格納される。この構成のため、後述するように、過去に発行したクーポンについては、スループットを向上して、発行に係る処理を実行できる。
【００５０】
一方、ステップＳＢ５で、記録データ格納テーブル２３１に、ステップＳＢ３で取得した識別子が識別子フィールドＦ１に格納されたレコード（以下、「対象レコード」という。）があると判定した場合（ステップＳＢ５：ＹＥＳ）、制御部２０の記録制御部２０２は、以下の処理を実行する。記録制御部２０２は、対象レコードの記録データフィールドＦ２に格納された記録データを取得する（ステップＳＢ１０）。
【００５１】
次いで、記録制御部２０２は、取得した記録データを画像バッファーに展開し（ステップＳＢ１１）、画像バッファーに展開した記録データに基づいて、記録部２４を制御して記録部２４に記録を実行させ、クーポンを発行する（ステップＳＢ１２）。
【００５２】
このように、本実施形態では、記録装置１０の制御部２０は、制御データのうち、ヘッダー部Ｄ１に属するデータの受信が完了した時点で、当該データに含まれる識別子を取得する。次いで、制御部２０は、取得した識別子が識別子フィールドＦ１に格納されたレコードが、記録データ格納テーブル２３１にあるか否かを判定する。そして、レコードがある場合、制御部２０は、制御データのデータ部Ｄ２に属するデータ（記録データ）の受信が完了したか否かにかかわらず、そのレコードの記録データフィールドＦ２に格納された記録データに基づく記録を実行させる。
この構成のため、制御部２０は、データ部Ｄ２に属するデータの受信が完了する前に、記録部２４に記録の実行を開始させることができ、スループットが向上する。
【００５３】
ステップＳＢ１２の処理後、制御部２０の格納部２０３は、対象レコードの回数フィールドＦ３に格納された回数情報を更新し、当該情報が示す回数を、「１」、増加する（ステップＳＢ１３）。ステップＳＢ１３の処理により、１のレコードの回数フィールドＦ３に格納された回数情報は、当該１のレコードの記録データフィールドＦ２に格納された記録データに基づく記録が実行された回数を示す情報となる。
【００５４】
次に、記録装置１０の制御部２０が備える消去部２０４について説明する。
上述したように、記録装置１０の制御部２０の格納部２０３は、ホストコンピューター１１から新たな識別子を含む制御データを受信した場合、当該新たな識別子と、記録データとを関連付けた１件のレコードを生成する。このため、時間の経過に応じて、記録データ格納テーブル２３１のレコードの数が増加し、記録データ格納テーブル２３１のデータ量が増大する。そして、消去部２０４は、所定の条件が成立した場合に、記録データ格納テーブル２３１から所定のレコードを消去して、当該テーブルのデータ量を低減し、オーバーフロー等のエラーが発生することを防止する機能ブロックである。
【００５５】
図５は、消去部２０４の動作を示すフローチャートである。
図５に示すように、消去部２０４は、所定の条件が成立したか否かを監視する（ステップＳＣ１）。所定の条件とは、記録データ格納テーブル２３１のデータ量の増大に伴うエラーの発生を防止するために設定された条件である。例えば、所定の条件は、記録データ格納テーブル２３１のデータ量が、予め定められた所定の閾値を上回ったこと、である。
【００５６】
所定の条件が成立した場合（ステップＳＣ１：ＹＥＳ）、消去部２０４は、記録データ格納テーブル２３１の各レコードの回数フィールドＦ３に格納された回数情報を参照し、最も低い回数を示す回数情報が当該フィールドに格納されたレコードを特定する（ステップＳＣ２）。
【００５７】
次いで、消去部２０４は、ステップＳＣ２で特定したレコードを消去する（ステップＳＣ３）。ステップＳＣ３により、記録データ格納テーブル２３１のデータ量が低減される。また、ステップＳＣ３で、消去部２０４は、利用頻度の最も低い記録データが格納されたレコードを記録データ格納テーブル２３１から消去する。このため、今後利用される可能性が低いと推定される記録データが格納されたレコードを、優先的に記録データ格納テーブル２３１から消去することができる。
【００５８】
以上説明したように、本実施形態に係る記録システム１は、ホストコンピューター１１（制御装置）と、記録装置１０と、を備える。
ホストコンピューター１１は、記録データを生成する記録データ生成部３０２１と、記録データを識別する識別子を生成する識別子生成部３０２２と、識別子と記録データとをこの順で送信するホスト通信部３４（送信部）と、を有する。
記録装置１０は、記録を実行する記録部２４と、識別子と記録データとを関連付けて格納する記憶部２３と、ホストコンピューター１１のホスト通信部３４で送信された識別子と記録データとをこの順で受信する通信部２５（受信部）と、通信部２５で識別子を受信した場合、受信した識別子が記憶部２３に格納された識別子に含まれるか否かを判定する識別子判定部２０１と、識別子判定部２０１で含まれると判定された場合、識別子に関連付けて記憶部２３に格納された記録データに基づいて、記録部２４に記録を実行させる記録制御部２０２と、を有する。
この構成によれば、記録装置１０は、ホストコンピューター１１から識別子を受信した場合、受信した識別子が、予め格納（記憶）した識別子と一致する場合、対応する記録データの受信の完了を待たずに、予め識別子と関連付けて格納した記録データに基づいて記録を開始できる。このため、受信した識別子と、予め格納した識別子とが一致する場合は、受信した記録データの受信を完了した後に記録を開始する場合と比較して、記録を開始するタイミングを早くでき、スループットを向上できる。
【００５９】
また、本実施形態では、記録装置１０の記録制御部２０２は、識別子判定部２０１で含まれないと判定された場合、通信部２５による記録データの受信が完了した後、受信が完了した記録データに基づいて、記録部２４に記録を実行させる。
この構成によれば、記録装置１０は、受信した識別子と、予め格納した識別子とが一致しない場合、受信した記録データに基づいて記録を実行できる。
【００６０】
また、本実施形態では、記録装置１０は、識別子判定部２０１で含まれないと判定された場合、通信部２５で受信した識別子と、記録データとを関連付けて記憶部２３に格納する格納部２０３を有する。
この構成によれば、記録装置１０は、ホストコンピューター１１から過去に受信した識別子、及び、記録データを用いて、スループットを向上できる。
【００６１】
また、本実施形態では、記録装置１０は、所定の条件が成立した場合、記憶部２３に記憶された識別子と記録データとの組み合わせを消去する消去部２０４を備える。
この構成によれば、記録装置１０は、所定の条件が成立した場合に、記憶部２３に記憶された識別子と記録データとの組み合わせを消去することにより、記憶領域のオーバーフローを防止できる。
【００６２】
また、本実施形態では、消去部２０４は、識別子判定部２０１で含まれると判定される回数の低い識別子と、記録データとの組み合わせを優先的に消去する。
この構成によれば、記録装置１０は、記憶部２３から識別子と記録データとの組み合わせを消去する際に、今後、利用される可能性の低いものから消去できる。
【００６３】
＜変形例＞
次に、変形例について説明する。
以下では、ホストコンピューター１１の制御で、記録装置１０がレシートを発行する場合を例にして、変形例について説明する。
【００６４】
図６は、本変形例で、記録装置１０が発行するレシートを示す図である。
図６に示すように、レシートは、トップロゴ領域Ａ１と、明細領域Ａ２と、ボトムロゴ領域Ａ３の３つの領域を有する。
【００６５】
トップロゴ領域Ａ１は、いわゆるトップロゴが記録される領域である。トップロゴ領域Ａ１は、長手方向に５０ドットのサイズを有する。トップロゴ領域Ａ１に記録される画像の内容、トップロゴ領域Ａ１の位置、及び、トップロゴ領域Ａ１のサイズは、記録装置１０が発行するレシートによって相違しない。
【００６６】
明細領域Ａ２は、購入した商品や、商品の単価、購入数量、税に関する情報、合計金額、お釣り等の会計に関する情報が記録される領域である。明細領域Ａ２に記録される情報、及び、明細領域Ａ２のサイズは、記録装置１０が発行するレシートごとに異なる。
【００６７】
ボトムロゴ領域Ａ３は、いわゆるボトムロゴが記録される領域である。ボトムロゴ領域Ａ３は、長手方向に５０ドットのサイズを有する。ボトムロゴ領域Ａ３に記録される画像の内容、ボトムロゴ領域Ａ３の位置、及び、ボトムロゴ領域Ａ３のサイズは、記録装置１０が発行するレシートによって相違しない。
【００６８】
レシートの発行に際し、ホストコンピューター１１のアプリケーション実行部３０１は、レシートの発行に必要な情報をプリンタードライバー実行部３０２に出力する。
【００６９】
プリンタードライバー実行部３０２は、入力された情報に基づいて、トップロゴ領域Ａ１の記録を指示する制御データ（以下、「制御データＳ１」と表現する。）、明細領域Ａ２の記録を指示する制御データ（以下、「制御データＳ２」と表現する。）、及び、ボトムロゴ領域Ａ３の記録を指示する制御データ（以下、「制御データＳ３」と表現する。）を生成する。
【００７０】
制御データＳ１の生成は以下の方法で実行される。プリンタードライバー実行部３０２の記録データ生成部３０２１は、入力された情報に基づいて、トップロゴ領域Ａ１に記録する画像の記録データを生成する。次いで、プリンタードライバー実行部３０２の識別子生成部３０２２は、トップロゴ領域Ａ１に係る記録データに基づいて、識別子を生成する。次いで、プリンタードライバー実行部３０２は、ヘッダー部Ｄ１の識別子格納エリアＤ１１に生成した識別子が格納され、データ部Ｄ２に生成した記録データが格納された制御データＳ１を生成する。なお、制御データＳ１のヘッダー部Ｄ１に格納される命令コードは、記録データに基づく記録の実行後にロール紙の切断を実行しないことを指示する命令コードである。
プリンタードライバー実行部３０２は、制御データＳ３（ボトムロゴ領域Ａ３の記録を指示する制御データ）を、制御データＳ１と同様の方法で生成する。なお、制御データＳ３のヘッダー部Ｄ１に格納される命令コードは、記録データに基づく記録の実行後にロール紙の切断を実行することを指示する命令コードである。
【００７１】
制御データＳ２の生成は以下の方法で実行される。プリンタードライバー実行部３０２の記録データ生成部３０２１は、入力された情報に基づいて、明細領域Ａ２に記録する画像の記録データを生成する。次いで、プリンタードライバー実行部３０２は、ヘッダー部Ｄ１の識別子格納エリアＤ１１にヌルデータが格納され、データ部Ｄ２に生成した記録データが格納された制御データＳ２を生成する。なお、制御データＳ２のヘッダー部Ｄ１に格納される命令コードは、記録データに基づく記録の実行後にロール紙の切断を実行しないことを指示する命令コードである。
【００７２】
プリンタードライバー実行部３０２は、制御データＳ１〜Ｓ３の生成後、ホスト通信部３４を制御して、制御データＳ１→制御データＳ２→制御データＳ３の順番で、記録装置１０に送信する。
【００７３】
記録装置１０の制御部２０は、上述した実施形態で説明した方法で、制御データＳ１、及び、制御データＳ３に基づく記録を記録部２４に実行させる。従って、記録データ格納テーブル２３１に、制御データＳ１、又は、制御データＳ３に含まれる識別子が識別子フィールドＦ１に格納されたレコードがある場合は、スループットを向上して、記録を実行することができる。
【００７４】
また、記録装置１０の制御部２０は、制御データＳ２に基づいて、以下の方法で、記録を実行する。すなわち、制御部２０は、制御データＳ２にヘッダー部Ｄ１の受信が完了すると、ヘッダー部Ｄ１の識別子格納エリアＤ１１を参照し、当該エリアにヌルデータが格納されたことを認識する。識別子格納エリアＤ１１にヌルデータが格納されたことを認識した場合、制御部２０は、記録データ格納テーブル２３１を参照することなく、データ部Ｄ２に属するデータの受信が完了するまで待機し、当該データの受信の完了後、受信した記録データに基づいて記録部２４に記録を実行させる。その後、制御部２０は、記録データ格納テーブル２３１におけるレコードの生成を行わない。
この構成のため、発行するレシートごとに記録される画像の内容が異なる領域については、ホストコンピューター１１による識別子の生成が行われず、処理効率が向上する。また、発行するレシートごとに記録される画像の内容が異なる領域の記録を指示する制御データを受信した場合、記録装置１０の制御部２０は、記録データ格納テーブル２３１に対応するレコードを生成しないため、使用しない不必要なレコードが生成されず、当該テーブルのデータ量の増大を抑制できる。
【００７５】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
上述した実施形態では、ホストコンピューター１１の制御で記録装置１０がクーポンを発行するシステムを例にして発明を説明した。また、変形例では、ホストコンピューター１１の制御で記録装置１０がレシートを発行するシステムを例にして発明を説明した。ただし、発明が適用可能なシステム、装置は例示したものに限らない。
また、図１に示す各機能ブロックはハードウェアとソフトウェアにより任意に実現可能であり、特定のハードウェア構成を示唆するものではない。
【符号の説明】
【００７６】
１…記録システム、１０…記録装置、１１…ホストコンピューター（制御装置）、２０１…識別子判定部、２０２…記録制御部、２０３…格納部、２０４…消去部、２３…記憶部、２４…記録部、２５…通信部（受信部）、３０２１…記録データ生成部、３０２２…識別子生成部、３４…ホスト通信部（送信部）。
【図１】
0006459260.tif 000002
【図２】
0006459260.tif 000003
【図３】
0006459260.tif 000004
【図４】
0006459260.tif 000005
【図５】
0006459260.tif 000006
【図６】
0006459260.tif 000007