(57)【特許請求の範囲】
【請求項１】
ＰＯＳ用のコンピューターに搭載可能であり、他のアプリケーションとＰＯＳプリンターを共有することが可能なマルチアプリケーション及び前記他のアプリケーションと前記ＰＯＳプリンターを共有することができないシングルアプリケーションのいずれにも対応可能で、前記ＰＯＳプリンターとの通信を制御する通信モジュールを有するプリンタードライバーであって、
前記マルチアプリケーションまたは前記シングルアプリケーションからの利用開始要求に基づき前記ＰＯＳプリンターを占有する互換モードと、前記互換モードにおいてさらに前記利用開始要求があった場合、前記利用開始要求をしたのは前記マルチアプリケーションであると判断し、前記ＰＯＳプリンターの占有を切替え可能なマルチモードに移行する状態管理部と、を備えることを特徴とするプリンタードライバー。
【請求項２】
前記状態管理部は、前記互換モードにおいて前記ＰＯＳプリンターの占有要求または開放要求があった場合、前記占有要求または前記開放要求をしたのは前記マルチアプリケーションであると判断し、前記マルチモードに移行することを特徴とする請求項１に記載のプリンタードライバー。
【請求項３】
前記状態管理部は、前記マルチモードに移行した後は前記互換モードに移行しないことを特徴とする請求項１または２に記載のプリンタードライバー。
【請求項４】
前記状態管理部は、前記マルチモードにおいて、前記通信モジュールで前記マルチアプリケーションからの印刷データの受信待ち状態が続くと、前記通信モジュールに対して所定のダミーデータを送信し、前記通信モジュールにおける前記受信待ち状態を解放することを特徴とする請求項１から３の何れかに記載のプリンタードライバー。
【請求項５】
前記コンピューターが読み取り可能なものであって、請求項１から請求項４のいずれかに記載のプリンタードライバーを記録した記録媒体。
【請求項６】
他のアプリケーションとＰＯＳプリンターを共有することが可能なマルチアプリケーション又は前記他のアプリケーションと前記ＰＯＳプリンターを共有することができないシングルアプリケーションの少なくともいずれかを搭載したＰＯＳ用のコンピューターに接続可能なＰＯＳプリンターの制御方法であって、
前記マルチアプリケーションまたは前記シングルアプリケーションからの利用開始要求に基づき前記ＰＯＳプリンターを占有する互換モードと、前記互換モードにおいてさらに前記利用開始要求があった場合、前記利用開始要求をしたのは前記マルチアプリケーションであると判断し、前記ＰＯＳプリンターの占有を切替え可能なマルチモードに移行することを特徴とするＰＯＳプリンターの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタードライバー、及び、ＰＯＳプリンターの制御方法に関する。
【背景技術】
【０００２】
近年、アプリケーションプログラムの作成を容易にするためのインターフェイスとして、所謂ＡＰＩ（Application Programming Interface）が開発されている。ＡＰＩは、各アプリケーションが共通して利用する機能を提供するインターフェイスであり、各アプリケーションのユーザーは規約に従って、ＡＰＩが提供する機能を呼び出すだけで、その機能を利用した様々なアプリケーションを作成することができる。
【０００３】
特許文献１には、プリンターのステータス情報を、通信可能に接続されたホストコンピューターが取得し、ホストコンピューターに搭載されているプリンタードライバーの印刷データ生成モジュールがＡＰＩを使用してステータス情報を含む印刷イメージを生成する内容が開示されている。
【０００４】
また、特許文献２には、クライアントＰＣのＯＳ（Operating System）上で実行されるスプーラー監視プログラムやステータス監視プログラムがＡＰＩを利用して、スプーラーの状態を監視したり、プリンターのステータス変化を監視する内容が開示されている。
【０００５】
このように、ＡＰＩを利用することで様々な機能を提供するアプロケーションを容易に開発することができる。近年では、デバイス特有のアプリケーションの開発を容易にするため、そのデバイスに専用のＡＰＩを搭載した専用ドライバーが提供されるようになっている。
【０００６】
例えば、デバイスの一例として、ＰＯＳ（Point Of Sales）システムにおいて使用されるＰＯＳプリンターがある。ＯＳにWindows（登録商標）を採用するホストコンピューターにWindows（登録商標）仕様の汎用ドライバーを搭載した場合、ＰＯＳプリンターから取得できるステータス情報は一定のものに限定される。例えば、汎用ドライバーでは、ＰＯＳプリンターから取得できる情報が一定のものに限定されてしまうことがある。このため、ＰＯＳプリンターが提供する機能を十分に利用するためには、ホストコンピューターにＰＯＳプリンター専用のＡＰＩを搭載した専用ドライバーでデバイスを利用することが行なわれている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−１５４８１６号公報
【特許文献２】特開２００７−７２７１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した専用ドライバーは、デバイスの開発業者が提供するものであり、デバイス特有のアプリケーションはデバイスを購入するユーザーが専用ドライバーを利用して独自に開発することが多い。このため、ユーザーが開発したアプリケーションを、専用ドライバーを介して実行している場合は、プログラム内容に特段の問題がない限りプリンターは正常に動作する。
【０００９】
デバイスの開発業者は専用ドライバーに新たな機能を追加してバージョンアップし、新バージョンとしてユーザーに再提供することが多い。この場合、旧バージョンのアプリケーションにも対応する必要がある。通常、新バージョンの専用ドライバーは、旧バージョンの専用ドライバーの機能を全て受け継ぐため、旧バージョンの専用ドライバーに対応させて開発したアプリケーションを実行することができるようになっている。しかしながら、専用ドライバーとアプリケーションのバージョンが異なる場合には、意図しない動作をプリンターが実行するケースが発生する。
【００１０】
その一例を挙げる。近年では、複数のアプリケーションで１台のプリンターを共有することができるように、マルチアプリケーション対応のＡＰＩと通信モジュールを搭載した専用ドライバーが新たに開発されている。マルチアプリケーション非対応のＡＰＩを搭載した旧バージョンの専用ドライバーを取得したユーザーが開発したアプリケーションは、やはりマルチアプリケーション非対応の旧バージョンのものである。旧バージョンのアプリケーションを、新バージョンの専用ドライバーを介して実行すると、マルチアプリケーション対応のためのプリンターの占有の制御に関連した部分で、意図しない動作が実行される場合がある。
【００１１】
本発明は上記課題を解決するためになされたものであって、マルチアプリケーション非対応の旧バージョンのアプリケーションを、マルチアプリケーション対応の新バージョンの専用ドライバーを介して実行しても、意図しない動作をプリンターが実行することを防止することができるプリンタードライバー、プリンターの制御方法及びプリンターの制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は次の実施形態を備える。
（実施形態１）
ＰＯＳ用のコンピューターに搭載可能であり、他のアプリケーションとＰＯＳプリンターを共有することが可能なマルチアプリケーション及び前記他のアプリケーションと前記ＰＯＳプリンターを共有することができないシングルアプリケーションのいずれにも対応可能で、前記ＰＯＳプリンターとの通信を制御する通信モジュールを有するプリンタードライバーであって、
前記マルチアプリケーションまたは前記シングルアプリケーションからの利用開始要求に基づき前記ＰＯＳプリンターを占有する互換モードと、前記互換モードにおいてさらに前記利用開始要求があった場合、前記利用開始要求をしたのは前記マルチアプリケーションであると判断し、前記ＰＯＳプリンターの占有を切替え可能なマルチモードに移行する状態管理部と、を備えることを特徴とするプリンタードライバー。
（実施形態２）
前記状態管理部は、前記互換モードにおいて前記ＰＯＳプリンターの占有要求または開放要求があった場合、前記占有要求または前記開放要求をしたのは前記マルチアプリケーションであると判断し、前記マルチモードに移行することを特徴とする前記実施形態１に記載のプリンタードライバー。
（実施形態３）
前記状態管理部は、前記マルチモードに移行した後は前記互換モードに移行しないことを特徴とする前記実施形態１または２に記載のプリンタードライバー。
（実施形態４）
前記状態管理部は、前記マルチモードにおいて、前記通信モジュールで前記マルチアプリケーションからの印刷データの受信待ち状態が続くと、前記通信モジュールに対して所定のダミーデータを送信し、前記通信モジュールにおける前記受信待ち状態を解放することを特徴とする前記実施形態１から３の何れかに記載のプリンタードライバー。
（実施形態５）
前記コンピューターが読み取り可能なものであって、前記実施形態１から４のいずれかに記載のプリンタードライバーを記録した記録媒体。
（実施形態６）
他のアプリケーションとＰＯＳプリンターを共有することが可能なマルチアプリケーション又は前記他のアプリケーションと前記ＰＯＳプリンターを共有することができないシングルアプリケーションの少なくともいずれかを搭載したＰＯＳ用のコンピューターに接続可能なＰＯＳプリンターの制御方法であって、
前記マルチアプリケーションまたは前記シングルアプリケーションからの利用開始要求に基づき前記ＰＯＳプリンターを占有する互換モードと、前記互換モードにおいてさらに前記利用開始要求があった場合、前記利用開始要求をしたのは前記マルチアプリケーションであると判断し、前記ＰＯＳプリンターの占有を切替え可能なマルチモードに移行することを特徴とするＰＯＳプリンターの制御方法。
上記課題を解決することのできる本発明は、プリンターの通信を制御する通信モジュールと、アプリケーションから受信する要求であって、前記プリンターを占有する占有要求あるいは前記占有を解放する解放要求によって、複数の前記アプリケーションを切り替えて動作させることが可能な状態管理部を備えたプリンタードライバーであって、前記状態管理部は、前記アプリケーションから前記プリンターの利用開始要求を受信すると、前記アプリケーションによる前記プリンターの占有を前記通信モジュールに通知し、前記プリンターを占有状態とすることを特徴とする。
上記構成によれば、アプリケーションからプリンターの利用開始要求を受信すると、プリンターの占有を通信モジュールに通知する。すなわち、旧バージョンあるいは新バージョンの何れのアプリケーションから利用開始要求を受信しても、プリンターを占有状態とすることができる。したがって、本来、占有要求あるいは解放要求によって、複数のアプリケーションを切り替えて動作させることが可能な新バージョンのプリンタードライバーであっても、マルチアプリケーション非対応であり、占有要求あるいは解放要求を行わない旧バージョンのアプリケーションから利用開始要求を受信しても、いきなりプリンターを共有状態とするのではなく、まずは占有状態とすることができる。このため、旧バージョンのアプリケーションを、マルチアプリケーション対応の新バージョンの専用ドライバーを介して実行しても、プリンターが共有状態ではないので、プリンターが意図しない動作を実行することを防止することができる。旧バージョンあるいは新バージョンの何れのアプリケーションにも対応可能となる。
【００１３】
また、本発明において、前記状態管理部は、前記アプリケーションによる前記プリンターの占有中に、他のアプリケーションからの利用開始要求があると、前記占有状態を解放して複数のアプリケーションによるプリンターの共有を前記通信モジュールに通知し、前記プリンターを共有状態とすることが好ましい。
上記構成によれば、アプリケーションによるプリンターの占有中に、他のアプリケーションからの利用開始要求がある場合とは、複数のアプリケーションが実行された場合である。また、複数のアプリケーションが実行されるということは、何れのアプリケーションもマルチアプリケーション対応の新バージョンのアプリケーションであるはずと推定できる。したがって、占有状態を解除して共有状態としても、プリンターが意図しない動作を実行することがない。また、新バージョンのプリンタードライバー本来の、占有要求あるいは解放要求によって、複数のアプリケーションを切り替えて動作させることが可能である。
【００１４】
また、本発明において、前記状態管理部は、前記アプリケーションから前記占有要求あるいは前記解放要求を受信すると、前記プリンターの共有を前記通信モジュールに通知し、前記プリンターを共有状態とすることが好ましい。
上記構成によれば、アプリケーションから占有要求あるいは解放要求を受信するということは、そのアプリケーションはマルチアプリケーション対応の新バージョンであるはずと推定できる。したがって、共有状態としても、プリンターが意図しない動作を実行することがない。
【００１５】
また、本発明において、前記状態管理部が、前記通信モジュールに対して前記占有を通知した後に、前記印刷データの受信待ち状態が続くと、前記通信モジュールに対してダミーデータを送信して、前記占有を解放することが好ましい。
プリンターを占有してから、プリンターが印刷データの受信待ち状態が所定の期間続くと、その占有を解除しないと、他のアプリケーションを実行することができなくなってしまう。上記構成によれば、ＮＵＬＬなどダミーデータを送信することで受信待ち状態を解除し、占有を解放するので、他のアプリケーションを実行することが可能となる。
【００１６】
また、上記課題を解決することのできる本発明は、アプリケーションから受信する要求であって、プリンターを占有する占有要求あるいは前記占有を解放する解放要求によって、複数の前記アプリケーションを切り替えて動作させることが可能なプリンターの制御方法であって、
前記アプリケーションから前記プリンターの利用開始要求を受信するステップと、前記アプリケーションによる前記プリンターの占有を、前記プリンターの通信を制御する通信モジュールに通知し、前記プリンターを占有状態とするステップと、を有することを特徴とする。
【００１７】
また、上記課題を解決することのできる本発明は、アプリケーションから受信する要求であって、プリンターを占有する占有要求あるいは前記占有を解放する解放要求によって、複数の前記アプリケーションを切り替えて動作させるプリンターの制御プログラムであって、
前記アプリケーションから前記プリンターの利用開始要求を受信するステップと、前記アプリケーションによる前記プリンターの占有を、前記プリンターの通信を制御する通信モジュールに通知し、前記プリンターを占有状態とするステップと、をホストコンピューターが備えるコンピューターに実行させることを特徴とする。
【００１８】
上記構成によれば、占有要求あるいは解放要求によって、複数のアプリケーションを切り替えて動作させることが可能な新バージョンのプリンタードライバーであっても、旧バージョンのアプリケーションから利用開始要求を受信しても、いきなりプリンターを共有状態とするのではなく、まずは占有状態とすることができる。したがって、旧バージョンのアプリケーションを、マルチアプリケーション対応の新バージョンの専用ドライバーを介して実行しても、プリンターが意図しない動作を実行することを防止することができる。旧バージョンあるいは新バージョンの何れのアプリケーションにも対応可能となる。
【図面の簡単な説明】
【００１９】
【図１】プリンターとホストコンピューターとからなるシステムのハードウェア構成を示したブロック図である。
【図２】本実施形態のホストコンピューター内のソフトウェア構成を示す図である。
【図３】本実施形態の専用ドライバーの状態遷移を示した図である。
【図４】アプリケーションから利用開始要求を受信したときに専用ドライバーが行なう処理を説明するための図である。
【図５】他のアプリケーションから利用開始要求を受信したときに専用ドライバーが行なう処理を説明するための図である。
【図６】アプリケーションから占有要求あるいは解放要求を受信したときに専用ドライバーが行なう処理を説明するための図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明のプリンタードライバー、プリンターの制御方法及びプリンターの制御プログラムの実施形態を説明する。
【００２１】
まず、図１を参照してホストコンピューター及びプリンターのハードウェア構成について説明する。ホストコンピューター１０は演算処理の中枢をなすＣＰＵ１１を備えており、このＣＰＵ１１はシステムバス１２を介してＢＩＯＳなどの記載されたＲＯＭ１３やＲＡＭ１４にアクセス可能となっている。また、システムバス１２には外部記憶装置としてのハードディスクドライブ１５とフロッピー（登録商標）ディスクドライブ１６とＣＤ−ＲＯＭドライブ１７とが接続されており、ハードディスクドライブ１５に記憶されたＯＳ（Operating System）やアプリケーションなどがＲＡＭ１４に転送され、ＣＰＵ１１はＲＯＭ１３とＲＡＭ１４に適宜アクセスしてソフトウェアを実行する。
【００２２】
シリアル通信用Ｉ／Ｏ１９ａにはキーボード４１やマウス４２の操作用入力機器が接続され、図示しないビデオボードを介して表示用のディスプレイ１８も接続されている。さらに、ＰＯＳプリンター３０とはパラレル通信用Ｉ／Ｏ１９ｂを介してパラレル接続が可能となっている。本ホストコンピューター１０の構成は簡略化して説明しているが、パーソナルコンピューターとして一般的な構成を有するものを採用することができる。
【００２３】
一方、ＰＯＳプリンター３０は、ＰＯＳシステムにおいて使用されるプリンターであり、レシート印刷などを行うことができる。ＰＯＳプリンター３０は、演算処理の中枢をなすＣＰＵ３１を備えており、このＣＰＵ３１はシステムバス３２を介してＲＯＭ３３やメモリー３４にアクセス可能となっている。ここで、メモリー３４はステータス情報を格納するためのステータス情報メモリーと印刷データを格納するバッファメモリー等によって構成されている。ステータス情報メモリーはＲＡＭやＥＥＰＲＯＭで構成することが可能である。また、システムバス３２にはＰＯＳプリンター３０の内部の印刷駆動機構を制御するプリンターコントローラー３５と、パラレル通信用Ｉ／Ｏ３７とが接続されている。かかる構成によりＣＰＵ３１はＲＯＭ３３やメモリー３４に適宜アクセスしつつ所定のファームウェアを実行する。
【００２４】
ＣＰＵ３１は、メモリー３４に記憶された印刷データに基づいてプリンターコントローラー３５を制御してステータス情報を保持したり、レシート印刷を行う。ＰＯＳプリンター３０のステータス情報は、ホストコンピューター１０とパラレル通信用Ｉ／Ｏ３７を介して、ホストコンピューター１０へ送信される。
【００２５】
次に図２を参照して、本実施形態のホストコンピューター内のソフトウェア構成を説明する。ＣＰＵ１１は、ハードディスクドライブ１５に記憶されている各プログラムをＯＳ上で実行する。本実施形態では、各アプリケーション２６，２７，２８、プリンタードライバー２０を実行する。また、図２に示すように本実施形態のプリンタードライバー２０は、汎用ドライバー２１、専用ドライバー２２及び通信モジュール２５を備えている。
【００２６】
汎用ドライバー２１は、例えばホストコンピューター１０のＯＳにＷｉｎｄｏｗｓ（登録商標）を採用する場合は、Ｗｉｎｄｏｗｓ（登録商標）の規約にしたがって作成されたドライバーである。汎用ドライバー２１は、他のアプリケーション２６から取得したデータを、ＰＯＳプリンター３０が処理可能なデータに変換する。しかし、機能は限定されている。
【００２７】
専用ドライバー２２（状態管理部）は、ＰＯＳプリンター３０の専用ドライバーである。専用ドライバー２２は、例えば、汎用ドライバー２１では取得できないＰＯＳプリンター３０のステータス情報を取得することができる。具体的には、ＰＯＳプリンター専用のアプリケーションであるステータス取得アプリケーション２７を実行すると、専用ドライバー２２のステータス取得ＡＰＩ２３が呼び出される。ステータス取得ＡＰＩ２３は、ＰＯＳプリンター３０の状態を監視し、通信モジュール２５を介してＰＯＳプリンター３０からステータスを受信する。ステータス取得アプリケーション２７からのステータス取得要求に応じて、受信したステータス情報をステータス取得アプリケーション２７へ送信する。
【００２８】
また、専用ドライバー２２は、ＰＯＳプリンター３０によるレシート印刷処理を制御することもできる。ＰＯＳプリンター専用のアプリケーションであるレシート印刷アプリケーション２８を実行すると、専用ドライバー２２のレシート印刷ＡＰＩ２４が呼び出される。レシート印刷ＡＰＩ２４は、レシート印刷アプリケーション２８から受信した印刷データを、ＰＯＳプリンター３０が処理可能な形式へ変換し、通信モジュールを介してＰＯＳプリンター３０へ送信する。
【００２９】
このように、本実施形態の専用ドライバー２２は、専用アプリケーション２７，２８からの呼び出しに応じてＡＰＩを実行する。各専用アプリケーション２７，２８は、ＡＰＩの呼び出しをするには、まず専用ドライバー２２に対してＰＯＳプリンター３０の利用開始要求を送信することが必要である。
【００３０】
また、専用ドライバー２２は、複数の専用アプリケーションによってＰＯＳプリンター３０を共有することができる。例えば、ステータス取得アプリケーション２７の起動中にレシート印刷アプリケーション２８を立ち上げることができ、レシート印刷アプリケーション２８の起動中にステータス取得アプリケーション２７を立ち上げることができる。専用ドライバー２２は、各専用アプリケーション２７，２８から受信する。
【００３１】
また、専用ドライバー２２は、ＰＯＳプリンター３０を占有する占有要求あるいはその占有を解放する解放要求によって、ＰＯＳプリンター３０を一時的に占有することで、ステータス取得アプリケーション２７及びレシート印刷アプリケーション２８を切り替えて動作させることができる。つまり、複数の専用アプリケーションはＰＯＳプリンター３０を時分割で共有する。
【００３２】
また、専用ドライバー２２は、何れかの専用アプリケーション２７，２８から最初の利用開始要求を受信すると、ＰＯＳプリンター３０の占有を通信モジュール２５に通知し、自動的にＰＯＳプリンター３０を占有状態とする。すなわち、図３に示すように、専用ドライバー２２は、何れかの専用アプリケーション２７，２８から最初に利用開始要求を受信すると、開始点１００から互換モード１１０へ移行する。互換モード１１０は、旧バージョンのアプリケーションにも対応するものである。
【００３３】
また、専用ドライバー２２は、一方の専用アプリケーション２７（あるいは２８）によるＰＯＳプリンター３０の上記占有状態中に、他の専用アプリケーション２８（あるいは２７）からの利用開始要求があると、所定の処理の後、占有状態を自動的に解放する。そして、複数の専用アプリケーション２７，２８によるＰＯＳプリンター３０の共有を通信モジュール２５に通知し、ＰＯＳプリンター３０を共有状態とする。すなわち、図３に示すように、専用ドライバー２２は、互換モード１１０において、別の専用アプリケーション２８（あるいは２７）からの利用開始要求を受信すると、マルチモード１２０へ移行する。マルチモード１２０は、新バージョンのアプリケーションに対応するものである。他の専用アプリケーション２８（あるいは２７）からの利用開始要求があるものは、新バージョンのアプリケーションであると推定できるためである。
【００３４】
また、専用ドライバー２２は、専用アプリケーション２７（あるいは２８）から上述した占有要求あるいは解放要求を受信すると、ＰＯＳプリンター３０の共有を通信モジュール２５に通知し、ＰＯＳプリンター３０を共有状態とする。すなわち、図３に示すように、専用ドライバー２２は、互換モード１１０において、専用アプリケーション２８（あるいは２７）から上述した占有要求あるいは解放要求を受信した場合も、マルチモード１２０へ移行する。
【００３５】
また、専用ドライバー２２は、専用アプリケーション２７（あるいは２８）から利用終了要求を受信すると、専用アプリケーション２７（あるいは２８）によるプリンターの利用を終了する。すなわち、図３に示すように、専用ドライバー２２は、互換モード１１０あるいはマルチモード１２０において、専用アプリケーション２７（あるいは２８）から利用終了要求を受信すると、終了点１３０へ移行する。
【００３６】
また、専用ドライバー２２は、通信モジュール２５に対して占有を通知した後に、ＰＯＳプリンター３０の印刷データ受信待ち状態が続くと、通信モジュール２５に対してダミーデータを送信し、ＰＯＳプリンター３０の解放を通知する。例として、所定量のビットマップデータが全て受信するまで待っている等がある。ビットマップデータは大量なことがあり、送信側で時間が掛かっているとか何かトラブルがあると、ずっと待ち状態が続き、次のアプリケーションが使えない。
【００３７】
このように、専用ドライバー２２は、専用アプリケーションから利用開始要求を受信すると、まずは互換モード１１０へ移行し、その後他の専用アプリケーションの利用開始要求、占有要求あるいは解放要求があるとマルチモード１２０へ移行する。しかし、一度マルチモード１２０へ移行した後は、互換モード１１０へ戻ることはない。占有要求あるいは解放要求をするものは、新バージョンのアプリケーションであると推定できるためである。
【００３８】
次に、専用ドライバー２２が、互換モード１１０あるいはマルチモード１２０へ移行するまでの処理の流れを図４〜図６を参照して説明する。
【００３９】
＜互換モードへ移行する処理について＞
図４は、互換モード１１０へ移行する際の処理の流れを示している。
ユーザーはＰＯＳプリンター３０のステータス情報を取得するため、ステータス取得アプリケーション２７を起動する。専用アプリケーション２７は、専用ドライバー２２に対して利用開始要求を送信する（ステップＳ１１）。
【００４０】
ステータス取得ＡＰＩ２３が呼び出されると、ステータス取得ＡＰＩ２３は通信モジュール２５に対して利用開始を通知し（ステップＳ１２）、通信モジュール２５はステータス取得ＡＰＩ２３に対して成功を返す（ステップＳ１３）。続いて、ステータス取得ＡＰＩ２３は、通信モジュール２５に対して占有を通知し（ステップＳ１４）、通信モジュール２５はステータス取得ＡＰＩ２３に対して成功を返す（ステップＳ１５）。続いて、ステータス取得ＡＰＩ２３は、通信モジュール２５に対して互換モード１１０で動作することを通知し（ステップＳ１６）、通信モジュール２５はステータス取得ＡＰＩ２３に対して成功を返す（ステップＳ１７）。ステータス取得ＡＰＩ２３は、専用アプリケーション２７に対して成功を通知する（ステップＳ１８）。
【００４１】
このように、専用アプリケーションから初めて利用開始要求を受信すると、必ず互換モード１１０へ移行する。つまり、ステータスＡＰＩ２３は、専用アプリケーション２７から占有要求を受信しなくても、利用開始要求を受信しただけで自動的にＰＯＳプリンター３０を占有状態とすることができる。したがって、例えば専用アプリケーション２７が、本実施形態の専用ドライバー２２のように占有要求や解放要求によって複数の専用アプリケーションを切り替えて動作させる新バージョンのドライバーに対応していない旧バージョンのアプリケーションであっても、まずは互換モード１１０へ移行することで、ＰＯＳプリンター３０を占有することができる。このため、専用アプリケーション２７がＰＯＳプリンター３０を複数の専用アプリケーションで共有することができない、いわゆるシングルアプリケーションである場合には、ＰＯＳプリンター３０を時分割で共有するのではなく、占有状態を維持することができるので、共有状態等に起因し、ＰＯＳプリンター３０が予期せぬ動作を実行することを防止することができる。
【００４２】
＜マルチモードへ移行する処理について＞
図５は、図４において移行した互換モード１１０からさらにマルチモード１２０へ移行する際の処理の流れを示している。
ユーザーは専用アプリケーション２７を動作させたまま、レシート印刷を実行するためレシート印刷アプリケーション２８を起動する。専用アプリケーション２８は、専用ドライバー２２に対して利用開始要求を送信する（ステップＳ２１）。
【００４３】
レシート印刷ＡＰＩ２４が呼び出されると、レシート印刷ＡＰＩ２４は通信モジュール２５に対して利用開始を通知し（ステップＳ２２）、通信モジュール２５はレシート印刷ＡＰＩ２４に対して成功を返す（ステップＳ２３）。続いて、レシート印刷ＡＰＩ２４は、通信モジュール２５に対して占有を通知するが（ステップＳ２４）、ここでは図４のステップＳ１４でステータス取得ＡＰＩ２３がＰＯＳプリンター３０を占有しているため、通信モジュール２５はレシート印刷ＡＰＩ２４に対して失敗を返す（ステップＳ２５）。続いて、レシート印刷ＡＰＩ２４は、図４のステップＳ１６と同様に通信モジュール２５に対して互換モード１１０で動作することを通知し（ステップＳ２６）、通信モジュール２５はレシート印刷ＡＰＩ２４に対して成功を返す（ステップＳ２７）。
【００４４】
通信モジュール２５は、ステップＳ２６におけるレシート印刷ＡＰＩ２４からの通知に応じて、ステータス取得ＡＰＩ２３に対して互換モードを通知する（ステップＳ２８）。続いて、ステータス取得ＡＰＩ２３は、通信モジュール２５からの互換モードの通知に応じて、図４のステップ１４で通知した占有を解放するために、通信モジュール２５に解放を通知する（ステップＳ２９）。通信モジュール２５はステータス取得ＡＰＩ２３に対して成功を返す（ステップＳ３０）。
【００４５】
そして、ステータス取得ＡＰＩ２３は、互換モード１１０からマルチモード１２０への移行を通信モジュール２５へ通知し（ステップＳ３１）、通信モジュール２５はステータス取得ＡＰＩ２３に対して成功を返す（ステップＳ３２）。
【００４６】
通信モジュール２５は、ステータス取得ＡＰＩ２３からのマルチモード移行の通知に応じて、レシート印刷ＡＰＩ２４に対して、マルチモード１２０への移行を通知する（ステップＳ３３）。さらにレシート印刷ＡＰＩ２４は、専用アプリケーション２８に対してマルチモード１２０への移行を通知する（ステップＳ３４）。これによりステータスＡＰＩ２３及びレシート印刷ＡＰＩ２４の何れもがマルチモード１２０へ移行する。
【００４７】
このように、専用アプリケーション２３によるＰＯＳプリンター３０の占有中に、他の専用アプリケーション２８からの利用開始要求があった場合は、複数の専用アプリケーション２７，２８が実行された状態である。したがって、何れの専用アプリケーション２７，２８もマルチアプリケーション対応の新バージョンの専用アプリケーションであると推定できる。したがって、ステップＳ１４の占有状態を解除してマルチモード１２０へ移行しても、つまり、ＰＯＳプリンター３０を共有状態としても、ＰＯＳプリンター３０が意図しない動作を実行することがない。ＰＯＳプリンター３０を時分割で共有することができる。
【００４８】
＜マルチモードへ移行する他の処理について＞
図６は、図４において移行した互換モード１１０からさらにマルチモードへ移行する他の処理の流れを示している。
専用アプリケーション２７はＰＯＳプリンター３０を一時的に占有するため、専用ドライバー２２に対して占有要求を送信する（ステップＳ４１）。ステータス取得ＡＰＩ２３が呼び出されると、ステータス取得ＡＰＩ２３は通信モジュール２５に対して占有を通知し（ステップＳ４２）、通信モジュール２５はステータス取得ＡＰＩ２３に対して成功を返す（ステップＳ４３）。続いて、ステータス取得ＡＰＩ２３は、通信モジュール２５に対して、図４のステップＳ１６で通知した互換モード１１０からマルチモード１２０への移行を通知する（ステップＳ４４）。通信モジュール２５はステータス取得ＡＰＩ２３に対して成功を返し（ステップＳ４５）、ステータス取得ＡＰＩ２３は専用アプリケーション２７へ成功を返す（ステップＳ４６）。
【００４９】
なお、専用アプリケーション２７によるＰＯＳプリンター３０の一時的な占有を解放するためには、上記と同様に、ステータス取得ＡＰＩ２３はステップＳ４１で解放要求を専用アプリケーション２７から受信し、ステップＳ４２で解放を通信モジュール２５へ通知し、ステップＳ４４でマルチモード１２０への移行を通信モジュール２５へ通知すればよい。
【００５０】
このように、ステータス取得ＡＰＩ２３が専用アプリケーション２７から占有要求あるいは解放要求を受信するということは、その専用アプリケーションはマルチアプリケーション対応の新バージョンであることが推定される。つまり、専用アプリケーション２７は、占有要求あるいは解放要求によって、ＰＯＳプリンター３０を一時的に占有することで、複数の専用アプリケーションを切り替えて動作させることができる新バージョンの専用ドライバー２２に対応させて開発された専用アプリケーションであるはずである。このため、ステップＳ４４でマルチモード１２０へ移行しても、つまりＰＯＳプリンター３０を共有状態としても、ＰＯＳプリンター３０が意図しない動作を実行することがない。
【００５１】
なお、上記実施形態では、図４において専用アプリケーション２７からの利用開始要求に応じて、ステータス取得ＡＰＩ２３が通信モジュール２５に対して占有を通知したが、専用アプリケーション２８からの利用開始要求に応じて、レシート印刷ＡＰＩ２４が通信モジュール２５に対して占有を通知することもできる。
例えば、レシート印刷ＡＰＩ２４が、通信モジュール２５に対して図４のステップＳ１４で占有を通知した後に、コマンドを送信するためのコマンド送信ＡＰＩがＰＯＳプリンター３０へ印刷データとしてビットマップデータを分割送信していたとする。この印刷データの送信中に、システムエラーなどが発生すると、ＰＯＳプリンター３０が印刷データ受信待ち状態となる場合がある。このような場合は、専用ドライバー２２は通信モジュール２５に対してＮＵＬＬなどのダミーデータを送信することで、通信モジュール２５からダミーデータがＰＯＳプリンター３０へ送信され、ＰＯＳプリンター３０の受信待ち状態を解除することができる。専用ドライバー２２はＰＯＳプリンター３０の受信待ち状態を解除した後、ステップＳ１４で通知した占有を解放するため通信モジュール２５に対して解放を通知する。
【００５２】
ＰＯＳプリンター３０を占有してから、ＰＯＳプリンター３０が印刷データの受信待ち状態になると、その占有を解除しないと、他の専用アプリケーションを実行することができなくなってしまう。したがって、ダミーデータを送信することで受信待ち状態を解除し、占有を解放するので、他の専用アプリケーションを実行することが可能となる。
【００５３】
なお、上記実施形態では、専用ドライバー２２として、ステータス取得ＡＰＩ２３やレシート印刷ＡＰＩ２４を呼び出して実行する場合を例示したが、その他のＡＰＩを呼び出して実行することもできる。
例えば、ＰＯＳプリンター３０内部にメンテナンスカウンターを保持している場合は、メンテナンスカウンター値を取得するＡＰＩやメンテナンスカウンター値をリセットするためのＡＰＩ、ＰＯＳプリンター３０にドロワーが接続されている場合は、ドロワーをオープンするためのＡＰＩなどがある。
【００５４】
さらに、センサーの有無、カスタマディスプレイの接続、ファームウェアの情報などプリンターの仕様を取得するＡＰＩ、復帰可能エラーからの復帰、紙詰まりなどの復帰可能なエラー原因を取り除いた後にＰＯＳプリンター３０をエラー状態から復帰させるＡＰＩ、ＰＯＳプリンター３０をリセットするためのＡＰＩ、電源オフの前処理を行なうためのＡＰＩ、コマンド定義ファイルをＰＯＳプリンター３０に定義したり、定義されたコマンド定義ファイルのコマンドをＰＯＳプリンター３０に送り実行するためのＡＰＩ、コマンドをＰＯＳプリンター３０へ送信したり、ＰＯＳプリンター３０からデータを受信するＡＰＩ等がある。
【００５５】
なお、本発明が適用されるホストコンピューターはパーソナルコンピューターに限定されるものではない。上記実施形態ではいわゆるデスクトップ型コンピューターであるが、ノート型であるとか、モバイル対応のものであっても良い。また、ホストコンピューター１０とＰＯＳプリンター３０との接続インターフェイスもパラレル通信用Ｉ／Ｏ１９ｂに限る必要はなく、シリアルインタフェースやＳＣＳＩ，ＵＳＢ接続など種々の接続態様を採用可能であるし、今後開発されるいかなる接続態様であっても同様である。
【００５６】
また、上記実施形態では各アプリケーション２６，２７，２８やプリンタードライバー２０等のプログラムはハードディスクドライブ１５に記憶されているが、記録媒体はこれに限定されるものではない。例えば、フロッピー（登録商標）ディスク１６ａであるとか、ＣＤ−ＲＯＭ１７ａであってもよい。これらの記録媒体に記録されたプログラムはフロッピー（登録商標）ディスクドライブ１６やＣＤ−ＲＯＭドライブ１７を介してホストコンピューター１０にて読み込まれ、ハードディスクドライブ１５にインストールされる。そして、ハードディスクドライブ１５を介してＲＡＭ１４上に読み込まれてホストコンピューター１０を制御する。
【００５７】
また、上記実施形態では、ホストコンピューター１０とＰＯＳプリンター３０が１対１の関係で説明したが、ＰＯＳプリンター３０はネットワークを介して複数のホストコンピューターと接続されていてもよい。この場合は、各ホストコンピューターが実行する複数のアプリケーションによってＰＯＳプリンター３０を共有することができる。
【符号の説明】
【００５８】
１０：ホストコンピューター、１１：ＣＰＵ、１２：システムバス、１３：ＲＯＭ、１４：ＲＡＭ、１５：ハードディスクドライブ、１６：フロッピー（登録商標）ディスクドライブ、１７：ＣＤ−ＲＯＭドライブ、１８：ディスプレイ、１９ａ：シリアル通信用Ｉ／Ｏ、１９ｂ：パラレル通信用Ｉ／Ｏ、２０：プリンタードライバー、２１：汎用ドライバー、２２：専用ドライバー（状態管理部）、２３：ステータス取得ＡＰＩ、２４：レシート印刷ＡＰＩ、２５：通信モジュール、２６：他のアプリケーション、２７：専用（ステータス取得）アプリケーション、２８：専用（レシート印刷）アプリケーション、３０：ＰＯＳプリンター。
【図１】
0005397162.tif 000002
【図２】
0005397162.tif 000003
【図３】
0005397162.tif 000004
【図４】
0005397162.tif 000005
【図５】
0005397162.tif 000006
【図６】
0005397162.tif 000007