"複数のデバイスを備えた複合機を制御する制御装置であって、前記複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラムをそれぞれ実行する複数のアプリケーション実行手段と、前記複合機から接続ポートを介してデータを受信する一方、前記複数のアプリケーション実行手段から入力されるデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信するポート制御手段と、前記複数のアプリケーション実行手段に対応して設けられ、前記ポート制御手段により受信された前記データをフィルタリングして、前記アプリケーション実行手段に渡す複数のインターフェイスと、を備えることを特徴とする制御装置。前記複数のインターフェイスの各々に対応して設けられ、前記ポート制御手段により記複合機から受信されたデータのうち、前記インターフェイスが対応する前記アプリケーションプログラムに関連するステータスを抽出する複数のフィルタリング手段を備えることを特徴とする請求項1記載の制御装置。各々の前記アプリケーションプログラムに対応して設けられ、前記アプリケーション実行手段から入力されるデータに基づいて前記複合機を制御するコマンドを生成する複数のコマンド制御手段を備え、前記コマンド制御手段は、前記複合機により前記デバイスの機能を実行させる通常コマンドと、前記通常コマンドより優先して実行される即時実行コマンドと、前記複合機に対して動作ステータスの変更時にステータスを送信させるステータスバック設定コマンドとを生成可能であることを特徴とする請求項1または2記載の制御装置。前記ポート制御手段は、単一の前記接続ポートを介して前記複合機とデータの送受信を行い、前記複合機から前記接続ポートを介して受信したデータを全ての前記インターフェイスに出力し、いずれかの前記コマンド制御手段が生成したコマンドを排他的に前記接続ポートを介して前記複合機に送信することを特徴とする請求項3記載の制御装置。複数のデバイスを備えた複合機を制御する複合機の制御方法であって、前記複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラムをそれぞれ実行し、前記複合機に接続された接続ポートを介して前記複合機からデータを受信する一方、前記複数のアプリケーションプログラムからのデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信し、前記複合機から受信したデータをフィルタリングして、前記アプリケーションプログラムに渡すこと、を特徴とする複合機の制御方法。複数のデバイスを備えた複合機を制御する制御部により実行されるプログラムであって、前記制御部を、前記複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラムをそれぞれ実行する複数のアプリケーション実行手段と、前記複合機から接続ポートを介してデータを受信する一方、前記複数のアプリケーション実行手段からのデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信するポート制御手段と、前記複数のアプリケーション実行手段に対応して設けられ、前記ポート制御手段により受信されたデータをフィルタリングして、前記アプリケーション実行手段に渡す複数のインターフェイスと、して機能させることを特徴とするプログラム。一般に、複合機は多様な機能を有しており、これらの多様な機能に対応するために機種毎の専用のデバイスドライバープログラムを必要とすることが少なくない。さらに、デバイスドライバープログラムを介して複合機を使用するアプリケーションプログラムについても、複合機の仕様に合わせて最適化されることがあった。このような手法を採用した場合、複合機の新規の導入や機種の置き換えを行う際に、新しい複合機に合わせてソフトウェアを開発する負担があり、負担の軽減が求められていた。そこで本発明は、複数のデバイスを備えた複合機を使用する際に、この複合機に対する最適化がされていないプログラムであっても上記複合機を使用できるようにした制御装置、複合機の制御方法、及びプログラムを提供することを目的とする。上記目的を達成するために、本発明は、複数のデバイスを備えた複合機を制御する制御装置であって、前記複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラムをそれぞれ実行する複数のアプリケーション実行手段と、前記複合機から接続ポートを介してデータを受信する一方、前記複数のアプリケーション実行手段から入力されるデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信するポート制御手段と、前記複数のアプリケーションプログラムに対応して設けられ、前記ポート制御手段により受信された前記データをフィルタリングして、前記アプリケーション実行手段に渡す複数のインターフェイスと、を備えることを特徴とする。本発明によれば、複数のアプリケーションプログラムによって、接続ポートを介して複合機にデータを送信し、複合機から送信されるステータスを取得できる。このため、それぞれ複合機を使用する複数のアプリケーションプログラムを、他のアプリケーションプログラムとの協調を図る機能を持たせることなく使用できる。これにより、アプリケーションプログラムを複合機の構成に合わせて最適化する必要がなく、例えば単一のデバイスを備えた装置に合わせて設計されたアプリケーションプログラムを、複合機に対して使用できる。また、本発明は、上記制御装置において、前記複数のインターフェイスの各々に対応して設けられ、前記ポート制御手段により前記複合機から受信されたデータのうち、前記インターフェイスが対応する前記アプリケーションプログラムに関連するステータスを抽出する複数のフィルタリング手段を備える。本発明によれば、複数のアプリケーションプログラムの各々に対し、複合機が送信するデータのうち、各アプリケーションプログラムに関連するステータスを抽出して渡すことができるので、複合機の構成に合わせて最適化されたアプリケーションプログラムでなくても、複合機からのステータスを取得でき、複合機のステータスに基づく制御を行える。また、本発明は、上記制御装置において、各々の前記アプリケーションプログラムに対応して設けられ、前記アプリケーション実行手段から入力されるデータに基づいて前記複合機を制御するコマンドを生成する複数のコマンド制御手段を備え、前記コマンド制御手段は、前記複合機により前記デバイスの機能を実行させる通常コマンドと、前記通常コマンドより優先して実行される即時実行コマンドと、前記複合機に対して動作ステータスの変更時にステータスを送信させるステータスバック設定コマンドとを生成可能であることを特徴とする。本発明によれば、アプリケーションプログラムが出力したデータに基づいて複合機を制御する通常のコマンドを送信することができ、即時実行コマンドを送信して複合機がビジー状態であっても制御を行うことができ、さらに、ステータスバック設定コマンドを送信して複合機のステータスを自動的に送信させることができる。これにより、複合機の構成に合わせて最適化されたアプリケーションプログラムを用いなくても、複合機を詳細に制御できる。また、本発明は、上記制御装置において、前記ポート制御手段は、単一の前記接続ポートを介して前記複合機とデータの送受信を行い、前記複合機から前記接続ポートを介して受信したデータを全ての前記インターフェイスに出力し、いずれかの前記コマンド制御手段が生成したコマンドを排他的に前記接続ポートを介して前記複合機に送信することを特徴とする。本発明によれば、複数のデバイスを備えた複合機に単一の接続ポートを介してデータを送受信する場合に、複合機の構成に合わせた最適化がされていない複数のアプリケーションプログラムを実行して複合機を制御できる。また、上記目的を達成するために、本発明は、複数のデバイスを備えた複合機を制御する複合機の制御方法であって、前記複数のデバイスの少なくともいずれかに応した複数のアプリケーションプログラムをそれぞれ実行し、前記複合機に接続された接続ポートを介して前記複合機からデータを受信する一方、前記複数のアプリケーションプログラムからのデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信し、前記複合機から受信したデータをフィルタリングして、前記アプリケーションプログラムに渡すこと、を特徴とする。本発明の制御方法を実行することにより、複数のアプリケーションプログラムが接続ポートを介して複合機にデータを送信し、複合機から送信されるステータス等のデータを取得できる。このため、複合機を使用する複数のアプリケーションプログラムを、他のアプリケーションプログラムとの協調を図る機能を持たせることなく使用できる。これにより、アプリケーションプログラムを複合機の構成に合わせて最適化する必要がなく、例えば単一のデバイスを備えた装置に合わせて設計されたアプリケーションプログラムを、複合機に対して使用できる。また、上記目的を達成するために、本発明は、複数のデバイスを備えた複合機を制御する制御部により実行されるプログラムであって、前記制御部を、前記複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラムをそれぞれ実行する複数のアプリケーション実行手段と、前記複合機から接続ポートを介してデータを受信する一方、複数の前記アプリケーション実行手段からのデータの排他制御を行って、前記接続ポートから前記複合機にデータを送信するポート制御手段と、前記複数のアプリケーションプログラムに対応して設けられ、前記ポート制御手段により受信されたデータをフィルタリングして、前記アプリケーション実行手段に渡す複数のインターフェイスと、して機能させることを特徴とする。本発明のプログラムを実行することによって、制御部が、複数のアプリケーションプログラムを実行して接続ポートを介して複合機にデータを送信し、複合機から送信されるステータス等のデータを取得できる。このため、それぞれ複合機を使用する複数のアプリケーションプログラムを、他のアプリケーションプログラムとの協調を図る機能を持たせることなく使用できる。これにより、アプリケーションプログラムを複合機の構成に合わせて最適化する必要がなく、例えば単一のデバイスを備えた装置に合わせて設計されたアプリケーションプログラムを、複合機に対して使用できる。本発明によれば、複合機の構成に合わせて最適化されていないアプリケーションプログラムであっても、複合機に対して使用できる。以下、図面を参照して本発明を適用した実施形態について説明する。図1は、記録システム8が備える複合機1の機能ブロック図である。記録システム8は、この図1に示す複合機1と、複合機1を制御する制御装置としてのホストコンピューター100とを接続して構成される。複合機1は、処理対象媒体を搬送する搬送手段としての各種モーター及び搬送ローラーと、磁気インク文字列の磁気文字認識MICR:MagneticInkCharacterRecognitionを行うMICRヘッド35と、処理対象媒体に印刷を行うインクジェットヘッド10と、処理対象媒体を光学的に読み取る表面CISContactImageSensorユニット47及び裏面CISユニット48と、を含むデバイスを備え、これらは処理対象媒体の搬送路に配置されている。処理対象媒体としては、規定された範囲内のサイズのカットシートが用いられ、本実施形態では、小切手を処理対象媒体の例に挙げて説明する。小切手は、所定の模様や装飾が施されたシート用紙に金額、振出人、通し番号、サインなどが印字または記載された帳票である。これら金額、振出人、通し番号、サインなどは表面にあり、裏面には裏書き欄が設けられている。また、小切手の表面には、小切手の長辺方向に延びる磁気インク文字列が形成されている。この磁気インク文字列は、磁気インクで印刷された複数の磁気インク文字MICR文字が並んだものであり、磁気的または光学的に読み取ることができる。小切手の短辺方向及び長辺方向のサイズは規格化されているものの、多様な規格が存在するため、実際には様々なサイズがあり、複合機1は、一般的な小切手のサイズをほぼ包含し得る最大サイズを規定し、この最大サイズ内の小切手を処理できる。複合機1は、ホストコンピューター100の制御に従って、小切手に記録された磁気インク文字列を読み取るMICR機能、小切手に文字や画像を記録印刷する印刷機能、小切手の両面を光学的に読み取って読み取る画像データを生成するスキャン機能を実行する。MICR機能の実行時、複合機1は、ホストコンピューター100から送信されるコマンドに従って、小切手の表面に接して磁気インク文字列を磁気的に読み取るMICRヘッド35を制御し、磁気インク文字列を読み取り、磁気波形または磁気波形を認識した認識結果をホストコンピューター100に送信する。印刷機能の実行時、複合機1は、ホストコンピューター100から送信されるコマンド及び印刷データに従って、当該印刷データに含まれる文字や画像をレイアウトした印刷イメージを生成し、インクジェットヘッド10によって小切手に印刷する。これにより、例えば、小切手の裏面に設けられた裏書き欄に、裏書きに係る文字や画像が記録される。また、スキャン機能の実行時、複合機1は、ホストコンピューター100から送信されるコマンドに従って、表面CISユニット47及び裏面CISユニット48により小切手の表裏両面を光学的に読み取り、表面の読取画像データと裏面の読取画像データとをホストコンピューター100に送信する。上記の搬送路においては、MICRヘッド35、インクジェットヘッド10、表面CISユニット47及び裏面CISユニット48の順に配置されているため、小切手に対してMICR機能、印刷機能、スキャン機能の順に実行される。この構成には、例えばMICR機能で磁気インク文字列を正確に認識できなかった場合に、表面CISユニット47の読取画像データに基づいてOCR光学文字認識で認識できるという利点、インクジェットヘッド10により裏書き印刷された状態の小切手をスキャンできるという利点がある。このため、実際に小切手がセットされた場合、複合機1は、ホストコンピューター100から送信されるコマンドに従って、MICR機能、印刷機能及びスキャン機能を一連のシーケンスとして実行することで、処理の高速化を図っている。また、この一連のシーケンスには、処理対象の小切手を搬送路に取り込み、搬送路上を搬送し、処理後の小切手を所定の排出ポケット図示略に排出する動作も含まれる。また、複合機1は、表面CISユニット47及び裏面CISユニット48を使用して、IDカード等を光学的に読み取るフォトID機能を備えている。このフォトID機能では、処理対象媒体の搬送路から分岐して設けられたスキャン用の溝に、複合機1を使用するユーザーがカード型の媒体写真付きIDカード等をセットすることで、この媒体を光学的に読み取って、読取画像データを生成する機能である。フォトID機能の実行時、複合機1は、ホストコンピューター100から送信されるコマンドに従って、カード型媒体の挿入を検出し、表面CISユニット47及び裏面CISユニット48のいずれか一方、或いは両方を用いてカード型媒体を光学的に読み取り、読取画像データをホストコンピューター100に送信する。さらに、複合機1は、本体に感熱ロール紙をセットするロール紙収容部図示略を有し、この感熱ロール紙に印刷を行うサーマルヘッド65を備えている。複合機1は、上記の処理対象媒体とは別に、感熱ロール紙に対する印刷を行える。サーマルヘッド65を用いたサーマル印刷機能の実行時、複合機1は、ホストコンピューター100から送信されるコマンド及び印刷データに従って、当該印刷データに含まれる文字や画像をレイアウトした印刷イメージを生成し、感熱ロール紙を搬送しながらサーマルヘッド65によって印刷を行う。ここで、複合機1がオートカッターユニットを設けた構成としてもよく、この場合、サーマル印刷機能の実行時に印刷後の感熱ロール紙を所定位置まで搬送し、カットする。さらにまた、複合機1は、小切手などの処理対象媒体の搬送路とは別に、クレジットカードや金融機関のキャッシュカード等の磁気カードを通すスリットを備えており、このスリットを通る磁気カードに記録された磁気情報を読み取るMCRヘッド22を備えている。複合機1は、上記スリットにユーザーが磁気カードを通すことで、磁気情報を読み取り、ホストコンピューター100に出力するMCR機能を備えている。MCR機能の実行時、複合機1は、ホストコンピューター100から送信されるコマンドに従って、MCRヘッド22による磁気情報の読取を実行し、読み取った磁気波形磁気波形を認識した認識結果をホストコンピューター100に送信する。図1に示すように,複合機1は、複合機1全体を制御するCPU、RAM、フラッシュROM等により構成される複合機側制御部70と、プリンター制御部71と、ヘッド駆動回路72と、モータードライバー73と、読取制御回路74と、センサー駆動回路75と、インターフェイスI/F部76とを有し、これらの各部は相互に通信可能に接続されている。複合機側制御部70は、フラッシュROMに記憶されている制御プログラムをCPUにより読み出して実行することにより、複合機1の各部を制御する。プリンター制御部71は、複合機側制御部70の制御の下、ヘッド駆動回路72を介してインクジェットヘッド10に駆動電流を供給し、小切手に印刷する。また、プリンター制御部71は、複合機側制御部70の制御の下、ヘッド駆動回路72を介してサーマルヘッド65に駆動電流を供給し、感熱ロール紙に印刷する。また、インクジェットヘッド10は、図示せぬキャップによるキャッピング可能に構成されると共に、フラッシング、クリーニング、及び、ワイパーによるワイピングを実行可能に構成され、プリンター制御部71は、複合機側制御部70の制御に従って、インクジェットヘッド10のフラッシング、クリーニング、及び、ワイパーによるワイピングを適宜実行させる。複合機1は、小切手を搬送する搬送機構として、処理前の小切手が貯留されるストッカーから1枚の小切手を取り出すホッパー及びピックアップローラーと、取り出された小切手を搬送路に引き入れるASFAutomaticallySheetFeederローラーと、搬送路に沿って小切手を下流側に搬送する複数の搬送ローラーと、搬送路上で処理された小切手の排出先を切り替える切替板と、切替板で規定された方向に小切手を排出する排出ローラーと、を備えている。モータードライバー73は、ホッパーを移動させるホッパー駆動モーター26、ASFローラーを動作させるASFモーター27、ピックアップローラー、搬送ローラー及び排出ローラーを動作させる搬送モーター42、及び、切替板を動かす切替板駆動モーター55に接続され、これら各モーターに駆動電流や駆動パルスを出力して、複合機側制御部70の制御に従い各モーターを動作させる。モータードライバー73は、上記の各ローラー及びモーターとともに、搬送機構を構成する。読取制御回路74は、MCRヘッド22、MICRヘッド35、表面CISユニット47、及び、裏面CISユニット48に接続されている。読取制御回路74は、複合機側制御部70の制御に従って、磁気カード用のスリットに磁気カードが通される際にMCRヘッド22によって磁気情報を読み取らせ、MCRヘッド22が出力する読取信号をデジタル化して複合機側制御部70に出力する。同様に、読取制御回路74は、複合機側制御部70の制御に従ってMICRヘッド35によって磁気情報を読み取らせ、MICRヘッド35が出力する読取信号をデジタル化して複合機側制御部70に出力する。また、読取制御回路74は、複合機側制御部70の制御に従って、表面CISユニット47及び裏面CISユニット48に、小切手の表面及び裏面の読み取りを実行させる。この際、表面CISユニット47及び裏面CISユニット48の各々から出力される信号をデジタルデータ化し、複合機側制御部70に出力する。上記のストッカーには、小切手の有無を検出するASF用紙検出器31と、ホッパーが待機位置にあるか否かを検出するホッパー位置検出器32とが設けられている。また、複合機1は、搬送路上を含む各所に、小切手を検出する各種センサーを備えている。例えば、MICRヘッド35の手前には、ASFローラーにより搬送された小切手を検出する用紙長検出器38が配置され、この用紙長検出器38により小切手の先端と後端とを検出することで、複合機側制御部70により小切手の長さを求めることができる。MICRヘッド35と、これより下流側に位置するインクジェットヘッド10との間には、中間検出器46が設けられ、さらに、表面CISユニット47及び裏面CISユニット48の下流側には、排出検出器52が設けられている。複合機側制御部70は、中間検出器46及び排出検出器52の検出状態に基づいて、小切手が正しく搬送されているか否かを監視できる。センサー駆動回路75には、上述したASF用紙検出器31、ホッパー位置検出器32、用紙長検出器38、中間検出器46、及び排出検出器52が接続されている。センサー駆動回路75は、上記の各種センサーに電流を供給して、所定周期で出力値を取得し、取得した出力値をデジタルデータに変換して複合機側制御部70に出力する。また、センサー駆動回路75には、サーマルヘッド65の温度を検出するサーミスタ等の他の各種センサーを接続することも勿論可能である。インターフェイス部76は、ホストコンピューター100に対して有線または無線で接続され、複合機側制御部70の制御に従って、ホストコンピューター100との間で制御データを含む各種データを送受信する。図2は、ホストコンピューター100の機能ブロック図である。ホストコンピューター100は、プログラムを実行してホストコンピューター100の各部を中枢的に制御するとともに、ホストコンピューター100の制御装置としての機能を実現するCPU101と、CPU101が実行する基本制御プログラム及びこのプログラムに係るデータ等を不揮発的に記憶したROM102と、CPU101が実行するプログラムや処理対象のデータを一時的に格納するためのワークエリアを形成するRAM103と、キーボードやマウス等の入力デバイスによる入力操作を検出し、検出した操作内容を示すデータをCPU101に出力する入力部104と、液晶ディスプレイパネルや有機ELパネル等の表示画面に、入力デバイスによる入力内容、CPU101により処理中のデータ、処理結果等の各種情報を表示する表示部105と、通信ネットワークを介して外部のコンピューターとの間で各種データを送受信する通信インターフェイス106と、複合機1との間で各種データを送受信するインターフェイス部107と、CPU101が実行するアプリケーションプログラム等の各種プログラム、及び、これらのプログラムに係るデータ等を記憶する記憶部110とを備え、これらの各部はバス108により相互に通信可能に接続されている。本実施形態では、インターフェイス部107及び複合機1が備えるインターフェイス部76は、いずれもUSBUniversalSerialBus規格に準拠したコネクター及びインターフェイス回路を備え、USBケーブルによって接続されたものとする。インターフェイス部107とインターフェイス部76とは、いずれも複数のUSBポート、或いは、USBポート以外の接続ポートを備えたものであってもよいが、本実施形態ではインターフェイス部76及びインターフェイス部107が一つのUSBポートを介して接続されたものとして説明する。また、ホストコンピューター100は、オペレーティングシステム113の機能によって接続ポートを仮想化し、インターフェイス部107が備える接続ポートの数に関わらず複数の論理ポートを設ける構成とすることが可能であるが、本実施形態では論理的にも一つの接続ポートUSBポートを介して複合機1に接続されたものとする。記憶部110は、CPU101が実行する複数のアプリケーションプログラム111と、デバイスドライバープログラム112と、オペレーティングシステム113と、を記憶している。オペレーティングシステム113は、ホストコンピューター100の基本機能を実現する複数のプログラムからなるシステムであり、CPU101により実行される。このオペレーティングシステム113は、デバイスドライバープログラム112及びアプリケーションプログラム111に対し、モジュール化された機能を提供する。例えば、オペレーティングシステム113を実行するCPU101は、インターフェイス部107が備えるUSBポート109図3を制御する機能を提供し、デバイスドライバープログラム112が実行された場合に、USBポート109を介したデータ通信を可能とする。なお、記憶部110が上記に挙げた他にも様々なプログラムやデータを記憶可能であることは勿論である。複数のアプリケーションプログラム111は、それぞれ、複合機1が備える複数の機能のいずれかに対応し、複合機1を制御するプログラムである。また、デバイスドライバープログラム112は、ホストコンピューター100によって複合機1を制御するためのプログラムであり、複合機1へ送信するコマンドの生成、複合機1から送信されたステータスの処理等の機能を有する。図3は、ホストコンピューター100が実行するソフトウェアの構成を模式的に示す図である。この図3には、複合機1が備える各種のデバイスを機能毎にまとめて、サーマル印刷部81、小切手処理部82、及びフォトID読取部83として示す。サーマル印刷部81は、サーマルヘッド65及び感熱ロール紙を搬送させる搬送モーター42と、これらを制御するプリンター制御部71、ヘッド駆動回路72及び複合機側制御部70を含み、複合機1がオートカッターユニットを備える場合は、このカッターユニットもサーマル印刷部81に含まれる。小切手処理部82は、小切手の処理を行う機能部として、上述した搬送機構を構成する各種ローラー、ホッパー駆動モーター26、ASFモーター27、搬送モーター42、切替板駆動モーター55と、インクジェットヘッド10と、小切手を読み取る表面CISユニット47、裏面CISユニット48、MICRヘッド35と、小切手の搬送に係るASF用紙検出器31、ホッパー位置検出器32、用紙長検出器38、中間検出器46、及び排出検出器52の各センサーと、これらを制御する複合機側制御部70、プリンター制御部71、ヘッド駆動回路72、モータードライバー73、読取制御回路74、及びセンサー駆動回路75を含む。フォトID読取部83は、フォトIDを読み取る表面CISユニット47及び裏面CISユニット48と、これらを制御する複合機側制御部70及び読取制御回路74を含む。複合機1が備える各デバイスは複数の機能で使用されるものもあるので、一つのデバイスが複数の機能部に含まれることもある。ホストコンピューター100は、CPU101、ROM102、RAM103及び記憶部110と、CPU101が実行するアプリケーションプログラム111、デバイスドライバープログラム112及びオペレーティングシステム113の機能により、制御部120を構成する。制御部120は、CPU101がアプリケーションプログラム111を実行することにより実現される複数のアプリケーションプログラム実行部121アプリケーション実行手段を有する。本実施形態では、アプリケーションプログラム実行部121として、サーマル印刷部81よりサーマル印刷を実行させるアプリケーションプログラム実行部121-1、小切手処理部82により小切手の読み取りを実行させるアプリケーションプログラム実行部121-2、及び、フォトID読取部83によりフォトIDの読み取りを実行させるアプリケーションプログラム実行部121-3を例示する。これらアプリケーションプログラム実行部121-1~3を総称する場合はアプリケーションプログラム実行部121と表記する。また、制御部120は、デバイスドライバープログラム112図2により実現されるデバイスドライバープログラム実行部130を有する。デバイスドライバープログラム実行部130は、複数のドライバープログラム実行部131コマンド制御手段と、これら複数のドライバープログラム実行部131の各々に対応する複数のポートアクセスインターフェイスポートアクセスI/F134、135、136インターフェイス、及びステータスフィルター137、138、139フィルタリング手段を備える。また、デバイスドライバープログラム実行部130は、複数のアプリケーションプログラム実行部121が一つのUSBポートを介して通信を行うための排他制御を行うポート制御プロセス140ポート制御手段を有する。本実施形態では、ドライバープログラム実行部131として、アプリケーションプログラム実行部121-1に対応してサーマル印刷を実行させるドライバープログラム実行部131-1、アプリケーションプログラム実行部121-2に対応して小切手の読み取りを実行させるドライバープログラム実行部131-2、及び、アプリケーションプログラム実行部121-3に対応してフォトIDの読み取りを実行させるドライバープログラム実行部131-3を例示する。これらドライバープログラム実行部131-1~131-3を総称する場合はドライバープログラム実行部131と表記する。アプリケーションプログラム実行部121-1は、感熱ロール紙に印刷する文字や画像を編集し、複合機1への印刷指示と、印刷する文字を特定する文字コード及び画像データとを含むデータを出力する。また、アプリケーションプログラム実行部121-1は、複合機1のステータスを取得し、複合機1がビジー状態やオフラインである場合には印刷指示及び画像データの送信を待機する。アプリケーションプログラム実行部121-2は、複合機1に対して小切手の搬送開始、読取開始等の指示を含むデータを出力する。複合機1は、表面CISユニット47及び裏面CISユニット48で読み取った読取画像データを、ホストコンピューター100が複合機1に送信するコマンドに対する応答として、ステータスと同様に送信する。つまり、複合機1は、現在の複合機1の動作状態オフライン、オンライン、エラー発生、エラー要因、エラー解消、ビジー、ビジー解除、読取成功、読取失敗等を示す情報と同様に読取画像データを送信し、アプリケーションプログラム実行部121-2は、ステータスとして送信された読取画像データを取得する。アプリケーションプログラム実行部121-3は、複合機1に対してフォトIDの読取開始等の指示を含むデータを出力する。複合機1は、フォトID読取部83が表面CISユニット47及び裏面CISユニット48で読み取った読取画像データを、小切手の読取画像データと同様にステータスとして送信する。アプリケーションプログラム実行部121-3は、ステータスとして送信された読取画像データを取得する。3つのドライバープログラム実行部131は、それぞれ、対応するアプリケーションプログラム実行部121が出力したデータに基づいて、複合機1に対応するコマンドを生成する。すなわち、ドライバープログラム実行部131-1はアプリケーションプログラム実行部121-1が出力したデータに基づいて、サーマル印刷部81用の印刷コマンド等の各種コマンドと印刷データを生成して、ポートアクセスインターフェイス134を介してポート制御プロセス140に出力する。同様に、ドライバープログラム実行部131-2はアプリケーションプログラム実行部121-2が出力したデータに基づいて小切手処理部82用のコマンドを生成して、ポートアクセスインターフェイス135を介してポート制御プロセス140に出力し、ドライバープログラム実行部131-3はアプリケーションプログラム実行部121-3が出力したデータに基づいてフォトID読取部83用のコマンドを生成し、ポートアクセスインターフェイス136を介してポート制御プロセス140に出力する。ポートアクセスインターフェイス134、135、136は、各ドライバープログラム実行部131とポート制御プロセス140との間のインターフェイスとして機能し、後述するポート制御プロセス140によるステータスの配信制御の一部を担う。ポート制御プロセス140は、3つのドライバープログラム実行部131から入力されるコマンド及びデータに対する排他制御を行う。ポート制御プロセス140は、オペレーティングシステム113図2が提供するUSBポートドライバー145の機能を利用して、インターフェイス部107が備える一つのUSBポート109を介して複合機1とデータを送受信する。3つのドライバープログラム実行部131は、それぞれ、コマンドやデータを出力する際にUSBポート109を占有しようとする。また、3つのアプリケーションプログラム実行部121は、複合機1の構成に最適化されていない可能性があり、他のアプリケーションプログラム実行部121と強調して複合機1の複数の機能を実行する機能を持たないこともある。このため、複数のアプリケーションプログラム実行部121がデータを出力することによって、複数のドライバープログラム実行部131がUSBポート109の占有を試みたり、一つのドライバープログラム実行部131がUSBポート109を占有している状態で他のドライバープログラム実行部131がUSBポート109の占有を試行したりすると、衝突が発生する。ポート制御プロセス140は、3つのアプリケーションプログラム実行部121及びこれらに対応する3つのドライバープログラム実行部131に対し、USBポート109の占有状態を割り当てるため、後述するポート制御を行う。また、3つのアプリケーションプログラム実行部121は、それぞれ、複合機1が送信するステータスに基づく動作を行う。アプリケーションプログラム実行部121-1は複合機1がビジーまたはオフラインになった場合は印刷データの出力を停止する。また、アプリケーションプログラム実行部121-2、121-3は複合機1がステータスとして送信する読取画像データを取得する。このため、複合機1が送信したステータスが各アプリケーションプログラム実行部121に適切に渡される必要がある一方で、各アプリケーションプログラム実行部121に無関係なステータスが渡されることは回避する必要がある。ポート制御プロセス140は、複合機1がステータスを送信した場合に、このステータスを受信して、ポートアクセスインターフェイス134、135、136の全てに対して出力する。ポートアクセスインターフェイス134、135、136は、ステータスフィルター137、138、139を備えている。ステータスフィルター137、138、139は、それぞれ、ポート制御プロセス140が出力したステータスに含まれる情報を解析し、例えば当該ステータスがどのコマンドに対する応答かを示す情報に基づいて、対応するアプリケーションプログラム実行部121に関連するステータスのみを抽出フィルタリングする。これにより、ポートアクセスインターフェイス134、135、136は、対応するアプリケーションプログラム実行部121に関連するステータスのみを、ドライバープログラム実行部131に出力し、各ドライバープログラム実行部131はポートアクセスインターフェイス134、135、136から入力されたステータスをアプリケーションプログラム実行部121に渡す。以下、ポート制御プロセス140による排他制御とステータスの受信制御について詳細に説明する。図4は、ポート制御処理を示すフローチャートであり、図5はステータス制御処理を示すフローチャートである。また、図4及び図5の一部のステップの動作を、該当するステップ番号を付して図3において矢印で示す。まず、図4及び図3を参照してポート制御プロセス140によるポート制御処理を説明する。ポート制御プロセス140は、複合機1及びホストコンピューター100が待機している場合、ポート制御プロセス140は、3つのドライバープログラム実行部131のいずれかがUSBポート109を占有した状態とするステップS11。ここでUSBポート109を占有するのは、ドライバープログラム実行部131のうち予め設定されたものであってもよいし、最後にUSBポート109を占有したものであってもよい。アプリケーションプログラム実行部121のいずれかが、複合機1を制御するためのデータを出力するとステップS12、このアプリケーションプログラム実行部121に対応するドライバープログラム実行部131が、ポート制御プロセス140に対してポート使用の要求を出力するステップS13。ポート制御プロセス140は、ポートの使用を要求したドライバープログラム実行部131が、USBポート109を占有しているか否かを判別するステップS14。USBポート109を占有しているドライバープログラム実行部131からのポート使用要求であった場合ステップS14;Yes、ポート制御プロセス140は、後述するステップS19に移行する。これに対し、ポート使用要求をしたドライバープログラム実行部131が、USBポート109を占有しているドライバープログラム実行部131でなかった場合ステップS14;No、ポート制御プロセス140は、USBポート109を占有しているドライバープログラム実行部131が、複合機1の制御中であるか否かを判別するステップS15。例えば、アプリケーションプログラム実行部121-2が複合機1の小切手処理部82を制御して小切手の読み取りを実行させ、ドライバープログラム実行部131-2はコマンドを生成して出力している間は、複合機1を制御中であると判別する。ここで、全てのドライバープログラム実行部131が、複合機1を制御して行う一つの処理ジョブが完了した際に、ポート制御プロセス140に対して出力完了を通知する構成としてもよく、この場合、ポート制御プロセス140は、出力完了の通知があるまでは複合機1を制御中であると判別する。ポート制御プロセス140は、ポート使用要求を出力したドライバープログラム実行部131が、USBポート109を占有して複合機1を制御している場合はステップS15;No、ポート使用要求を出力したドライバープログラム実行部131に対して占有中であることを通知しステップS16、ステップS13に戻る。ここで占有中を通知されたドライバープログラム実行部131は、予め設定された所定時間待機してから、再びポート使用要求を出力する。また、USBポート109を占有しているドライバープログラム実行部131が複合機1を制御中でない場合ステップS15;Yes、ポート制御プロセス140は、占有中のドライバープログラム実行部131に対して占有の解除を通知しステップS17、ポート使用要求を出力したドライバープログラム実行部131に対してポートの開放を通知しステップS18、ステップS19に移行する。ステップS19で、ポート制御プロセス140は、ポート使用要求を出力したドライバープログラム実行部131に対して送信権を付与する。ここでドライバープログラム実行部131に送信権を付与した後は、送信権が付与されたドライバープログラム実行部131がUSBポート109を占有することになる。送信権が付与されたドライバープログラム実行部131がコマンドを出力するとステップS20、ポート制御プロセス140は、このコマンドを、USBポート109を介して複合機1へ送信するステップS21。その後、一連の処理に要する全ての通信が完了した後、ドライバープログラム実行部131がデータ出力完了をポート制御プロセス140に対して通知するステップS22。これによりポート制御プロセス140は待機状態に移行し、最後にデータを通信したドライバープログラム実行部131または予め設定されたドライバープログラム実行部131がUSBポート109を占有した状態で、待機状態に移行する。次に、図5及び図3を参照してポート制御プロセス140によるポート制御処理を説明する。図5Aはポート制御プロセス140の動作を示し、図5Bはポートアクセスインターフェイス134,135、136の動作を示す。ポート制御プロセス140は、複合機1からステータスを受信するとステップS31、受信したステータスを全てのポートアクセスインターフェイス134、135、136に配信するステップS32。ここで、ポートアクセスインターフェイス134、135、136は、ポート制御プロセス140から配信されたステータスを受信しステップS41、ステータスフィルター137、138、139によりフィルタリングを実行させる。すなわち、ポートアクセスインターフェイス134は、ステータスフィルター137により、ポート制御プロセス140から入力されたステータスデータのうち、アプリケーションプログラム実行部121-1に関連するステータスを抽出させる。ポートアクセスインターフェイス134は、ポート制御プロセス140から配信されたステータスがアプリケーションプログラム実行部121-1に関連するステータスか否かの判別を行いステップS42、関連するステータスでなければステップS42;No、このステータスを破棄するステップS43。また、ステータスフィルター137は、ポート制御プロセス140から配信されたステータスがアプリケーションプログラム実行部121-1に関連するステータスであると判別した場合はステップS42;Yes、このステータスをポートアクセスインターフェイス134に返し、ポートアクセスインターフェイス134がドライバープログラム実行部131-1に対してステータスを出力しステップS44、アプリケーションプログラム実行部121-1にステータスが渡されるステップS45。ステータスフィルター138も同様に、ポートアクセスインターフェイス135にポート制御プロセス140から入力されたステータスに含まれる情報を解析し、アプリケーションプログラム実行部121-2に関連するステータスのみをフィルタリングする。ポートアクセスインターフェイス135は、ポート制御プロセス140から入力されたステータスのうち、ステータスフィルター138がフィルタリングしたステータスをドライバープログラム実行部131-2に出力し、ドライバープログラム実行部131-2はこのステータスをアプリケーションプログラム実行部121-2に渡す。また、ステータスフィルター139は、ポートアクセスインターフェイス136にポート制御プロセス140から入力されたステータスに含まれる情報を解析し、アプリケーションプログラム実行部121-3に関連するステータスのみをフィルタリングする。ポートアクセスインターフェイス136は、ポート制御プロセス140から入力されたステータスのうち、ステータスフィルター139がフィルタリングしたステータスをドライバープログラム実行部131-3に出力し、ドライバープログラム実行部131-3はこのステータスをアプリケーションプログラム実行部121-3に渡す。このように、ホストコンピューター100においては、互いに連携する機能を持たない複数のアプリケーションプログラム実行部121が個別に複合機1に対するデータを出力した場合に、これらのデータに基づいてコマンドが生成され、互いに衝突しないように複合機1にコマンドが送信されるので、各アプリケーションプログラム実行部121はそれぞれ複合機1を制御して動作を実行させることができる。また、複合機1がステータスをホストコンピューター100に通知した場合には、このステータスが全てのアプリケーションプログラム実行部121に対応するポートアクセスインターフェイス134、135、136に配信され、ステータスフィルター137、138、139がフィルタリングを行うことにより、対応するアプリケーションプログラム実行部121にのみステータスが渡される。このため、各アプリケーションプログラム実行部121は、複合機1から通知されるステータスに基づいて複合機1を制御できる。従って、各アプリケーションプログラム実行部121は、あたかも1対1で複合機1に接続された場合と同様に、複合機1との間でデータを送受信して、複合機1の機能を利用できる。ホストコンピューター100は、複合機1を制御するアプリケーションプログラム実行部121により、複合機1に対してASBオートステータスバック機能を設定するステータスバック設定コマンドを送信することも可能である。すなわち、ホストコンピューター100から複合機1に対してステータス要求コマンドを送信すると、複合機1は、このステータス要求コマンドに応答して、現在の動作状態を示す情報等を含むステータスを通知する。上述した読取画像データもステータス要求コマンドへの応答として複合機1から送信される。ここで、ホストコンピューター100がステータスバック設定コマンドを送信し、複合機1は、ASBオートステータスバックが設定された場合、動作状態が変化する毎に複合機1へステータスを通知する機能を備えている。このため、複合機1は、オンライン、オフライン、エラー発生、エラー解消、ビジー、ビジー解除、読取成功、読取失敗など、ステータスが変化する毎にステータスをホストコンピューター100に通知する。ホストコンピューター100では、ステータスフィルター137、138、139が、ASB機能によるステータスを、対応するアプリケーションプログラム実行部121に関連するステータスとしてフィルタリングすれば、全てのアプリケーションプログラム実行部121にASB機能によるステータスが通知される。このため、複合機1は、通常のASB機能によるステータスの通知を行うことができ、ホストコンピューター100においては、各アプリケーションプログラム実行部121が、他のアプリケーションプログラム実行部121の存在に関係なく、1対1で複合機1に接続された場合と同様にASB機能によるステータスを受け取ることができる。さらに、ホストコンピューター100は、複合機1に対して、通常の印刷動作や読取動作を指示するコマンドに限らず、即時実行コマンドリアルタイムコマンドを送信して、複合機1を制御することもできる。即時実行コマンドは、サーマル印刷部81、小切手処理部82、或いはフォトID読取部83のように駆動部を動作させることなく複合機1が実行可能なコマンドであり、例えばステータス通知要求や、複合機側制御部70のソフトリセット、或いはハードウェアの初期化を含むリセットを指示するコマンドである。即時実行コマンドは、複合機1が通常のコマンドを受け付けないオフライン状態及びビジー状態でも受信される。複合機1は、この即時実行コマンドを受信するため、ビジー状態でも即時実行コマンドを格納可能なバッファーメモリーを有する構成としてもよい。さらに、複合機1は、通常のコマンドを受信した場合には、バッファーメモリーに格納したコマンドを受信順に実行するよう構成され、即時実行コマンドを受信した場合は、それ以前に受信したコマンドの受信順に関係なく即時実行コマンドを優先して実行する。ホストコンピューター100において、アプリケーションプログラム実行部121が複合機1に対し即時実行コマンドを送信した場合、複合機1は即座にコマンドを実行し、実行結果をステータスとしてホストコンピューター100に通知する。ポート制御プロセス140は、複合機1を制御するアプリケーションプログラム実行部121が処理を完了するまで、例えばドライバープログラム実行部131が処理完了を通知するまでは、USBポート109を占有させるので、例えば、即時実行コマンドとしてステータス通知要求を送信し、返信としてのステータスを受信し、即時実行コマンドとしてリセット指示コマンドを送信する一連の動作を、連続して実行でき、この間、他のアプリケーションプログラム実行部121が複合機1を制御しないようにできる。このため、複合機1に対する制御が混乱することなく、即時実行コマンドによる制御を行える。以上説明したように、本発明を適用した実施形態に係るホストコンピューター100によれば、複数のデバイスを備えた複合機1を制御し、複数のデバイスの少なくともいずれかに対応した複数のアプリケーションプログラム111をそれぞれ実行する複数のアプリケーションプログラム実行部121と、複合機1からUSBポート109を介してデータを受信する一方、アプリケーションプログラム実行部121から入力されるデータの排他制御を行って、USBポート109から複合機1にデータを送信するポート制御プロセス140と、複数のアプリケーションプログラム実行部121に対応して設けられ、ポート制御プロセス140により受信されたデータをフィルタリングして、アプリケーションプログラム実行部121に渡す複数のポートアクセスインターフェイス134、135、136と、を備え、複数のアプリケーションプログラム実行部121がUSBポート109を介して複合機1にデータを送信し、複合機1から送信されるステータスを取得できる。このため、それぞれ複合機1を使用するアプリケーションプログラム111を、他のアプリケーションプログラム111との協調を図る機能を持たせることなく実行させ、複合機1を制御できる。これにより、アプリケーションプログラム111を複合機1の構成に合わせて最適化する必要がなく、例えば単一のデバイスを備えた装置に合わせて設計されたアプリケーションプログラム111を、複合機1に対して使用できる。また、制御部120は、複数のポートアクセスインターフェイス134、135、136の各々に対応して設けられ、ポート制御プロセス140により複合機1から受信されたデータのうち、対応するアプリケーションプログラム実行部121に関連するステータスを抽出する複数のステータスフィルター137、128、139を備え、複数のアプリケーションプログラム実行部121の各々に対し、複合機1が送信するステータスのうち関連するステータスを抽出して渡すことができるので、複合機1の構成に合わせて最適化されたアプリケーションプログラム111でなくても、複合機1からのステータスを取得でき、複合機1のステータスに基づく制御を行える。さらに、複数のドライバープログラム実行部131が、複合機1によりデバイスの機能を実行させる通常コマンドと、通常コマンドより優先して実行される即時実行コマンドと、複合機1に対して動作ステータスの変更時にステータスを送信させるステータスバック設定コマンドとを生成可能であり、ポート制御プロセス140は、即時実行コマンドに対する応答を全てのアプリケーションプログラム実行部121に渡したり、即時実行コマンドに関する処理が完了するまで一つのアプリケーションプログラム実行部121にUSBポート109を占有させたり、ステータスバック設定コマンドによりASB機能が設定され、複合機1がASB機能により送信するステータスを全てのアプリケーションプログラム実行部121に渡したりすることができる。これにより、複合機1の構成に合わせて最適化されたアプリケーションプログラム111を用いなくても、複合機1を詳細に制御できる。また、ポート制御プロセス140は、単一のUSBポート109を介して複合機1とデータの送受信を行い、複合機1からUSBポート109を介して受信したデータを全てのポートアクセスインターフェイス134、135、136に出力し、いずれかのドライバープログラム実行部131が生成したコマンドを排他的にUSBポート109を介して複合機1に送信するので、単一のUSBポート109を介して接続した複合機1を、複合機1の構成に合わせた最適化がされていない複数のアプリケーションプログラム111により制御できる。なお、上記実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、複合機1が複数のデバイスによって実現する機能は、サーマル印刷部81、小切手処理部82、及びフォトID読取部83に限定されず、2つのみであってもよいし、より多くの機能を有する構成とすることもできる。また、CPU101が並列的に実行するアプリケーションプログラム111の数、すなわちアプリケーションプログラム実行部121の数も任意であり、3以上とすることが可能である。また、例えば、複合機1が処理する処理対象媒体は小切手に限定されず、他の帳票類であってもよく、複合機1で使用可能な処理対象媒体のサイズについても任意である。また、複合機1は、サーマルヘッド65に代えてインクジェットヘッドを備え、ロール紙にインクを吐出して印刷するものであってもよく、インクジェット式の記録ヘッドの他に、サーマルラインプリンター、ドットインパクト式プリンター、レーザープリンター、熱昇華型プリンター等を用いることも可能である。また、上記実施形態では、複合機1に外部接続されたホストコンピューター100が複合機1を制御する構成を例に挙げて説明したが、ホストコンピューター100と複合機1とが同一の装置に組み込まれた構成としてもよい。さらに、図1及び図2のブロック図に示した各機能部は機能的構成を示すものであって、各機能部を独立したハードウェアにより構成する必要はなく、ソフトウェアとハードウェアとの協働により、複数の機能部の機能を1つのハードウェアに集約して実現することも、一つの機能部を複数のハードウェアにより実現することも勿論可能である。また、上述の動作を行うホストコンピューター100のCPU101が実行する各種プログラムは、記憶部110が記憶する構成に限らず、可搬型の記録媒体に記憶されている構成であってもよいし、或いは、通信回線を介して接続された他の装置にダウンロード可能に記憶され、これらの装置からホストコンピューター100が上記プログラムをダウンロードして実行してもよく、CPU101が実行するアプリケーションプログラム111及びデバイスドライバープログラム112、オペレーティングシステム113についても同様であり、その他の構成についても任意に変更可能である。"