(57)【特許請求の範囲】
【請求項１】
所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータシステムにより構成され、一のデバイスと該デバイスに接続された他のデバイスとからなる複数のデバイスを制御する制御システムにおいて前記複数のデバイスの初期化処理を実行する方法であって、
前記複数のデバイスの夫々に対応したオブジェクトの各々から対応するデバイスについての初期化要求を受け取る初期化要求受取ステップと、
前記オブジェクトの各々から受け取った同じ初期化要求ＩＤが付された複数の前記初期化要求に対して一回の初期化処理を実行する初期化実行ステップと、
前記一回の初期化処理が終了した後、初期化処理の終了通知を前記初期化処理の要求元である前記オブジェクトの各々に送出する終了通知送出ステップとを備えることを特徴とする方法。
【請求項２】
請求項１記載の方法において、
前記初期化要求は、前記一のデバイスの電源オンによる前記複数のデバイスの電源オンに応答して対応する前記オブジェクトの各々から発せられるものであり、
前記同じ初期化要求ＩＤは、電源が同時にオンされた前記複数のデバイスの夫々に対応した前記オブジェクトの各々から発せられた前記初期化要求に付されていることを特徴とする方法。
【請求項３】
請求項２記載の方法において、
前記複数のデバイスの電源オン時以外に前記オブジェクトの各々から前記初期化要求が発せられる場合には、当該初期化要求に前記同じ初期化要求ＩＤとは異なる特定の初期化要求ＩＤが付され、
前記初期化実行ステップは、前記特定の初期化要求ＩＤが付された前記初期化要求については個別に初期化処理を実行することを特徴とする方法。
【請求項４】
請求項１乃至３のうち何れか１項記載の方法において、前記複数のデバイスのうち少なくとも１つはプリンタであり、
前記初期化実行ステップは、前記プリンタの印字文字属性を設定するための文字属性設定処理を行なう文字属性設定ステップを含むことを特徴とする方法。
【請求項５】
請求項４記載の方法において、
前記プリンタの印字文字属性の設定状態を保持する文字属性データを生成する文字属性データ生成ステップを備え、
前記文字属性設定ステップは、前記文字属性データに保持された設定状態に基づいて、前記プリンタの印字文字属性を設定することを特徴とする方法。
【請求項６】
請求項５記載の方法において、前記文字属性データ生成ステップは、前記プリンタに対応する前記オブジェクトを起動する際に実行されることを特徴とする方法。
【請求項７】
請求項１乃至６のうち何れか１項記載の方法において、前記オブジェクトの各々が初期化要求を発した後、初期化終了通知を受けるまで、前記オブジェクトの各々から対応する前記デバイスへのデータ送信を禁止することを特徴とする方法。
【請求項８】
請求項１乃至７のうち何れか１項記載の方法において、前記所定のオブジェクト指向プログラミング言語はジャバ言語であることを特徴とする方法。
【請求項９】
所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータシステムにより構成され、一のデバイスと該デバイスに接続された他のデバイスとからなる複数のデバイスを制御する制御システムであって、
前記複数のデバイスの夫々に対応した第１のオブジェクトの各々から対応するデバイスについての初期化要求を受け取る初期化要求受取手段と、
前記第１のオブジェクトの各々から受け取った同じ初期化要求ＩＤが付された複数の前記初期化要求に対して一回の初期化処理を実行する初期化実行手段と、
前記一回の初期化処理が終了した後、初期化処理の終了通知を前記初期化要求の発信元である前記第１のオブジェクトの各々に送出する終了通知送出手段とを備えることを特徴とする制御システム。
【請求項１０】
請求項９記載の制御システムにおいて、初期化処理用の第２のオブジェクトを有し、該第２のオブジェクトが前記初期化要求受取手段、前記初期化実行手段、および、前記終了通知送出手段を備えていることを特徴とする制御システム。
【請求項１１】
請求項１０記載の制御システムにおいて、
前記複数のデバイスは、前記一のデバイスの電源がオンされると前記他のデバイスの電源もオンされるように構成されており、
当該制御システムは、前記一のデバイスの電源オンに応答した信号を受け取ると前記第１のオブジェクトの各々に対応するデバイスの電源オンを通知する第３のオブジェクトを有し、
前記第１のオブジェクトの各々は、前記第３のオブジェクトから対応する前記デバイスの電源オンの通知を受けると、前記第２のオブジェクトに前記初期化要求を送出することを特徴とする制御システム。
【請求項１２】
所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータに、該コンピュータに接続された複数のデバイスの初期化処理を実行させるためのプログラムであって、前記コンピュータに、
前記複数のデバイスの夫々に対応したオブジェクトの各々から対応するデバイスについての初期化要求を受け取る初期化要求受取ステップと、
前記オブジェクトの各々から受け取った同じ初期化要求ＩＤが付された初期化要求に対して一回の初期化処理を実行する初期化実行ステップと、
前記一回の初期化処理が終了した後、初期化処理の終了通知を前記初期化要求の発信元である前記オブジェクトの各々に送出する終了通知送出ステップとを実行させることを特徴とするプログラム。
【請求項１３】
請求項１２記載のプログラムを記録したことを特徴とするコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のデバイスを制御する制御システムにおいて各デバイスについての初期化処理を実行する方法およびこの方法をコンピュータに実行させるプログラム並びにこのプログラムを記録した記録媒体に関する。また、本発明は、複数のデバイスについて初期化処理を適正に行なううえで好適な制御システムにも関する。
【０００２】
【従来の技術】
オブジェクト指向プログラミング言語の１つであるＪａｖａ（登録商標）で記述されたプログラムは、ジャババーチャルマシン（ＪＶＭ）上で実行することができる。したがって、ＪＶＭをサポートするオペレーティングシステム（ＯＳ）であれば、Ｊａｖａ（登録商標）アプリケーションソフトウェアの実行環境はＯＳの種類やバージョンを問わない。このため、ソフトウェアをＯＳの種類毎に開発する必要がなくなり経済的である。また、ソフトウェアが種々のＯＳに共通に供給されることになるので、ユーザにとっても、ソフトウェア選択の幅が大きく広がり、さらに、ＯＳを変えた場合やバージョンアップした場合にも既存のソフトウェア資産をそのまま継続して使用することができるといったメリットがある。
【０００３】
ところで、店舗のレジ等で用いられるＰＯＳシステムは、パーソナルコンピュータ等からなるホストコンピュータに、プリンタやキャッシュドロワ等の周辺デバイスが接続されることにより構築されたシステムである。ホストコンピュータがアプリケーションプログラムを実行することによりこれら周辺機器の制御を行なうことで、ＰＯＳシステムとして機能する。このようなＰＯＳシステムにおいて、ホストコンピュータが実行するアプリケーションプログラムをＪａｖａ（登録商標）言語で記述すれば、既存のハードウェアを用いて新しいＰＯＳシステムを実現することが可能となる。この場合、ソフトウェアの開発コストを低減できるのでユーザの経済的負担も小さくなる。
【０００４】
図１は、Ｊａｖａ（登録商標）アプリケーションにより構築されたＰＯＳシステム（以下、Ｊａｖａ（登録商標）ＰＯＳシステムという）１００のシステム構成図である。同図に示すように、Ｊａｖａ（登録商標）ＰＯＳシステム１００は、ホストコンピュータ１２に、プリンタ１４、キャッシュドロワ１６、および、ＭＩＣＲ装置１８等のデバイスが接続されて構成されている。ここで、Ｊａｖａ（登録商標）ＰＯＳシステム１００は、小切手処理を行なう機能を有するものとしており、ＭＩＣＲ装置１８は小切手の表面に記録された磁気インク文字の読取処理（ＭＩＣＲ：MagneticInkCharacterRecognition）を行う。
【０００５】
ホストコンピュータ１２に実装されたＯＳはＪＶＭ３０をサポートしている。ＪＶＭ３０上には、デバイスのカテゴリー（プリンタ、キャッシュドロワ、ＭＩＣＲ装置といったデバイスの種類）毎に対応したデバイスコントロールオブジェクト（ＤＣ）３２と、デバイスの機種毎に対応したデバイスサービスオブジェクト（ＤＳ）３４とが設けられている。ＤＣ３２はデバイスのカテゴリー毎にシステム側で用意され、一方、ＤＳ３４はデバイスの機種毎にそのメーカーから供給される。なお、プリンタ１４、キャッシュドロワ１６、および、ＭＩＣＲ装置１８に対応するＤＣ３２およびＤＳ３４を区別する場合には、夫々、ＤＣ３２ａ，３２ｂ，３２ｃ、および、ＤＳ３４ａ，３４ｂ，３４ｃと表すものとする。
【０００６】
また、ＪＶＭ３０上では、各デバイスの入出力制御を行なってＰＯＳシステムとしての機能を実現するためのアプリケーションソフトウェア（以下、ＰＯＳアプリケーションという）３６が実行される。ＰＯＳアプリケーション３６は、例えばプリンタ１４を使用する場合、先ず、プリンタ１４の使用を宣言し、これに応じて、プリンタ１４に対応するＤＳ３４ａのインスタンスが生成される。この後、ＰＯＳアプリケーション３６が印字指令を発すると、印字データがプリンタ用のＤＣ３２ａに引き渡され、このＤＣ３２ａによってＤＳ３４ａが呼び出される。そして、呼び出されたＤＳ３４ａがポートドライバ３５を介してプリンタ１４へ印字データを送ることで印字処理が行なわれる。したがって、ＰＯＳアプリケーション３６の作成にあたり、プリンタ１４の機種を意識することなく、印字用のルーチンを作成することが可能である。このように、ＤＳ３４は、デバイスの機種毎の差異を吸収して、ＰＯＳアプリケーション３６をデバイス機種に依存しないプログラムとして構成できるようにする役割を有している。
【０００７】
【発明が解決しようとする課題】
上記したＪａｖａ（登録商標）ＰＯＳシステム１００において、各デバイスの電源がオンされた場合、従来は、デバイスの機種毎に設けられたＤＳ３４により初期化処理が行なわれるのが一般的である。すなわち、初期化処理を行なうための初期化ルーチンが各ＤＳ３４に実装されており、あるデバイスの電源がオンされると、該当するＤＳ３４がその初期化ルーチンを実行するのである。初期化処理では、例えば、ホストコンピュータ１２から各デバイスへ機種や機能等を問い合わせたり、各デバイスを所定状態に設定する等の処理が行なわれる。
【０００８】
ところで、一般に、ＰＯＳシステムにおいては、特定のメインデバイス（多くの場合はプリンタ）を中心にして、メインデバイスに他のデバイスを接続するといった形態がとられることが多い。図２に、このようなＪａｖａ（登録商標）ＰＯＳシステム１１０のシステム構成図を示す。このような構成のシステムでは、メインデバイスから他のデバイスへ電源が供給される。例えば、図２に示すように、Ｊａｖａ（登録商標）ＰＯＳシステム１１０がプリンタ１４をメインデバイスとして構成されている場合、キャッシュドロワ１６およびＭＩＣＲ装置１８への電源はプリンタ１４から供給される。この場合、プリンタ１４の電源がオンされると、他のデバイスの電源も同時にオンされる。すなわち、複数のデバイスの電源が同時にオンされることになる。したがって、デバイスの電源オン時には、各デバイスについての初期化処理は各ＤＳ３４により並行して同時に実行される。
【０００９】
しかしながら、各ＤＳ３４が実行する初期化処理は、他のＤＳ３４とは同期をとらずに（つまり、他のＤＳ３４がどのような処理を実行中であるかを全く考慮せずに）行なわれる。このため、あるＤＳ３４が初期化処理を実行している間に、他のＤＳ３４の初期化処理に対するホストコンピュータ１２からの応答が返ってきた場合、初期化処理を実行中の各ＤＳ３４では、この応答が自らの初期化処理に対する応答なのか、他のＤＳ３４の初期化処理に対する応答なのかを判断できず、初期化処理が正しく行なわれないことになってしまう。例えば、ＭＩＣＲ装置１８に対応したＤＳ３４ｃが初期化処理においてＭＩＣＲ装置１８のＲＯＭバージョンを問い合わせ、これとほぼ同時に、プリンタ１４に対応したＤＳ３４ａがプリンタ１４の機能を問い合わせたとすると、これら問い合わせに対する応答がＤＳ３４ｃ，３４ａの双方に返される。このため、ＤＳ３４ｃおよびＤＳ３４ａは、返ってきた応答がＭＩＣＲ１８のＲＯＭバージョンであるのか、プリンタ１４の機種なのかを判別できないのである。
【００１０】
本発明は上記の点に鑑みてなされたものであり、複数のデバイスについての初期化要求に対して初期化処理を適正に行なえるようにすることを目的とする。
【００１１】
【課題を解決するための手段】
請求項１に記載された発明は、所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータシステムにより構成され、一のデバイスと該デバイスに接続された他のデバイスとからなる複数のデバイスを制御する制御システムにおいて前記複数のデバイスの初期化処理を実行する方法であって、
前記複数のデバイスの夫々に対応したオブジェクトの各々から対応するデバイスについての初期化要求を受け取る初期化要求受取ステップと、
前記オブジェクトの各々から受け取った同じ初期化要求ＩＤが付された前記初期化要求に対して一回の初期化処理を実行する初期化実行ステップと、
前記一回の初期化処理が終了した後、初期化処理の終了通知を前記初期化処理の要求元である前記オブジェクトの各々に送出する終了通知送出ステップとを備えることを特徴とする。
【００１２】
請求項１記載の発明によれば、複数のデバイスについての初期化要求に対して一回の初期化処理を実行する。このため、各初期化要求に対して初期化処理を行なう場合に起こり得るような、初期化処理間の同期がとれていないことに起因する誤動作のおそれがなくなる。したがって、本発明によれば、複数のデバイスについて同時に初期化要求があった場合にも初期化処理を適正に行なうことができる。なお、本発明において、デバイスの初期化処理とは、例えば、デバイスの機種、機能、状態を取得したり、デバイスを所定状態に設定するなど、デバイスを制御するうえで予め行なっておくべき処理を意味する。
【００１３】
【００１４】
また、請求項２に記載された発明は、請求項１記載の方法において、前記初期化要求は、前記一のデバイスの電源オンによる前記複数のデバイスの電源オンに応答して対応する前記オブジェクトの各々から発せられるものであり、前記同じ初期化要求ＩＤは、電源が同時にオンされた前記複数のデバイスの夫々に対応した前記オブジェクトの各々から発せられた前記初期化要求に付されていることを特徴とする。
【００１５】
請求項２記載の発明によれば、電源が同時にオンされたデバイスについては、初期化要求に同じ値の初期化要求ＩＤが付されており、これらの初期化要求について共通に初期化処理が行なわれる。したがって、複数のデバイスの電源が共通であって電源が同時にオンされた場合に、これらデバイスについての初期化処理を適正に行なうことができる。
【００１６】
また、請求項３に記載された発明は、請求項２記載の方法において、前記複数のデバイスの電源オン時以外に前記オブジェクトの各々から前記初期化要求が発せられる場合には、当該初期化要求に前記同じ初期化要求ＩＤとは異なる特定の初期化要求ＩＤが付され、前記初期化実行ステップは、前記特定の初期化要求ＩＤが付された前記初期化要求については個別に初期化処理を実行することを特徴とする。
【００１７】
請求項３記載の発明によれば、電源オンに応答した初期化要求と、電源オン時以外の初期化要求を区別して、電源オン時以外の初期化要求については個別に初期化処理を行なうことができる。
【００１８】
また、請求項４に記載された発明は、請求項１乃至３のうち何れか１項記載の方法において、前記複数のデバイスのうち少なくとも１つはプリンタであり、前記初期化実行ステップは、前記プリンタの印字文字属性を設定するための文字属性設定処理を行なう文字属性設定ステップを含むことを特徴とする。
【００１９】
また、請求項５に記載された発明は、請求項４記載の方法において、前記プリンタの印字文字属性の設定状態を保持する文字属性データを生成する文字属性データ生成ステップを備え、前記文字属性設定ステップは、前記文字属性データに保持された設定状態に基づいて、前記プリンタの印字文字属性を設定することを特徴とする。
【００２０】
請求項５記載の発明によれば、プリンタの電源オフ中も、文字属性オブジェクトに印字文字属性の設定状態が保持され、文字属性設定処理では、文字属性オブジェクトに保持された設定状態に基づいてプリンタの印字文字属性を設定する。したがって、プリンタの文字属性を、プリンタの電源がオフされる直前の状態に復帰させることができる。
【００２１】
また、請求項６に記載された発明は、請求項５記載の方法において、前記文字属性データ生成ステップは、前記プリンタに対応する前記オブジェクトを起動する際に実行されることを特徴とする。
【００２２】
また、請求項７に記載された発明は、請求項２乃至６のうち何れか１項記載の方法において、前記オブジェクトの各々が初期化要求を発した後、初期化終了通知を受けるまで、前記オブジェクトの各々から対応する前記デバイスへのデータ送信を禁止することを特徴とする。
【００２３】
請求項７記載の発明によれば、初期化処理が完了していないデバイスへデータが送信されるのを防止することができる。
【００２４】
また、請求項８に記載された発明は、請求項２乃至７のうち何れか１項記載の方法において、前記所定のオブジェクト指向プログラミング言語はジャバ言語であることを特徴とする。
【００２５】
また、請求項１０に記載された発明は、所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータシステムにより構成され、一のデバイスと該デバイスに接続された他のデバイスとからなる複数のデバイスを制御する制御システムであって、
前記複数のデバイスの夫々に対応した第１のオブジェクトの各々から対応するデバイスについての初期化要求を受け取る初期化要求受取手段と、
前記第１のオブジェクトの各々から受け取った同じ初期化要求ＩＤが付された初期化要求に対して一回の初期化処理を実行する初期化実行手段と、
前記一回の初期化処理が終了した後、初期化処理の終了通知を前記初期化要求の発信元である前記第１のオブジェクトの各々に送出する終了通知送出手段とを備えることを特徴とする。
【００２６】
【００２７】
また、請求項１０に記載された発明は、請求項９記載の制御システムにおいて、初期化処理用の第２のオブジェクトを有し、該第２のオブジェクトが前記初期化要求受取手段、前記初期化実行手段、および、前記終了通知送出手段を備えていることを特徴とする。
【００２８】
また、請求項１１に記載された発明は、請求項１０記載の制御システムにおいて、前記複数のデバイスは、前記一のデバイスの電源がオンされると前記他のデバイスの電源もオンされるように構成されており、当該制御システムは、前記一のデバイスの電源オンに応答した信号を受け取ると前記第１のオブジェクトの各々に対応するデバイスの電源オンを通知する第３のオブジェクトを有し、前記第１のオブジェクトの各々は、前記第３のオブジェクトから対応する前記デバイスの電源オンの通知を受けると、前記第２のオブジェクトに前記初期化要求を送出することを特徴とする。
【００２９】
また、請求項１２に記載された発明は、所定のオブジェクト指向言語で記述されたプログラムを実行可能なコンピュータに、該コンピュータに接続された複数のデバイスの初期化処理を実行させるためのプログラムであって、前記コンピュータに、前記複数のデバイスの夫々に対応したオブジェクトの各々から対応するデバイスについての初期化要求を受け取る初期化要求受取ステップと、前記オブジェクトの各々から受け取った同じ初期化要求ＩＤが付された初期化要求に対して一回の初期化処理を実行する初期化実行ステップと、前記一回の初期化処理が終了した後、初期化処理の終了通知を前記初期化要求の発信元である前記オブジェクトの各々に送出する終了通知送出ステップとを実行させるためのプログラムに係るものであり、請求項１３に記載された発明は、請求項１２記載のプログラムを記録した記録媒体に係るものである。
【００３０】
【発明の実施の形態】
図３は、本実施形態のＪａｖａ（登録商標）ＰＯＳシステム１０のシステム構成図である。なお、図３において図１および図２と同様の構成部分には同一の符号を付している。図３に示すように、Ｊａｖａ（登録商標）ＰＯＳシステム１０は、ホストコンピュータ１２と、プリンタ１４、キャッシュドロワ１６、およびＭＩＣＲ装置１８の各デバイスとにより構成されている。プリンタ１４はホストコンピュータ１２に直接接続されている。一方、キャッシュドロワ１６およびＭＩＣＲ装置１８は、プリンタ１４を介してホストコンピュータ１２に接続されている。また、同図に示すように、キャッシュドロワ１６およびＭＩＣＲ装置１８への電源供給ライン２４はプリンタ１４から供給されており、プリンタ１４の電源スイッチ２６がオンされると、各デバイスに同時に電源が供給される。
【００３１】
Ｊａｖａ（登録商標）ＰＯＳシステム１０においても、上記図１に示すＪａｖａ（登録商標）ＰＯＳシステム１００と同様に、ホストコンピュータ１２のＯＳはＪＶＭ３０をサポートしており、このＪＶＭ３０上に、デバイスのカテゴリー毎に対応したＤＣ３２と、デバイスの機種毎に対応したＤＳ３４と、各デバイスの入出力制御を行なってＰＯＳシステムとしての機能を実現するためのＰＯＳアプリケーション３６とが実装されている。さらに、本実施形態のＪａｖａ（登録商標）ＰＯＳシステム１０おいては、受信データ解析クラス４０および初期化クラス４２が実装されている。受信データ解析クラス４０は、プリンタ１４から送信されてきた各種応答信号を解析して、適切なオブジェクトへ引き渡す機能を有する。また、初期化クラス４２は、各ＤＳ３４からの初期化要求を取りまとめて初期化処理を実行する機能を有する。なお、ＤＣ３２、ＤＳ３４、ＰＯＳアプリケーション３６、受信データ解析クラス４０、および初期化クラス４２はＪａｖａ（登録商標）言語で記述されたプログラムとして、ホストコンピュータ１２が備えるＲＯＭやハードディスク装置等の記憶装置に格納されている。
【００３２】
後述するように、初期化処理では、初期化クラス４２からプリンタ１４へのコマンドの送信、および、プリンタ１４からの応答の受信が行なわれる。そこで、初期化処理について説明する前に、初期化処理に関連するプリンタ１４の構成について説明する。
【００３３】
図４は、プリンタ１４のシステム構成図である。同図に示すように、プリンタ１４は中央制御装置（ＣＰＵ）５０を備えている。ＣＰＵ５０は、インターフェース５２を介してホストコンピュータ１２に接続されている。ＣＰＵ５０には、また、ＲＯＭ５４、ＲＡＭ５６、印字部５８、用紙検出部６０、カバー検出部６２、エラー検出部６４、パネルスイッチ６６、コネクタ６８，７０等が接続されている。
【００３４】
ＲＯＭ５４には、プリンタ１４用の制御プログラムや印字文字パターン等が記憶されていると共に、ＭＩＣＲ装置１８用の制御プログラムやデータも記憶されている。すなわち、ＲＯＭ５４は、プリンタ１４およびＭＩＣＲ装置１８の双方のＲＯＭとして機能する。また、ＲＡＭ５６には、ホストコンピュータ１２から受信したコマンドや印字データを保持するための受信バッファが設けられている。さらに、印字部５８は、印字ヘッド、印字ヘッドを駆動するためのモータ類、および、これらの制御装置から構成されており、ＣＰＵ５０からの指示に応じて印字動作を行なう。
【００３５】
用紙検出部６０は、単票用紙および連続用紙のプリンタ内各位置での有無を検出するセンサ群を含んでおり、各センサによる検出結果をＣＰＵ５０へ通知する。カバー検出部６２は、プリンタカバーの開閉状態を検出するセンサを含んでおり、プリンタカバーの開閉状態をＣＰＵ５０へ通知する。また、エラー検出部６４は、印字ヘッドのホームポジションやオートカッタ用のカッター位置のセンサ等を含んでおり、紙ジャム等の各種エラーの発生を検知してＣＰＵ５０へ通知する。さらに、コネクタ６８，７０には、夫々、キャッシュドロワ１６およびＭＩＣＲ装置１８が接続されており、ＣＰＵ５０はコネクタ６８の電圧レベルに基づいて、キャッシュドロワ１６の開閉状態を検知する。なお、ＣＰＵ５０は、プリンタカバーの開状態、単票・連続の両用紙の紙無し状態、またはエラー発生の何れかが検出された場合に、プリンタ１４をオフライン状態とする。
【００３６】
また、プリンタ１４は自動ステータス送信機能を有している。自動ステータス送信機能は、プリンタ１４のステータスが変化した場合に、その都度、ホストコンピュータ１２へステータスを自動的に通知する機能である。以下、自動ステータス送信機能をＡＳＢ（AutoStatusBack）機能と略称する。本実施形態では、プリンタ１４のステータスを、(1)キャッシュドロワ１６の開閉状態、（2）オンライン／オフラインの別、(3)エラー状態、(4)連続用紙検出器の状態、(5)単票用紙検出器・単票用紙の状態、および（6）パネルスイッチの状態に区分している。
【００３７】
図５は、ステータスデータの構成の例を示す。同図に示す例では、ステータスデータは４バイトで表され、上記したステータス区分(1)〜(6)の夫々に該当するステータスが、対応するビットの「０」または「１」の値で表されている。ＣＰＵ５０は、用紙検出部６０、カバー検出部６２、エラー検出部６４およびパネルスイッチ６６の出力や、コネクタ６８の電圧レベルに基づいて各ステータスを検知し、ステータスデータの該当するビットの値を「１」または「０」に設定する。
【００３８】
プリンタ１４への電源投入時には、ＡＳＢ機能は無効とされており、ホストコンピュータ１２からプリンタ１４へＡＳＢ機能設定コマンドを送信することにより、ＡＳＢ機能を有効とすることができる。ＡＳＢ機能設定コマンドは、例えば１バイト（８ビット）のコマンドパラメータを伴っており、このコマンドパラメータの値に基づいて、上記した各ステータス区分毎にＡＳＢ機能の有効／無効の設定が可能である。
【００３９】
図６は、コマンドパラメータの構成を示す。同図に示すように、コマンドパラメータの各ビットには各ステータス区分が対応付けられており、値が「１」であるビットに対応するステータス区分についてＡＳＢ機能が有効とされる。ＣＰＵ５０は、ホストコンピュータ１２からＡＳＢ機能設定コマンドを受信すると、そのコマンドパラメータにより少なくとも１つのステータス区分についてＡＳＢ機能が有効とされている場合には、その時点でのステータスデータの内容をホストコンピュータ１２へ返す。そして、以後、ＣＰＵ５０は、ＡＳＢ機能が有効とされたステータス区分に含まれるステータスが変化する都度、ステータスデータをホストコンピュータ１２へ送信する。
【００４０】
上述したように、ホストコンピュータ１２上のＰＯＳアプリケーション３６は、プリンタ１４の使用を開始するにあたり、プリンタ１４の使用を宣言し、この宣言に応じて、プリンタ１４に対応するＤＳ３４ａのインスタンスが生成される。以後、ＰＯＳアプリケーション３６が印字指令を発すると、印字用データがプリンタのＤＣ３２ａに引き渡され、このＤＣ３２ａがＤＳ３４ａのインスタンスを呼び出すことで印字処理が実行される。
【００４１】
ＤＳ３４ａのインスタンスが生成されると、生成されたインスタンスにより更に文字属性コマンドデータが生成される。そして、ＰＯＳアプリケーション３６がプリンタ１４の印字文字属性（フォント種類、フォントサイズ、色、文字修飾等）を設定する都度、文字属性コマンドデータにその設定内容が格納される。したがって、文字属性コマンドデータには、常に、プリンタ１４の現在の文字属性に関する情報が保持される。後述するように、文字属性コマンドデータは、ＤＳ３４ａのインスタンスが生成された際に行なわれる初期化要求時に初期化クラス４２へ引き渡され、初期化処理において、プリンタ１４の文字属性を電源オフ直前の状態に復帰させるために用いられる。
【００４２】
次に、初期化クラス４２が実行する初期化処理について説明する。
【００４３】
図７は、本実施形態のＪａｖａ（登録商標）ＰＯＳシステム１０において、電源スイッチ２６がオンされた際（つまり、プリンタ１４、キャッシュドロワ１６、および、ＭＩＣＲ装置１８へ同時に電源がオンされた際）に実行される処理の概要を説明するための図である。同図に示すように、プリンタ１４の電源スイッチ２６がオンされると（Ｓ１００）、電源オン信号がホストコンピュータ１２のＪＶＭ３０へ送信され（Ｓ１０２）、この電源オン信号はＪＶＭ３０から受信データ解析クラス４０へ引き渡される（Ｓ１０４）。受信データ解析クラス４０は、これまでに生成されていない新規なＩＤ番号（「１」以上）を所定の規則に従って、例えば１から順次にあるいはランダムに生成し、このＩＤ番号を電源オン信号に付加して、インスタンスが生成済みである各ＤＳ３４に引き渡す（Ｓ１０６）。
【００４４】
各ＤＳ３４は、電源オン信号およびＩＤ番号を受け取ると、初期化クラス４２に対して、当該ＩＤ番号を添付した初期化要求を行なう（Ｓ１０８）。これに応じて、初期化クラス４２は、以下に詳細に説明するように、プリンタ１４への各種初期化コマンドの送信（Ｓ１１０）およびこれに対するレスポンスの受信（Ｓ１１２）により初期化処理を行なう。その際、プリンタ１４からのレスポンスの受信は、受信データ解析クラス４０経由で行なわれる。すなわち、受信データ解析クラス４０は、プリンタ１４から送られてきたデータ内容を解析して、初期化コマンドに対するレスポンスであるか否かを判別し、初期化コマンドに対するレスポンスである場合には、そのデータを初期化クラス４２に引き渡す。
【００４５】
なお、各ＤＳ３４は、そのインスタンスが生成されて初めて動作する際に、ＩＤ番号を「０」として初期化クラス４２に対して初期化要求を行なう。そこで、このような場合の初期化処理と区別するため、電源オン時の初期化処理では上記のように「１」以上のＩＤ番号を用いることとしている。さらに、プリンタ１４に対応したＤＳ３４ａが始めて動作する際の初期化要求では、ＤＳ３４ａから初期化クラス４２へ文字属性コマンドデータが渡される。
【００４６】
また、ＤＳ３４は、Ｓ１０６で電源オン信号を受け取ってから、後述するＳ１１４で初期化完了通知を受け取るまで、デバイスに対する全ての送信処理の実行を禁止する。これにより、初期化クラス４２による初期化処理中に、初期化が未完了のデバイスに対して、初期化のためのデータ以外のデータが送られるのを防止することができる。
【００４７】
図８は、初期化クラスが実行する初期化処理のフローチャートである。先ず、Ｓ２００において、初期化要求に添付されたＩＤ番号が「０」であるか否かが判別される。その結果、ＩＤ番号が「０」であれば、ＤＳ３４のインスタンスが最初に動作する際の初期化要求であると判断されて、Ｓ２０２以降の処理が行われる。一方、Ｓ２００において、ＩＤ番号が「０」でない場合は、電源オン時の初期化要求であると判断される。この場合、Ｓ２０４において、当該ＩＤ番号についての初期化処理が既に実行済みまたは実行中であるか否かが判別され、実行済みまたは実行中であれば、新たな初期化処理を実行すべきではないと判断されて処理は終了する。また、Ｓ２０４において同じＩＤ番号について初期化処理が実行済みでも実行中でもないと判別されれば、Ｓ２０２以降の処理が行なわれる。
【００４８】
上記Ｓ２００，Ｓ２０４の処理によれば、同一のＩＤ番号が添付された初期化要求（つまり、電源が同時にオンされたデバイスについての初期化要求）については初期化処理が重複して実行されるのを防止することができると共に、ＤＳ３４のインスタンスが最初に動作する際の初期化要求については、初期化要求毎に初期化処理を実行することができる。
【００４９】
Ｓ２０２では、プリンタ１４に対して受信バッファクリアコマンドが送信される。プリンタ１４のＣＰＵ５０は、受信バッファクリアコマンドを受信すると、ＲＡＭ５６内の受信バッファをクリアする。
【００５０】
Ｓ２０６では、プリンタ１４に対して、コマンドパラメータを「ＦＦ」（全てのビットを「１」）として、ＡＳＢ機能設定コマンドが送信される。プリンタ１４のＣＰＵ５０は、この機能設定コマンドを受信すると、全てのステータスについてＡＳＢ機能を有効にすると共に、ホストコンピュータ１２へ現在のステータスデータを送信する。
【００５１】
Ｓ２０８では、ＡＳＢ機能設定コマンドに応じてプリンタ１４からステータスデータが受信されたか否かが判別される。その結果、ステータスデータが受信された場合は、次に、Ｓ２１０の処理が行なわれる。
【００５２】
Ｓ２１０では、プリンタ１４へデバイス確認コマンドが送信される。プリンタ１４のＣＰＵ５０は、デバイス確認コマンドを受信すると、プリンタ１４の機種を示すデバイスコードをホストコンピュータ１２へ送信する。
【００５３】
Ｓ２１２では、上記デバイスコードがプリンタ１４から受信されたか否かが判別される。そして、デバイスコードが受信された場合は、Ｓ２１４において、このデバイスコードで表されるプリンタ１４の機種が、Ｊａｖａ（登録商標）ＰＯＳシステム１０に適合した機種であるか否かが判別される。その結果、プリンタ１４が適合機種である場合には、次にＳ２１６の処理が行なわれる。
【００５４】
Ｓ２１６では、プリンタ１４に対してＲＯＭバージョン確認コマンドが送信される。プリンタ１４のＣＰＵ５０は、ＲＯＭバージョン確認コマンドを受信すると、ＲＯＭ５４からそのバージョン番号を取得して、ホストコンピュータ１２へ送信する。
【００５５】
Ｓ２１８では、プリンタ１４からＲＯＭバージョン番号が受信されたか否かが判別される。その結果、ＲＯＭバージョン番号が受信された場合には、次にＳ２２０の処理が行なわれる。
【００５６】
Ｓ２２０では、プリンタ１４に対して機能確認コマンドが送信される。プリンタ１４のＣＰＵ５０は、機能確認コマンドを受信すると、プリンタ１４の機能（オートカッタの有無、裏書用印字ヘッドの有無、日本語対応の有無等）を表す機能コードをホストコンピュータ１２へ送信する。
【００５７】
Ｓ２２２では、プリンタ１４から機能コードが受信されたか否かが判別される。その結果、機能コードが受信された場合は、次にＳ２２４において、文字属性コマンドデータが存在するか否か（つまり、プリンタ１４に対応したＤＳ３４ａのインスタンスが生成済みであるか否か）が判別される。その結果、文字属性コマンドデータが存在しないと判別された場合は、初期化クラス４２による初期化処理は終了する。一方、Ｓ２２２で文字属性コマンドデータが存在すると判別された場合は、Ｓ２２６において、プリンタ１４に対して、文字属性コマンドデータに保持された文字属性を設定するための文字属性設定コマンドが送信された後、初期化クラス４２による初期化処理は終了する。このように、Ｓ２２６で文字設定コマンドが送信されることで、プリンタ１４の文字属性は、前回の電源オフ直前の値に設定されることとなる。また、文字属性コマンドデータが存在しない場合（つまり、プリンタ１４に対応したＤＳ３４ａのインスタンスが未生成である場合）には、文字属性設定コマンドは送信されないので、初期化処理の高速化を図ることができる。
【００５８】
また、上記Ｓ２０８、Ｓ２１２、Ｓ２１８、またはＳ２２２において、プリンタ１４からレスポンスが受信されないと判別され、あるいは、Ｓ２１４においてプリンタ１４が適合機種でないと判別された場合は、Ｓ２２８においてエラー対応処理が行なわれる。このエラー対応処理では、ＩＤ番号が「０」以外の場合は、再びＳ２００からの初期化処理を行なうことでリトライを繰り返し、また、ＩＤ番号が「０」の場合には、初期化要求を出したＤＳ３４にエラーを返す。
【００５９】
初期化クラス４２は、上記図８に示す初期化処理を終了すると、図７のＳ１１４において、初期化要求に添付されていたＩＤ番号と共に初期化完了通知を各ＤＳ３４へ送り、その初期化完了通知を受信した各ＤＳ３４は、各デバイスに関する情報を初期化クラス４２に対して要求する。初期化クラス４２は、プリンタ１４から受信した情報（ステータスデータ、ＲＯＭバージョン、プリンタ１４の機種コード・機能コード）の中から各ＤＳ３４が要求する情報を各ＤＳ３４へ送る。これにより、ＤＳ３４は各デバイスに関する情報を取得して、以後、各デバイスの制御を適切に行なうことができる。
【００６０】
以上説明したように、本実施形態では、複数のＤＳ３４から初期化要求を受け取った場合に、これら初期化要求を初期化クラス４２が取りまとめて１回の初期化処理を実行する。このため、電源オン時に複数の初期化要求が生じた場合にも、各ＤＳ３４について個別に初期化処理が実行されることは無く、これにより、デバイスの初期化処理を正常に行なうことができる。すなわち、上記従来技術の項で述べたように、各ＤＳ３４について個別に初期化処理が実行される場合には、各初期化処理が互いに同期を取らずに行なわれることに起因して、初期化処理が正しく行なわれないという問題が生じ得るが、本実施形態では、複数の初期化要求に対して共通化の初期化処理を行なうようにしたので、このような問題は生じないのである。
【００６１】
また、各ＤＳ３４からの初期化要求にはＩＤ番号を添付して、このＩＤ番号は、電源が同時にオンされたデバイスの初期化要求について同じ値となるようにしている。このため、電源が同時にオンされたデバイスについて、各ＤＳ３４から異なるタイミングで初期化要求が送られてきても、これらデバイスについての初期化処理が共通に１回だけ実行されることとなり、これにより、初期化処理が正常に行なわれる確実性をより高めることができる。
【００６２】
さらに、上記ＩＤ番号は、デバイスの電源がオンされる都度、これまでに生成されていない新規な値に設定されるので、電源のオン・オフが繰り返された場合にも、電源がオンされる都度、初期化処理を正常に実行することができる。
【００６３】
なお、上記実施形態では、ホストコンピュータ１２にはデバイスとしてプリンタ１４、キャッシュドロワ１６、およびＭＩＣＲ装置１８が接続されるものとしたが、これに限らず、例えば、画像読み取り用のスキャナー等、他のデバイスが接続されてもよい。また、上記実施形態では、本発明がＰＯＳシステムに適用された場合について説明したが、これに限らず、複数のデバイスを制御する制御システムにおいて各デバイスの初期化処理を行なう場合に広く適用が可能である。
【００６４】
【発明の効果】
本発明によれば、複数のデバイスについての初期化要求に対して初期化処理を適正に行なうことができる。
【図面の簡単な説明】
【図１】  Ｊａｖａ（登録商標）アプリケーションにより構築されたＰＯＳシステム（Ｊａｖａ（登録商標）ＰＯＳシステム）のシステム構成図である。
【図２】  従来のＪａｖａ（登録商標）ＰＯＳシステムのシステム構成図である。
【図３】  本発明の一実施形態であるＪａｖａ（登録商標）ＰＯＳシステムのシステム構成図である。
【図４】  プリンタのシステム構成図である。
【図５】  ステータスデータの構成の例を示す図である。
【図６】  ＡＳＢ機能設定コマンドのコマンドパラメータの構成を示す図である。
【図７】  本実施形態のＪａｖａ（登録商標）ＰＯＳシステムにおいて、各デバイスの電源がオンされた際に実行される処理の概要を説明するための図である。
【図８】  初期化クラスが実行する初期化処理のフローチャートである。
【符号の説明】
１０  Ｊａｖａ（登録商標）ＰＯＳシステム
１２  ホストコンピュータ
１４  プリンタ
１６  キャッシュドロワ
１８  ＭＩＣＲ装置
２６  電源スイッチ
３４（３４ａ，３４ｂ，３４ｃ）  デバイスサービスオブジェクト（ＤＳ）（第１のオブジェクト）
４０  受信データ解析クラス（第３のオブジェクト）
４２  初期化クラス（第２のオブジェクト）
【図１】
0003985135.tif 000002
【図２】
0003985135.tif 000003
【図３】
0003985135.tif 000004
【図４】
0003985135.tif 000005
【図５】
0003985135.tif 000006
【図６】
0003985135.tif 000007
【図７】
0003985135.tif 000008
【図８】
0003985135.tif 000009