(57)【要約】【課題】制御装置について、接続された印刷装置を、構造の異なる印刷装置に交換する際に、印刷装置の制御に係るプログラムに対する改変を抑制する。【解決手段】ホストコンピューター２は、入力されたステータスデータに基づく処理を実行可能な印刷制御部３１と、印刷制御部３１から出力された制御コマンドが入力された場合、応答データを出力する仮想第２印刷装置部３２と、印刷制御部３１から出力された制御コマンドが入力された場合、インクジェットプリンター３に対応した制御コマンドに変換して、インクジェットプリンター３に出力すると共に、インクジェットプリンター３からのステータスデータが入力された場合、入力されたステータスデータを、サーマルプリンター５とインクジェットプリンター３との構造の差異に応じて、サーマルプリンター５に対応したデータに変換し、印刷制御部３１に出力するデータ処理部３３と、を備えている。【選択図】図２
2015005098.tif 000002
【特許請求の範囲】
【請求項１】
第１の印刷装置に接続され、
前記第１の印刷装置とは構造が異なる第２の印刷装置に対応した制御コマンドを生成して出力可能であると共に、前記第２の印刷装置に対応したステータスデータが入力され、入力されたステータスデータに基づく処理を実行可能な印刷制御部と、
前記印刷制御部から出力された制御コマンドが入力可能に構成され、制御コマンドが入力された場合、第２の印刷装置に対応した応答データを前記印刷制御部に出力する仮想第２印刷装置部と、
前記印刷制御部から出力された制御コマンドが入力可能に構成され、制御コマンドが入力された場合、前記第１の印刷装置に対応した制御コマンドに変換して、前記第１の印刷装置に出力すると共に、
接続された前記第１の印刷装置からのステータスデータが入力可能に構成され、ステータスデータが入力された場合、前記ステータスデータを、前記第１の印刷装置と前記第２の印刷装置との構造の差異に応じて、前記第２の印刷装置に対応したデータに変換し、前記印刷制御部に出力するデータ処理部と、
を備えることを特徴とする制御装置。
【請求項２】
前記データ処理部は、
前記第１の印刷装置からステータスデータが入力された場合、
入力されたステータスデータと内容の同一性を有し、前記第２の印刷装置に対応したステータスデータである対応ステータスデータが存在するか否かを判別し、存在する場合は、入力されたステータスデータを対応ステータスデータに変換して前記印刷制御部に出力することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記データ処理部は、
前記対応ステータスデータが存在するか否かの判別の結果、対応ステータスデータが存在しない場合であって、入力されたステータスデータが、前記印刷制御部による制御コマンドの出力を停止すべきエラーが発生していることを示すエラー通知データである場合は、前記印刷制御部に対して制御コマンドの出力を停止させるデータを出力すると共に、前記エラーの内容を報知することを特徴とする請求項２に記載の制御装置。
【請求項４】
前記データ処理部は、
前記対応ステータスデータが存在するか否かの判別の結果、対応ステータスデータが存在しない場合であって、入力されたステータスデータが、前記エラー通知データでない場合、入力されたステータスデータが示すステータスの内容を報知することを特徴とする請求項３に記載の制御装置。
【請求項５】
前記印刷制御部は、
前記第２の印刷装置に対応するステータスデータであって、ステータスをフラグの状態で表わすステータスデータであるフラグステータスデータに基づく処理を実行可能に構成され、
前記データ処理部は、
接続された前記第１の印刷装置から入力されたステータスデータに基づいて前記第１の印刷装置のステータスに変化があったか否かを監視し、ステータスに変化があった場合、変化したステータスに係るフラグを立てたフラグステータスデータを前記印刷制御部に出力することを特徴とする請求項１ないし４のいずれかに記載の制御装置。
【請求項６】
第１の印刷装置に接続され、
前記第１の印刷装置とは構造が異なる第２の印刷装置に対応した制御コマンドを生成して出力可能であると共に、前記第２の印刷装置に対応したステータスデータが入力され、入力されたステータスデータに基づく処理を実行可能な印刷制御部と、
前記印刷制御部から出力された制御コマンドが入力可能に構成され、制御コマンドが入力された場合、第２の印刷装置に対応した応答データを前記印刷制御部に出力する仮想第２印刷装置部と、を備える制御装置を制御して、
前記印刷制御部から出力された制御コマンドを、前記第１の印刷装置に対応した制御コマンドに変換して、前記第１の印刷装置に出力すると共に、接続された前記第１の印刷装置からのステータスデータが入力された場合、前記ステータスデータを、前記第１の印刷装置と前記第２の印刷装置との構造の差異に応じて、前記第２の印刷装置に対応したデータに変換し、前記印刷制御部に出力することを特徴とする制御装置の制御方法。
【請求項７】
第１の印刷装置に接続された制御装置を制御する制御部により実行可能なプログラムであって、
前記制御部を、
前記第１の印刷装置とは構造が異なる第２の印刷装置に対応した制御コマンドを生成して出力可能であると共に、前記第２の印刷装置に対応したステータスデータが入力され、入力されたステータスデータに基づく処理を実行可能な印刷制御部と、
前記印刷制御部から出力された制御コマンドが入力可能に構成され、制御コマンドが入力された場合、第２の印刷装置に対応した応答データを前記印刷制御部に出力する仮想第２印刷装置部と、
前記印刷制御部から出力された制御コマンドが入力可能に構成され、制御コマンドが入力された場合、前記第１の印刷装置に対応した制御コマンドに変換して、前記第１の印刷装置に出力すると共に、
接続された前記第１の印刷装置からのステータスデータが入力可能に構成され、ステータスデータが入力された場合、前記ステータスデータを、前記第１の印刷装置と前記第２の印刷装置との構造の差異に応じて、前記第２の印刷装置に対応したデータに変換し、前記印刷制御部に出力するデータ処理部と、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に接続された制御装置、当該印刷装置の制御方法、および、当該印刷装置を制御するためのプログラムに関する。
【背景技術】
【０００２】
従来、制御装置（印刷制御装置）と、印刷装置（プリンター）とが接続され、印刷装置から制御装置に対して、ステータスデータ（ステータス情報）が送信されるシステムが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１１８５９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したシステムのように制御装置が印刷装置を制御するものでは、一般に、制御装置にアプリケーション、および、プリンタードライバーがインストールされ、制御装置は、これらプログラムの機能により、印刷装置を制御する。
ここで、上述したシステムにおいて、制御装置に接続する印刷装置を、構造の異なる他の印刷装置に交換する場合を想定する。交換前の印刷装置と、交換後の印刷装置とでは、その構造上の差異に起因してステータスデータの態様が異なる蓋然性が高い。例えば、交換前の印刷装置がサーマルプリンターであり、交換後の印刷装置がカラープリンターである場合、交換前の印刷装置が出力するステータスデータには、インクに関するステータスデータが含まれない。このような場合において、構造の差異に起因してステータスデータの態様が異なることを踏まえ、制御に係るプログラム（上記例では、アプリケーション、および、プリンタードライバー）に対する改変をできるだけ抑制しつつ印刷装置の交換を実行できれば、交換に係る作業が容易になり、ユーザーの利便性が向上する。
本発明は、上述した事情に鑑みてなされたものであり、制御装置について、接続された印刷装置を、構造の異なる印刷装置に交換する際に、印刷装置の制御に係るプログラムの改変を抑制することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の制御装置は、第１の印刷装置に接続され、前記第１の印刷装置とは構造が異なる第２の印刷装置に対応した制御コマンドを生成して出力可能であると共に、前記第２の印刷装置に対応したステータスデータが入力され、入力されたステータスデータに基づく処理を実行可能な印刷制御部と、前記印刷制御部から出力された制御コマンドが入力可能に構成され、制御コマンドが入力された場合、第２の印刷装置に対応した応答データを前記印刷制御部に出力する仮想第２印刷装置部と、前記印刷制御部から出力された制御コマンドが入力可能に構成され、制御コマンドが入力された場合、前記第１の印刷装置に対応した制御コマンドに変換して、前記第１の印刷装置に出力すると共に、接続された前記第１の印刷装置からのステータスデータが入力可能に構成され、ステータスデータが入力された場合、前記ステータスデータを、前記第１の印刷装置と前記第２の印刷装置との構造の差異に応じて、前記第２の印刷装置に対応したデータに変換し、前記印刷制御部に出力するデータ処理部と、を備えることを特徴とする。
この構成によれば、印刷制御部による第２の印刷装置に対応する制御コマンドの出力があった場合は、仮想第２印刷装置部の機能により、印刷制御部に対してその応答が行われる。つまり、印刷制御部は、第１の印刷装置に対応する制御コマンドを出力することなく、第２の印刷装置が接続されている場合と同様に処理を継続して実行することが可能であり、接続される印刷装置を第２の印刷装置から第１の印刷装置に交換した場合であっても、印刷制御部による制御コマンドの生成、出力に係る機能を実現するプログラムについて、印刷制御部が第１の印刷装置に対応する制御コマンドを出力するような改変を行う必要がない。
その上で、上記構成によれば、データ処理部は、接続された第１の印刷装置からステータスデータが入力された場合、入力されたステータスデータを、第１の印刷装置と第２の印刷装置との構造の差異に応じて、第２の印刷装置に対応したステータスデータに変換し、印刷制御部に出力する。つまり、データ処理部から印刷制御部に対して、第１の印刷装置と第２の印刷装置との構造の差異を踏まえたステータスデータが出力される。このため、制御装置に接続される印刷装置を、第２の印刷装置から第１の印刷装置へと交換した場合であっても、印刷制御部は、第２の印刷装置に対応するステータスデータを受け付け、当該データに基づく処理を実行可能であればよく、印刷制御部の機能を実現するプログラムについて、第１の印刷装置のステータスデータに対応するための改変を施す必要が無い。つまり、制御装置に接続された印刷装置を、構造の異なる印刷装置に交換する際に、印刷装置の制御に係るプログラムの改変を抑制することが可能となる。
【０００６】
また、本発明は、前記データ処理部は、前記第１の印刷装置からステータスデータが入力された場合、入力されたステータスデータと内容の同一性を有し、前記第２の印刷装置に対応したステータスデータである対応ステータスデータが存在するか否かを判別し、存在する場合は、入力されたステータスデータを対応ステータスデータに変換して前記印刷制御部に出力することを特徴とする。
ここで、構造の異なる印刷装置であっても、双方の印刷装置が、内容が同一のステータスデータを送信可能な場合がある。例えば、双方の印刷装置にカバーが設けられており、双方の印刷装置がカバーオープンを示すステータスデータを送信可能な場合がある。
そして、上記構成によれば、データ処理部は、第１の印刷装置からステータスデータが入力された場合、対応ステータスデータが存在する場合は、入力されたステータスデータを対応ステータスデータに変換して印刷制御部に出力するため、第１の印刷装置のステータスについて、的確に、印刷制御部に通知することが可能となる。
【０００７】
また、本発明は、前記データ処理部は、前記対応ステータスデータが存在するか否かの判別の結果、対応ステータスデータが存在しない場合であって、入力されたステータスデータが、前記印刷制御部による制御コマンドの出力を停止すべきエラーが発生していることを示すエラー通知データである場合は、前記印刷制御部に対して制御コマンドの出力を停止させるデータを出力すると共に、前記エラーの内容を報知することを特徴とする。
この構成によれば、第１の印刷装置から入力されたステータスデータに対応する対応ステータスデータが存在しない場合であっても、印刷制御部による制御コマンドの出力を停止すべきエラーが発生している場合には、制御コマンドの出力を停止させることができると共に、当該エラーの内容をユーザーに報知することが可能である。
【０００８】
また、本発明は、前記データ処理部は、前記対応ステータスデータが存在するか否かの判別の結果、対応ステータスデータが存在しない場合であって、入力されたステータスデータが、前記エラー通知データでない場合、入力されたステータスデータが示すステータスの内容を報知することを特徴とする。
この構成によれば、第１の印刷装置から入力されたステータスデータに対応する対応ステータスデータが存在しない場合であっても、そのステータスデータが示すステータスをユーザーに認識させ、対応する処理を行わせることができる。
【０００９】
また、本発明は、前記印刷制御部は、前記第２の印刷装置に対応するステータスデータであって、ステータスをフラグの状態で表わすステータスデータであるフラグステータスデータに基づく処理を実行可能に構成され、前記データ処理部は、接続された前記第１の印刷装置から入力されたステータスデータに基づいて前記第１の印刷装置のステータスに変化があったか否かを監視し、ステータスに変化があった場合、フラグステータスデータについて、変化したステータスに係るフラグを立てたフラグステータスデータを前記印刷制御部に出力することを特徴とする。
この構成によれば、フラグステータスデータを利用して、第１の印刷装置のステータスに変化があった場合に、印刷制御部に的確にその変化を通知可能である。
【００１０】
また、上記目的を達成するために、本発明の制御装置の制御方法は、第１の印刷装置に接続され、前記第１の印刷装置とは構造が異なる第２の印刷装置に対応した制御コマンドを生成して出力可能であると共に、前記第２の印刷装置に対応したステータスデータが入力され、入力されたステータスデータに基づく処理を実行可能な印刷制御部と、前記印刷制御部から出力された制御コマンドが入力可能に構成され、制御コマンドが入力された場合、第２の印刷装置に対応した応答データを前記印刷制御部に出力する仮想第２印刷装置部と、を備える制御装置を制御して、前記印刷制御部から出力された制御コマンドを、前記第１の印刷装置に対応した制御コマンドに変換して、前記第１の印刷装置に出力すると共に、接続された前記第１の印刷装置からのステータスデータが入力された場合、前記ステータスデータを、前記第１の印刷装置と前記第２の印刷装置との構造の差異に応じて、前記第２の印刷装置に対応したデータに変換し、前記印刷制御部に出力することを特徴とする。
この構成によれば、印刷制御部による第２の印刷装置に対応する制御コマンドの出力があった場合は、仮想第２印刷装置部の機能により、適切な応答が行われるため、印刷制御部３１の制御コマンドの生成、出力に係るプログラムについて、改変を行う必要がない。
その上で、上記構成によれば、データ処理部の機能により、第１の印刷装置からステータスデータが入力された場合、データの変換が適切に行われて印刷制御部に出力されるため、印刷制御部のステータスデータの処理に係るプログラムについて、改変を行う必要がない。つまり、印刷制御部の機能を実現するプログラムについて、交換に伴う改変を抑制でき、交換に係る作業が容易になる。
【００１１】
また、上記目的を達成するために、本発明は、第１の印刷装置に接続された制御装置を制御する制御部により実行可能なプログラムであって、前記制御部を、前記第１の印刷装置とは構造が異なる第２の印刷装置に対応した制御コマンドを生成して出力可能であると共に、前記第２の印刷装置に対応したステータスデータが入力され、入力されたステータスデータに基づく処理を実行可能な印刷制御部と、前記印刷制御部から出力された制御コマンドが入力可能に構成され、制御コマンドが入力された場合、第２の印刷装置に対応した応答データを前記印刷制御部に出力する仮想第２印刷装置部と、前記印刷制御部から出力された制御コマンドが入力可能に構成され、制御コマンドが入力された場合、前記第１の印刷装置に対応した制御コマンドに変換して、前記第１の印刷装置に出力すると共に、接続された前記第１の印刷装置からのステータスデータが入力可能に構成され、ステータスデータが入力された場合、前記ステータスデータを、前記第１の印刷装置と前記第２の印刷装置との構造の差異に応じて、前記第２の印刷装置に対応したデータに変換し、前記印刷制御部に出力するデータ処理部と、として機能させることを特徴とする。
この構成によれば、印刷制御部による第２の印刷装置に対応する制御コマンドの出力があった場合は、仮想第２印刷装置部の機能により、適切な応答が行われるため、印刷制御部の制御コマンドの生成、出力に係るプログラムについて、改変を行う必要がない。
その上で、上記構成によれば、データ処理部の機能により、第１の印刷装置からステータスデータが入力された場合、データの変換が適切に行われて印刷制御部に出力されるため、印刷制御部のステータスデータの処理に係るプログラムについて、改変を行う必要がない。つまり、印刷制御部の機能を実現するプログラムについて、交換に伴う改変を抑制でき、交換に係る作業が容易になる。
【発明の効果】
【００１２】
本発明によれば、制御装置について、接続された印刷装置を、構造の異なる印刷装置に交換する際に、印刷装置の制御に係るプログラムの改変を抑制できる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係る制御システムの機能的構成を示すブロック図である。
【図２】ホストコンピューターの機能的構成を詳細に示すブロック図である。
【図３】ホストコンピューターの動作を示すフローチャートである。
【図４】ホストコンピューターの動作を示すフローチャートである。
【図５】フラグステータスデータのデータ構造を示す図である。
【図６】ホストコンピューターの動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。
＜第１実施形態＞
図１は、本実施形態に係る制御システム１の構成を示す機能ブロック図である。
図１に示すように、制御システム１は、ホストコンピューター２（制御装置）と、このホストコンピューター２に接続され、ホストコンピューター２の制御の下、記録媒体への画像の印刷を行うインクジェットプリンター３（第１の印刷装置）と、を備えている。
制御システム１は、スーパーマーケットや、コンビニエンスストア等の店舗に適用される、いわゆるＰＯＳシステムの一部を構成する。制御システム１に係るＰＯＳシステムが適用される店舗では、複数のレジカウンターが設けられる。そして、レジカウンターのそれぞれに、制御システム１が構築される。制御システム１は、少なくとも、レジカウンターにおける会計に基づいて、レシートを発行する機能を有している。
インクジェットプリンター３は、カラー印刷が可能なインクジェット方式のプリンターである。ホストコンピューター２に、インクジェットプリンター３が接続される前は、サーマルプリンター５（第２の印刷装置）が接続されていた。このサーマルプリンター５は、グレースケール印刷が可能なサーマル方式のプリンターである。
交換後のインクジェットプリンター３と、交換前のサーマルプリンター５とは、その構造が異なっている。
そして、本実施形態に係る制御システム１は、サーマルプリンター５をインクジェットプリンター３に交換する際に、ホストコンピューター２のソフトウェアの改変を抑制し、交換に係る作業を容易にし、ユーザーの利便性を向上させることを、目的の１つとしている。
【００１５】
ホストコンピューター２は、いわゆるＰＯＳ端末として機能する装置であり、図１に示すように、ホスト制御部１０（制御部）と、ホスト入力部１１と、ホスト表示部１２と、ホスト記憶部１３と、デバイス通信部１４と、インターフェース部１５と、を備えている。
ホスト制御部１０は、ＣＰＵや、ＲＯＭ、ＲＡＭ、その他の周辺回路等を備え、ホストコンピューター２の各部を制御する。ホスト制御部１０は、機能ブロックとして、印刷制御部３１と、仮想第２印刷装置部３２と、データ処理部３３と、を備えているが、これらについては後述する。
ホスト入力部１１は、キーボード等の入力デバイスに接続され、入力デバイスに対する入力を検出し、ホスト制御部１０に出力する。ホスト表示部１２は、液晶表示パネル等の表示パネル１６を備え、ホスト制御部１０の制御の下、各種データを表示する。
ホスト記憶部１３は、ハードディスクやＥＥＰＲＯＭ等のメモリーを備え、各種データを不揮発的に書き換え可能に記憶する。ホストコンピューター２には、ＰＯＳアプリケーションＡＰ、および、サーマルプリンタードライバーＳＰＤがインストールされている。ＰＯＳアプリケーションＡＰは、少なくとも、レシートの発行に際し、レシートの発行に必要な情報を含んだデータ（以下、「印刷データ」という。）を生成し、サーマルプリンタードライバーＳＰＤに対して出力する機能を有している。サーマルプリンタードライバーＳＰＤは、サーマルプリンター５の制御に係るプリンタードライバーである。サーマルプリンタードライバーＳＰＤは、少なくとも、ＰＯＳアプリケーションＡＰから入力された印刷データに基づいて、サーマルプリンター５のコマンド体系に準拠した制御コマンドを生成し、出力する機能を有している。
デバイス通信部１４は、商品やその包装に付されたバーコードを読み取るバーコードリーダー、会員カード等のカードに記録された情報を読み取るカードリーダー、紙幣や硬貨を収容するレジスター等の各デバイスに接続される。デバイス通信部１４は、ホスト制御部１０の制御の下、各デバイスと通信する。インターフェース部１５は、後述する通信ポートＴＰを含んで構成され、ホスト制御部１０の制御の下、インクジェットプリンター３と所定の通信規格に準拠して通信する。
図１における図示は省略したが、ホストコンピューター２は、ＬＡＮや、インターネット等のネットワークを介して、ＰＯＳ管理サーバーと通信可能である。ＰＯＳ管理サーバーは、商品マスターや、顧客マスターを記憶し、ＰＯＳシステム全体を管理する。ホストコンピューター２は、レシートの発行に際し、適宜、ＰＯＳ管理サーバーにアクセスし、商品名や、商品単価、顧客に関する情報等、必要な情報を取得する。
【００１６】
また、図１に示すように、インクジェットプリンター３は、インクプリンター制御部２０と、インクジェットプリント機構２１と、インターフェース部２２と、を備えている。
インクプリンター制御部２０は、ＣＰＵや、ＲＯＭ、ＲＡＭ、その他の周辺回路等を備え、インクジェットプリンター３の各部を制御する。インクジェットプリント機構２１は、インクジェットヘッドや、ヘッドを走査させるキャリッジ、記録媒体の搬送機構、記録媒体を切断する切断機構等を備えている。インクジェットヘッドは、複数の色のインクカートリッジからインクの供給を受け、カラー印刷が可能である。インターフェース部２２は、インクプリンター制御部２０の制御の下、ホストコンピューター２と所定の通信規格に準拠して通信する。
上述したように、サーマルプリンター５は、ホストコンピューター２に接続される印刷装置が、インクジェットプリンター３に交換される前に、ホストコンピューター２に接続されていた印刷装置である。
図１に示すように、サーマルプリンター５は、サーマルプリンター制御部２５と、サーマルプリント機構２６と、インターフェース部２７と、を備えている。
サーマルプリンター制御部２５は、ＣＰＵや、ＲＯＭ、ＲＡＭ、その他の周辺回路等を備え、サーマルプリンター５の各部を制御する。サーマルプリント機構２６は、サーマルヘッドや、記録媒体の搬送機構、記録媒体を切断する切断機構等を備えている。インターフェース部２７は、サーマルプリンター制御部２５の制御の下、ホストコンピューター２と所定の通信規格に準拠して通信する。
【００１７】
ところで、上述の通り、ホストコンピューター２に接続された印刷装置は、サーマルプリンター５からインクジェットプリンター３へと交換されているが、本実施形態に係るホストコンピューター２は、以下の構成により、交換時にＰＯＳアプリケーションＡＰ、および、サーマルプリンタードライバーＳＰＤに対する改変を不要とし、交換に係る作業を容易にしている。以下、詳述する。
【００１８】
図２は、ホストコンピューター２の機能的構成をより詳細に示す図である。
図２では、説明の便宜のため、機能ブロックや、プログラム、ソフトウェア的（論理的）なポート、物理的な装置等を、同等のブロックで表現している。
なお、以下で説明する機能ブロックのそれぞれの機能は、ＣＰＵがプログラムを読み出して実行する等、ハードウェアとソフトウェアとの協働により実現される。
ホスト制御部１０が備える印刷制御部３１は、サーマルプリンター５（第２の印刷装置）に対応した制御コマンドを生成して出力可能であると共に、後述するように、サーマルプリンター５に対応したステータスデータが入力され、入力されたステータスデータに基づく処理を実行可能な機能ブロックである。
レシートの発行に際し、印刷制御部３１は、ＰＯＳアプリケーションＡＰの機能により、上述した印刷データを生成し、サーマルプリンタードライバーＳＰＤに出力する。さらに、印刷制御部３１は、サーマルプリンタードライバーＳＰＤの機能により、印刷データに基づいて、サーマルプリンター５のコマンド体系に準拠した制御コマンド（第２の印刷装置に対応した制御コマンド）を生成し、ソフトウェア的（論理的）なポートとして開放されている第１仮想ポートＰ１に出力する。
なお、所定のデータについては、ＰＯＳアプリケーションＡＰが生成した後、直接、第１仮想ポートＰ１に出力され、また、第１仮想ポートＰ１を介して、直接、ＰＯＳアプリケーションＡＰに入力される。
【００１９】
印刷制御部３１により第１仮想ポートＰ１に出力された制御コマンドは、ポートハンドラー３５に引き渡される。すなわち、印刷制御部３１は、生成した制御コマンドを、第１仮想ポートＰ１を介してポートハンドラー３５に出力する。
データ処理部３３は、ホスト制御部１０が備える機能ブロックであり、図２に示すように、機能ブロックとして、ポートハンドラー３５、および、データ解析／変換部３６を備えている。
データ処理部３３は、詳細は後述するが、印刷制御部３１から出力された制御コマンドが入力可能に構成され、印刷制御部３１からの制御コマンドが入力された場合、インクジェットプリンター３に対応した制御コマンドに変換して、インクジェットプリンター３に出力する。さらに、データ処理部３３は、詳細は後述するが、接続されたインクジェットプリンター３からのステータスデータが入力可能に構成され、インクジェットプリンター３からのステータスデータが入力された場合、当該ステータスデータを、インクジェットプリンター３とサーマルプリンター５との構造の差異に応じて、サーマルプリンター５に対応したデータに変換し、印刷制御部３１に出力する。
データ処理部３３は、ＰＯＳアプリケーションＡＰ、および、サーマルプリンタードライバーＳＰＤの機能を拡張することを１つの目的としている。後に明らかとなるとおり、本実施形態では、ＰＯＳアプリケーションＡＰ、および、サーマルプリンタードライバーＳＰＤに対する改変を伴うことなく印刷装置の交換が行われているが、これは、データ処理部３３、および、後述する仮想第２印刷装置部３２の協働により実現されている。
【００２０】
ポートハンドラー３５は、少なくとも、以下の機能を有している。
ポートハンドラー３５の１つの機能は、第１仮想ポートＰ１、第２仮想ポートＰ２（後述）、および、通信ポートＴＰ（後述）のいずれかを介して入力されたデータ（例えば、第１仮想ポートＰ１を介して入力された制御コマンド）をデータ解析／変換部３６（後述）に出力する機能である。
ポートハンドラー３５の別の機能は、データ解析／変換部３６から入力されたデータを、第１仮想ポートＰ１、第２仮想ポートＰ２（後述）、および、通信ポートＴＰ（後述）のいずれかに出力すると共に、出力の際に、ＰＣＳ（Port Communication Service）の機能により、出力するポートに対応したデータ変換を行う機能である。
ＰＣＳとは、サーマルプリンタードライバーＳＰＤを含むプログラムから呼び出し可能な関数であり、インターフェースの規格（ＲＳ２３２Ｃや、ＵＳＢ等の規格）に対応したデータ変換を行なう機能を有している。ＰＣＳにより、各種インターフェースの規格の差異が吸収され、ＰＯＳアプリケーションＡＰや、サーマルプリンタードライバーＳＰＤに対して各種インターフェースの規格の差異に起因したソフトウェア的な改変を行なう必要が無くなる。
【００２１】
データ解析／変換部３６は、ポートハンドラー３５から入力されたデータを解析する機能、および、解析結果に基づいて、データの変換を含む、後述する各種処理を実行する機能を有する機能ブロックである。
このデータ解析／変換部３６の機能は、ＯＰＯＳや、ＵＰＯＳが提供するＡＰＩ関数を利用して作成されたプログラムによって実現される。そして、データ解析／変換部３６に係るプログラムは、同じくＯＰＯＳや、ＵＰＯＳの規格に準拠したサーマルプリンタードライバーＳＰＤによって、適宜、呼び出し可能な構成となっている。
図２に示すように、ポートハンドラー３５は、物理的なポートである通信ポートＴＰとの間でデータの入出力が可能である。この通信ポートＴＰは、例えば、ＵＳＢの通信規格に係る通信ポートであり、通信ポートＴＰには、対応する通信規格に準拠した通信ケーブルを介してインクジェットプリンター３が接続されている。
また、ポートハンドラー３５は、ソフトウェア的な（論理的な）ポートとして開放されている第２仮想ポートＰ２との間でデータの入出力が可能である。この第２仮想ポートＰ２には、仮想第２印刷装置部３２が接続されている。
【００２２】
仮想第２印刷装置部３２は、印刷制御部３１から出力された制御コマンドが、第１仮想ポートＰ１を介して入力可能に構成され、制御コマンドが入力された場合、サーマルプリンター５に対応した応答データ（第２の印刷装置に対応した応答データ）を、印刷制御部３１に出力する。
この仮想第２印刷装置部３２は、印刷制御部３１との関係において、サーマルプリンター５として振る舞い、印刷制御部３１に対して適切に応答する機能を有する。これにより、印刷制御部３１は、サーマルプリンター５が接続されている場合と同様に、通常の処理を継続して実行することが可能である。つまり、印刷制御部３１は、各種処理をインクジェットプリンター３に行わせる際に、サーマルプリンター５が接続されている場合と同様の処理を実行する。これにより、印刷装置の交換に際して、印刷制御部３１の機能を実現するためのプログラムであるＰＯＳアプリケーションＡＰ、および、サーマルプリンタードライバーＳＰＤの改変が不要となる。
なお、階層型のオペレーティングシステムにおいて、印刷制御部３１、仮想第２印刷装置部３２、および、データ処理部３３はアプリケーション層Ｓ１に位置し、また、第１仮想ポートＰ１、および、第２仮想ポートＰ２はカーネル層Ｓ２に位置し、また、通信ポートＴＰは物理層Ｓ３に位置する。
【００２３】
以下、レシートを発行する際の印刷制御部３１、仮想第２印刷装置部３２、および、データ処理部３３の基本的な動作について説明する。
図３は、レシート発行時の各機能ブロックの動作を示すフローチャートであり、（Ａ）は印刷制御部３１の動作を、（Ｂ）はデータ処理部３３の動作を、（Ｃ）は仮想第２印刷装置部３２の動作をそれぞれ示している。
ここで、本実施形態に係るサーマルプリンタードライバーＳＰＤは、制御コマンドを生成して出力した後、一定の期間、待機する。待機期間中に、制御コマンドの受信が完了した旨の応答データが入力された場合は、印刷装置による制御コマンドの受信が正常に完了したものとして、待機期間のカウントの解除等の予め定められた処理を実行する。一方、上記待機期間中に、制御コマンドの受信が完了した旨の応答データが入力されなかった場合は、サーマルプリンタードライバーＳＰＤは、印刷装置による制御コマンドの受信が正常に完了しなかったものとして、以後、表示パネル１６にエラーを表示する等して、エラーの発生を報知すると共に、ユーザーによる指示があるまでは、制御コマンドの出力を停止する。
つまり、印刷制御部３１が、通常の処理を継続して行うためには、印刷制御部３１による制御コマンドの出力後、待機期間中に、所定の応答データが返ってくる必要がある。
【００２４】
図３を参照し、レシートの発行に際し、印刷制御部３１は、サーマルプリンター５のコマンド形式に準拠した制御コマンドを生成し（ステップＳＡ１）、第１仮想ポートＰ１を介して、データ処理部３３のポートハンドラー３５に出力する（ステップＳＡ２）。印刷制御部３１は、制御コマンドの出力に応じて、待機期間のカウントを開始する（ステップＳＡ３）。
データ処理部３３のポートハンドラー３５は、入力された制御コマンドをデータ解析／変換部３６に出力する（ステップＳＢ１）。
データ処理部３３のデータ解析／変換部３６は、入力された制御コマンドを解析し、制御コマンドが、サーマルプリンター５のコマンド体系に準拠した制御コマンドであって、レシートの発行を指示する制御コマンドであることを認識する（ステップＳＢ２）。
次いで、データ解析／変換部３６は、上記認識の下、インクジェットプリンター３にレシートを発行させるべく、以下の処理を実行する。すなわち、データ解析／変換部３６は、制御コマンドを、インクジェットプリンター３のコマンド体系に準拠した制御コマンドであって、インクジェットプリンター３にレシートの発行に係る各種処理を実行させる制御コマンド（第１の印刷装置に対応した制御コマンド）に変換する（ステップＳＢ３）。なお、データ解析／変換部３６の機能を実現するプログラムには、予め定められた規則に準じて制御コマンドの変換を行う機能が実装されている。ここで、変換された制御コマンドは、インクジェットプリンター３が実行可能な制御コマンドであって、適切にカラー化が施された画像の印刷の実行を指示する制御コマンドである。
制御コマンドの変換後、データ解析／変換部３６は、出力先のポートとして通信ポートＴＰを指定する情報と共に、変換後の制御コマンドをポートハンドラー３５に出力する（ステップＳＢ４）。
【００２５】
ポートハンドラー３５は、指定された通信ポートＴＰに応じたデータ処理を実行すると共に、通信ポートＴＰを介して、変換後の制御コマンドをインクジェットプリンター３に送信する（ステップＳＢ５）。変換後の制御コマンドを受信したインクジェットプリンター３のインクプリンター制御部２０は、制御コマンドに基づいて各種処理を実行して、レシートを発行する。
次いで、データ解析／変換部３６は、入力された制御コマンド、すなわち、サーマルプリンター５のコマンド体系に準拠した制御コマンドを、出力先のポートとして第２仮想ポートＰ２を指定する情報と共に、ポートハンドラー３５に出力する（ステップＳＢ６）。ポートハンドラー３５は、指定された第２仮想ポートＰ２に応じたデータ処理を実行すると共に、第２仮想ポートＰ２を介して、制御コマンドを仮想第２印刷装置部３２に出力する（ステップＳＢ７）。
制御コマンドが入力されると、仮想第２印刷装置部３２は、制御コマンドに対応する応答データを特定する（ステップＳＣ１）。ここで、ホスト記憶部１３の所定の記憶領域には、入力された制御コマンドと、制御コマンドが入力されたときに出力すべき応答データとが対応付けられたテーブルが記憶されている。当該テーブルは、仮想第２印刷装置部３２の機能を実現するためのプログラム上に定義されていてもよい。ステップＳＣ１において、仮想第２印刷装置部３２は、上記テーブルを利用して、入力された制御コマンドに対応する応答データを特定する。
応答データは、サーマルプリンター５のコマンド体系に準拠したデータである。
次いで、仮想第２印刷装置部３２は、ステップＳＣ１で特定した応答データを、第２仮想ポートＰ２を介して、ポートハンドラー３５に出力する（ステップＳＣ２）。
【００２６】
ポートハンドラー３５は、入力された応答データをデータ解析／変換部３６に出力する（ステップＳＢ８）。
データ処理部３３のデータ解析／変換部３６は、入力された応答データを解析し、制御コマンドが、サーマルプリンター５のコマンド体系に準拠した応答データであって、レシートの発行を指示する制御コマンドに応答したものであることを認識する（ステップＳＢ９）。
次いで、データ解析／変換部３６は、上記認識の下、印刷制御部３１に応答データを出力すべく、出力先のポートとして第１仮想ポートＰ１を指定する情報と共に、応答データをポートハンドラー３５に出力する（ステップＳＢ１０）。
ポートハンドラー３５は、指定された第１仮想ポートＰ１に応じたデータ処理を実行すると共に、第１仮想ポートＰ１を介して、応答データを印刷制御部３１に出力する（ステップＳＢ１１）。
応答データが入力されると、印刷制御部３１は、サーマルプリンタードライバーＳＰＤの機能により、待機期間のカウントの解除を含む、印刷装置による制御コマンドの受信が正常に完了した場合に実行すべき処理を実行する（ステップＳＡ４）。
以上のように、レシートの発行に際し、印刷制御部３１は、交換前の印刷装置であるサーマルプリンター５に出力していた制御コマンドを出力する。つまり、印刷装置の交換の前後で、印刷制御部３１の機能を実現するためのプログラムに対する改変は行われない。そして、印刷制御部３１がサーマルプリンター５に対応する制御コマンドを出力しても、データ処理部３３および仮想第２印刷装置部３２の協働により、レシートの発行、および、処理の正常終了が適切に行われる。
【００２７】
さて、交換前の印刷装置であるサーマルプリンター５はサーマル方式のプリンターであり、一方、交換後の印刷装置であるインクジェットプリンター３はインクジェット方式のプリンターであり、これらはその構造が相違している。
ここで、サーマルプリンター５およびインクジェットプリンター３のそれぞれには、所定のタイミングで、自身のステータス（状態）を示すステータスデータを送信する機能が実装されている。所定のタイミングとは、例えば、ステータスに変更があった場合や、ホストコンピューター２から問い合わせがあった場合である。
ステータスデータは、ステータスを示す情報が含まれた所定のフォーマットのデータである。
本実施形態では、サーマルプリンター５には、少なくとも、セットされたロール紙が紙切れに近い状態（以下、「サーマル側ニア紙切れ状態」という。）となったこと、および、セットされたロール紙が紙切れの状態（以下、「サーマル側リアル紙切れ状態」という。）となったことを示すステータスデータを送信する機能が実装されている。
また、本実施形態では、インクジェットプリンター３には、少なくとも、セットされたロール紙が紙切れに近い状態（以下、「インク側ニア紙切れ状態」という。）となったこと、セットされたロール紙が紙切れの状態（以下、「インク側リアル紙切れ状態」という。）となったこと、インクがインク切れに近い状態（以下、「ニアインク切れ状態」という。）となったこと、および、インクがインク切れの状態（以下、「リアルインク切れ状態」という。）となったことを示すステータスデータを送信する機能が実装されている。なお、以下の説明では、説明の便宜のため、インクの色を区別しない。
ここで、サーマルプリンター５は、インクに関するステータスデータを送信する機能を有しておらず、この点で、インクジェットプリンター３と異なっている。
このように、交換前の印刷装置（サーマルプリンター５）と、交換後の印刷装置（インクジェットプリンター３）とは、構造の相違に由来して、ステータスデータの態様が異なっている。
そして、本実施形態では、印刷装置の交換の前後で印刷制御部３１に係るプログラムに改変を加えることなく、データ処理部３３の機能により、ステータスデータの態様の相違に対応する。以下、詳述する。
【００２８】
図４は、印刷制御部３１のステータスデータの処理に係る動作を示すフローチャートである。
ポートハンドラー３５は、インクジェットプリンター３からステータスデータが入力されたか否かを監視する（ステップＳＤ１）。
ステータスデータが入力された場合（ステップＳＤ１：ＹＥＳ）、ポートハンドラー３５は、入力されたステータスデータを、データ解析／変換部３６に出力する（ステップＳＤ２）。
データ解析／変換部３６は、入力されたステータスデータについて、入力されたステータスデータと内容の同一性を有し、サーマルプリンター５に対応したステータスデータである対応ステータスデータが存在するか否かを判別する（ステップＳＤ３）。以下、ステップＳＢ３の処理について詳述する。
上述した、サーマル側ニア紙切れ状態と、インク側ニア紙切れ状態とは、共に、セットされたロール紙が紙切れに近い状態であることを示しており、同一性を有する状態である。従って、サーマル側ニア紙切れ状態を示すステータスデータと、インク側ニア紙切れ状態を示すステータスデータとは、その内容に同一性がある。よって、本例では、インク側ニア紙切れ状態を示すステータスデータにとって、サーマル側ニア紙切れ状態を示すステータスデータが対応ステータスデータに該当する。
同様の理由により、本例では、インク側リアル紙切れ状態を示すステータスデータにとって、サーマル側リアル紙切れ状態を示すステータスデータが対応ステータスに該当する。
これを踏まえ、ステップＳＢ３において、データ解析／変換部３６は、入力されたステータスデータが、インク側ニア紙切れ状態を示すステータスデータ、または、インク側リアル紙切れ状態を示すステータスデータの場合、対応ステータスデータが存在すると判別する。本実施形態において、上記判別は、以下のようにして実行される。すなわち、ホスト記憶部１３には、インクジェットプリンター３が送信するステータスデータについて、対応ステータスデータが存在するものについては、ステータスデータと、対応ステータスデータとが対応付けられたテーブルであるステータス対応テーブルＴＢＬ１が記憶されている。本例では、このテーブルにおいて、インク側ニア紙切れ状態を示すステータスデータと、サーマル側ニア紙切れ状態を示すステータスデータとが対応付けられると共に、インク側リアル紙切れ状態を示すステータスデータと、サーマル側リアル紙切れ状態を示すステータスデータとが対応付けられる。このテーブルはプログラム上に定義されていてもよい。そして、ステップＳＤ３において、データ解析／変換部３６は、上記テーブルを参照し、入力されたステータスデータについて、対応ステータスデータが存在するか否かを判別する。
【００２９】
ステップＳＤ３において、対応ステータスデータが存在すると判別した場合（ステップＳＤ３：ＹＥＳ）、データ解析／変換部３６は、ステータス対応テーブルＴＢＬ１を参照して、対応ステータスデータを取得する（ステップＳＤ４）。次いで、データ解析／変換部３６は、出力ポートとして第１仮想ポートＰ１を指定する情報と共に、ステップＳＤ４で取得した対応ステータスデータをポートハンドラー３５に出力する（ステップＳＤ５）。ポートハンドラー３５は、対応ステータスデータについて、必要なデータ処理を施した後、第１仮想ポートＰ１を介して、印刷制御部３１に出力する（ステップＳＤ６）。
このように、インクジェットプリンター３から入力されたステータスデータについて対応ステータスデータが存在する場合は、対応ステータスデータが印刷制御部３１に入力される。そして、上述したように、印刷制御部３１は、サーマルプリンター５に対応したステータスデータを処理可能である。例えば、サーマルプリンター５にサーマル側ニア紙切れ状態が発生し、その旨を表示パネル１６に表示する構成となっていた場合、印刷制御部３１は、インクジェットプリンター３にインク側ニア紙切れ状態が発生した場合も、同様の処理を実行する。また例えば、サーマルプリンター５にサーマル側リアル紙切れ状態が発生し、その旨を表示パネル１６に表示すると共に、サーマルプリンター５への制御コマンドの出力を停止して当該プリンターの動作を停止する構成となっていた場合、印刷制御部３１は、インクジェットプリンター３にインク側リアル紙切れ状態が発生した場合も、同様の処理を実行する。
【００３０】
一方で、ステップＳＤ３において、対応ステータスデータが存在しないと判別した場合（ステップＳＤ３：ＮＯ）、データ解析／変換部３６は、入力されたステータスデータの内容を分析し、当該ステータスデータが、エラー通知データであるか否かを判別する（ステップＳＤ７）。
エラー通知データとは、印刷制御部３１による制御コマンドの出力を停止することによって、インクジェットプリンター３の動作を停止すべき状況のようなエラーが発生していることを示すステータスデータのことである。本例では、リアルインク切れ状態を示すステータスデータが、エラー通知データに該当する。
ステータスデータごとに、エラー通知データであるか否かが予め設定されており、各ステータスデータがエラー通知データであるか否かを示す情報を含むデータがホスト記憶部１３に記憶されている。ステップＳＤ７では、データ解析／変換部３６は、当該データを参照して、判別を実行する。
【００３１】
ステータスデータが、エラー通知データである場合（ステップＳＤ７：ＹＥＳ）、データ解析／変換部３６は、出力ポートとして第１仮想ポートＰ１を指定する情報と共に、制御コマンドの出力を停止させるデータ（以下、「出力停止データ」という。）をポートハンドラー３５に出力する（ステップＳＤ８）。
この出力停止データは、交換前のサーマルプリンター５が出力可能なデータであり、例えば、サーマルプリンター５がシリアル通信方式のインターフェースに対応している場合、制御コマンドの出力の停止を要求する信号（ビジー信号）に対応するデータである。
ポートハンドラー３５は、出力停止データについて、必要なデータ処理を施した後、第１仮想ポートＰ１を介して、印刷制御部３１に出力する（ステップＳＤ９）。
このステップＳＤ９の処理により、印刷制御部３１は、ユーザーによる明示的な指示や、所定の処理（電源のオフ→オンや、リセット）が行われるまで、制御コマンドの出力を停止する。上述したように、印刷制御部３１は、サーマルプリンター５に対応したステータスデータを処理可能であるため、上記処理が可能となる。
さらに、データ解析／変換部３６は、ホスト表示部１２を制御して、表示パネル１６に、エラー通知データが示すエラーの内容を少なくとも含む情報を表示（報知）する（ステップＳＤ１０）。例えば、エラー通知データが、リアルインク切れ状態を示すステータスデータである場合は、データ解析／変換部３６は、表示パネル１６に、インクジェットプリンター３がリアルインク切れ状態である旨表示させる。エラー通知データごとに、表示すべき情報は予め定められており、プログラム上に、または、プログラムが参照可能なデータ上に定義されている。
なお、エラーの内容の報知の方法は、表示パネル１６への表示に限らず、ＬＥＤが設けられている場合は、当該ＬＥＤを所定の態様で点灯／消灯したり、ブザー等によって音声により報知したりする方法でもよい。
このステップＳＤ１０の処理により、エラー通知データが示すエラーについて、ユーザーが的確に認識できる。つまり、本実施形態では、印刷制御部３１に係るプログラムに対する改変を行うことなく、交換前のサーマルプリンター５に発生し得ないエラーが、インクジェットプリンター３に発生した場合に、その発生をユーザーに的確に認識させることができる。
【００３２】
一方で、ステータスデータが、エラー通知データでない場合（ステップＳＤ７：ＮＯ）、データ解析／変換部３６は、ホスト表示部１２を制御して、表示パネル１６に、ステータスデータが示すステータスの内容を少なくとも含む情報を表示（報知）する（ステップＳＤ１１）。これにより、ステータスデータが示すステータスについて、ユーザーが的確に認識できる。つまり、本実施形態では、印刷制御部３１に係るプログラムの改変を行うことなく、交換前のサーマルプリンター５が対応していないステータスであって、インクジェットプリンター３が対応しているステータスについて、インクジェットプリンター３から通知があった場合に、当該ステータスをユーザーに的確に認識させることができる。
【００３３】
以上説明したように、本実施形態に係るホストコンピューター２（制御装置）は、サーマルプリンター５（第２の印刷装置）に対応した制御コマンドを生成して出力可能であると共に、サーマルプリンター５に対応したステータスデータが入力され、入力されたステータスデータに基づく処理を実行可能な印刷制御部３１を備えている。また、ホストコンピューター２は、印刷制御部３１から出力された制御コマンドが入力可能に構成され、制御コマンドが入力された場合、サーマルプリンター５に対応した応答データを印刷制御部３１に出力する仮想第２印刷装置部３２を備えている。また、ホストコンピューター２は、印刷制御部３１から出力された制御コマンドが入力可能に構成され、印刷制御部３１からの制御コマンドが入力された場合、インクジェットプリンター３に対応した制御コマンドに変換して、インクジェットプリンター３に出力すると共に、接続されたインクジェットプリンター３からのステータスデータが入力可能に構成され、インクジェットプリンター３からのステータスデータが入力された場合、入力されたステータスデータを、サーマルプリンター５とインクジェットプリンター３との構造の差異に応じて、サーマルプリンター５に対応したデータに変換し、印刷制御部３１に出力するデータ処理部３３を備えている。
この構成によれば、印刷制御部３１によるサーマルプリンター５に対応する制御コマンドの出力があった場合は、仮想第２印刷装置部３２の機能により、適切な応答が行われるため、印刷制御部３１の制御コマンドの生成、出力に係るプログラムについて、改変を行う必要がない。
その上で、上記構成によれば、データ処理部３３の機能により、インクジェットプリンター３からステータスデータが入力された場合、データの変換が適切に行われて印刷制御部３１に出力されるため、印刷制御部３１のステータスデータの処理に係るプログラムについて、改変を行う必要がない。つまり、印刷制御部３１の機能を実現するプログラムについて、交換に伴う改変を抑制でき、交換に係る作業が容易になる。
【００３４】
また、本実施形態では、データ処理部３３は、インクジェットプリンター３からステータスデータが入力された場合、入力されたステータスデータと内容の同一性を有し、サーマルプリンター５が出力可能なステータスデータである対応ステータスデータが存在するか否かを判別し、存在する場合は、入力されたステータスデータを対応ステータスデータに変換して印刷制御部３１に出力する。
この構成によれば、データ処理部３３は、インクジェットプリンター３からステータスデータが入力された場合、対応ステータスデータが存在する場合は、入力されたステータスデータを対応ステータスデータに変換して印刷制御部３１に出力するため、インクジェットプリンター３のステータスについて、的確に、印刷制御部３１に通知することが可能となると共に、印刷制御部３１に対応する処理を実行させることが可能となる。
【００３５】
また、本実施形態では、データ処理部３３は、対応ステータスデータが存在するか否かの判別の結果、対応ステータスデータが存在しない場合であって、入力されたステータスデータが、印刷制御部３１による制御コマンドの出力を停止すべきエラーが発生していることを示すエラー通知データである場合は、印刷制御部３１に対して制御コマンドの出力を停止させるデータを出力すると共に、当該エラーの内容を報知する。
この構成によれば、インクジェットプリンター３から入力されたステータスデータに対応する対応ステータスデータが存在しない場合であっても、印刷制御部３１による制御コマンドの出力を停止すべきエラーが発生している場合には、制御コマンドの出力を停止させることができると共に、当該エラーの内容をユーザーに報知することが可能である。
【００３６】
また、本実施形態では、データ処理部３３は、対応ステータスデータが存在するか否かの判別の結果、対応ステータスデータが存在しない場合であって、入力されたステータスデータが、エラー通知データでない場合、入力されたステータスデータが示すステータスの内容を報知する。
この構成によれば、インクジェットプリンター３から入力されたステータスデータに対応する対応ステータスデータが存在しない場合であっても、そのステータスデータが示すステータスをユーザーに認識させ、対応する処理を行わせることができる。
【００３７】
＜第２実施形態＞
次に、第２実施形態について説明する。
第２実施形態に係るデータ処理部３３は、オートステータスバック対応機能を有している。
以下、オートステータスバック対応機能について、説明する。
交換前のサーマルプリンター５は、自身のステータスに変化があった場合、そのことを通知するフラグステータスデータを送信する構成となっている。
図５は、フラグステータスデータのデータ構造を示す図である。
図５に示すように、フラグステータスデータは、４バイトからなるデータである。そして、フラグステータスデータを構成するビットのそれぞれは、ステータスを表わすフラグとして機能する。図５の例では、１ビット目はサーマル側ニア紙切れ状態のフラグであり、２ビット目はサーマル側リアル紙切状態のフラグである。
サーマルプリンター５のサーマルプリンター制御部２５は、自身のステータスを監視し、例えば、サーマル側ニア紙切れ状態となったことを検出した場合、１ビット目のフラグが立ったフラグステータスデータを生成し、送信する。当該ステータスデータが印刷制御部３１に入力されると、印刷制御部３１は、サーマルプリンタードライバーＳＰＤの機能により、１つ前に入力されたステータスデータと、新たに入力されたステータスデータとの排他的論理和をとり、ビットの状態により、ステータスを認識する。印刷制御部３１には、入力されたステータスデータを保持する機能、および、上述した排他的論理和を取ることによりステータスを認識する機能が実装されている。つまり、印刷制御部３１は、サーマルプリンター５に対応したステータスデータであるフラグステータスデータに基づく処理を実行可能に構成されている。
【００３８】
図６は、ホストコンピューター２のオートステータスバック対応機能に係る動作を示すフローチャートである。
図６を参照し、インクジェットプリンター３が接続されている状況下において、データ解析／変換部３６は、当該プリンターから入力されたステータスデータに基づいて、ステータスに変化があったか否かを監視する（ステップＳＥ１）。例えば、データ解析／変換部３６は、ステータスを問い合わせ、その応答に係るデータ（この場合、当該データが「ステータスデータ」に該当する。）に基づいて、ステータスに変化があったか否かを監視する。また例えば、インクジェットプリンター３は、自身のステータスに変化があった場合、その旨を示すデータ（この場合、当該データが「ステータスデータ」に該当する。）を送信する構成となっており、受信した当該データに基づいて、ステータスに変化があったか否かを監視する。
ステータスに変化があった場合（ステップＳＥ１：ＹＥＳ）、データ解析／変換部３６は、直近で印刷制御部３１に対して出力されたフラグステータスデータを取得する（ステップＳＥ２）。上述したように、印刷制御部３１は、直近で入力されたフラグステータスデータを保持しており、新たにフラグステータスデータが入力された場合は、これらフラグステータスデータの比較結果に基づいて所定の処理を実行する。
ステップＳＥ２の処理は、以下のようにして実行される。例えば、フラグステータスデータの印刷制御部３１の出力がデータ解析／変換部３６のみによって行われる場合は、データ解析／変換部３６は、自身が出力したフラグステータスデータを記憶しておき、ステップＳＥ２において記憶したフラグステータスデータを取得する。また、仮想第２印刷装置部３２によってもフラグステータスデータの出力が実行される場合は、データ解析／変換部３６は、自身が出力したフラグステータスデータ、および、仮想第２印刷装置部３２が出力したフラグステータスデータのうち、直近のものを記憶しておき、ステップＳＥ２において記憶したフラグステータスデータを取得する。また、印刷制御部３１に問い合わせる構成であってもよい。この場合、印刷制御部３１に係るプログラムに改変を行わないためには、当該プログラムに、上記問い合わせに対して応答する機能が実装されていることが前提となる。
【００３９】
次いで、データ解析／変換部３６は、取得したフラグステータスデータについて、変化があったステータスに係るフラグを立てる（対応するビットの値を「０」から「１」へと変移させる。）（ステップＳＥ３）。
次いで、データ解析／変換部３６は、出力先のポートとして第１仮想ポートＰ１を指定する情報と共に、ステップＳＥ３でフラグステータスデータをポートハンドラー３５に出力する（ステップＳＥ４）。ポートハンドラー３５は、フラグステータスデータを第１仮想ポートＰ１を介して印刷制御部３１に出力する（ステップＳＥ５）。
上述したように、印刷制御部３１は、記憶しておいた１つ前に入力されたステータスデータと、新たに入力されたステータスデータとの排他的論理和をとり、ビットの状態により、インクジェットプリンター３の変化があったステータスを認識する。
【００４０】
以上説明したように、本実施形態に係るデータ処理部３３のデータ解析／変換部３６は、接続されたインクジェットプリンター３から入力されたステータスデータに基づいてステータスに変化があったか否かを監視し、ステータスに変化があった場合、フラグステータスデータについて、変化したステータスに係るフラグを立てて印刷制御部３１に出力する。
この構成によれば、フラグステータスデータを利用して、インクジェットプリンター３のステータスに変化があった場合に、印刷制御部３１に的確にそのことを通知可能である。
【００４１】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
上述した実施形態では、構造の異なる印刷装置として、サーマル式のプリンターと、インクジェット式のプリンターとを例にしたが、構造の異なる印刷装置はこれらプリンターに限られない。すなわち、制御装置に接続された印刷装置を、ある１の印刷装置から、構造の相違に起因してステータスデータの態様が異なる他の印刷装置に交換する場合一般に、本発明を適用可能である。
また、図１、２に示す各機能ブロックはハードウェアとソフトウェアの協働により任意に実現可能であり、特定のハードウェア構成を示唆するものではない。また、ホストコンピューター２の各機能を、これら装置に外部接続される別の装置に持たせてもよい。また、ホストコンピューター２は、外部接続される記憶媒体に記憶させたプログラムを実行することにより、各機能の動作を実現してもよい。
【符号の説明】
【００４２】
１…制御システム、２…ホストコンピューター（制御装置）、３…インクジェットプリンター（第１の印刷装置）、５…サーマルプリンター（第２の印刷装置）、１０…ホスト制御部（制御部）、３１…印刷制御部、３２…仮想第２印刷装置部、３３…データ処理部、３５…ポートハンドラー（データ処理部）、３６…データ解析／変換部（データ処理部）。
【図１】
2015005098.tif 000003
【図２】
2015005098.tif 000004
【図３】
2015005098.tif 000005
【図４】
2015005098.tif 000006
【図５】
2015005098.tif 000007
【図６】
2015005098.tif 000008