(57)【要約】      （修正有）【課題】デバイスの実態を反映した上で、デバイスの制御に係るプログラムを、容易に、開発できるようにする。【解決手段】所定のデバイスの制御に係る所定の機能を追加可能なプログラムのソースを記憶するソース記憶部と、前記所定のデバイスの関連情報を取得するデバイス情報取得部１５ｃと、前記デバイス情報取得部が取得した前記関連情報に基づいて、前記ソース記憶部が記憶する前記ソースを編集するソース編集部と、を備えるホストコンピューター１０は、プリンター１１の関連情報を取得し、取得した関連情報に基づいて、サンプルプログラムソース２０を編集する。【選択図】図１
2013025556.tif 000002
【特許請求の範囲】
【請求項１】
所定のデバイスに接続可能な制御装置であって、
前記所定のデバイスの制御に係る所定の機能を追加可能なプログラムのソースを記憶するソース記憶部と、
前記所定のデバイスに関する情報である関連情報を取得するデバイス情報取得部と、
前記デバイス情報取得部が取得した前記関連情報に基づいて、前記ソース記憶部が記憶する前記ソースを編集するソース編集部と、
を備えることを特徴とする制御装置。
【請求項２】
前記関連情報は、前記所定のデバイスの仕様、又は、使用態様に関する情報を含み、
前記ソース編集部は、
前記デバイス情報取得部が取得した前記関連情報に基づいて、前記所定のデバイスの仕様、又は、使用態様に応じて、前記ソース記憶部が記憶する前記ソースを編集することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記所定のデバイスは、記録媒体に記録する記録装置であり、
前記関連情報は、前記記録装置の仕様、又は、前記記録媒体への記録の態様に関する情報を含み、
前記ソース編集部は、
前記デバイス情報取得部が取得した前記関連情報に基づいて、前記記録装置の仕様、又は、前記記録媒体への記録の態様に応じて、前記ソース記憶部が記憶する前記ソースを編集することを特徴とする請求項２に記載の制御装置。
【請求項４】
所定のデバイスに接続可能な制御装置の制御方法であって、
前記所定のデバイスの制御に係る所定の機能を追加可能なプログラムのソースを記憶し、
前記所定のデバイスに関する情報である関連情報を取得し、
取得した前記関連情報に基づいて、記憶する前記ソースを編集することを特徴とする制御装置の制御方法。
【請求項５】
所定のデバイスに接続可能な制御装置の各部を制御する制御部により実行されるプログラムであって、
前記制御部を、
前記所定のデバイスの制御に係る所定の機能を追加可能なプログラムのソースを記憶するソース記憶部と、
前記所定のデバイスに関する情報である関連情報を取得するデバイス情報取得部と、
前記デバイス情報取得部が取得した前記関連情報に基づいて、前記ソース記憶部が記憶する前記ソースを編集するソース編集部と、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のデバイスに接続可能な制御装置、当該制御装置の制御方法、および、プログラムに関する。
【背景技術】
【０００２】
従来、スーパーマーケットやコンビニエンスストア等の店舗に適用され、店舗における販売状況や、在庫等の管理を行うＰＯＳシステムが知られている（例えば、特許文献１参照）。この種のＰＯＳシステムでは、プリンター等のデバイスを制御する制御装置（ＰＯＳ端末）を備え、制御装置が、ＵＰＯＳの規格に準拠したプログラムを読み出して実行することにより、各種デバイスを制御するものがある。ＵＰＯＳは、世界標準の規格であり、ＰＯＳシステムを構成するデバイスに係るインターフェイスの標準化を定義すると共に、ＰＯＳシステムの制御装置に実行させるべきプログラムを開発するためのＡＰＩ関数を提供している。
そして、上記ＰＯＳシステムの制御装置では、ユーザーが、ＵＰＯＳの規格に準拠したプログラムを自ら開発することにより、制御装置に新たな機能を追加できるようにしたものがある。プログラムの開発に際し、ユーザーは、ＵＰＯＳが提供するＡＰＩ関数を利用して、追加しようとしている機能を実現するプログラムを開発する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１００３７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、ＵＰＯＳが提供するＡＰＩ関数は多岐に亘り、全体を完全に把握することは困難であり、これに起因して、ユーザーによるプログラムの開発が困難であるという問題があった。さらに、ユーザーが、制御装置が制御するデバイスの制御に係る所定の機能を有するプログラムを開発するにあたっては、当該デバイスの実態を反映したプログラムを開発したいとするニーズがある。
本発明は、上述した事情に鑑みてなされたものであり、デバイスの実態を反映した上で、デバイスの制御に係るプログラムを、容易に、開発できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、所定のデバイスに接続可能な制御装置であって、前記所定のデバイスの制御に係る所定の機能を追加可能なプログラムのソースを記憶するソース記憶部と、前記所定のデバイスに関する情報である関連情報を取得するデバイス情報取得部と、前記デバイス情報取得部が取得した前記関連情報に基づいて、前記ソース記憶部が記憶する前記ソースを編集するソース編集部と、を備えることを特徴とする。
この構成によれば、所定のデバイスの制御に係る所定の機能を追加可能なプログラムのソースが予め記憶されているため、デバイスの制御に係るプログラムを、容易に、開発できる。さらに、所定のデバイスに関する情報である関連情報に基づいて、自動で、ソースが編集されるため、プログラムを開発しようとしている者が自ら関連情報を取得して、取得した関連情報に基づいてプログラムを開発する必要がなくなり、デバイスの実態を反映したプログラムをより容易に開発可能である。
【０００６】
また、上記発明の制御装置であって、本発明は、前記関連情報は、前記所定のデバイスの仕様、又は、使用態様に関する情報を含み、前記ソース編集部は、前記デバイス情報取得部が取得した前記関連情報に基づいて、前記所定のデバイスの仕様、又は、使用態様に応じて、前記ソース記憶部が記憶する前記ソースを編集することを特徴とする。
ここで、デバイスの仕様、又は、使用態様によって、デバイスを制御するプログラムとして最適なプログラムは異なってくる。
そして、上記構成によれば、デバイスの仕様、又は、使用態様に応じて、自動で、ソースが編集されるため、プログラムを開発しようとしている者が自らデバイスの仕様、又は、使用態様を取得して、取得した情報に基づいてプログラムを開発する必要がなくなり、デバイスの実態を反映したプログラムをより容易に開発可能である。
【０００７】
また、上記発明の制御装置であって、本発明は、前記所定のデバイスは、記録媒体に記録する記録装置であり、前記関連情報は、前記記録装置の仕様、又は、前記記録媒体への記録の態様に関する情報を含み、前記ソース編集部は、前記デバイス情報取得部が取得した前記関連情報に基づいて、前記記録装置の仕様、又は、前記記録媒体への記録の態様に応じて、前記ソース記憶部が記憶する前記ソースを編集することを特徴とする。
ここで、記録装置の仕様、又は、記録媒体への記録の態様によって、記録装置を制御するプログラムとして最適なプログラムは異なってくる。
そして、上記構成によれば、記録装置の仕様、又は、記録媒体への記録の態様に応じて、自動で、ソースが編集されるため、プログラムを開発しようとしている者が自ら記録装置の仕様、又は、記録媒体への記録の態様を取得して、取得した情報に基づいてプログラムを開発する必要がなくなり、デバイスの実態を反映したプログラムをより容易に開発可能である。
【０００８】
また、上記目的を達成するために、本発明は、所定のデバイスに接続可能な制御装置の制御方法であって、前記所定のデバイスの制御に係る所定の機能を追加可能なプログラムのソースを記憶し、前記所定のデバイスに関する情報である関連情報を取得し、取得した前記関連情報に基づいて、記憶する前記ソースを編集することを特徴とする。
この制御方法によれば、所定のデバイスの制御に係る所定の機能を追加可能なプログラムのソースが予め記憶されているため、デバイスの制御に係るプログラムを、容易に、開発できる。さらに、所定のデバイスに関する情報である関連情報に基づいて、自動で、ソースが編集されるため、プログラムを開発しようとしている者が自ら関連情報を取得して、取得した関連情報に基づいてプログラムを開発する必要がなくなり、デバイスの実態を反映したプログラムをより容易に開発可能である。
【０００９】
また、上記目的を達成するために、本発明は、所定のデバイスに接続可能な制御装置の各部を制御する制御部により実行されるプログラムであって、前記制御部を、前記所定のデバイスの制御に係る所定の機能を追加可能なプログラムのソースを記憶するソース記憶部と、前記所定のデバイスに関する情報である関連情報を取得するデバイス情報取得部と、前記デバイス情報取得部が取得した前記関連情報に基づいて、前記ソース記憶部が記憶する前記ソースを編集するソース編集部と、として機能させることを特徴とする。
このプログラムを実行すれば、所定のデバイスの制御に係る所定の機能を追加可能なプログラムのソースが予め記憶されているため、デバイスの制御に係るプログラムを、容易に、開発できる。さらに、所定のデバイスに関する情報である関連情報に基づいて、自動で、ソースが編集されるため、プログラムを開発しようとしている者が自ら関連情報を取得して、取得した関連情報に基づいてプログラムを開発する必要がなくなり、デバイスの実態を反映したプログラムをより容易に開発可能である。
【発明の効果】
【００１０】
本発明によれば、デバイスの制御に係るプログラムを、当該デバイスの実態を反映した上で、容易に開発できるようになる。
【図面の簡単な説明】
【００１１】
【図１】ＰＯＳシステムの機能的構成を示すブロック図である。
【図２】整理券を模式的に示す図である。
【図３】ＰＯＳシステムの動作を示すフローチャートである。
【図４】ＰＯＳシステムの動作を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態について説明する。
図１は、ＰＯＳシステム１の機能的構成を示すブロック図である。
ＰＯＳシステム１は、図１に示すように、ホストコンピューター１０（制御装置）と、プリンター１１（デバイス、記録装置）とを備え、ホストコンピューター１０の制御の下、プリンター１１によって所定の紙片を発行可能なシステムである。
【００１３】
ホストコンピューター１０は、制御部１５と、表示部１６と、入力部１７と、インターフェイス部１８（Ｉ／Ｆ）と、記憶部１９と、を備えている。
制御部１５は、ホストコンピューター１０の各部を中枢的に制御するものであり、演算実行部としてのＣＰＵや、このＣＰＵに実行される基本制御プログラムや、この基本制御プログラムに係るデータ等を不揮発的に記憶するＲＯＭ、ＣＰＵに実行されるプログラムやこのプログラムに係るデータ等を一時的に記憶するＲＡＭ、その他の周辺回路等を備えている。制御部１５は、ＰＯＳアプリケーション実行部１５ａと、プリンタードライバー実行部１５ｂと、デバイス情報取得部１５ｃと、ソース編集部１５ｄと、を備えているが、これらについては後述する。
表示部１６は、液晶表示パネル等の表示パネルを備え、制御部１５の制御の下、表示パネルに各種情報を表示する。
入力部１７は、キーボードや、マウス等の入力デバイスに接続され、これら入力デバイスに対する操作を検出し、制御部１５に出力する。
インターフェイス部１８（Ｉ／Ｆ）は、制御部１５の制御の下、プリンター１１との間で通信規格に準拠した通信を行う。
記憶部１９は、各種データを書き換え可能に記憶する部位であり、ハードディスクや、ＥＥＰＲＯＭ等の記憶装置を備えている。記憶部１９には、サンプルプログラムソース２０と、発行履歴データベース２１とが記憶されているが、これらについては後述する。本実施形態では、制御部１５と、記憶部１９とが協働して、所定のデバイス（プリンター１１）の制御に係る所定の機能を追加可能なプログラムのソース（サンプルプログラムソース２０）を記憶するソース記憶部として機能する。
【００１４】
一方、プリンター１１は、ロール状に巻かれた感熱ロール紙を、ローラー状のプラテンにより搬送し、この感熱ロール紙の記録面に、発熱素子を備えたラインサーマルヘッドによって熱を与えることにより画像を記録した上で、切断機構により所定の位置で感熱ロール紙を切断することにより、紙片を発行可能なサーマルプリンターである。
図１に示すように、プリンター１１は、プリンター側制御部２５と、プリンター側入力部２６と、プリントエンジン２７と、を備えている。
プリンター側制御部２５は、プリンター１１を中枢的に制御するものであり、上述した制御部１５と同様、ＣＰＵやＲＯＭ、ＲＡＭその他の周辺回路等を備えている。プリンター側制御部２５は、プリンター１１を制御するためのファームウェアを読み出して、実行することにより、プリンター１１の各部を制御する。
プリンター側入力部２６は、プリンター１１に設けられた各種スイッチに接続され、スイッチに対する操作を検出し、プリンター側制御部２５に出力する。図１に示すように、プリンター側入力部２６には、少なくとも、フィードスイッチ２８が接続されている。フィードスイッチ２８は、感熱ロール紙を所定量だけ搬送すること（いわゆる手動紙送り）を指示するためのスイッチであり、フィードスイッチ２８が操作された場合、ファームウェアの機能により、図示せぬ搬送機構が駆動して、所定量だけ感熱ロール紙を搬送方向に搬送する。
プリントエンジン２７は、プリンター側制御部２５の制御の下、用紙端センサーや用紙残量センサー等の各種センサーの検出値を監視しながら、ラインサーマルヘッドのほか、感熱ロール紙を搬送するプラテンローラーを駆動するための搬送モーターや、切断機構が備えるカッターを駆動するためのカッター駆動モーターを動作させて、感熱ロール紙に画像を記録し、画像を記録した感熱ロール紙を切断することにより紙片を発行する。
【００１５】
次いで、ＰＯＳアプリケーション実行部１５ａ及びプリンタードライバー実行部１５ｂの説明を通して、ＰＯＳシステム１が所定の紙片を発行する際の基本的な動作について説明する。
ＰＯＳアプリケーション実行部１５ａは、ホストコンピューター１０に予めインストールされたＰＯＳアプリケーションを実行することにより、発行しようとしている紙片に記録すべき画像の情報を含む画像情報データを生成し、プリンタードライバー実行部１５ｂに出力する。
プリンタードライバー実行部１５ｂは、ホストコンピューター１０に予めインストールされたプリンタードライバーを実行することにより、ＰＯＳアプリケーション実行部１５ａから入力された画像情報データに基づいて、プリンター１１のコマンド仕様に対応した制御コマンドを生成し、プリンター側制御部２５に出力する。この制御コマンドには、搬送機構に感熱ロール紙を搬送させるコマンドや、ラインサーマルヘッドを駆動させるコマンド、切断機構に感熱ロール紙を切断させるコマンド等の、プリンター１１に紙片を発行させる動作を行わせるための各種コマンドが含まれている。
制御コマンドが入力されたプリンター側制御部２５は、この制御コマンドに基づいて各部を制御し、所定の画像が記録された紙片を発行する。
なお、プリンタードライバーには、ＵＰＯＳの規格に準拠して、ＰＯＳアプリケーションと、プリンタードライバーとの間のソフトウェア的なインターフェイスとして機能するプログラム（いわゆる、コントロールオブジェクト）が実装されている。そして、ユーザーは、ＰＯＳシステム１にある１の機能を追加しようと考えた場合、ＵＰＯＳの規格に準拠して、ＡＰＩ関数を利用して当該１の機能を実現するプログラムを開発し、開発したプログラムを所定の機能を利用して、ＰＯＳアプリケーションに実装することにより、当該１の機能をＰＯＳシステム１に追加可能である。
【００１６】
ところで、何らかの商品を販売、会計を行う窓口（例えば、家電量販店において商品の会計を行う窓口）や、何らかの手続を行う窓口（例えば、区役所等の公共施設において住民票等の発行手続を行う窓口）において、窓口を利用しようとしている顧客の順番待ちを整理するため、順番待ちの顧客に対して、整理番号が記録された紙片（以下、「整理券」と称し、符号Ｓを付番する。）を発行し、当該顧客を窓口に案内できるような状態になったら、窓口の近傍に設けられた表示パネルに当該整理番号を表示し、また、音声によって当該整理番号をアナウンスし、当該顧客に対して窓口に来るよう促す運用が、従来から、広く行われている。
ここで、上述したＰＯＳシステム１に以下の機能を持たせることにより、当該ＰＯＳシステム１を上記運用に利用する場合を想定する。
すなわち、プリンター１１を、整理券Ｓを発行する装置として、窓口の近傍の所定の位置に配置する。そして、順番待ちの顧客は、整理券Ｓを発行すべく、プリンター１１のフィードスイッチ２８を操作する。当該顧客によってフィードスイッチ２８が操作されると、プリンター１１とホストコンピューター１０とは、協働して、整理番号が記録されたレシートを発行する。
以上のような機能（以下、「整理券発行機能」という。）をＰＯＳシステム１に追加する場合、ユーザーが、ＵＰＯＳの規格に準拠して、ＡＰＩ関数を利用して当該機能に係るプログラムを開発し、開発したプログラムを所定の機能を利用して、ＰＯＳアプリケーション（プリンタードライバーであってもよい。）に実装していた。しかしながら、周知のとおり、ＵＰＯＳが提供するＡＰＩ関数は多岐に亘り、全体を完全に把握することは困難であり、これに起因して、ユーザーによるプログラムの開発が困難であり、また、開発に多大な時間、労力を要していた。また、ＡＰＩ関数の多様性は、ＡＰＩ関数を熟知していない者が、効率（処理効率、プログラミングの記述に係る効率）の悪いプログラムを作成してしまう要因ともなっていた。
特に、開発するプログラムを最適なプログラムとするには、プリンター１１の仕様や、仕様態様を反映したプログラムとする必要があるが、これら仕様や、仕様態様を知得する作業が、プログラム開発の困難性を助長していた。
以上を踏まえ、本実施形態に係るＰＯＳシステム１では、以下のようにして、プリンター１１の仕様や、仕様態様（実態）を反映した上で、整理券発行機能を追加するプログラムを、容易に、開発できるようになっている。
【００１７】
すなわち、上述したように、ホストコンピューター１０の記憶部１９には、サンプルプログラムソース２０が記憶されている。
サンプルプログラムソース２０は、上述した整理券発行機能を実現するためのプログラムのソースのサンプルであり、例えば、ＰＯＳアプリケーションの一部として動作するライブラリーという形式で記憶部１９に記憶される。
このサンプルプログラムソース２０は、例えば、プリンター１１を販売するメーカーや、ソフトウェア会社等のベンダー、ＰＯＳシステム１の構築を担当するシステムインテグレーター等（以下、「サンプルソース提供者」という。）が作成し、提供するものである。本実施形態では、サンプルソース提供者は、ＰＯＳシステム１に整理券発行機能が追加される可能性があることを想定して、予め、当該機能を追加するためのプログラムソースのサンプルを開発し、サンプルプログラムソース２０として、記憶部１９に記憶させる。記憶部１９に記憶させる手段は、例えば、ＰＯＳアプリケーションがホストコンピューター１０にインストールされる際に、同時に、記憶させるようにしてもよく、また例えば、ホストコンピューター１０がインターネットに接続されている場合において、サンプルソース提供者に係るサーバーと、ホストコンピューター１０とがインターネットを介して通信し、当該サーバーからホストコンピューター１０に出力するようにしてもよい。
また、サンプルプログラムソース２０は、ユーザーにより自由に編集できる状態となっており、ユーザーは、必要に応じて、適宜、サンプルプログラムソース２０を編集可能である。
【００１８】
このように本実施形態では、サンプルソース提供者は、整理券発行機能が追加される可能性があることを踏まえ、事前に、整理券発行機能に係るプログラムソースのサンプルを開発し、サンプルプログラムソース２０として提供する。ここで提供されたサンプルプログラムソース２０は、ユーザーによって編集可能な状態で記憶部１９に記憶される。このように、追加される可能性のある機能について、当該機能に係るプログラムソースを予め開発し、提供するというサービスは、従来、存在しなかったサービスである。
そして、ユーザーは、サンプルプログラムソース２０を必要に応じて編集した上で、所定の手段によりＰＯＳアプリケーションに実装することにより、ＰＯＳシステム１に整理券発行機能を追加する。このような手段によって、整理券発行機能の追加が実現されるため、ユーザーは、整理券発行機能に係るプログラムソースを全く新しく開発する場合と比較して、非常に容易、かつ、短時間で、プログラムソースを開発できると共に、整理券発行機能の追加を実現できる。特に、サンプルプログラムソース２０は、ＵＰＯＳ、及び、ＡＰＩ関数に関する一定の専門知識を持つ者（グループを含む）が作成したものである。従って、ユーザーが全く新しく作成したプログラムのソースと比較して、効率の良いソースである蓋然性が高い。
【００１９】
次いで、整理券発行機能について、より詳細に説明する。
【００２０】
図２（Ａ）は、サンプルプログラムソース２０が後述するソース編集部１５ｄにより編集されていない場合に、当該ソースに係るプログラム（以下、「初期サンプルプログラム」という。）の機能により、発行される整理券Ｓを模式的に示す図である。
また、図３は、初期サンプルプログラムの機能により図２（Ａ）の整理券Ｓを発行する際のＰＯＳシステム１の動作を示すフローチャートであり、（Ａ）はホストコンピューター１０の動作を、（Ｂ）はプリンター１１の動作をそれぞれ示している。図３のフローチャートの前提として、後述するソース編集部１５ｄにより編集されていないサンプルプログラムソース２０に対して所定の手段によりコンパイルや必要な初期化が行われ、ＰＯＳアプリケーションの一部として正常に実行可能な状態になっているものとする。
図２（Ａ）に示すように、初期サンプルプログラムの機能によって発行される整理券Ｓは、紙片の上部に４桁からなる整理番号Ｓ１が比較的大きな文字で記録されると共に、整理番号Ｓ１の下方に、比較的長い文からなる文章Ｓ２が記録される。
本実施形態では、ある一の整理券Ｓに記録される整理番号Ｓ１の値は、当該一の整理券Ｓが発行される日において、当該一の整理券Ｓが何番目に発行されたかを示す値（いわゆる通し番号）とされる。例えば、ＰＯＳシステム１がある店舗に適用される場合において、当該店舗が開店した後、１回目に発行される整理券Ｓの整理番号Ｓ１の値は「１」（初期プログラムの機能により記録されるときは「０００１」と表示される。）となり、その後、整理券Ｓが発行される度に、整理券Ｓに記録される整理番号Ｓ１の値は、「１」ずつ累積的に増加していく。
【００２１】
図３に示すように、プリンター１１のプリンター側制御部２５は、フィードスイッチ２８が操作されたか否かを監視する（ステップＳＢ１）。フィードスイッチ２８が操作された場合（ステップＳＢ１：ＹＥＳ）、プリンター側制御部２５は、フィードスイッチ２８が操作されたことを示すデータを、ホストコンピューター１０の制御部１５に出力する（ステップＳＢ２）。このステップＳＢ２の処理は、ファームウェアの機能により、フィードスイッチ２８が操作されたことをトリガーとして、通常、実行される処理である。
ホストコンピューター１０のサンプルプログラム実行部１５ｅは、プリンター１１から入力されたデータに基づいて、フィードスイッチ２８が操作されたことを検出する（ステップＳＡ１）。サンプルプログラム実行部１５ｅとは、サンプルプログラムソース２０に係るプログラムを読み出して実行することにより、整理券発行機能を実現する機能ブロックである。
次いで、サンプルプログラム実行部１５ｅは、フィードスイッチ２８が操作されたときに行われる通常の紙送りをキャンセルすることを指示するキャンセルコマンドを生成し（ステップＳＡ２）、生成したキャンセルコマンドをプリンター１１に出力する（ステップＳＡ３）。
キャンセルコマンドが入力されると、プリンター１１のプリンター側制御部２５は、通常の紙送りをキャンセルし、待機する（ステップＳＢ３）。
【００２２】
キャンセルコマンドを出力した後、ホストコンピューター１０のサンプルプログラム実行部１５ｅは、発行しようとしている整理券Ｓの整理番号Ｓ１の値を特定する（ステップＳＡ４）。ここで、サンプルプログラム実行部１５ｅは、直近に発行した整理券Ｓの整理番号Ｓ１の値を管理しており、当該値に「１」を加算した値を、発行しようとしている整理券Ｓの整理番号Ｓ１の値とする。
次いで、サンプルプログラム実行部１５ｅは、整理券Ｓに記録すべき画像に係る画像情報データを生成し、プリンタードライバー実行部１５ｂに出力する（ステップＳＡ５）。ここで生成される画像情報データには、少なくとも、整理番号Ｓ１の文字列（４桁の数字）を示す情報、整理番号Ｓ１の各文字列を記録する際のフォント種類を示す情報、及び、整理番号Ｓ１を構成する文字列に施すべき装飾を示す情報、さらに、文章Ｓ２の文字列を示す情報、文章Ｓ２の文字列を記録する際のフォント種類を示す情報、及び、文章Ｓ２を構成する文字列に施すべき装飾を示す情報が含まれている。装飾とは、記録する文字列に対して描画に関する何らかの処理を行うことを意味し、例えば、文字列の拡大や、文字列の位置の移動（中央寄せ、右寄せ、左寄せ）のほか、例えば、縮小、回転、強調、太字化、装飾文字又は装飾記号の付加等が装飾に該当する。
画像情報データが入力されたプリンタードライバー実行部１５ｂは、当該画像情報データに基づいて、指定されたフォントで整理番号Ｓ１を記録させる制御コマンドや、指定されたフォントで文章Ｓ２を記録させる制御コマンド、その他の必要な制御コマンド（例えば、切断機構による感熱ロール紙の切断を指示する制御コマンド）を生成し（ステップＳＡ６）、順次、プリンター１１に出力する（ステップＳＡ７）。
【００２３】
制御コマンドが入力されると、プリンター１１のプリンター側制御部２５は、制御コマンドに基づいて、プリントエンジン２７を制御して、整理券Ｓを発行する（ステップＳＢ４）。
その際、プリンター１１は、整理番号Ｓ１、及び、文章Ｓ２を構成する文字列については、以下のようにして記録する。
すなわち、プリンター１１の所定の記憶領域には、プリンター１１が対応しているフォント種類のフォントテーブルが記憶されている。例えば、プリンター１１がフォントＡと、フォントＢとの２種類のフォントに対応している場合、フォントＡに係るフォントテーブルと、フォントＢに係るフォントテーブルとが、それぞれ所定の記憶領域に記憶されている。フォントテーブルとは、フォントデータを集合して記憶するテーブルであり、フォントデータとは、文字を感熱ロール紙に記録可能な態様で表現する実データ（例えば、ビットマップフォントデータや、スケイラブルフォントデータや、ベクトルフォントデータ、アウトラインフォントデータ）のことである。そして、感熱ロール紙に一のフォント種類の一の文字を記録する場合、プリンター側制御部２５は、当該一のフォント種類のフォントテーブルを参照し、当該フォントテーブルに格納されたフォントデータの中から、当該一の文字に対応するフォントデータを特定し、特定したフォントデータに基づいて当該一の文字を記録する。
【００２４】
ところで、整理券Ｓの内容を、プリンター１１の仕様や、使用態様に応じて変更すれば、よりプリンター１１の実態に即した適切な整理券Ｓを発行できることとなる。
例えば、プリンター１１が１日に発行する整理券Ｓの枚数が、ほぼ確実に９９枚以下であるような状況では、図２（Ｂ）に示すように、整理番号Ｓ１は、２桁の数値として記録すれば足り、また、２桁の数値として記録することにより、整理券Ｓの見やすさの向上や、ラインサーマルヘッドの経年劣化の抑制を実現できる。一方、プリンター１１が１日に発行する整理券Ｓの枚数が、１万枚を越える場合もあるような状況（常に１０万枚を下回るものとする）では、図２（Ｃ）に示すように、整理番号Ｓ１は、５桁の数値として記録する必要がある。
また、整理券Ｓに記録すべき文字の文字数が多ければ多いほど、整理券Ｓの発行に係る作業の開始から発行の作業が完了するまでに要する時間は長くなる。そして、整理券Ｓが非常に短い間隔で連続して発行される事態が頻繁に起こっているような状況下では、図２（Ｄ）に示すように、文章Ｓ２を構成する文字列の数を少なくすることにより、整理券Ｓを発行するのに要する時間を短くし、これにより、顧客に待ち時間が発生する確率を減らす方が、顧客満足度の向上という観点では、有効である。
以上を踏まえ、本実施形態に係るホストコンピューター１０では、プリンター１１の仕様、及び、使用態様に応じてサンプルプログラムソース２０が自動で編集され、これにより、サンプルプログラムソース２０の機能により整理券Ｓを発行したときに、整理券Ｓの内容が、プリンター１１の仕様や、使用態様に応じた内容となる構成となっている。
【００２５】
図４は、ホストコンピューター１０によるサンプルプログラムソース２０の編集に係る処理を示すフローチャートである。
以下の説明において、デバイス情報取得部１５ｃ、及び、ソース編集部１５ｄの機能は、ＣＰＵがプログラムを実行する等、ハードウェアとソフトウェアとの協働により実現される。このデバイス情報取得部１５ｃ、及び、ソース編集部１５ｄの機能を実現するプログラムは、ＰＯＳアプリケーションに含まれていてもよく、また、プリンタードライバーに含まれていてもよく、また、これらから独立したプログラムであってもよい。また、デバイス情報取得部１５ｃ、及び、ソース編集部１５ｄの機能を実現するプログラムは、ＰＯＳアプリケーションや、プリンタードライバーがインストールされる際に、同時にインストールするようにしてもよく、また、ホストコンピューター１０がインターネットに接続されている場合は、サンプルソース提供者に係るサーバーと、ホストコンピューター１０とがインターネットを介して通信し、当該サーバーからホストコンピューター１０に出力するようにしてもよい。
また、図４のフローチャートに示す動作は、予め定められた所定の条件が成立したことをトリガーとして実行される。例えば、図４のフローチャートに示す動作は、ＰＯＳシステム１が店舗に適用されている場合において、当該店舗が閉店した後の所定の時刻が到来したことをトリガーとして、また、定期的に行われるメンテナンスが行われることをトリガーとして実行される。
【００２６】
また、図４のフローチャートの動作の前提として、デバイス情報取得部１５ｃにより発行履歴データベース２１の内容が適宜のタイミングで更新されている。
詳述すると、発行履歴データベース２１とは、プリンター１１により発行された全ての整理券Ｓについて、発行された日時（日付、時刻）を示す情報を時系列的に記憶するものである。プリンター１１は、整理券Ｓの発行が完了すると、ファームウェアの機能により、その旨のデータをホストコンピューター１０に出力する構成となっている。そして、デバイス情報取得部１５ｃは、入力されたデータに基づいて、プリンター１１によって整理券Ｓが発行されたことを検出し、例えば、図示せぬＲＴＣの出力値に基づいて、現在日時（＝整理券Ｓが発行された日時）を取得し、取得した現在日時を示す情報を発行履歴データベース２１に書き込む。なお、ここでデバイス情報取得部１５ｃが取得した、プリンター１１による整理券Ｓの発行が完了した旨のデータ、及び、整理券Ｓが発行された日時は、「所定のデバイス（プリンター１１）に関する情報である関連情報」に該当する。
このように、発行履歴データベース２１には、発行された全ての整理券Ｓについて、発行された日時（日付、時刻）を示す情報が時系列的に記憶されているため、発行履歴データベース２１を参照することにより、任意の１日に発行された整理券Ｓの合計枚数や、任意の１の整理券Ｓが発行されてから、次の整理券Ｓが発行されるまでの時間等を取得可能である。
【００２７】
図４に示すように、まず、ホストコンピューター１０のソース編集部１５ｄは、発行履歴データベース２１を参照する（ステップＳＣ１）。
次いで、ソース編集部１５ｄは、発行履歴データベース２１の内容に基づいて、桁数特定処理を実行する（ステップＳＣ２）。
この桁数特定処理では、整理券Ｓの発行枚数の実績に応じて、整理番号Ｓ１を記録するときの桁数が決定される。整理番号Ｓ１を記録するときの桁数は、整理番号Ｓ１の値が、当該桁数により表現可能な最大の値を超えることを非常に高い確率で防止した上で、できるだけ小さな桁数とする、という観点から決定される。具体的に例を挙げて説明すると、例えば、ソース編集部１５ｄは、発行履歴データベース２１の内容に基づいて、直近の５０日間で、１日の発行枚数が９９枚を越えたことが１回もなく、かつ、直近の５０日間の発行枚数の平均が５０枚以下である場合は、桁数を２桁とする（図２（Ｂ））。
次いで、ソース編集部１５ｄは、サンプルプログラム実行部１５ｅからプリンタードライバー実行部１５ｂに出力される画像情報データに含まれる情報のうち、整理番号Ｓ１の文字列を示す情報について、ステップＳＣ２で特定した桁数の数字を示す文字列となるように、サンプルプログラムソース２０を編集する（ステップＳＣ３）。例えば、サンプルプログラムソース２０に、整理番号Ｓ１の値を示す数値データをデータ型変換して所定の桁数の文字列データに変換するソースが含まれているとすると、ソース編集部１５ｄは、当該ソースの記述内容を修正して、整理番号Ｓ１の値を示す数値データを、ステップＳＣ２で特定した桁数の文字列データにデータ型変換するようにする。このステップＳＣ３におけるソースの編集は、予め定められたルールに従って、ソース編集部１５ｄにより自動で実行される。例えば、桁数ごとに、ソースの修正内容を示す情報が記憶され、ソース編集部１５ｄは、当該情報に基づいて、ソースの記述内容の修正を実行する。
【００２８】
次いで、ソース編集部１５ｄは、文章内容特定処理を実行する（ステップＳＣ４）。
この文章内容特定処理では、整理券Ｓの発行の状況に応じて、文章Ｓ２の内容を特定（選択）する処理が行われる。本実施形態では、文章Ｓ２の内容として、図２（Ａ）に示す比較的長文のものと、図２（Ｄ）に示す比較的短文のものとが用意されており、文章内容特定処理では、いずれの内容を文章Ｓ２とするかが決定される。
文章内容特定処理では、整理券Ｓが非常に短い間隔で連続して発行される事態が頻繁に起こっているような状況下では、文章Ｓ２を短文とすることにより、１枚の整理券Ｓを発行するのに要する時間を短くするという観点から、上記２つの文のうち、いずれの文を文章Ｓ２の内容とするかが決定される。例えば、文章内容特定処理では、ソース編集部１５ｄは、直近の１０日間のうち、１の整理券Ｓが発行されたタイミングと、次の整理券Ｓが発行されたタイミングとの間隔が、予め定められた所定の閾値を下回った回数が２０回を越えている日が、５日以上ある場合、文章Ｓ２を短文に決定し、それ以外の場合、文章Ｓ２を長文に決定する。
次いで、ソース編集部１５ｄは、サンプルプログラム実行部１５ｅからプリンタードライバー実行部１５ｂに出力される画像情報データに含まれる情報のうち、文章Ｓ２の文字列を示す情報について、当該情報が、ステップＳＣ４で特定した文章Ｓ２の内容の文字列を示す情報となるように、サンプルプログラムソース２０を編集する（ステップＳＣ５）。例えば、ソース編集部１５ｄは、サンプルプログラムソース２０において、文章Ｓ２の文字列の情報が記述された箇所について、ステップＳＣ４における決定に基づいて、その内容を修正する。
【００２９】
次いで、デバイス情報取得部１５ｃは、プリンター１１と通信し、プリンター１１が対応しているフォント種類、プリンター１１の解像度、及び、プリンター１１が収容する感熱ロール紙の紙幅を示す情報を取得する（ステップＳＣ６）。ここで取得した情報は、「所定のデバイス（プリンター１１）に関する情報である関連情報」に該当する。これらの情報は、プリンター１１の設定ファイル等に記述されており、デバイス情報取得部１５ｃは、これら情報を取得するためのプロトコルに準拠してプリンター１１と通信し、これら情報を取得する。
次いで、ソース編集部１５ｄは、文章Ｓ２について、感熱ロール紙に記録するときの適切なフォント種類を特定する（ステップＳＣ７）。
【００３０】
詳述すると、解像度、及び、紙幅に応じて最大印字領域幅は異なったものとなる。最大印字領域幅とは、幅方向に形成可能な画素の最大数のことであり、例として、感熱ロール紙の幅が８０ｍｍであり、解像度が１８０ｄｐｉである場合は、最大印字領域幅は５１２ドットとなり、また、感熱ロール紙の幅が８０ｍｍであり、解像度が２０３ｄｐｉである場合は、最大印字領域幅は５７６ドットとなる。
そして、紙幅が共通である場合は、解像度の相違にかかわらず、記録可能桁数をできるだけ一致させたいとするニーズがある。記録可能桁数とは、１のフォントに係る文字を感熱ロール紙の１行に連続して記録可能な桁数のことである。こうすることにより、ＰＯＳシステム１が解像度の異なる複数のプリンター１１を備える場合において、解像度の異なるプリンター１１によって発行された整理券Ｓのそれぞれの記録結果が近似し、ユーザーに対して違和感を与えることがないためである。
以上を踏まえ、ステップＳＣ７において、ソース編集部１５ｄは、解像度の相違にかかわらず記録可能桁数をできるだけ一致させる、という観点から文章Ｓ２を感熱ロール紙に記録するときの適切なフォント種類を特定する。例えば、解像度が１８０ｄｐｉのプリンターＰ１と、解像度が２０３ｄｐｉのプリンターＰ２の２つのプリンター１１が存在するものとし、双方のプリンター１１が、横８ドットのフォントＡと、横１０ドットのフォントＢとの２種類のフォントに対応しているものとする。そして、紙の幅が８０ｍｍの場合は、解像度の相違にかかわらず、できるだけ記録可能桁数を６０桁に近づけるものとする。この場合において、ソース編集部１５ｄは、ホストコンピューター１０に接続されているプリンター１１がプリンターＰ１である場合は、文章Ｓ２を感熱ロール紙に記録するときの適切なフォント種類をフォントＡとする。これは、５１２（最大印字領域幅）／８（フォントＡの幅）＝６４（記録可能桁数）であり、一方、５１２（最大印字領域幅）／１０（フォントＢの幅）≒５１（記録可能桁数）であるため、フォントＡの方が、記録可能桁数が６０桁に近いためである。また、ソース編集部１５ｄは、ホストコンピューター１０に接続されているプリンター１１がプリンターＰ２である場合は、文章Ｓ２を感熱ロール紙に記録するときの適切なフォント種類をフォントＢとする。これは、５７６（最大印字領域幅）／８（フォントＡの幅）＝７２（記録可能桁数）であり、一方、５７６（最大印字領域幅）／１０（フォントＢの幅）≒５７（記録可能桁数）であるため、フォントＢの方が、記録可能桁数が６０桁に近いためである。
なお、整理番号Ｓ１は、文字数が少なく、解像度の相違に起因して記録結果に乖離が生じるといった事態を考慮する必要はないため、整理券Ｓの統一感を考慮して、文章Ｓ２のフォントと、同一のフォントを使用するものとされる。
【００３１】
次いで、ソース編集部１５ｄは、サンプルプログラム実行部１５ｅからプリンタードライバー実行部１５ｂに出力される画像情報データに含まれる情報のうち、整理番号Ｓ１の各文字列を記録する際のフォント種類を示す情報、及び、文章Ｓ２の文字列を記録する際のフォント種類を示す情報がそれぞれ、ステップＳＣ７で決定したフォント種類を示す情報となるように、サンプルプログラムソース２０を編集する（ステップＳＣ８）。例えば、ソース編集部１５ｄは、サンプルプログラムソース２０のソースのうち、フォント種類を示す情報を生成する機能に係るソースについて、生成される情報が、ステップＳＣ７で決定したフォント種類を示す情報となるように、サンプルプログラムソース２０を編集する。
【００３２】
以上のようにして、プリンター１１の仕様、及び、使用態様に基づいて、ソース編集部１５ｄによりサンプルプログラムソース２０の編集が自動で行われる。これにより、編集後のサンプルプログラムソース２０に係るプログラムの機能により整理券Ｓを発行した場合、発行した整理券Ｓの整理番号Ｓ１の桁数はステップＳＣ２で決定した桁数となり、かつ、文章Ｓ２の内容はステップＳＣ４で決定した内容となり、かつ、整理番号Ｓ１及び文章Ｓ２のフォント種類はステップＳＣ７で決定したフォント種類となる。
このように、本実施形態では、サンプルプログラムソース２０の編集が自動で行われる構成のため、ユーザー自らが、プリンター１１の仕様や、使用態様を調査してサンプルプログラムソース２０を編集する必要がなく、さらにプログラムソースの開発容易性が向上する。例えば、従来は、ユーザーが、プリンター１１が対応しているフォント種類を把握し、対応しているフォント種類に応じて適切にプログラムソースを開発する必要があったが、本発明を適用すれば、そのような煩雑な作業が必要なくなる。
【００３３】
このように本実施形態によれば、サンプルソース提供者は、アプリケーションに組み込むサンプルプログラムのサンプルプログラムソース２０を提供する。そして、提供されるサンプルプログラムソース２０は、専門知識を有するサンプルソース提供者により開発されたものであるため、ＵＰＯＳの規格から逸脱することなく、従って、ユーザーは、ＵＰＯＳの規格、特に、ＡＰＩ案数に関する深い理解がなくとも、ＵＰＯＳの規格に準拠したプログラムの開発、導入が可能となる。
また、サンプルソース提供者は、アプリケーションに組み込むサンプルプログラムのサンプルプログラムソース２０を提供するため、ＵＰＯＳの規格をある程度理解しているユーザーは自由にカスタマイズできる。
また、専門知識を有するサンプルソース提供者は、プリンタードライバーの特性に合わせてサンプルプログラムソース２０を開発する蓋然性が高く、サンプルプログラムソース２０に係るプログラムについては、効率的に動作することが期待できる。
また、サンプルソース提供者と、プリンタードライバーの提供者とが異なる場合は、プリンタードライバーの提供者は、自身が提供するプリンタードライバーの特性に応じて、サンプルプログラムソース２０を編集でき、実運用での問題が発生しにくくなる効果が期待できる。
また、追加が予想される機能について、予め、サンプルのプログラムソースが提供されているため、ユーザーにとってＰＯＳシステム１は利便性が高く、汎用性が高く、様々なことに応用がきく、使い勝手のよいシステムとなり、顧客満足度の向上、商品価値の向上を図ることが可能である。
【００３４】
以上説明したように、本実施形態によれば、ホストコンピューター１０は、プリンター１１に関する情報を取得するデバイス情報取得部１５ｃと、取得した情報に基づいて、記憶部１９に記憶されたサンプルプログラムソース２０を編集するソース編集部１５ｄと、を備えている。
これによれば、プリンター１１の制御に係る所定の機能（本実施形態では整理券発行機能）を追加可能なプログラムのソースが予め記憶されているため、プリンター１１の制御に係るプログラムを、容易に、開発できる。さらに、プリンター１１に関する情報に基づいて、自動で、サンプルプログラムソース２０が編集されるため、プログラムを開発しようとしている者が自らプリンター１１の情報を取得して、取得した情報に基づいてプログラムを開発する必要がなくなり、プリンター１１の実態を反映したプログラムをより容易に開発可能である。
【００３５】
また、本実施形態によれば、ソース編集部１５ｄは、デバイス情報取得部１５ｃが取得したデバイスの仕様、及び、使用態様、より具体的には、プリンター１１の仕様、及び、記録媒体への記録の態様（本実施形態では、１日における整理券Ｓの発行枚数、整理券Ｓを発行するピッチ）に基づいて、記憶部１９に記憶されたサンプルプログラムソース２０を編集する。
ここで、デバイスの仕様、又は、使用態様、本実施形態の例では、プリンター１１の仕様、又は、記録媒体への記録の態様によって、デバイスを制御するプログラムとして最適なプログラムは異なってくる。
そして、上記構成によれば、デバイスの仕様、又は、使用態様に応じて、自動で、ソースが編集されるため、プログラムを開発しようとしている者が自らデバイスの仕様、又は、使用態様を取得して、取得した情報に基づいてプログラムを開発する必要がなくなり、デバイスの実態を反映したプログラムをより容易に開発可能である。
【００３６】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
例えば、上述した実施形態では、サンプルプログラムソース２０を編集する者の制限に関して言及されていないが、所定の認証を行い、所定の権限を有する者のみがサンプルプログラムソース２０を編集できるようにしても良いことは勿論である。
また、デバイスの一例として、記録装置たるプリンター１１を挙げて発明を説明したが、デバイスは、記録装置に限らない。すなわち、制御装置たるホストコンピューター１０に制御されるデバイスに広く本発明を適用可能である。
また、本実施形態では、プリンター１１の仕様に応じて、フォントの種類を変更する構成であったが、例えば、プリンター１１の仕様に応じて、左右のマージンを変更する構成であってもよい。
また、上述した実施形態では、ＰＯＳシステム１に追加する機能、すなわち、提供されたサンプルプログラムソース２０によって実現可能な機能の例として、整理券発行機能を挙げて発明を説明したが、機能はこれに限らない。また、デバイスの機能に対応して、サンプルプログラムソース２０が用意されてものである。例えば、レシート印字機能や、クーポン印字機能、領収書印字機能、小切手読み取りからエンドース印字までのトランザクション機能、簡単に小切手トランザクションを行うための機能、飲食店テーブル伝票印字機能、キッチンプリンター調理指示伝票印字機能等であってもよい。
また、図１に示す各機能部はハードウェアとソフトウェアの協働により任意に実現可能であり、特定のハードウェア構成を示唆するものではない。
また、上記実施形態では、ホストコンピューター１０自体が制御部１５を備えていたが、例えば、制御部１５の機能を、ホストコンピューター１０に外部接続される別の装置に持たせるようにしても良い。
また、本発明は、プリンター１１は、サーマルプリンターに限らず、インクジェットプリンター、ドットインパクトプリンター、レーザープリンター、熱昇華型プリンター等の任意の形式のプリンターに適用可能である。
また、上記のフローチャートの各ステップを実行するプログラムを、ホストコンピューター１０の外部の記憶媒体に記憶させたものを読み出して、制御部１５により実行させることもできる。
【符号の説明】
【００３７】
１…ＰＯＳシステム、１０…ホストコンピューター（制御装置）、１１…プリンター（デバイス、記録装置）、１５…制御部（ソース記憶部）、１５ｃ…デバイス情報取得部、１５ｄ…ソース編集部、１９…記憶部（ソース記憶部）、２０…サンプルプログラムソース（ソース）。
【図１】
2013025556.tif 000003
【図２】
2013025556.tif 000004
【図３】
2013025556.tif 000005
【図４】
2013025556.tif 000006