トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 制御システムにおけるデバイス初期化方法、制御システム、コンピュータにデバイス初期化方法を実行させるためのプログラム、このプログラムを記録した記録媒体
【発明者】 【氏名】林 裕明
【住所又は居所】長野県諏訪市大和3丁目3番5号 セイコーエプソン株式会社内

【氏名】酒井 淳
【住所又は居所】長野県諏訪市大和3丁目3番5号 セイコーエプソン株式会社内

【氏名】杉本 季之
【住所又は居所】長野県諏訪市大和3丁目3番5号 セイコーエプソン株式会社内

【要約】 【課題】複数のデバイスが接続される制御システムにおいて、複数のデバイスについての初期化要求に対して初期化処理を適正に行なう。

【解決手段】電源スイッチ26がオンされて各デバイス14〜18の電源が同時にオンされると(S100)、電源オン信号にID番号が付されて各デバイスサービスオブジェクト(DS)34に送られ(S106)、これに応じて、各DS34は初期化クラス42に初期化要求を出す(S108)。初期化クラス42は、これらの初期化要求に共通の初期化処理を実行し(S110,S112)、処理が終了すると、各DS34に初期化完了通知を送る(S114)。
【特許請求の範囲】
【請求項1】 複数のデバイスを制御する制御システムにおいてデバイスの初期化処理を実行する方法であって、各デバイスについての初期化要求を受け取る初期化要求受取ステップと、複数のデバイスについて受け取った初期化要求に対して共通の初期化処理を実行する初期化実行ステップと、前記共通の初期化処理が終了した後、初期化処理の終了通知を送出する終了通知送出ステップとを備えることを特徴とする方法。
【請求項2】 請求項1記載の方法において、前記制御システムは、所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータシステムにより構成されており、前記初期化要求受取ステップでは、前記複数のデバイスの夫々に対応したオブジェクトから、該当するデバイスについての初期化要求を受け取り、前記終了通知送出ステップでは、前記初期化要求の発信元である各オブジェクトへ前記終了通知を送出することを特徴とする方法。
【請求項3】 請求項2記載の方法において、前記初期化要求は、各デバイスの電源オンに応答して該当するオブジェクトから発せられるものであり、前記初期化要求受取ステップで受け取る初期化要求には、電源が同時にオンされたデバイスについて同じ値をとる初期化要求IDが付されており、前記初期化実行ステップでは、同じ初期化要求IDが付された初期化要求に対して共通の初期化処理を実行することを特徴とする方法。
【請求項4】 請求項3記載の方法において、デバイスの電源オン時以外に前記オブジェクトから初期化要求が発せられる場合には、当該初期化要求に特定の初期化要求IDが付され、デバイスの電源オンに応答して発せられる初期化要求には、前記特定の初期化要求IDとは異なる初期化要求IDが付され、前記初期化実行ステップでは、前記特定の初期化要求IDが付された初期化要求については個別に初期化処理を実行することを特徴とする方法。
【請求項5】 請求項1乃至4のうち何れか1項記載の方法において、前記複数デバイスのうち少なくとも1つはプリンタであり、前記初期化実行ステップでは、初期化処理の一部として、前記プリンタの印字文字属性を設定するための文字属性設定処理を行なうことを特徴とする方法。
【請求項6】 請求項5記載の方法において、前記プリンタの印字文字属性の設定状態を保持する文字属性データを生成するステップを備え、前記文字属性設定処理では、前記文字属性データに保持された設定状態に基づいて、前記プリンタの印字文字属性を設定することを特徴とする方法。
【請求項7】 請求項6記載の方法において、前記プリンタに対応する前記オブジェクトを起動する際に前記文字属性データを生成することを特徴とする方法。
【請求項8】 請求項2乃至7のうち何れか1項記載の方法において、各オブジェクトが初期化要求を発した後、初期化終了通知を受けるまで、各オブジェクトから対応するデバイスへのデータ送信を禁止することを特徴とする方法。
【請求項9】 請求項2乃至8のうち何れか1項記載の方法において、前記所定のオブジェクト指向プログラミング言語はジャバ言語であることを特徴とする方法。
【請求項10】 複数のデバイスを制御する制御システムであって、各デバイスについての初期化要求を受け取る初期化要求受取手段と、複数のデバイスについて受け取った初期化要求に対して共通の初期化処理を実行する初期化実行手段と、前記共通の初期化処理が終了した後、初期化処理の終了通知を送出する終了通知送出手段とを備えることを特徴とするシステム。
【請求項11】 請求項10記載のシステムにおいて、当該制御システムは、所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータシステムにより構成されており、前記初期化要求受取手段は、前記複数のデバイスの夫々に対応した第1のオブジェクトから、該当するデバイスに関する初期化要求を受け取り、前記終了通知送出手段は、前記初期化要求の発信元である前記第1のオブジェクトへ前記終了通知を送出することを特徴とする制御システム。
【請求項12】 請求項11記載の制御システムにおいて、初期化処理用の第2のオブジェクトを有し、該第2のオブジェクトが前記初期化要求受取手段、前記初期化実行手段、および、前記終了通知手段を備えていることを特徴とする制御システム。
【請求項13】 請求項12記載の制御システムにおいて、前記複数のデバイスは、その中の一のデバイスの電源がオンされると他のデバイスの電源もオンされるように構成されており、当該制御システムは、前記一のデバイスの電源オンに応答した信号を受け取ると前記第1のオブジェクトへ各デバイスの電源オンを通知する第3のオブジェクトを有し、前記第1のオブジェクトは、前記第3のオブジェクトからデバイスの電源オンの通知を受けると、前記第2のオブジェクトへ初期化要求を送出することを特徴とする制御システム。
【請求項14】 所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータに、該コンピュータに接続された複数のデバイスの初期化処理を実行させるためのプログラムであって、前記コンピュータに、前記複数のデバイスの夫々に対応したオブジェクトから、該当するデバイスについての初期化要求を受け取る初期化要求受取ステップと、複数の前記オブジェクトから受け取った初期化要求に対して共通の初期化処理を実行する初期化実行ステップと、前記初期化処理が終了した後、前記初期化要求の発信元である各オブジェクトへ初期化処理の終了通知を送出する終了通知ステップと、を実行させることを特徴とするプログラム。
【請求項15】 請求項14記載のプログラムを記録した記録媒体。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、複数のデバイスを制御する制御システムにおいて各デバイスについての初期化処理を実行する方法およびこの方法をコンピュータに実行させるプログラム並びにこのプログラムを記録した記録媒体に関する。また、本発明は、複数のデバイスについて初期化処理を適正に行なううえで好適な制御システムにも関する。
【0002】
【従来の技術】オブジェクト指向プログラミング言語の1つであるJava(登録商標)で記述されたプログラムは、ジャババーチャルマシン(JVM)上で実行することができる。したがって、JVMをサポートするオペレーティングシステム(OS)であれば、Java(登録商標)アプリケーションソフトウェアの実行環境はOSの種類やバージョンを問わない。このため、ソフトウェアをOSの種類毎に開発する必要がなくなり経済的である。また、ソフトウェアが種々のOSに共通に供給されることになるので、ユーザにとっても、ソフトウェア選択の幅が大きく広がり、さらに、OSを変えた場合やバージョンアップした場合にも既存のソフトウェア資産をそのまま継続して使用することができるといったメリットがある。
【0003】ところで、店舗のレジ等で用いられるPOSシステムは、パーソナルコンピュータ等からなるホストコンピュータに、プリンタやキャッシュドロワ等の周辺デバイスが接続されることにより構築されたシステムである。ホストコンピュータがアプリケーションプログラムを実行することによりこれら周辺機器の制御を行なうことで、POSシステムとして機能する。このようなPOSシステムにおいて、ホストコンピュータが実行するアプリケーションプログラムをJava(登録商標)言語で記述すれば、既存のハードウェアを用いて新しいPOSシステムを実現することが可能となる。この場合、ソフトウェアの開発コストを低減できるのでユーザの経済的負担も小さくなる。
【0004】図1は、Java(登録商標)アプリケーションにより構築されたPOSシステム(以下、Java(登録商標)POSシステムという)100のシステム構成図である。同図に示すように、Java(登録商標)POSシステム100は、ホストコンピュータ12に、プリンタ14、キャッシュドロワ16、および、MICR装置18等のデバイスが接続されて構成されている。ここで、Java(登録商標)POSシステム100は、小切手処理を行なう機能を有するものとしており、MICR装置18は小切手の表面に記録された磁気インク文字の読取処理(MICR:Magnetic Ink Character Recognition)を行う。
【0005】ホストコンピュータ12に実装されたOSはJVM30をサポートしている。JVM30上には、デバイスのカテゴリー(プリンタ、キャッシュドロワ、MICR装置といったデバイスの種類)毎に対応したデバイスコントロールオブジェクト(DC)32と、デバイスの機種毎に対応したデバイスサービスオブジェクト(DS)34とが設けられている。DC32はデバイスのカテゴリー毎にシステム側で用意され、一方、DS34はデバイスの機種毎にそのメーカーから供給される。なお、プリンタ14、キャッシュドロワ16、および、MICR装置18に対応するDC32およびDS34を区別する場合には、夫々、DC32a,32b,32c、および、DS34a,34b,34cと表すものとする。
【0006】また、JVM30上では、各デバイスの入出力制御を行なってPOSシステムとしての機能を実現するためのアプリケーションソフトウェア(以下、POSアプリケーションという)36が実行される。POSアプリケーション36は、例えばプリンタ14を使用する場合、先ず、プリンタ14の使用を宣言し、これに応じて、プリンタ14に対応するDS34aのインスタンスが生成される。この後、POSアプリケーション36が印字指令を発すると、印字データがプリンタ用のDC32aに引き渡され、このDC32aによってDS34aが呼び出される。そして、呼び出されたDS34aがポートドライバ35を介してプリンタ14へ印字データを送ることで印字処理が行なわれる。したがって、POSアプリケーション36の作成にあたり、プリンタ14の機種を意識することなく、印字用のルーチンを作成することが可能である。このように、DS34は、デバイスの機種毎の差異を吸収して、POSアプリケーション36をデバイス機種に依存しないプログラムとして構成できるようにする役割を有している。
【0007】
【発明が解決しようとする課題】上記したJava(登録商標)POSシステム100において、各デバイスの電源がオンされた場合、従来は、デバイスのカテゴリー毎に設けられたDS34により初期化処理が行なわれるのが一般的である。すなわち、初期化処理を行なうための初期化ルーチンが各DS34に実装されており、あるデバイスの電源がオンされると、該当するDS34がその初期化ルーチンを実行するのである。初期化処理では、例えば、ホストコンピュータ12から各デバイスへ機種や機能等を問い合わせたり、各デバイスを所定状態に設定する等の処理が行なわれる。
【0008】ところで、一般に、POSシステムにおいては、特定のメインデバイス(多くの場合はプリンタ)を中心にして、メインデバイスに他のデバイスを接続するといった形態がとられることが多い。図2に、このようなJava(登録商標)POSシステム110のシステム構成図を示す。このような構成のシステムでは、メインデバイスから他のデバイスへ電源が供給される。例えば、図2に示すように、Java(登録商標)POSシステム110がプリンタ14をメインデバイスとして構成されている場合、キャッシュドロワ16およびMICR装置18への電源はプリンタ14から供給される。この場合、プリンタ14の電源がオンされると、他のデバイスの電源も同時にオンされる。すなわち、複数のデバイスの電源が同時にオンされることになる。したがって、デバイスの電源オン時には、各デバイスについての初期化処理は各DS34により並行して同時に実行される。
【0009】しかしながら、各DS34が実行する初期化処理は、他のDS34とは同期をとらずに(つまり、他のDS34がどのような処理を実行中であるかを全く考慮せずに)行なわれる。このため、あるDS34が初期化処理を実行している間に、他のDS34の初期化処理に対するホストコンピュータ12からの応答が返ってきた場合、初期化処理を実行中の各DS34では、この応答が自らの初期化処理に対する応答なのか、他のDS34の初期化処理に対する応答なのかを判断できず、初期化処理が正しく行なわれないことになってしまう。例えば、MICR装置18に対応したDS34cが初期化処理においてMICR装置18のROMバージョンを問い合わせ、これとほぼ同時に、プリンタ14に対応したDS34aがプリンタ14の機能を問い合わせたとすると、これら問い合わせに対する応答がDS34c,34aの双方に返される。このため、DS34cおよびDS34aは、返ってきた応答がMICR18のROMバージョンであるのか、プリンタ14の機種なのかを判別できないのである。
【0010】本発明は上記の点に鑑みてなされたものであり、複数のデバイスについての初期化要求に対して初期化処理を適正に行なえるようにすることを目的とする。
【0011】
【課題を解決するための手段】請求項1に記載された発明は、複数のデバイスを制御する制御システムにおいてデバイスの初期化処理を実行する方法であって、各デバイスについての初期化要求を受け取る初期化要求受取ステップと、複数のデバイスについて受け取った初期化要求に対して共通の初期化処理を実行する初期化実行ステップと、前記共通の初期化処理が終了した後、初期化処理の終了通知を送出する終了通知送出ステップとを備えることを特徴とする。
【0012】請求項1記載の発明によれば、複数のデバイスについての初期化要求に対して共通の初期化処理を実行する。このため、各初期化要求に対して初期化処理を行なう場合に起こり得るような、初期化処理間の同期がとれていないことに起因する誤動作のおそれがなくなる。したがって、本発明によれば、複数のデバイスについて同時に初期化要求があった場合にも初期化処理を適正に行なうことができる。なお、本発明において、デバイスの初期化処理とは、例えば、デバイスの機種、機能、状態を取得したり、デバイスを所定状態に設定するなど、デバイスを制御するうえで予め行なっておくべき処理を意味する。
【0013】また、請求項2に記載された発明は、請求項1記載の方法において、前記制御システムは、所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータシステムにより構成されており、前記初期化要求受取ステップでは、前記複数のデバイスの夫々に対応したオブジェクトから、該当するデバイスについての初期化要求を受け取り、前記終了通知送出ステップでは、前記初期化要求の発信元である各オブジェクトへ前記終了通知を送出することを特徴とする。
【0014】また、請求項3に記載された発明は、請求項2記載の方法において、前記初期化要求は、各デバイスの電源オンに応答して該当するオブジェクトから発せられるものであり、前記初期化要求受取ステップで受け取る初期化要求には、電源が同時にオンされたデバイスについて同じ値をとる初期化要求IDが付されており、前記初期化実行ステップでは、同じ初期化要求IDが付された初期化要求に対して共通の初期化処理を実行することを特徴とする。
【0015】請求項3記載の発明によれば、電源が同時にオンされたデバイスについては、初期化要求に同じ値の初期化要求IDが付されており、これらの初期化要求について共通に初期化処理が行なわれる。したがって、複数のデバイスの電源が共通であって電源が同時にオンされた場合に、これらデバイスについての初期化処理を適正に行なうことができる。
【0016】また、請求項4に記載された発明は、請求項3記載の方法において、デバイスの電源オン時以外に前記オブジェクトから初期化要求が発せられる場合には、当該初期化要求に特定の初期化要求IDが付され、デバイスの電源オンに応答して発せられる初期化要求には、前記特定の初期化要求IDとは異なる初期化要求IDが付され、前記初期化実行ステップでは、前記特定の初期化要求IDが付された初期化要求については個別に初期化処理を実行することを特徴とする。
【0017】請求項4記載の発明によれば、電源オンに応答した初期化要求と、電源オン時以外の初期化要求を区別して、電源オン時以外の初期化要求については個別に初期化処理を行なうことができる。
【0018】また、請求項5に記載された発明は、請求項1乃至4のうち何れか1項記載の方法において、前記複数デバイスのうち少なくとも1つはプリンタであり、前記初期化実行ステップでは、初期化処理の一部として、前記プリンタの印字文字属性を設定するための文字属性設定処理を行なうことを特徴とする。
【0019】また、請求項6に記載された発明は、請求項5記載の方法において、前記プリンタの印字文字属性の設定状態を保持する文字属性データを生成するステップを備え、前記文字属性設定処理では、前記文字属性データに保持された設定状態に基づいて、前記プリンタの印字文字属性を設定することを特徴とする。
【0020】請求項6記載の発明によれば、プリンタの電源オフ中も、文字属性オブジェクトに印字文字属性の設定状態が保持され、文字属性設定処理では、文字属性オブジェクトに保持された設定状態に基づいてプリンタの印字文字属性を設定する。したがって、プリンタの文字属性を、プリンタの電源がオフされる直前の状態に復帰させることができる。
【0021】また、請求項7に記載された発明は、請求項6記載の方法において、前記プリンタに対応する前記オブジェクトを起動する際に前記文字属性データを生成することを特徴とする。
【0022】また、請求項8に記載された発明は、請求項2乃至7のうち何れか1項記載の方法において、各オブジェクトが初期化要求を発した後、初期化終了通知を受けるまで、各オブジェクトから対応するデバイスへのデータ送信を禁止することを特徴とする。
【0023】請求項8記載の発明によれば、初期化処理が完了していないデバイスへデータが送信されるのを防止することができる。
【0024】また、請求項9に記載された発明は、請求項2乃至8のうち何れか1項記載の方法において、前記所定のオブジェクト指向プログラミング言語はジャバ言語であることを特徴とする。
【0025】また、請求項10に記載された発明は、複数のデバイスを制御する制御システムであって、各デバイスについての初期化要求を受け取る初期化要求受取手段と、複数のデバイスについて受け取った初期化要求に対して共通の初期化処理を実行する初期化実行手段と、前記共通の初期化処理が終了した後、初期化処理の終了通知を送出する終了通知送出手段とを備えることを特徴とする。
【0026】また、請求項11に記載された発明は、請求項10記載のシステムにおいて、当該制御システムは、所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータシステムにより構成されており、前記初期化要求受取手段は、前記複数のデバイスの夫々に対応した第1のオブジェクトから、該当するデバイスに関する初期化要求を受け取り、前記終了通知送出手段は、前記初期化要求の発信元である前記第1のオブジェクトへ前記終了通知を送出することを特徴とする。
【0027】また、請求項12に記載された発明は、請求項11記載の制御システムにおいて、初期化処理用の第2のオブジェクトを有し、該第2のオブジェクトが前記初期化要求受取手段、前記初期化実行手段、および、前記終了通知手段を備えていることを特徴とする。
【0028】また、請求項13に記載された発明は、請求項12記載の制御システムにおいて、前記複数のデバイスは、その中の一のデバイスの電源がオンされると他のデバイスの電源もオンされるように構成されており、当該制御システムは、前記一のデバイスの電源オンに応答した信号を受け取ると前記第1のオブジェクトへ各デバイスの電源オンを通知する第3のオブジェクトを有し、前記第1のオブジェクトは、前記第3のオブジェクトからデバイスの電源オンの通知を受けると、前記第2のオブジェクトへ初期化要求を送出することを特徴とする。
【0029】また、請求項14に記載された発明は、所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータに、該コンピュータに接続された複数のデバイスの初期化処理を実行させるためのプログラムに係るものであり、請求項15に記載された発明は、請求項14記載のプログラムを記録した記録媒体に係るものである。
【0030】
【発明の実施の形態】図3は、本実施形態のJava(登録商標)POSシステム10のシステム構成図である。なお、図3において図1および図2と同様の構成部分には同一の符号を付している。図3に示すように、Java(登録商標)POSシステム10は、ホストコンピュータ12と、プリンタ14、キャッシュドロワ16、およびMICR装置18の各デバイスとにより構成されている。プリンタ14はホストコンピュータ12に直接接続されている。一方、キャッシュドロワ16およびMICR装置18は、プリンタ14を介してホストコンピュータ12に接続されている。また、同図に示すように、キャッシュドロワ16およびMICR装置18への電源供給ライン24はプリンタ14から供給されており、プリンタ14の電源スイッチ26がオンされると、各デバイスに同時に電源が供給される。
【0031】Java(登録商標)POSシステム10においても、上記図1に示すJava(登録商標)POSシステム100と同様に、ホストコンピュータ12のOSはJVM30をサポートしており、このJVM30上に、デバイスのカテゴリー毎に対応したDS34と、デバイスの機種毎に対応したDC32と、各デバイスの入出力制御を行なってPOSシステムとしての機能を実現するためのPOSアプリケーション36とが実装されている。さらに、本実施形態のJava(登録商標)POSシステム10おいては、受信データ解析クラス40および初期化クラス42が実装されている。受信データ解析クラス40は、プリンタ14から送信されてきた各種応答信号を解析して、適切なオブジェクトへ引き渡す機能を有する。また、初期化クラス42は、各DS34からの初期化要求を取りまとめて初期化処理を実行する機能を有する。なお、DC32、DS34、POSアプリケーション36、受信データ解析クラス40、および初期化クラス42はJava(登録商標)言語で記述されたプログラムとして、ホストコンピュータ12が備えるROMやハードディスク装置等の記憶装置に格納されている。
【0032】後述するように、初期化処理では、初期化クラス42からプリンタ14へのコマンドの送信、および、プリンタ14からの応答の受信が行なわれる。そこで、初期化処理について説明する前に、初期化処理に関連するプリンタ14の構成について説明する。
【0033】図4は、プリンタ14のシステム構成図である。同図に示すように、プリンタ14は中央制御装置(CPU)50を備えている。CPU50は、インターフェース52を介してホストコンピュータ12に接続されている。CPU50には、また、ROM54、RAM56、印字部58、用紙検出部60、カバー検出部62、エラー検出部64、パネルスイッチ66、コネクタ68,70等が接続されている。
【0034】ROM54には、プリンタ14用の制御プログラムや印字文字パターン等が記憶されていると共に、MICR装置18用の制御プログラムやデータも記憶されている。すなわち、ROM54は、プリンタ14およびMICR装置18の双方のROMとして機能する。また、RAM56には、ホストコンピュータ12から受信したコマンドや印字データを保持するための受信バッファが設けられている。さらに、印字部58は、印字ヘッド、印字ヘッドを駆動するためのモータ類、および、これらの制御装置から構成されており、CPU50からの指示に応じて印字動作を行なう。
【0035】用紙検出部60は、単票用紙および連続用紙のプリンタ内各位置での有無を検出するセンサ群を含んでおり、各センサによる検出結果をCPU50へ通知する。カバー検出部62は、プリンタカバーの開閉状態を検出するセンサを含んでおり、プリンタカバーの開閉状態をCPU50へ通知する。また、エラー検出部64は、印字ヘッドのホームポジションやオートカッタ用のカッター位置のセンサ等を含んでおり、紙ジャム等の各種エラーの発生を検知してCPU50へ通知する。さらに、コネクタ68,70には、夫々、キャッシュドロワ16およびMICR装置18が接続されており、CPU50はコネクタ68の電圧レベルに基づいて、キャッシュドロワ16の開閉状態を検知する。なお、CPU50は、プリンタカバーの開状態、単票・連続の両用紙の紙無し状態、またはエラー発生の何れかが検出された場合に、プリンタ14をオフライン状態とする。
【0036】また、プリンタ14は自動ステータス送信機能を有している。自動ステータス送信機能は、プリンタ14のステータスが変化した場合に、その都度、ホストコンピュータ12へステータスを自動的に通知する機能である。以下、自動ステータス送信機能をASB(Auto Status Back)機能と略称する。本実施形態では、プリンタ14のステータスを、■キャッシュドロワ16の開閉状態、■オンライン/オフラインの別、■エラー状態、■連続用紙検出器の状態、■単票用紙検出器・単票用紙の状態、および■パネルスイッチの状態に区分している。
【0037】図5は、ステータスデータの構成の例を示す。同図に示す例では、ステータスデータは4バイトで表され、上記したステータス区分■〜■の夫々に該当するステータスが、対応するビットの「0」または「1」の値で表されている。CPU50は、用紙検出部60、カバー検出部62、エラー検出部64およびパネルスイッチ66の出力や、コネクタ68の電圧レベルに基づいて各ステータスを検知し、ステータスデータの該当するビットの値を「1」または「0」に設定する。
【0038】プリンタ14への電源投入時には、ASB機能は無効とされており、ホストコンピュータ12からプリンタ14へASB機能設定コマンドを送信することにより、ASB機能を有効とすることができる。ASB機能設定コマンドは、例えば1バイト(8ビット)のコマンドパラメータを伴っており、このコマンドパラメータの値に基づいて、上記した各ステータス区分毎にASB機能の有効/無効の設定が可能である。
【0039】図6は、コマンドパラメータの構成を示す。同図に示すように、コマンドパラメータの各ビットには各ステータス区分が対応付けられており、値が「1」であるビットに対応するステータス区分についてASB機能が有効とされる。CPU50は、ホストコンピュータ12からASB機能設定コマンドを受信すると、そのコマンドパラメータにより少なくとも1つのステータス区分についてASB機能が有効とされている場合には、その時点でのステータスデータの内容をホストコンピュータ12へ返す。そして、以後、CPU50は、ASB機能が有効とされたステータス区分に含まれるステータスが変化する都度、ステータスデータをホストコンピュータ12へ送信する。
【0040】上述したように、ホストコンピュータ12上のPOSアプリケーション36は、プリンタ14の使用を開始するにあたり、プリンタ14の使用を宣言し、この宣言に応じて、プリンタ14に対応するDS34aのインスタンスが生成される。以後、POSアプリケーション36が印字指令を発すると、印字用データがプリンタのDC32aに引き渡され、このDC32aがDS34aのインスタンスを呼び出すことで印字処理が実行される。
【0041】DS34aのインスタンスが生成されると、生成されたインスタンスにより更に文字属性コマンドデータが生成される。そして、POSアプリケーション36がプリンタ14の印字文字属性(フォント種類、フォントサイズ、色、文字修飾等)を設定する都度、文字属性コマンドデータにその設定内容が格納される。したがって、文字属性コマンドデータには、常に、プリンタ14の現在の文字属性に関する情報が保持される。後述するように、文字属性コマンドデータは、DS34aのインスタンスが生成された際に行なわれる初期化要求時に初期化クラス42へ引き渡され、初期化処理において、プリンタ14の文字属性を電源オフ直前の状態に復帰させるために用いられる。
【0042】次に、初期化クラス42が実行する初期化処理について説明する。
【0043】図7は、本実施形態のJava(登録商標)POSシステム10において、電源スイッチ26がオンされた際(つまり、プリンタ14、キャッシュドロワ16、および、MICR装置18へ同時に電源がオンされた際)に実行される処理の概要を説明するための図である。同図に示すように、プリンタ14の電源スイッチ26がオンされると(S100)、電源オン信号がホストコンピュータ12のJVM30へ送信され(S102)、この電源オン信号はJVM30から受信データ解析クラス40へ引き渡される(S104)。受信データ解析クラス40は、これまでに生成されていない新規なID番号(「1」以上)を所定の規則に従って、例えば1から順次にあるいはランダムに生成し、このID番号を電源オン信号に付加して、インスタンスが生成済みである各DS34に引き渡す(S106)。
【0044】各DS34は、電源オン信号およびID番号を受け取ると、初期化クラス42に対して、当該ID番号を添付した初期化要求を行なう(S108)。これに応じて、初期化クラス42は、以下に詳細に説明するように、プリンタ14への各種初期化コマンドの送信(S110)およびこれに対するレスポンスの受信(S112)により初期化処理を行なう。その際、プリンタ14からのレスポンスの受信は、受信データ解析クラス40経由で行なわれる。すなわち、受信データ解析クラス40は、プリンタ14から送られてきたデータ内容を解析して、初期化コマンドに対するレスポンスであるか否かを判別し、初期化コマンドに対するレスポンスである場合には、そのデータを初期化クラス42に引き渡す。
【0045】なお、各DS34は、そのインスタンスが生成されて初めて動作する際に、ID番号を「0」として初期化クラス42に対して初期化要求を行なう。そこで、このような場合の初期化処理と区別するため、電源オン時の初期化処理では上記のように「1」以上のID番号を用いることとしている。さらに、プリンタ14に対応したDS34aが始めて動作する際の初期化要求では、DS34aから初期化クラス42へ文字属性コマンドデータが渡される。
【0046】また、DS34は、S106で電源オン信号を受け取ってから、後述するS114で初期化完了通知を受け取るまで、デバイスに対する全ての送信処理の実行を禁止する。これにより、初期化クラス42による初期化処理中に、初期化が未完了のデバイスに対して、初期化のためのデータ以外のデータが送られるのを防止することができる。
【0047】図8は、初期化クラスが実行する初期化処理のフローチャートである。先ず、S200において、初期化要求に添付されたID番号が「0」であるか否かが判別される。その結果、ID番号が「0」であれば、DS34のインスタンスが最初に動作する際の初期化要求であると判断されて、S202以降の処理が行われる。一方、S200において、ID番号が「0」でない場合は、電源オン時の初期化要求であると判断される。この場合、S204において、当該ID番号についての初期化処理が既に実行済みまたは実行中であるか否かが判別され、実行済みまたは実行中であれば、新たな初期化処理を実行すべきではないと判断されて処理は終了する。また、S204において同じID番号について初期化処理が実行済みでも実行中でもないと判別されれば、S202以降の処理が行なわれる。
【0048】上記S200,S204の処理によれば、同一のID番号が添付された初期化要求(つまり、電源が同時にオンされたデバイスについての初期化要求)については初期化処理が重複して実行されるのを防止することができると共に、DS34のインスタンスが最初に動作する際の初期化要求については、初期化要求毎に初期化処理を実行することができる。
【0049】S202では、プリンタ14に対して受信バッファクリアコマンドが送信される。プリンタ14のCPU50は、受信バッファクリアコマンドを受信すると、RAM56内の受信バッファをクリアする。
【0050】S206では、プリンタ14に対して、コマンドパラメータを「FF」(全てのビットを「1」)として、ASB機能設定コマンドが送信される。プリンタ14のCPU50は、この機能設定コマンドを受信すると、全てのステータスについてASB機能を有効にすると共に、ホストコンピュータ12へ現在のステータスデータを送信する。
【0051】S208では、ASB機能設定コマンドに応じてプリンタ14からステータスデータが受信されたか否かが判別される。その結果、ステータスデータが受信された場合は、次に、S210の処理が行なわれる。
【0052】S210では、プリンタ14へデバイス確認コマンドが送信される。プリンタ14のCPU50は、デバイス確認コマンドを受信すると、プリンタ14の機種を示すデバイスコードをホストコンピュータ12へ送信する。
【0053】S212では、上記デバイスコードがプリンタ14から受信されたか否かが判別される。そして、デバイスコードが受信された場合は、S214において、このデバイスコードで表されるプリンタ14の機種が、Java(登録商標)POSシステム10に適合した機種であるか否かが判別される。その結果、プリンタ14が適合機種である場合には、次にS216の処理が行なわれる。
【0054】S216では、プリンタ14に対してROMバージョン確認コマンドが送信される。プリンタ14のCPU50は、ROMバージョン確認コマンドを受信すると、ROM54からそのバージョン番号を取得して、ホストコンピュータ12へ送信する。
【0055】S218では、プリンタ14からROMバージョン番号が受信されたか否かが判別される。その結果、ROMバージョン番号が受信された場合には、次にS220の処理が行なわれる。
【0056】S220では、プリンタ14に対して機能確認コマンドが送信される。プリンタ14のCPU50は、機能確認コマンドを受信すると、プリンタ14の機能(オートカッタの有無、裏書用印字ヘッドの有無、日本語対応の有無等)を表す機能コードをホストコンピュータ12へ送信する。
【0057】S222では、プリンタ14から機能コードが受信されたか否かが判別される。その結果、機能コードが受信された場合は、次にS224において、文字属性コマンドデータが存在するか否か(つまり、プリンタ14に対応したDS34aのインスタンスが生成済みであるか否か)が判別される。その結果、文字属性コマンドデータが存在しないと判別された場合は、初期化クラス42による初期化処理は終了する。一方、S222で文字属性コマンドデータが存在すると判別された場合は、S226において、プリンタ14に対して、文字属性コマンドデータに保持された文字属性を設定するための文字属性設定コマンドが送信された後、初期化クラス42による初期化処理は終了する。このように、S226で文字設定コマンドが送信されることで、プリンタ14の文字属性は、前回の電源オフ直前の値に設定されることとなる。また、文字属性コマンドデータが存在しない場合(つまり、プリンタ14に対応したDS34aのインスタンスが未生成である場合)には、文字属性設定コマンドは送信されないので、初期化処理の高速化を図ることができる。
【0058】また、上記S208、S212、S218、またはS222において、プリンタ14からレスポンスが受信されないと判別され、あるいは、S214においてプリンタ14が適合機種でないと判別された場合は、S228においてエラー対応処理が行なわれる。このエラー対応処理では、ID番号が「0」以外の場合は、再びS200からの初期化処理を行なうことでリトライを繰り返し、また、ID番号が「0」の場合には、初期化要求を出したDS34にエラーを返す。
【0059】初期化クラス42は、上記図8に示す初期化処理を終了すると、図7のS114において、初期化要求に添付されていたID番号と共に初期化完了通知を各DS34へ送り、その初期化完了通知を受信した各DS34は、各デバイスに関する情報を初期化クラス42に対して要求する。初期化クラス42は、プリンタ14から受信した情報(ステータスデータ、ROMバージョン、プリンタ14の機種コード・機能コード)の中から各DS34が要求する情報を各DS34へ送る。これにより、DS34は各デバイスに関する情報を取得して、以後、各デバイスの制御を適切に行なうことができる。
【0060】以上説明したように、本実施形態では、複数のDS34から初期化要求を受け取った場合に、これら初期化要求を初期化クラス42が取りまとめて1回の初期化処理を実行する。このため、電源オン時に複数の初期化要求が生じた場合にも、各DS34について個別に初期化処理が実行されることは無く、これにより、デバイスの初期化処理を正常に行なうことができる。すなわち、上記従来技術の項で述べたように、各DS34について個別に初期化処理が実行される場合には、各初期化処理が互いに同期を取らずに行なわれることに起因して、初期化処理が正しく行なわれないという問題が生じ得るが、本実施形態では、複数の初期化要求に対して共通化の初期化処理を行なうようにしたので、このような問題は生じないのである。
【0061】また、各DS34からの初期化要求にはID番号を添付して、このID番号は、電源が同時にオンされたデバイスの初期化要求について同じ値となるようにしている。このため、電源が同時にオンされたデバイスについて、各DS34から異なるタイミングで初期化要求が送られてきても、これらデバイスについての初期化処理が共通に1回だけ実行されることとなり、これにより、初期化処理が正常に行なわれる確実性をより高めることができる。
【0062】さらに、上記ID番号は、デバイスの電源がオンされる都度、これまでに生成されていない新規な値に設定されるので、電源のオン・オフが繰り返された場合にも、電源がオンされる都度、初期化処理を正常に実行することができる。
【0063】なお、上記実施形態では、ホストコンピュータ12にはデバイスとしてプリンタ14、キャッシュドロワ16、およびMICR装置18が接続されるものとしたが、これに限らず、例えば、画像読み取り用のスキャナー等、他のデバイスが接続されてもよい。また、上記実施形態では、本発明がPOSシステムに適用された場合について説明したが、これに限らず、複数のデバイスを制御する制御システムにおいて各デバイスの初期化処理を行なう場合に広く適用が可能である。
【0064】
【発明の効果】本発明によれば、複数のデバイスについての初期化要求に対して初期化処理を適正に行なうことができる。
【出願人】 【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
【住所又は居所】東京都新宿区西新宿2丁目4番1号
【出願日】 平成13年12月27日(2001.12.27)
【代理人】 【識別番号】100095728
【弁理士】
【氏名又は名称】上柳 雅誉 (外2名)
【公開番号】 特開2003−195984(P2003−195984A)
【公開日】 平成15年7月11日(2003.7.11)
【出願番号】 特願2001−398530(P2001−398530)