(57)【特許請求の範囲】
【請求項１】
複数のデバイスを備えた複合機を制御する制御装置であって、
前記複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラムをそれぞれ実行する複数のアプリケーション実行手段と、
前記複合機から接続ポートを介してデータを受信する一方、前記複数のアプリケーション実行手段から入力されるデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信するポート制御手段と、
前記複数のアプリケーション実行手段に対応して設けられ、前記ポート制御手段により受信された前記データをフィルタリングして、前記アプリケーション実行手段に渡す複数のインターフェイスと、
各々の前記アプリケーションプログラムに対応して設けられ、前記アプリケーション実行手段から入力されるデータに基づいて前記複合機を制御するコマンドを生成する複数のコマンド制御手段と、を備え、
前記コマンド制御手段は、前記複合機により前記デバイスの機能を実行させる通常コマンドと、前記通常コマンドより優先して実行される即時実行コマンドと、前記複合機に対して動作状態の変更時にステータスを送信させるステータスバック設定コマンドとを生成可能である、
ことを特徴とする制御装置。
【請求項２】
前記複数のインターフェイスの各々に対応して設けられ、前記ポート制御手段により前記複合機から受信されたデータのうち、前記インターフェイスが対応する前記アプリケーションプログラムに関連するステータスを抽出する複数のフィルタリング手段を備えることを特徴とする請求項１記載の制御装置。
【請求項３】
前記ポート制御手段は、単一の前記接続ポートを介して前記複合機とデータの送受信を行い、
前記複合機から前記接続ポートを介して受信したデータを全ての前記インターフェイスに出力し、
いずれかの前記コマンド制御手段が生成したコマンドを排他的に前記接続ポートを介して前記複合機に送信することを特徴とする請求項１または２記載の制御装置。
【請求項４】
複数のデバイスを備えた複合機を制御する制御装置の制御方法であって、
前記複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラムをそれぞれ実行し、
前記複合機に接続された接続ポートを介して前記複合機からデータを受信する一方、前記複数のアプリケーションプログラムからのデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信し、
前記複合機から受信したデータをフィルタリングして、前記アプリケーションプログラムに渡し、
各々の前記アプリケーションプログラムに対応して、前記アプリケーションプログラムを実行して入力されるデータに基づいて前記複合機を制御するコマンドを生成し、前記コマンドとして、前記複合機により前記デバイスの機能を実行させる通常コマンドと、前記通常コマンドより優先して実行される即時実行コマンドと、前記複合機に対して動作状態の変更時にステータスを送信させるステータスバック設定コマンドとを生成すること、
を特徴とする複合機を制御する制御装置の制御方法。
【請求項５】
複数のデバイスを備えた複合機を制御する制御部により実行されるプログラムであって、
前記制御部を、
前記複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラムをそれぞれ実行する複数のアプリケーション実行手段と、
前記複合機から接続ポートを介してデータを受信する一方、前記複数のアプリケーション実行手段からのデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信するポート制御手段と、
前記複数のアプリケーション実行手段に対応して設けられ、前記ポート制御手段により受信されたデータをフィルタリングして、前記アプリケーション実行手段に渡す複数のインターフェイスと、
各々の前記アプリケーションプログラムに対応して、前記アプリケーション実行手段から入力されるデータに基づいて前記複合機を制御するコマンドを生成し、前記複合機により前記デバイスの機能を実行させる通常コマンドと、前記通常コマンドより優先して実行される即時実行コマンドと、前記複合機に対して動作状態の変更時にステータスを送信させるステータスバック設定コマンドとを生成可能である複数のコマンド制御手段と、
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合機を制御する制御装置、複合機を制御する制御装置の制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
従来、処理対象の媒体に印刷を行うプリンターや処理対象の媒体を読み取るスキャナー等の複数のデバイスを備えた複合機が知られている。通常、この種の複合機を制御するホスト装置は、複合機が備える各デバイスの機能に対応したデバイスドライバープログラムを実行する（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３３５０３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般に、複合機は多様な機能を有しており、これらの多様な機能に対応するために機種毎の専用のデバイスドライバープログラムを必要とすることが少なくない。さらに、デバイスドライバープログラムを介して複合機を使用するアプリケーションプログラムについても、複合機の仕様に合わせて最適化されることがあった。このような手法を採用した場合、複合機の新規の導入や機種の置き換えを行う際に、新しい複合機に合わせてソフトウェアを開発する負担があり、負担の軽減が求められていた。
そこで本発明は、複数のデバイスを備えた複合機を使用する際に、この複合機に対する最適化がされていないプログラムであっても上記複合機を使用できるようにした制御装置、複合機を制御する制御装置の制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、複数のデバイスを備えた複合機を制御する制御装置であって、前記複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラムをそれぞれ実行する複数のアプリケーション実行手段と、前記複合機から接続ポートを介してデータを受信する一方、前記複数のアプリケーション実行手段から入力されるデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信するポート制御手段と、前記複数のアプリケーションプログラムに対応して設けられ、前記ポート制御手段により受信された前記データをフィルタリングして、前記アプリケーション実行手段に渡す複数のインターフェイスと、を備えることを特徴とする。
本発明によれば、複数のアプリケーションプログラムによって、接続ポートを介して複合機にデータを送信し、複合機から送信されるステータスを取得できる。このため、それぞれ複合機を使用する複数のアプリケーションプログラムを、他のアプリケーションプログラムとの協調を図る機能を持たせることなく使用できる。これにより、アプリケーションプログラムを複合機の構成に合わせて最適化する必要がなく、例えば単一のデバイスを備えた装置に合わせて設計されたアプリケーションプログラムを、複合機に対して使用できる。
【０００６】
また、本発明は、上記制御装置において、前記複数のインターフェイスの各々に対応して設けられ、前記ポート制御手段により前記複合機から受信されたデータのうち、前記インターフェイスが対応する前記アプリケーションプログラムに関連するステータスを抽出する複数のフィルタリング手段を備える。
本発明によれば、複数のアプリケーションプログラムの各々に対し、複合機が送信するデータのうち、各アプリケーションプログラムに関連するステータスを抽出して渡すことができるので、複合機の構成に合わせて最適化されたアプリケーションプログラムでなくても、複合機からのステータスを取得でき、複合機のステータスに基づく制御を行える。
【０００７】
また、本発明は、上記制御装置において、各々の前記アプリケーションプログラムに対応して設けられ、前記アプリケーション実行手段から入力されるデータに基づいて前記複合機を制御するコマンドを生成する複数のコマンド制御手段を備え、前記コマンド制御手段は、前記複合機により前記デバイスの機能を実行させる通常コマンドと、前記通常コマンドより優先して実行される即時実行コマンドと、前記複合機に対して動作状態の変更時にステータスを送信させるステータスバック設定コマンドとを生成可能であることを特徴とする。
本発明によれば、アプリケーションプログラムが出力したデータに基づいて複合機を制御する通常のコマンドを送信することができ、即時実行コマンドを送信して複合機がビジー状態であっても制御を行うことができ、さらに、ステータスバック設定コマンドを送信して複合機のステータスを自動的に送信させることができる。これにより、複合機の構成に合わせて最適化されたアプリケーションプログラムを用いなくても、複合機を詳細に制御できる。
【０００８】
また、本発明は、上記制御装置において、前記ポート制御手段は、単一の前記接続ポートを介して前記複合機とデータの送受信を行い、前記複合機から前記接続ポートを介して受信したデータを全ての前記インターフェイスに出力し、いずれかの前記コマンド制御手段が生成したコマンドを排他的に前記接続ポートを介して前記複合機に送信することを特徴とする。
本発明によれば、複数のデバイスを備えた複合機に単一の接続ポートを介してデータを送受信する場合に、複合機の構成に合わせた最適化がされていない複数のアプリケーションプログラムを実行して複合機を制御できる。
【０００９】
また、上記目的を達成するために、本発明は、複数のデバイスを備えた複合機の制御方法であって、前記複数のデバイスの少なくともいずれかに応した複数のアプリケーションプログラムをそれぞれ実行し、前記複合機に接続された接続ポートを介して前記複合機からデータを受信する一方、前記複数のアプリケーションプログラムからのデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信し、前記複合機から受信したデータをフィルタリングして、前記アプリケーションプログラムに渡すこと、を特徴とする。
本発明の制御方法を実行することにより、複数のアプリケーションプログラムが接続ポートを介して複合機にデータを送信し、複合機から送信されるステータス等のデータを取得できる。このため、複合機を使用する複数のアプリケーションプログラムを、他のアプリケーションプログラムとの協調を図る機能を持たせることなく使用できる。これにより、アプリケーションプログラムを複合機の構成に合わせて最適化する必要がなく、例えば単一のデバイスを備えた装置に合わせて設計されたアプリケーションプログラムを、複合機に対して使用できる。
【００１０】
また、上記目的を達成するために、本発明は、複数のデバイスを備えた複合機を制御する制御部により実行されるプログラムであって、前記制御部を、前記複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラムをそれぞれ実行する複数のアプリケーション実行手段と、前記複合機から接続ポートを介してデータを受信する一方、複数の前記アプリケーション実行手段からのデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信するポート制御手段と、前記複数のアプリケーションプログラムに対応して設けられ、前記ポート制御手段により受信されたデータをフィルタリングして、前記アプリケーション実行手段に渡す複数のインターフェイスと、して機能させることを特徴とする。
本発明のプログラムを実行することによって、制御部が、複数のアプリケーションプログラムを実行して接続ポートを介して複合機にデータを送信し、複合機から送信されるステータス等のデータを取得できる。このため、それぞれ複合機を使用する複数のアプリケーションプログラムを、他のアプリケーションプログラムとの協調を図る機能を持たせることなく使用できる。これにより、アプリケーションプログラムを複合機の構成に合わせて最適化する必要がなく、例えば単一のデバイスを備えた装置に合わせて設計されたアプリケーションプログラムを、複合機に対して使用できる。
【発明の効果】
【００１１】
本発明によれば、複合機の構成に合わせて最適化されていないアプリケーションプログラムであっても、複合機に対して使用できる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態に係る記録システムが備える複合機の機能ブロック図である。
【図２】ホストコンピューターの機能ブロック図である。
【図３】ホストコンピューターのソフトウェア構成を模式的に示す図である。
【図４】記録システムにおけるポート制御処理を示すフローチャートである。
【図５】記録システムにおけるステータス制御処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明を適用した実施形態について説明する。
図１は、記録システム８が備える複合機１の機能ブロック図である。
記録システム８は、この図１に示す複合機１と、複合機１を制御する制御装置としてのホストコンピューター１００とを接続して構成される。
複合機１は、処理対象媒体を搬送する搬送手段としての各種モーター及び搬送ローラーと、磁気インク文字列の磁気文字認識（ＭＩＣＲ：Magnetic Ink Character Recognition）を行うＭＩＣＲヘッド３５と、処理対象媒体に印刷を行うインクジェットヘッド１０と、処理対象媒体を光学的に読み取る表面ＣＩＳ（Contact Image Sensor）ユニット４７及び裏面ＣＩＳユニット４８と、を含むデバイスを備え、これらは処理対象媒体の搬送路に配置されている。処理対象媒体としては、規定された範囲内のサイズのカットシートが用いられ、本実施形態では、小切手を処理対象媒体の例に挙げて説明する。小切手は、所定の模様や装飾が施されたシート（用紙）に金額、振出人、通し番号、サインなどが印字または記載された帳票である。これら金額、振出人、通し番号、サインなどは表面にあり、裏面には裏書き欄が設けられている。また、小切手の表面には、小切手の長辺方向に延びる磁気インク文字列が形成されている。この磁気インク文字列は、磁気インクで印刷された複数の磁気インク文字（ＭＩＣＲ文字）が並んだものであり、磁気的または光学的に読み取ることができる。小切手の短辺方向及び長辺方向のサイズは規格化されているものの、多様な規格が存在するため、実際には様々なサイズがあり、複合機１は、一般的な小切手のサイズをほぼ包含し得る最大サイズを規定し、この最大サイズ内の小切手を処理できる。
【００１４】
複合機１は、ホストコンピューター１００の制御に従って、小切手に記録された磁気インク文字列を読み取るＭＩＣＲ機能、小切手に文字や画像を記録（印刷）する印刷機能、小切手の両面を光学的に読み取って読み取る画像データを生成するスキャン機能を実行する。ＭＩＣＲ機能の実行時、複合機１は、ホストコンピューター１００から送信されるコマンドに従って、小切手の表面に接して磁気インク文字列を磁気的に読み取るＭＩＣＲヘッド３５を制御し、磁気インク文字列を読み取り、磁気波形または磁気波形を認識した認識結果をホストコンピューター１００に送信する。印刷機能の実行時、複合機１は、ホストコンピューター１００から送信されるコマンド及び印刷データに従って、当該印刷データに含まれる文字や画像をレイアウトした印刷イメージを生成し、インクジェットヘッド１０によって小切手に印刷する。これにより、例えば、小切手の裏面に設けられた裏書き欄に、裏書きに係る文字や画像が記録される。また、スキャン機能の実行時、複合機１は、ホストコンピューター１００から送信されるコマンドに従って、表面ＣＩＳユニット４７及び裏面ＣＩＳユニット４８により小切手の表裏両面を光学的に読み取り、表面の読取画像データと裏面の読取画像データとをホストコンピューター１００に送信する。上記の搬送路においては、ＭＩＣＲヘッド３５、インクジェットヘッド１０、表面ＣＩＳユニット４７及び裏面ＣＩＳユニット４８の順に配置されているため、小切手に対してＭＩＣＲ機能、印刷機能、スキャン機能の順に実行される。この構成には、例えばＭＩＣＲ機能で磁気インク文字列を正確に認識できなかった場合に、表面ＣＩＳユニット４７の読取画像データに基づいてＯＣＲ（光学文字認識）で認識できるという利点、インクジェットヘッド１０により裏書き印刷された状態の小切手をスキャンできるという利点がある。このため、実際に小切手がセットされた場合、複合機１は、ホストコンピューター１００から送信されるコマンドに従って、ＭＩＣＲ機能、印刷機能及びスキャン機能を一連のシーケンスとして実行することで、処理の高速化を図っている。また、この一連のシーケンスには、処理対象の小切手を搬送路に取り込み、搬送路上を搬送し、処理後の小切手を所定の排出ポケット（図示略）に排出する動作も含まれる。
【００１５】
また、複合機１は、表面ＣＩＳユニット４７及び裏面ＣＩＳユニット４８を使用して、ＩＤカード等を光学的に読み取るフォトＩＤ機能を備えている。このフォトＩＤ機能では、処理対象媒体の搬送路から分岐して設けられたスキャン用の溝に、複合機１を使用するユーザーがカード型の媒体（写真付きＩＤカード等）をセットすることで、この媒体を光学的に読み取って、読取画像データを生成する機能である。フォトＩＤ機能の実行時、複合機１は、ホストコンピューター１００から送信されるコマンドに従って、カード型媒体の挿入を検出し、表面ＣＩＳユニット４７及び裏面ＣＩＳユニット４８のいずれか一方、或いは両方を用いてカード型媒体を光学的に読み取り、読取画像データをホストコンピューター１００に送信する。
【００１６】
さらに、複合機１は、本体に感熱ロール紙をセットするロール紙収容部（図示略）を有し、この感熱ロール紙に印刷を行うサーマルヘッド６５を備えている。複合機１は、上記の処理対象媒体とは別に、感熱ロール紙に対する印刷を行える。サーマルヘッド６５を用いたサーマル印刷機能の実行時、複合機１は、ホストコンピューター１００から送信されるコマンド及び印刷データに従って、当該印刷データに含まれる文字や画像をレイアウトした印刷イメージを生成し、感熱ロール紙を搬送しながらサーマルヘッド６５によって印刷を行う。ここで、複合機１がオートカッターユニットを設けた構成としてもよく、この場合、サーマル印刷機能の実行時に印刷後の感熱ロール紙を所定位置まで搬送し、カットする。
さらにまた、複合機１は、小切手などの処理対象媒体の搬送路とは別に、クレジットカードや金融機関のキャッシュカード等の磁気カードを通すスリットを備えており、このスリットを通る磁気カードに記録された磁気情報を読み取るＭＣＲヘッド２２を備えている。複合機１は、上記スリットにユーザーが磁気カードを通すことで、磁気情報を読み取り、ホストコンピューター１００に出力するＭＣＲ機能を備えている。ＭＣＲ機能の実行時、複合機１は、ホストコンピューター１００から送信されるコマンドに従って、ＭＣＲヘッド２２による磁気情報の読取を実行し、読み取った磁気波形磁気波形を認識した認識結果をホストコンピューター１００に送信する。
【００１７】
図１に示すように，複合機１は、複合機１全体を制御するＣＰＵ、ＲＡＭ、フラッシュＲＯＭ等により構成される複合機側制御部７０と、プリンター制御部７１と、ヘッド駆動回路７２と、モータードライバー７３と、読取制御回路７４と、センサー駆動回路７５と、インターフェイス（Ｉ／Ｆ）部７６とを有し、これらの各部は相互に通信可能に接続されている。
複合機側制御部７０は、フラッシュＲＯＭに記憶されている制御プログラムをＣＰＵにより読み出して実行することにより、複合機１の各部を制御する。
プリンター制御部７１は、複合機側制御部７０の制御の下、ヘッド駆動回路７２を介してインクジェットヘッド１０に駆動電流を供給し、小切手に印刷する。また、プリンター制御部７１は、複合機側制御部７０の制御の下、ヘッド駆動回路７２を介してサーマルヘッド６５に駆動電流を供給し、感熱ロール紙に印刷する。また、インクジェットヘッド１０は、図示せぬキャップによるキャッピング可能に構成されると共に、フラッシング、クリーニング、及び、ワイパーによるワイピングを実行可能に構成され、プリンター制御部７１は、複合機側制御部７０の制御に従って、インクジェットヘッド１０のフラッシング、クリーニング、及び、ワイパーによるワイピングを適宜実行させる。
【００１８】
複合機１は、小切手を搬送する搬送機構として、処理前の小切手が貯留されるストッカーから１枚の小切手を取り出すホッパー及びピックアップローラーと、取り出された小切手を搬送路に引き入れるＡＳＦ（Automatically Sheet Feeder）ローラーと、搬送路に沿って小切手を下流側に搬送する複数の搬送ローラーと、搬送路上で処理された小切手の排出先を切り替える切替板と、切替板で規定された方向に小切手を排出する排出ローラーと、を備えている。モータードライバー７３は、ホッパーを移動させるホッパー駆動モーター２６、ＡＳＦローラーを動作させるＡＳＦモーター２７、ピックアップローラー、搬送ローラー及び排出ローラーを動作させる搬送モーター４２、及び、切替板を動かす切替板駆動モーター５５に接続され、これら各モーターに駆動電流や駆動パルスを出力して、複合機側制御部７０の制御に従い各モーターを動作させる。モータードライバー７３は、上記の各ローラー及びモーターとともに、搬送機構を構成する。
【００１９】
読取制御回路７４は、ＭＣＲヘッド２２、ＭＩＣＲヘッド３５、表面ＣＩＳユニット４７、及び、裏面ＣＩＳユニット４８に接続されている。読取制御回路７４は、複合機側制御部７０の制御に従って、磁気カード用のスリットに磁気カードが通される際にＭＣＲヘッド２２によって磁気情報を読み取らせ、ＭＣＲヘッド２２が出力する読取信号をデジタル化して複合機側制御部７０に出力する。同様に、読取制御回路７４は、複合機側制御部７０の制御に従ってＭＩＣＲヘッド３５によって磁気情報を読み取らせ、ＭＩＣＲヘッド３５が出力する読取信号をデジタル化して複合機側制御部７０に出力する。また、読取制御回路７４は、複合機側制御部７０の制御に従って、表面ＣＩＳユニット４７及び裏面ＣＩＳユニット４８に、小切手の表面及び裏面の読み取りを実行させる。この際、表面ＣＩＳユニット４７及び裏面ＣＩＳユニット４８の各々から出力される信号をデジタルデータ化し、複合機側制御部７０に出力する。
【００２０】
上記のストッカーには、小切手の有無を検出するＡＳＦ用紙検出器３１と、ホッパーが待機位置にあるか否かを検出するホッパー位置検出器３２とが設けられている。また、複合機１は、搬送路上を含む各所に、小切手を検出する各種センサーを備えている。例えば、ＭＩＣＲヘッド３５の手前には、ＡＳＦローラーにより搬送された小切手を検出する用紙長検出器３８が配置され、この用紙長検出器３８により小切手の先端と後端とを検出することで、複合機側制御部７０により小切手の長さを求めることができる。ＭＩＣＲヘッド３５と、これより下流側に位置するインクジェットヘッド１０との間には、中間検出器４６が設けられ、さらに、表面ＣＩＳユニット４７及び裏面ＣＩＳユニット４８の下流側には、排出検出器５２が設けられている。複合機側制御部７０は、中間検出器４６及び排出検出器５２の検出状態に基づいて、小切手が正しく搬送されているか否かを監視できる。
センサー駆動回路７５には、上述したＡＳＦ用紙検出器３１、ホッパー位置検出器３２、用紙長検出器３８、中間検出器４６、及び排出検出器５２が接続されている。センサー駆動回路７５は、上記の各種センサーに電流を供給して、所定周期で出力値を取得し、取得した出力値をデジタルデータに変換して複合機側制御部７０に出力する。また、センサー駆動回路７５には、サーマルヘッド６５の温度を検出するサーミスタ等の他の各種センサーを接続することも勿論可能である。
【００２１】
インターフェイス部７６は、ホストコンピューター１００に対して有線または無線で接続され、複合機側制御部７０の制御に従って、ホストコンピューター１００との間で制御データを含む各種データを送受信する。
【００２２】
図２は、ホストコンピューター１００の機能ブロック図である。
ホストコンピューター１００は、プログラムを実行してホストコンピューター１００の各部を中枢的に制御するとともに、ホストコンピューター１００の制御装置としての機能を実現するＣＰＵ１０１と、ＣＰＵ１０１が実行する基本制御プログラム及びこのプログラムに係るデータ等を不揮発的に記憶したＲＯＭ１０２と、ＣＰＵ１０１が実行するプログラムや処理対象のデータを一時的に格納するためのワークエリアを形成するＲＡＭ１０３と、キーボードやマウス等の入力デバイスによる入力操作を検出し、検出した操作内容を示すデータをＣＰＵ１０１に出力する入力部１０４と、液晶ディスプレイパネルや有機ＥＬパネル等の表示画面に、入力デバイスによる入力内容、ＣＰＵ１０１により処理中のデータ、処理結果等の各種情報を表示する表示部１０５と、通信ネットワークを介して外部のコンピューターとの間で各種データを送受信する通信インターフェイス１０６と、複合機１との間で各種データを送受信するインターフェイス部１０７と、ＣＰＵ１０１が実行するアプリケーションプログラム等の各種プログラム、及び、これらのプログラムに係るデータ等を記憶する記憶部１１０とを備え、これらの各部はバス１０８により相互に通信可能に接続されている。
【００２３】
本実施形態では、インターフェイス部１０７及び複合機１が備えるインターフェイス部７６は、いずれもＵＳＢ（Universal Serial Bus）規格に準拠したコネクター及びインターフェイス回路を備え、ＵＳＢケーブルによって接続されたものとする。インターフェイス部１０７とインターフェイス部７６とは、いずれも複数のＵＳＢポート、或いは、ＵＳＢポート以外の接続ポートを備えたものであってもよいが、本実施形態ではインターフェイス部７６及びインターフェイス部１０７が一つのＵＳＢポートを介して接続されたものとして説明する。また、ホストコンピューター１００は、オペレーティングシステム１１３の機能によって接続ポートを仮想化し、インターフェイス部１０７が備える接続ポートの数に関わらず複数の論理ポートを設ける構成とすることが可能であるが、本実施形態では論理的にも一つの接続ポート（ＵＳＢポート）を介して複合機１に接続されたものとする。
【００２４】
記憶部１１０は、ＣＰＵ１０１が実行する複数のアプリケーションプログラム１１１と、デバイスドライバープログラム１１２と、オペレーティングシステム１１３と、を記憶している。オペレーティングシステム１１３は、ホストコンピューター１００の基本機能を実現する複数のプログラムからなるシステムであり、ＣＰＵ１０１により実行される。このオペレーティングシステム１１３は、デバイスドライバープログラム１１２及びアプリケーションプログラム１１１に対し、モジュール化された機能を提供する。例えば、オペレーティングシステム１１３を実行するＣＰＵ１０１は、インターフェイス部１０７が備えるＵＳＢポート１０９（図３）を制御する機能を提供し、デバイスドライバープログラム１１２が実行された場合に、ＵＳＢポート１０９を介したデータ通信を可能とする。なお、記憶部１１０が上記に挙げた他にも様々なプログラムやデータを記憶可能であることは勿論である。
【００２５】
複数のアプリケーションプログラム１１１は、それぞれ、複合機１が備える複数の機能のいずれかに対応し、複合機１を制御するプログラムである。また、デバイスドライバープログラム１１２は、ホストコンピューター１００によって複合機１を制御するためのプログラムであり、複合機１へ送信するコマンドの生成、複合機１から送信されたステータスの処理等の機能を有する。
【００２６】
図３は、ホストコンピューター１００が実行するソフトウェアの構成を模式的に示す図である。
この図３には、複合機１が備える各種のデバイスを機能毎にまとめて、サーマル印刷部８１、小切手処理部８２、及びフォトＩＤ読取部８３として示す。サーマル印刷部８１は、サーマルヘッド６５及び感熱ロール紙を搬送させる搬送モーター４２と、これらを制御するプリンター制御部７１、ヘッド駆動回路７２及び複合機側制御部７０を含み、複合機１がオートカッターユニットを備える場合は、このカッターユニットもサーマル印刷部８１に含まれる。
小切手処理部８２は、小切手の処理を行う機能部として、上述した搬送機構を構成する各種ローラー、ホッパー駆動モーター２６、ＡＳＦモーター２７、搬送モーター４２、切替板駆動モーター５５と、インクジェットヘッド１０と、小切手を読み取る表面ＣＩＳユニット４７、裏面ＣＩＳユニット４８、ＭＩＣＲヘッド３５と、小切手の搬送に係るＡＳＦ用紙検出器３１、ホッパー位置検出器３２、用紙長検出器３８、中間検出器４６、及び排出検出器５２の各センサーと、これらを制御する複合機側制御部７０、プリンター制御部７１、ヘッド駆動回路７２、モータードライバー７３、読取制御回路７４、及びセンサー駆動回路７５を含む。
フォトＩＤ読取部８３は、フォトＩＤを読み取る表面ＣＩＳユニット４７及び裏面ＣＩＳユニット４８と、これらを制御する複合機側制御部７０及び読取制御回路７４を含む。
複合機１が備える各デバイスは複数の機能で使用されるものもあるので、一つのデバイスが複数の機能部に含まれることもある。
【００２７】
ホストコンピューター１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３及び記憶部１１０と、ＣＰＵ１０１が実行するアプリケーションプログラム１１１、デバイスドライバープログラム１１２及びオペレーティングシステム１１３の機能により、制御部１２０を構成する。
制御部１２０は、ＣＰＵ１０１がアプリケーションプログラム１１１を実行することにより実現される複数のアプリケーションプログラム実行部１２１（アプリケーション実行手段）を有する。本実施形態では、アプリケーションプログラム実行部１２１として、サーマル印刷部８１よりサーマル印刷を実行させるアプリケーションプログラム実行部１２１−１、小切手処理部８２により小切手の読み取りを実行させるアプリケーションプログラム実行部１２１−２、及び、フォトＩＤ読取部８３によりフォトＩＤの読み取りを実行させるアプリケーションプログラム実行部１２１−３を例示する。これらアプリケーションプログラム実行部１２１−１〜３を総称する場合はアプリケーションプログラム実行部１２１と表記する。
【００２８】
また、制御部１２０は、デバイスドライバープログラム１１２（図２）により実現されるデバイスドライバープログラム実行部１３０を有する。デバイスドライバープログラム実行部１３０は、複数のドライバープログラム実行部１３１（コマンド制御手段）と、これら複数のドライバープログラム実行部１３１の各々に対応する複数のポートアクセスインターフェイス（ポートアクセスＩ／Ｆ）１３４、１３５、１３６（インターフェイス）、及びステータスフィルター１３７、１３８、１３９（フィルタリング手段）を備える。また、デバイスドライバープログラム実行部１３０は、複数のアプリケーションプログラム実行部１２１が一つのＵＳＢポートを介して通信を行うための排他制御を行うポート制御プロセス１４０（ポート制御手段）を有する。本実施形態では、ドライバープログラム実行部１３１として、アプリケーションプログラム実行部１２１−１に対応してサーマル印刷を実行させるドライバープログラム実行部１３１−１、アプリケーションプログラム実行部１２１−２に対応して小切手の読み取りを実行させるドライバープログラム実行部１３１−２、及び、アプリケーションプログラム実行部１２１−３に対応してフォトＩＤの読み取りを実行させるドライバープログラム実行部１３１−３を例示する。これらドライバープログラム実行部１３１−１〜１３１−３を総称する場合はドライバープログラム実行部１３１と表記する。
【００２９】
アプリケーションプログラム実行部１２１−１は、感熱ロール紙に印刷する文字や画像を編集し、複合機１への印刷指示と、印刷する文字を特定する文字コード及び画像データとを含むデータを出力する。また、アプリケーションプログラム実行部１２１−１は、複合機１のステータスを取得し、複合機１がビジー状態やオフラインである場合には印刷指示及び画像データの送信を待機する。
アプリケーションプログラム実行部１２１−２は、複合機１に対して小切手の搬送開始、読取開始等の指示を含むデータを出力する。複合機１は、表面ＣＩＳユニット４７及び裏面ＣＩＳユニット４８で読み取った読取画像データを、ホストコンピューター１００が複合機１に送信するコマンドに対する応答として、ステータスと同様に送信する。つまり、複合機１は、現在の複合機１の動作状態（オフライン、オンライン、エラー発生、エラー要因、エラー解消、ビジー、ビジー解除、読取成功、読取失敗等）を示す情報と同様に読取画像データを送信し、アプリケーションプログラム実行部１２１−２は、ステータスとして送信された読取画像データを取得する。
アプリケーションプログラム実行部１２１−３は、複合機１に対してフォトＩＤの読取開始等の指示を含むデータを出力する。複合機１は、フォトＩＤ読取部８３が表面ＣＩＳユニット４７及び裏面ＣＩＳユニット４８で読み取った読取画像データを、小切手の読取画像データと同様にステータスとして送信する。アプリケーションプログラム実行部１２１−３は、ステータスとして送信された読取画像データを取得する。
【００３０】
３つのドライバープログラム実行部１３１は、それぞれ、対応するアプリケーションプログラム実行部１２１が出力したデータに基づいて、複合機１に対応するコマンドを生成する。すなわち、ドライバープログラム実行部１３１−１はアプリケーションプログラム実行部１２１−１が出力したデータに基づいて、サーマル印刷部８１用の印刷コマンド等の各種コマンドと印刷データを生成して、ポートアクセスインターフェイス１３４を介してポート制御プロセス１４０に出力する。同様に、ドライバープログラム実行部１３１−２はアプリケーションプログラム実行部１２１−２が出力したデータに基づいて小切手処理部８２用のコマンドを生成して、ポートアクセスインターフェイス１３５を介してポート制御プロセス１４０に出力し、ドライバープログラム実行部１３１−３はアプリケーションプログラム実行部１２１−３が出力したデータに基づいてフォトＩＤ読取部８３用のコマンドを生成し、ポートアクセスインターフェイス１３６を介してポート制御プロセス１４０に出力する。
ポートアクセスインターフェイス１３４、１３５、１３６は、各ドライバープログラム実行部１３１とポート制御プロセス１４０との間のインターフェイスとして機能し、後述するポート制御プロセス１４０によるステータスの配信制御の一部を担う。
【００３１】
ポート制御プロセス１４０は、３つのドライバープログラム実行部１３１から入力されるコマンド及びデータに対する排他制御を行う。ポート制御プロセス１４０は、オペレーティングシステム１１３（図２）が提供するＵＳＢポートドライバー１４５の機能を利用して、インターフェイス部１０７が備える一つのＵＳＢポート１０９を介して複合機１とデータを送受信する。３つのドライバープログラム実行部１３１は、それぞれ、コマンドやデータを出力する際にＵＳＢポート１０９を占有しようとする。また、３つのアプリケーションプログラム実行部１２１は、複合機１の構成に最適化されていない可能性があり、他のアプリケーションプログラム実行部１２１と強調して複合機１の複数の機能を実行する機能を持たないこともある。このため、複数のアプリケーションプログラム実行部１２１がデータを出力することによって、複数のドライバープログラム実行部１３１がＵＳＢポート１０９の占有を試みたり、一つのドライバープログラム実行部１３１がＵＳＢポート１０９を占有している状態で他のドライバープログラム実行部１３１がＵＳＢポート１０９の占有を試行したりすると、衝突が発生する。
ポート制御プロセス１４０は、３つのアプリケーションプログラム実行部１２１及びこれらに対応する３つのドライバープログラム実行部１３１に対し、ＵＳＢポート１０９の占有状態を割り当てるため、後述するポート制御を行う。
【００３２】
また、３つのアプリケーションプログラム実行部１２１は、それぞれ、複合機１が送信するステータスに基づく動作を行う。アプリケーションプログラム実行部１２１−１は複合機１がビジーまたはオフラインになった場合は印刷データの出力を停止する。また、アプリケーションプログラム実行部１２１−２、１２１−３は複合機１がステータスとして送信する読取画像データを取得する。このため、複合機１が送信したステータスが各アプリケーションプログラム実行部１２１に適切に渡される必要がある一方で、各アプリケーションプログラム実行部１２１に無関係なステータスが渡されることは回避する必要がある。
【００３３】
ポート制御プロセス１４０は、複合機１がステータスを送信した場合に、このステータスを受信して、ポートアクセスインターフェイス１３４、１３５、１３６の全てに対して出力する。ポートアクセスインターフェイス１３４、１３５、１３６は、ステータスフィルター１３７、１３８、１３９を備えている。ステータスフィルター１３７、１３８、１３９は、それぞれ、ポート制御プロセス１４０が出力したステータスに含まれる情報を解析し、例えば当該ステータスがどのコマンドに対する応答かを示す情報に基づいて、対応するアプリケーションプログラム実行部１２１に関連するステータスのみを抽出（フィルタリング）する。これにより、ポートアクセスインターフェイス１３４、１３５、１３６は、対応するアプリケーションプログラム実行部１２１に関連するステータスのみを、ドライバープログラム実行部１３１に出力し、各ドライバープログラム実行部１３１はポートアクセスインターフェイス１３４、１３５、１３６から入力されたステータスをアプリケーションプログラム実行部１２１に渡す。
【００３４】
以下、ポート制御プロセス１４０による排他制御とステータスの受信制御について詳細に説明する。
図４は、ポート制御処理を示すフローチャートであり、図５はステータス制御処理を示すフローチャートである。また、図４及び図５の一部のステップの動作を、該当するステップ番号を付して図３において矢印で示す。
まず、図４及び図３を参照してポート制御プロセス１４０によるポート制御処理を説明する。
ポート制御プロセス１４０は、複合機１及びホストコンピューター１００が待機している場合、ポート制御プロセス１４０は、３つのドライバープログラム実行部１３１のいずれかがＵＳＢポート１０９を占有した状態とする（ステップＳ１１）。ここでＵＳＢポート１０９を占有するのは、ドライバープログラム実行部１３１のうち予め設定されたものであってもよいし、最後にＵＳＢポート１０９を占有したものであってもよい。
アプリケーションプログラム実行部１２１のいずれかが、複合機１を制御するためのデータを出力すると（ステップＳ１２）、このアプリケーションプログラム実行部１２１に対応するドライバープログラム実行部１３１が、ポート制御プロセス１４０に対してポート使用の要求を出力する（ステップＳ１３）。
【００３５】
ポート制御プロセス１４０は、ポートの使用を要求したドライバープログラム実行部１３１が、ＵＳＢポート１０９を占有しているか否かを判別する（ステップＳ１４）。ＵＳＢポート１０９を占有しているドライバープログラム実行部１３１からのポート使用要求であった場合（ステップＳ１４；Ｙｅｓ）、ポート制御プロセス１４０は、後述するステップＳ１９に移行する。
これに対し、ポート使用要求をしたドライバープログラム実行部１３１が、ＵＳＢポート１０９を占有しているドライバープログラム実行部１３１でなかった場合（ステップＳ１４；Ｎｏ）、ポート制御プロセス１４０は、ＵＳＢポート１０９を占有しているドライバープログラム実行部１３１が、複合機１の制御中であるか否かを判別する（ステップＳ１５）。例えば、アプリケーションプログラム実行部１２１−２が複合機１の小切手処理部８２を制御して小切手の読み取りを実行させ、ドライバープログラム実行部１３１−２はコマンドを生成して出力している間は、複合機１を制御中であると判別する。ここで、全てのドライバープログラム実行部１３１が、複合機１を制御して行う一つの処理（ジョブ）が完了した際に、ポート制御プロセス１４０に対して出力完了を通知する構成としてもよく、この場合、ポート制御プロセス１４０は、出力完了の通知があるまでは複合機１を制御中であると判別する。
【００３６】
ポート制御プロセス１４０は、ポート使用要求を出力したドライバープログラム実行部１３１が、ＵＳＢポート１０９を占有して複合機１を制御している場合は（ステップＳ１５；Ｎｏ）、ポート使用要求を出力したドライバープログラム実行部１３１に対して占有中であることを通知し（ステップＳ１６）、ステップＳ１３に戻る。ここで占有中を通知されたドライバープログラム実行部１３１は、予め設定された所定時間待機してから、再びポート使用要求を出力する。
【００３７】
また、ＵＳＢポート１０９を占有しているドライバープログラム実行部１３１が複合機１を制御中でない場合（ステップＳ１５；Ｙｅｓ）、ポート制御プロセス１４０は、占有中のドライバープログラム実行部１３１に対して占有の解除を通知し（ステップＳ１７）、ポート使用要求を出力したドライバープログラム実行部１３１に対してポートの開放を通知し（ステップＳ１８）、ステップＳ１９に移行する。
【００３８】
ステップＳ１９で、ポート制御プロセス１４０は、ポート使用要求を出力したドライバープログラム実行部１３１に対して送信権を付与する。ここでドライバープログラム実行部１３１に送信権を付与した後は、送信権が付与されたドライバープログラム実行部１３１がＵＳＢポート１０９を占有することになる。送信権が付与されたドライバープログラム実行部１３１がコマンドを出力すると（ステップＳ２０）、ポート制御プロセス１４０は、このコマンドを、ＵＳＢポート１０９を介して複合機１へ送信する（ステップＳ２１）。その後、一連の処理に要する全ての通信が完了した後、ドライバープログラム実行部１３１がデータ出力完了をポート制御プロセス１４０に対して通知する（ステップＳ２２）。これによりポート制御プロセス１４０は待機状態に移行し、最後にデータを通信したドライバープログラム実行部１３１または予め設定されたドライバープログラム実行部１３１がＵＳＢポート１０９を占有した状態で、待機状態に移行する。
【００３９】
次に、図５及び図３を参照してポート制御プロセス１４０によるポート制御処理を説明する。図５（Ａ）はポート制御プロセス１４０の動作を示し、図５（Ｂ）はポートアクセスインターフェイス１３４，１３５、１３６の動作を示す。
ポート制御プロセス１４０は、複合機１からステータスを受信すると（ステップＳ３１）、受信したステータスを全てのポートアクセスインターフェイス１３４、１３５、１３６に配信する（ステップＳ３２）。
【００４０】
ここで、ポートアクセスインターフェイス１３４、１３５、１３６は、ポート制御プロセス１４０から配信されたステータスを受信し（ステップＳ４１）、ステータスフィルター１３７、１３８、１３９によりフィルタリングを実行させる。
すなわち、ポートアクセスインターフェイス１３４は、ステータスフィルター１３７により、ポート制御プロセス１４０から入力されたステータス（データ）のうち、アプリケーションプログラム実行部１２１−１に関連するステータスを抽出させる。ポートアクセスインターフェイス１３４は、ポート制御プロセス１４０から配信されたステータスがアプリケーションプログラム実行部１２１−１に関連するステータスか否かの判別を行い（ステップＳ４２）、関連するステータスでなければ（ステップＳ４２；Ｎｏ）、このステータスを破棄する（ステップＳ４３）。また、ステータスフィルター１３７は、ポート制御プロセス１４０から配信されたステータスがアプリケーションプログラム実行部１２１−１に関連するステータスであると判別した場合は（ステップＳ４２；Ｙｅｓ）、このステータスをポートアクセスインターフェイス１３４に返し、ポートアクセスインターフェイス１３４がドライバープログラム実行部１３１−１に対してステータスを出力し（ステップＳ４４）、アプリケーションプログラム実行部１２１−１にステータスが渡される（ステップＳ４５）。
【００４１】
ステータスフィルター１３８も同様に、ポートアクセスインターフェイス１３５にポート制御プロセス１４０から入力されたステータスに含まれる情報を解析し、アプリケーションプログラム実行部１２１−２に関連するステータスのみをフィルタリングする。ポートアクセスインターフェイス１３５は、ポート制御プロセス１４０から入力されたステータスのうち、ステータスフィルター１３８がフィルタリングしたステータスをドライバープログラム実行部１３１−２に出力し、ドライバープログラム実行部１３１−２はこのステータスをアプリケーションプログラム実行部１２１−２に渡す。
また、ステータスフィルター１３９は、ポートアクセスインターフェイス１３６にポート制御プロセス１４０から入力されたステータスに含まれる情報を解析し、アプリケーションプログラム実行部１２１−３に関連するステータスのみをフィルタリングする。ポートアクセスインターフェイス１３６は、ポート制御プロセス１４０から入力されたステータスのうち、ステータスフィルター１３９がフィルタリングしたステータスをドライバープログラム実行部１３１−３に出力し、ドライバープログラム実行部１３１−３はこのステータスをアプリケーションプログラム実行部１２１−３に渡す。
【００４２】
このように、ホストコンピューター１００においては、互いに連携する機能を持たない複数のアプリケーションプログラム実行部１２１が個別に複合機１に対するデータを出力した場合に、これらのデータに基づいてコマンドが生成され、互いに衝突しないように複合機１にコマンドが送信されるので、各アプリケーションプログラム実行部１２１はそれぞれ複合機１を制御して動作を実行させることができる。また、複合機１がステータスをホストコンピューター１００に通知した場合には、このステータスが全てのアプリケーションプログラム実行部１２１に対応するポートアクセスインターフェイス１３４、１３５、１３６に配信され、ステータスフィルター１３７、１３８、１３９がフィルタリングを行うことにより、対応するアプリケーションプログラム実行部１２１にのみステータスが渡される。このため、各アプリケーションプログラム実行部１２１は、複合機１から通知されるステータスに基づいて複合機１を制御できる。
従って、各アプリケーションプログラム実行部１２１は、あたかも１対１で複合機１に接続された場合と同様に、複合機１との間でデータを送受信して、複合機１の機能を利用できる。
【００４３】
ホストコンピューター１００は、複合機１を制御するアプリケーションプログラム実行部１２１により、複合機１に対してＡＳＢ（オートステータスバック）機能を設定するステータスバック設定コマンドを送信することも可能である。すなわち、ホストコンピューター１００から複合機１に対してステータス要求コマンドを送信すると、複合機１は、このステータス要求コマンドに応答して、現在の動作状態を示す情報等を含むステータスを通知する。上述した読取画像データもステータス要求コマンドへの応答として複合機１から送信される。
ここで、ホストコンピューター１００がステータスバック設定コマンドを送信し、複合機１は、ＡＳＢ（オートステータスバック）が設定された場合、動作状態が変化する毎に複合機１へステータスを通知する機能を備えている。このため、複合機１は、オンライン、オフライン、エラー発生、エラー解消、ビジー、ビジー解除、読取成功、読取失敗など、ステータスが変化する毎にステータスをホストコンピューター１００に通知する。ホストコンピューター１００では、ステータスフィルター１３７、１３８、１３９が、ＡＳＢ機能によるステータスを、対応するアプリケーションプログラム実行部１２１に関連するステータスとしてフィルタリングすれば、全てのアプリケーションプログラム実行部１２１にＡＳＢ機能によるステータスが通知される。このため、複合機１は、通常のＡＳＢ機能によるステータスの通知を行うことができ、ホストコンピューター１００においては、各アプリケーションプログラム実行部１２１が、他のアプリケーションプログラム実行部１２１の存在に関係なく、１対１で複合機１に接続された場合と同様にＡＳＢ機能によるステータスを受け取ることができる。
【００４４】
さらに、ホストコンピューター１００は、複合機１に対して、通常の印刷動作や読取動作を指示するコマンドに限らず、即時実行コマンド（リアルタイムコマンド）を送信して、複合機１を制御することもできる。即時実行コマンドは、サーマル印刷部８１、小切手処理部８２、或いはフォトＩＤ読取部８３のように駆動部を動作させることなく複合機１が実行可能なコマンドであり、例えばステータス通知要求や、複合機側制御部７０のソフトリセット、或いはハードウェアの初期化を含むリセットを指示するコマンドである。即時実行コマンドは、複合機１が通常のコマンドを受け付けないオフライン状態及びビジー状態でも受信される。複合機１は、この即時実行コマンドを受信するため、ビジー状態でも即時実行コマンドを格納可能なバッファーメモリーを有する構成としてもよい。さらに、複合機１は、通常のコマンドを受信した場合には、バッファーメモリーに格納したコマンドを受信順に実行するよう構成され、即時実行コマンドを受信した場合は、それ以前に受信したコマンドの受信順に関係なく即時実行コマンドを優先して実行する。
【００４５】
ホストコンピューター１００において、アプリケーションプログラム実行部１２１が複合機１に対し即時実行コマンドを送信した場合、複合機１は即座にコマンドを実行し、実行結果をステータスとしてホストコンピューター１００に通知する。ポート制御プロセス１４０は、複合機１を制御するアプリケーションプログラム実行部１２１が処理を完了するまで、例えばドライバープログラム実行部１３１が処理完了を通知するまでは、ＵＳＢポート１０９を占有させるので、例えば、即時実行コマンドとしてステータス通知要求を送信し、返信としてのステータスを受信し、即時実行コマンドとしてリセット指示コマンドを送信する一連の動作を、連続して実行でき、この間、他のアプリケーションプログラム実行部１２１が複合機１を制御しないようにできる。このため、複合機１に対する制御が混乱することなく、即時実行コマンドによる制御を行える。
【００４６】
以上説明したように、本発明を適用した実施形態に係るホストコンピューター１００によれば、複数のデバイスを備えた複合機１を制御し、複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラム１１１をそれぞれ実行する複数のアプリケーションプログラム実行部１２１と、複合機１からＵＳＢポート１０９を介してデータを受信する一方、アプリケーションプログラム実行部１２１から入力されるデータの排他制御を行って、ＵＳＢポート１０９から複合機１にデータを送信するポート制御プロセス１４０と、複数のアプリケーションプログラム実行部１２１に対応して設けられ、ポート制御プロセス１４０により受信されたデータをフィルタリングして、アプリケーションプログラム実行部１２１に渡す複数のポートアクセスインターフェイス１３４、１３５、１３６と、を備え、複数のアプリケーションプログラム実行部１２１がＵＳＢポート１０９を介して複合機１にデータを送信し、複合機１から送信されるステータスを取得できる。このため、それぞれ複合機１を使用するアプリケーションプログラム１１１を、他のアプリケーションプログラム１１１との協調を図る機能を持たせることなく実行させ、複合機１を制御できる。これにより、アプリケーションプログラム１１１を複合機１の構成に合わせて最適化する必要がなく、例えば単一のデバイスを備えた装置に合わせて設計されたアプリケーションプログラム１１１を、複合機１に対して使用できる。
【００４７】
また、制御部１２０は、複数のポートアクセスインターフェイス１３４、１３５、１３６の各々に対応して設けられ、ポート制御プロセス１４０により複合機１から受信されたデータのうち、対応するアプリケーションプログラム実行部１２１に関連するステータスを抽出する複数のステータスフィルター１３７、１２８、１３９を備え、複数のアプリケーションプログラム実行部１２１の各々に対し、複合機１が送信するステータスのうち関連するステータスを抽出して渡すことができるので、複合機１の構成に合わせて最適化されたアプリケーションプログラム１１１でなくても、複合機１からのステータスを取得でき、複合機１のステータスに基づく制御を行える。
【００４８】
さらに、複数のドライバープログラム実行部１３１が、複合機１によりデバイスの機能を実行させる通常コマンドと、通常コマンドより優先して実行される即時実行コマンドと、複合機１に対して動作ステータスの変更時にステータスを送信させるステータスバック設定コマンドとを生成可能であり、ポート制御プロセス１４０は、即時実行コマンドに対する応答を全てのアプリケーションプログラム実行部１２１に渡したり、即時実行コマンドに関する処理が完了するまで一つのアプリケーションプログラム実行部１２１にＵＳＢポート１０９を占有させたり、ステータスバック設定コマンドによりＡＳＢ機能が設定され、複合機１がＡＳＢ機能により送信するステータスを全てのアプリケーションプログラム実行部１２１に渡したりすることができる。これにより、複合機１の構成に合わせて最適化されたアプリケーションプログラム１１１を用いなくても、複合機１を詳細に制御できる。
【００４９】
また、ポート制御プロセス１４０は、単一のＵＳＢポート１０９を介して複合機１とデータの送受信を行い、複合機１からＵＳＢポート１０９を介して受信したデータを全てのポートアクセスインターフェイス１３４、１３５、１３６に出力し、いずれかのドライバープログラム実行部１３１が生成したコマンドを排他的にＵＳＢポート１０９を介して複合機１に送信するので、単一のＵＳＢポート１０９を介して接続した複合機１を、複合機１の構成に合わせた最適化がされていない複数のアプリケーションプログラム１１１により制御できる。
【００５０】
なお、上記実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、複合機１が複数のデバイスによって実現する機能は、サーマル印刷部８１、小切手処理部８２、及びフォトＩＤ読取部８３に限定されず、２つのみであってもよいし、より多くの機能を有する構成とすることもできる。また、ＣＰＵ１０１が並列的に実行するアプリケーションプログラム１１１の数、すなわちアプリケーションプログラム実行部１２１の数も任意であり、３以上とすることが可能である。また、例えば、複合機１が処理する処理対象媒体は小切手に限定されず、他の帳票類であってもよく、複合機１で使用可能な処理対象媒体のサイズについても任意である。また、複合機１は、サーマルヘッド６５に代えてインクジェットヘッドを備え、ロール紙にインクを吐出して印刷するものであってもよく、インクジェット式の記録ヘッドの他に、サーマルラインプリンター、ドットインパクト式プリンター、レーザープリンター、熱昇華型プリンター等を用いることも可能である。
また、上記実施形態では、複合機１に外部接続されたホストコンピューター１００が複合機１を制御する構成を例に挙げて説明したが、ホストコンピューター１００と複合機１とが同一の装置に組み込まれた構成としてもよい。
【００５１】
さらに、図１及び図２のブロック図に示した各機能部は機能的構成を示すものであって、各機能部を独立したハードウェアにより構成する必要はなく、ソフトウェアとハードウェアとの協働により、複数の機能部の機能を１つのハードウェアに集約して実現することも、一つの機能部を複数のハードウェアにより実現することも勿論可能である。
また、上述の動作を行うホストコンピューター１００のＣＰＵ１０１が実行する各種プログラムは、記憶部１１０が記憶する構成に限らず、可搬型の記録媒体に記憶されている構成であってもよいし、或いは、通信回線を介して接続された他の装置にダウンロード可能に記憶され、これらの装置からホストコンピューター１００が上記プログラムをダウンロードして実行してもよく、ＣＰＵ１０１が実行するアプリケーションプログラム１１１及びデバイスドライバープログラム１１２、オペレーティングシステム１１３についても同様であり、その他の構成についても任意に変更可能である。
【符号の説明】
【００５２】
１…複合機、７０…複合機制御部、７６…インターフェイス部、８１…サーマル印刷部、８２…小切手処理部、８３…フォトＩＤ読取部、１００…ホストコンピューター（制御装置）、１０１…ＣＰＵ、１０７…インターフェイス部、１０９…ＵＳＢポート（接続ポート）、１１０…記憶部、１１１…アプリケーションプログラム、１１２…デバイスドライバープログラム、１１３…オペレーティングシステム、１２０…制御部、１２１…アプリケーションプログラム実行部（アプリケーション実行手段）、１３０…デバイスドライバープログラム実行部、１３１…ドライバープログラム実行部（コマンド制御手段）、１３４、１３５、１３６…ポートアクセスインターフェイス（インターフェイス）、１３７、１３８，１３９…ステータスフィルター（フィルタリング手段）、１４０…ポート制御プロセス（ポート制御手段）、１４５…ＵＳＢポートドライバー。
【図１】
0005845776.tif 000002
【図２】
0005845776.tif 000003
【図３】
0005845776.tif 000004
【図４】
0005845776.tif 000005
【図５】
0005845776.tif 000006