(57)【要約】  【課題】  画像形成装置から取得した状態情報を出力先に出力可能で、従来品よりも開発・製造にかかるコストや時間を抑制可能な状態情報処理装置を提供すること。  【解決手段】  状態情報処理装置において、アービトレイターは、ＯＳまたは入出力ポートの仕様によって異なる複数のアービトレイター１６１，１６３，１６５の中から、少なくとも１つが選択されてＰＣ１０に設けられる。パーサは、プリンタの仕様によって異なる複数のパーサ１５１，１５５，１５７の中から、少なくとも１つが選択されてＰＣ１０に設けられる。複数のアービトレイター１６１，１６３，１６５は、パーサとのインターフェイスに互換性があり、複数のパーサ１５１，１５５，１５７は、アービトレイターとのインターフェイスには互換性があり、どのように組み合わせてＰＣ１０に設けても、アービトレイターおよびパーサが連携可能となっている。【選択図】  図２
2006053657.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置からコンピュータへ伝送されてくる前記画像形成装置の状態を示す状態情報を、前記コンピュータに搭載されたＯＳまたは入出力ポートの仕様に応じた方式で入力して、前記ＯＳおよび前記入出力ポートの仕様に依存しないデータとする一次処理手段と、
前記一次処理手段によって前記ＯＳおよび前記入出力ポートの仕様に依存しないデータとされた前記状態情報を、前記画像形成装置の仕様による違いがあるデータから、前記画像形成装置の仕様による違いがないデータに変換する二次処理手段と、
前記二次処理手段によって前記画像形成装置の仕様による違いがないデータに変換された前記状態情報を、出力先となる装置へ出力する制御を行う出力制御手段とを、
前記コンピュータに設けることによって構成される状態情報処理装置であって、
前記一次処理手段は、前記ＯＳまたは前記入出力ポートの仕様によって異なる複数の前記一次処理手段の中から、少なくとも１つが選択されて前記コンピュータに設けられる手段であり、且つ、前記二次処理手段は、前記画像形成装置の仕様によって異なる複数の前記二次処理手段の中から、少なくとも１つが選択されて前記コンピュータに設けられる手段であり、
しかも、前記複数の一次処理手段それぞれが利用する前記二次処理手段とのインターフェイスには互換性があり、且つ、前記複数の二次処理手段それぞれが利用する前記一次処理手段とのインターフェイスには互換性があり、前記一次処理手段および前記二次処理手段をどのような組み合わせで前記コンピュータに設けても、前記一次処理手段および前記二次処理手段が連携可能となっている
ことを特徴とする状態情報処理装置。
【請求項２】
前記一次処理手段は、少なくとも１つが前記コンピュータに既に設けられている状態において、さらに、別の１つを前記コンピュータに追加可能であり、且つ、前記二次処理手段も、少なくとも１つが前記コンピュータに既に設けられている状態において、さらに、別の１つを前記コンピュータに追加可能であり、
既に設けられていた前記一次処理手段および追加された前記一次処理手段を含む複数の前記一次処理手段と、既に設けられていた前記二次処理手段および追加された前記二次処理手段を含む複数の前記二次処理手段とをどのように組み合わせても、前記一次処理手段および前記二次処理手段が連携可能となっている
ことを特徴とする請求項１に記載の状態情報処理装置。
【請求項３】
前記複数の二次処理手段それぞれが利用する前記出力制御手段とのインターフェイスには互換性があり、どの前記二次処理手段を前記コンピュータに設けても、前記二次処理手段および前記出力制御手段が連携可能となっている
ことを特徴とする請求項１または請求項２に記載の状態情報処理装置。
【請求項４】
１台目の前記画像形成装置に対応する前記一次処理手段、前記二次処理手段、および前記出力制御手段が稼働している状態において、さらに２台目以降の前記画像形成装置に対応する前記一次処理手段、前記二次処理手段、および前記出力制御手段を稼働させる際には、１台目の前記画像形成装置に対応する前記一次処理手段、および前記二次処理手段とは別に、２台目以降の前記画像形成装置に対応する前記一次処理手段、および前記二次処理手段が稼働するとともに、１台目の前記画像形成装置に対応する前記出力制御手段が、２台目以降の前記画像形成装置に対応する前記出力制御手段としても機能するように構成されている
ことを特徴とする請求項１〜請求項３のいずれかに記載の状態情報処理装置。
【請求項５】
前記状態情報の出力対象となる前記画像形成装置について、前記画像形成装置を識別するための名称と、前記画像形成装置に対応する前記二次処理手段との対応関係を記憶する対応関係記憶手段を備えており、
前記対応関係記憶手段には、前記コンピュータからの制御対象となる前記画像形成装置を追加するために前記制御対象となる画像形成装置に対応した画像形成装置制御用プログラムを前記コンピュータにインストールする際に、前記制御対象となる画像形成装置について、前記名称と前記二次処理手段との対応関係が登録され、
前記二次処理手段を稼働させる際には、前記対応関係記憶手段を参照して、前記状態情報の出力対象となる前記画像形成装置の名称に対応する前記二次処理手段を特定し、特定された前記二次処理手段を稼働させる
ことを特徴とする請求項１〜請求項４のいずれかに記載の状態情報処理装置。
【請求項６】
前記状態情報の出力対象とすべき前記画像形成装置が特定されたときに、まず、前記出力制御手段が稼働することにより、前記出力制御手段が実行する処理の中で、前記対応関係記憶手段を参照して、前記特定された画像形成装置に対応する前記二次処理手段を特定し、特定された前記二次処理手段を稼働させ、
続いて、前記二次処理手段が稼働することにより、前記二次処理手段が実行する処理の中で、前記特定された画像形成装置が利用する入出力ポートを特定し、特定された入出力ポートに対応する前記一次処理手段を稼働させる
ことを特徴とする請求項５に記載の状態情報処理装置。
【請求項７】
コンピュータを、請求項１〜請求項６のいずれかに記載の状態情報処理装置が備える前記二次処理手段として機能させるためのプログラムであって、
前記ＯＳまたは前記入出力ポートの仕様によって異なる複数の前記一次処理手段の中から、少なくとも１つの前記一次処理手段を選択する選択手順と、
前記画像形成装置から前記コンピュータへ伝送されて、前記選択手順において選択した前記一次処理手段によって前記ＯＳおよび前記入出力ポートの仕様に依存しないデータとされた前記状態情報を、前記画像形成装置の仕様による違いがあるデータから、前記画像形成装置の仕様による違いがないデータに変換する二次処理手順と
を備えたことを特徴とする状態情報処理装置用データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置からコンピュータへ伝送されてくる状態情報を入力して、出力先となる装置へと出力する状態情報処理装置、および状態情報処理装置用データ処理プログラムに関する。
【背景技術】
【０００２】
従来、プリンタをコンピュータに接続して使用する場合に、コンピュータにステータスモニタと呼ばれるプログラムをインストールし、このステータスモニタによってプリンタの状態を監視することが行われている（例えば、特許文献１参照）。
【０００３】
このようなステータスモニタを利用すると、例えば、プリンタのカバーが開状態にあること、紙詰まりが発生したこと、用紙が無くなったこと等、プリンタの状態に関する情報（以下、状態情報という）を、コンピュータの画面上で確認できるので、コンピュータのオペレータは、プリンタの設置場所まで行かなくてもプリンタの状態を確認することができる。
【特許文献１】特開２００１−２６５５４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、プリンタとの接続に利用されるプリンタポートには、例えば、パラレル(IEEE1284)、USB(Universal Serial Bus)、IEEE1394、IrDA(Infrared Data Association)など、様々な方式、規格があり、どのプリンタポートを利用するかは、プリンタの仕様によって決まっている。
【０００５】
また、プリンタからコンピュータへ伝送される状態情報には、プリンタの仕様によるデータ形式の違いがある。例えば、利用者がそのまま見るだけである程度内容を理解できるような文字列（テキストデータ）で状態情報を提供するプリンタもあれば、ビット列（バイナリデータ）で状態情報を提供するプリンタもある。
【０００６】
そのため、従来のステータスモニタは、監視対象となるプリンタの仕様に合わせて、特定のプリンタポートを介して特定データ形式で状態情報が伝送されてくることを前提として、データ処理を行うように構成されていた。
【０００７】
しかし、このようなステータスモニタでは、例えば、プリンタポートの種類がｍ種類、状態情報のデータ形式がｎ種類ある場合、最大でｍ×ｎ種類ものステータスモニタが必要となる。また、例えば、既存のｎ種類のデータ形式とは異なるデータ形式を持つ状態情報が新たに追加された場合、プリンタポートの種類がｍ種類あると、状態情報のデータ形式そのものは１種類しか追加されていないにもかかわらず、最大でｍ種類のプリンタポートそれぞれに対応するｍ種類のステータスモニタを新たに用意しなければならない。そのため、ステータスモニタの開発・製造に、多大なコストや時間がかかるという問題があった。
【０００８】
また、何種類かのポートを単一のプログラムでカバーするポートモニターも存在するが、その場合においても、新規規格のポートを有する別のプリンタに接続する場合においては、そのポートに対応した別のポートモニターを新たに作成する必要があった。
【０００９】
さらに、ポートモニターの数が増えると、画面上にいくつものステータスモニター画面が表示されるという問題もある。
本発明は、上記問題を解決するためになされたものであり、その目的は、従来品よりも開発・製造にかかるコストや時間を抑制可能な状態情報処理装置を提供することにある。
【課題を解決するための手段】
【００１０】
以下、本発明において採用した特徴的構成について説明する。
本発明の状態情報処理装置は、画像形成装置からコンピュータへ伝送されてくる前記画像形成装置の状態を示す状態情報を、前記コンピュータに搭載されたＯＳまたは入出力ポートの仕様に応じた方式で入力して、前記ＯＳおよび前記入出力ポートの仕様に依存しないデータとする一次処理手段と、前記一次処理手段によって前記ＯＳおよび前記入出力ポートの仕様に依存しないデータとされた前記状態情報を、前記画像形成装置の仕様による違いがあるデータから、前記画像形成装置の仕様による違いがないデータに変換する二次処理手段と、前記二次処理手段によって前記画像形成装置の仕様による違いがないデータに変換された前記状態情報を、出力先となる装置へ出力する制御を行う出力制御手段とを、前記コンピュータに設けることによって構成される状態情報処理装置であって、前記一次処理手段は、前記ＯＳまたは前記入出力ポートの仕様によって異なる複数の前記一次処理手段の中から、少なくとも１つが選択されて前記コンピュータに設けられる手段であり、且つ、前記二次処理手段は、前記画像形成装置の仕様によって異なる複数の前記二次処理手段の中から、少なくとも１つが選択されて前記コンピュータに設けられる手段であり、しかも、前記複数の一次処理手段それぞれが利用する前記二次処理手段とのインターフェイスには互換性があり、且つ、前記複数の二次処理手段それぞれが利用する前記一次処理手段とのインターフェイスには互換性があり、前記一次処理手段および前記二次処理手段をどのような組み合わせで前記コンピュータに設けても、前記一次処理手段および前記二次処理手段が連携可能となっていることを特徴とする。
【００１１】
この状態情報処理装置において、画像形成装置から伝送されてくる状態情報は、一次処理手段により処理される。ポートのアクセス手続きは、そのポートやＯＳによって異なる。以下にそのアクセス方法を列挙する。
(1) ポートのバスドライバーをアクセスする。
(2) ポートの機能ごとに設けられたクラスドライバーをアクセスする。
(3) ＯＳの標準機能を用いてアクセスする。
(4) ポートの仮想デバイスをアクセスする。
【００１２】
また、例えば（２）のクラスドライバーをアクセスする方法であっても、ＯＳの違いにより、そのクラスドライバーを特定する方法などが異なる場合もある。
このように、ＯＳ・ポートにより処理が異なる部分はこの一次処理手段によってなされる。換言すれば、一次処理手段を除く各構成要素は、すべてＯＳ・ポートに非依存となるのである。この一次処理手段を経由することにより、ＯＳおよび入出力ポートに非依存のデータとされる。
【００１３】
また、ＬＰＴポートでは、通常テキストデータなどのデータとしてのステータス情報のほかに、ポートの複数の信号線の電圧のＨｉｇｈ／Ｌｏｗを示すステータス情報もあるが、他のポートにあっては、このようなものがないものもあり、またそのビット並びが異なることも考えられる。このような場合、そのステータス情報のないポートを処理する一次処理にあっては、差し障りの無いダミーのデータを付加する。またビット並びが異なる場合においては、一次処理手段において、そのビット並びを変更し、同一ビットが同じステータスを表すようにする。
【００１４】
こうして、ＯＳおよび入出力ポートの仕様に依存しないデータとされた状態情報は、続いて、二次処理手段によって、画像形成装置の仕様による違いがあるデータから、画像形成装置の仕様による違いがないデータに変換される。
【００１５】
ここで、画像形成装置の仕様による違いがないデータとは、画像形成装置の仕様に起因するデータ構造やデータ内容の違いがないデータを意味する。具体例を挙げれば、例えば、ある画像形成装置からはテキストデータで状態情報が伝送され、別の画像形成装置からはバイナリデータで状態情報が伝送されてくる場合、これらは画像形成装置の仕様による違いがあるデータに該当するが、二次処理手段は、このような画像形成装置の仕様による違いがあるデータを、画像形成装置の仕様による違いがないデータにする。
【００１６】
画像形成装置の仕様による違いがないデータにするための具体的方法は任意であり、例えば、ある画像形成装置からはテキストデータで状態情報が伝送され、別の画像形成装置からはバイナリデータで状態情報が伝送されてくる場合、前者をバイナリデータ化して後者のデータ構造に統一してもよいし、後者をテキストデータ化して前者のデータ構造に統一してもよいし、あるいは、前者後者ともに、両者とは異なる第３のデータ構造に統一してもよい。
【００１７】
こうして、画像形成装置の仕様による違いがないデータに変換された状態情報は、出力制御手段によって、出力先となる装置へと出力される。出力先となる装置としては、代表的には、表示出力するための表示装置や、ファイル出力するための記憶装置などが挙げられるが、これら以外の出力装置であっても構わない。また、出力先となる装置が、特定の物理的な装置に固定されていなくてもよく、例えば、ＯＳによって規定される標準出力を出力先としておけば、ＯＳ側での操作で標準出力に割り当てられる物理的な装置を任意に変更し、所期の物理的な装置（例えば、ディスプレイ、プリンタ、ストレージデバイスなど）を出力先とすることができる。
【００１８】
以上のような各手段をコンピュータに設けることにより、本発明の状態情報処理装置が構成されるが、特に、本発明において、一次処理手段は、ＯＳまたは入出力ポートの仕様によって異なる複数の一次処理手段の中から、少なくとも１つが選択されてコンピュータに設けられる手段となっており、且つ、二次処理手段は、画像形成装置の仕様によって異なる複数の二次処理手段の中から、少なくとも１つが選択されてコンピュータに設けられる手段となっている。しかも、前記複数の一次処理手段それぞれが利用する二次処理手段とのインターフェイスには互換性があり、且つ、前記複数の二次処理手段それぞれが利用する一次処理手段とのインターフェイスには互換性があり、一次処理手段および二次処理手段をどのような組み合わせでコンピュータに設けても、一次処理手段および二次処理手段が連携可能となっている。
【００１９】
そのため、例えば、ＯＳまたは入出力ポートの仕様にｍ種類の違いがあり、画像形成装置の仕様によって状態情報にｎ種類の違いがある場合に、ｍ×ｎ種類の状態情報処理装置をそれぞれ別々に構成しなくても、ｍ種類の一次処理手段とｎ種類の二次処理手段を組み合わせて所期の状態情報処理装置を構成することができる。また、例えば、既存のｎ種類とは異なる画像形成装置の仕様が新たに追加された場合、それに対応する二次処理手段を追加するだけで、一次処理手段については既存のものをそのまま流用して、所期の状態情報処理装置を構成することができる。
【００２０】
したがって、本発明の状態情報処理装置によれば、従来技術として例示したステータスモニタに比べ、開発・製造にかかるコストや時間を抑制することができる。
ところで、本発明の状態情報処理装置において、前記一次処理手段は、少なくとも１つが前記コンピュータに既に設けられている状態において、さらに、別の１つを前記コンピュータに追加可能であり、且つ、前記二次処理手段も、少なくとも１つが前記コンピュータに既に設けられている状態において、さらに、別の１つを前記コンピュータに追加可能であり、既に設けられていた前記一次処理手段および追加された前記一次処理手段を含む複数の前記一次処理手段と、既に設けられていた前記二次処理手段および追加された前記二次処理手段を含む複数の前記二次処理手段とをどのように組み合わせても、前記一次処理手段および前記二次処理手段が連携可能となっていると好ましい。
【００２１】
このような状態情報処理装置であれば、一次処理手段および二次処理手段が、既に少なくとも１つは設けられているコンピュータにおいて、別の一次処理手段または二次処理手段を追加するだけで、所期の状態情報処理装置を構成することができる。
【００２２】
また、本発明の状態情報処理装置において、前記複数の二次処理手段それぞれが利用する前記出力制御手段とのインターフェイスには互換性があり、どの前記二次処理手段を前記コンピュータに設けても、前記二次処理手段および前記出力制御手段が連携可能となっていると好ましい。
【００２３】
このような状態情報処理装置であれば、複数ある二次処理手段のどれをコンピュータに設けた場合でも、同じ出力制御手段を利用して、所期の状態情報処理装置を構成することができる。したがって、複数ある二次処理手段それぞれに対応する出力制御手段を別々に用意する場合に比べ、出力制御手段の開発・製造にかかるコストや時間を抑制することができる。
【００２４】
また、本発明の状態情報処理装置は、１台目の前記画像形成装置に対応する前記一次処理手段、前記二次処理手段、および前記出力制御手段が稼働している状態において、さらに２台目以降の前記画像形成装置に対応する前記一次処理手段、前記二次処理手段、および前記出力制御手段を稼働させる際には、１台目の前記画像形成装置に対応する前記一次処理手段、および前記二次処理手段とは別に、２台目以降の前記画像形成装置に対応する前記一次処理手段、および前記二次処理手段が稼働するとともに、１台目の前記画像形成装置に対応する前記出力制御手段が、２台目以降の前記画像形成装置に対応する前記出力制御手段としても機能するように構成されていると好ましい。
【００２５】
このような状態情報処理装置によれば、単一の出力制御手段によって、複数組の一次処理手段および二次処理手段に対応した処理を実行することができるので、出力制御手段が複数存在する場合よりも構成が簡素化されるとともに、単一の出力制御手段が出力情報を一元管理して処理することができる。
【００２６】
また、本発明の状態情報処理装置は、前記状態情報の出力対象となる前記画像形成装置について、前記画像形成装置を識別するための名称と、前記画像形成装置に対応する前記二次処理手段との対応関係を記憶する対応関係記憶手段を備えていてもよく、この場合、前記対応関係記憶手段には、前記コンピュータからの制御対象となる前記画像形成装置を追加するために前記制御対象となる画像形成装置に対応した画像形成装置制御用プログラムを前記コンピュータにインストールする際に、前記制御対象となる画像形成装置について、前記名称と前記二次処理手段との対応関係が登録され、前記二次処理手段を稼働させる際には、前記対応関係記憶手段を参照して、前記状態情報の出力対象となる前記画像形成装置の名称に対応する前記二次処理手段を特定し、特定された前記二次処理手段を稼働させるように構成されていると好ましい。
【００２７】
この状態情報処理装置においては、コンピュータからの制御対象となる画像形成装置を追加するため、制御対象となる画像形成装置に対応した画像形成装置制御用プログラムをコンピュータにインストールする際に、制御対象となる画像形成装置について、画像形成装置を識別するための名称と二次処理手段との対応関係が対応関係記憶手段に登録される。したがって、画像形成装置制御用プログラムのインストールに伴って画像形成装置が利用可能となった後、二次処理手段を稼働させる際には、対応関係記憶手段を参照して、状態情報の出力対象となる画像形成装置の名称に対応する二次処理手段を特定することができ、特定された二次処理手段を稼働させることができる。
【００２８】
また、本発明の状態情報処理装置は、前記状態情報の出力対象とすべき前記画像形成装置が特定されたときに、まず、前記出力制御手段が稼働することにより、前記出力制御手段が実行する処理の中で、前記対応関係記憶手段を参照して、前記特定された画像形成装置に対応する前記二次処理手段を特定し、特定された前記二次処理手段を稼働させ、続いて、前記二次処理手段が稼働することにより、前記二次処理手段が実行する処理の中で、前記特定された画像形成装置が利用する入出力ポートを特定し、特定された入出力ポートに対応する前記一次処理手段を稼働させるように構成されていてもよい。
【００２９】
このような状態情報処理装置によれば、出力制御手段、二次処理手段、および一次処理手段が、この順序で順に稼働を開始するので、一次処理手段が稼働を開始する時点で、出力制御手段および二次処理手段を確実に稼働させておくことができる。
【００３０】
なお、コンピュータを、請求項１〜請求項６のいずれかに記載の状態情報処理装置が備える前記二次処理手段として機能させるためのプログラムであって、前記ＯＳまたは前記入出力ポートの仕様によって異なる複数の前記一次処理手段の中から、少なくとも１つの前記一次処理手段を選択する選択手順と、前記画像形成装置から前記コンピュータへ伝送されて、前記選択手順において選択した前記一次処理手段によって前記ＯＳおよび前記入出力ポートの仕様に依存しないデータとされた前記状態情報を、前記画像形成装置の仕様による違いがあるデータから、前記画像形成装置の仕様による違いがないデータに変換する二次処理手順とを備えた状態情報処理装置用データ処理プログラムがあれば、コンピュータを上述の二次処理手段として機能させることができる。
【発明を実施するための最良の形態】
【００３１】
次に、本発明の実施形態について一例を挙げて説明する。
図１は、本発明を実施するための一形態として例示するシステムの全体構成を示す概略構成図である。
【００３２】
このシステムは、パーソナルコンピュータ１０（以下、ＰＣ１０という）、プリンタ２０、複合機３０、プリンタ４０、プリンタ５０、プリンタ６０、プリンタ７０などを備えてなる。これらのうち、ＰＣ１０は、本発明の状態情報処理装置として機能する装置であり、プリンタ２０、複合機３０、プリンタ５０、プリンタ６０、プリンタ７０は、本発明でいう画像形成装置として機能する装置である。なお、プリンタ４０は、本発明の状態情報処理装置には該当しない手段により、状態情報に関する処理を受ける装置であるが、本システムには、このようなプリンタ４０が混在していても構わない。
【００３３】
プリンタ２０、プリンタ５０、およびプリンタ７０は、それぞれ専用のケーブルを介してＰＣ１０に直接接続されている。また、複合機３０およびプリンタ６０は、それぞれ専用のケーブルを介してＵＳＢハブ８１に接続され、このＵＳＢハブ８１経由でＰＣ１０に接続されている。また、プリンタ４０は、ＬＡＮケーブルを介してＬＡＮ８３に接続され、ＬＡＮ８３経由でＰＣ１０に接続されている。さらに、プリンタ５０は、専用のケーブルを介してＩＥＥＥ１３９４ハブ８５に接続され、このＩＥＥＥ１３９４ハブ８５経由でＰＣ１０に接続されている。
【００３４】
ＰＣ１０は、ＣＰＵ１０１、ＲＯＭ１０３、ＲＡＭ１０５、ハードディスク装置１０７（以下、ＨＤＤ１０７という）、操作部１０９、表示部１１１などを備えている。ＣＰＵ１０１は、ＲＯＭ１０３およびＲＡＭ１０５に記憶されたプログラムに従って、ＰＣ１０各部に対する制御および演算を実行する装置である。ＲＯＭ１０３は、ＰＣ１０の電源スイッチを切っても記憶内容を保持している記憶装置で、ＢＩＯＳ（Basic Input Output System）や基本的ないくつかの設定データを記憶している。ＲＡＭ１０５は、ＨＤＤ１０７から読み込まれるＯＳや各種アプリケーションプログラムを記憶可能な主記憶装置で、ＣＰＵ１０１による演算に伴って発生する各種データもＲＡＭ１０５に記憶される。ＨＤＤ１０７は、ＯＳ、各種アプリケーションプログラム、および各種データファイルを記憶する装置である。操作部１０９は、キーボードや各種ポインティングデバイス（例えば、マウス）等によって構成される。表示部１１１は、カラー画像を表示可能な液晶ディスプレイ等によって構成されている。
【００３５】
また、ＰＣ１０は、他のデバイスと接続するためのインターフェース部として、パラレルインターフェース部１２２（以下、パラレルＩ／Ｆ１２２という）、ＵＳＢインターフェース部１２３（以下、ＵＳＢ  Ｉ／Ｆ１２３という）、ＬＡＮインターフェース部１２４（以下、ＬＡＮ  Ｉ／Ｆ１２４という）、ＩＥＥＥ１３９４インターフェイス部１２５（以下、ＩＥＥＥ１３９４  Ｉ／Ｆ１２５という）、ＩｒＤＡインターフェイス部１２７（以下、ＩｒＤＡ  Ｉ／Ｆ１２７という）を備えている。パラレルＩ／Ｆ１２２は、IEEE1284規格準拠のインターフェースで、主にプリンタ接続用のインターフェースとして広く普及しているものである。ＵＳＢ  Ｉ／Ｆ１２３は、ＵＳＢ規格準拠のシリアルインターフェイスで、ＵＳＢハブ８１を利用することで複数のデバイスが接続できるようになっている。なお、ＵＳＢ  Ｉ／Ｆ１２３に接続可能なデバイスは数多くあり、プリンタの他に、キーボード、マウス、スキャナ、スピーカ、各種ストレージデバイスなどが接続される。ＬＡＮ  Ｉ／Ｆ１２４は、IEEE802.3/IEEE802.3u（10BASE-T/100BASE-TX）規格準拠のインターフェースである。ＩＥＥＥ１３９４  Ｉ／Ｆ１２５は、IEEE1394規格準拠のシリアルインターフェースで、ＩＥＥＥ１３９４ハブ８５を利用することで複数のデバイスが接続できるようになっている。ＰＣ用の周辺機器の他、デジタルビデオカメラやビデオデッキなどの家電製品にも採用されているものである。ＩｒＤＡ  Ｉ／Ｆ１２７は、IrDA規格に準拠したインターフェースで、赤外線を利用したデータ通信を行うことができる。
【００３６】
さらに、ＰＣ１０には、ＯＳとしてＷｉｎｄｏｗｓ（登録商標）が搭載され、キーボード入力、画面出力、各種Ｉ／Ｆへの通信指令といった入出力機能やハードディスクやメモリの管理など、アプリケーションから共通して利用される基本機能は、ＯＳによって提供されている。
【００３７】
プリンタ２０は、ＣＰＵ２０１、ＲＯＭ２０３、ＲＡＭ２０５、ハードディスク装置２０７（以下、ＨＤＤ２０７という）、操作キー２０９、表示パネル２１１、不揮発性ＲＡＭ２１３、印字部２１５、およびパラレルＩ／Ｆ２２１などを備えている。ＣＰＵ２０１は、ＲＯＭ２０３に記憶されている制御プログラムに従ってプリンタ２０各部の制御および各種演算を実行する。ＲＯＭ２０３は、上記制御プログラムの他、各種データを記憶している。ＲＡＭ２０５は、ＣＰＵ２０１が処理中に算出する各種データを一時的に記憶する。ＨＤＤ２０７は、更に印刷対象となる画像データなど、比較的サイズの大きいデータがＰＣ１０側から送信されてきた際に、そのデータを一時的に記憶する記憶手段で、このようなＨＤＤ２０７を設けることにより、印字部２１５での印刷に時間を要する場合でも、印刷完了を待つことなくＰＣ１０からのデータ受信を行うことができる。操作キー２０９は、プリンタ２０に対して基本的な指令を与える際に操作されるものである。表示パネル２１１は、小型液晶ディスプレイによって構成され、プリンタ２０の設定や状態などの情報を表示できるようになっている。不揮発性ＲＡＭ２１３は、このプリンタ２０に関する設定等、電力供給が断たれたときにも消失させたくないデータを記憶する手段である。印字部２１５は、媒体（例えば記録用紙）に対する印刷を実行する際に作動する部分である。パラレルＩ／Ｆ２２１は、IEEE1284規格準拠のインターフェイスで、このパラレルＩ／Ｆ２２１を利用することにより、ＰＣ１０との間でデータ通信を実行できるようになっている。
【００３８】
複合機３０は、プリンタ機能、イメージスキャナ機能、コピー機能、ファクシミリ機能、および電話機能を兼ね備えた装置である。この複合機３０は、ＣＰＵ３０１、ＲＯＭ３０３、ＲＡＭ３０５、ハードディスク装置３０７（以下、ＨＤＤ３０７という）、操作キー３０９、表示パネル３１１、不揮発性ＲＡＭ３１３、印字部３１５、読み取り部３１７、モデム３１９、およびＵＳＢ  Ｉ／Ｆ３２１などを備えている。ＣＰＵ３０１は、ＲＯＭ３０３に記憶されている制御プログラムに従って複合機３０各部の制御および各種演算を実行する。ＲＯＭ３０３は、上記制御プログラムの他、各種データを記憶している。ＲＡＭ３０５は、ＣＰＵ３０１が処理中に算出する各種データを一時的に記憶する。ＨＤＤ３０７は、ファクシミリ機能により送受信する画像、イメージスキャナ機能により読み取った画像、プリンタ機能により印刷する画像など、比較的サイズが大きい画像データを記憶する記憶手段である。操作キー３０９は、複合機３０に対して基本的な指令を与える際に操作されるものである。表示パネル３１１は、小型液晶ディスプレイによって構成され、複合機３０の設定や状態などの情報を表示できるようになっている。不揮発性ＲＡＭ３１３は、この複合機３０に関する設定等、電力供給が断たれたときにも消失させたくないデータを記憶する手段である。印字部３１５は、媒体（例えば記録用紙）に対する印刷を実行可能で、プリンタ機能による印刷データの印刷、ファクシミリ機能による受信画像の印刷、コピー機能によるコピー画像の印刷等を行う際に作動する部分である。読み取り部３１７は、自動原稿送り装置（図示略）にセットされた原稿またはフラットベッドのコンタクトガラス上に置かれた原稿から画像を読み取り可能で、イメージスキャナ機能による画像の読み取り、ファクシミリ機能による送信画像の読み取り等を行う際に作動する。モデム３１９は、複合機３０側で作成されたデジタルデータを音声信号に変換して公衆回線側に送信したり、公衆回線側から受信した音声信号をデジタルデータに変換して複合機３０側で処理できるようにするための装置で、ファクシミリ機能による画像の送受信、電話機能による通話を行う際に作動する。ＵＳＢ  Ｉ／Ｆ３２１は、ＵＳＢ規格準拠のシリアルインターフェイスで、このＵＳＢ  Ｉ／Ｆ３２１を利用することにより、ＵＳＢハブ８１経由でＰＣ１０との間でデータ通信を実行できるようになっている。
【００３９】
なお、プリンタ４０〜７０は、ＰＣ１０との通信に用いる通信インターフェースの規格が相違するものの、基本的なハードウェアはプリンタ２０とほぼ同様に構成されているので、図１に内部構成を図示するにとどめ、ここでの詳細な説明は省略する。
【００４０】
次に、ＰＣ１０における状態情報処理に関連する処理系について、図２を参照しながら説明する。
ＰＣ１０における状態情報処理に関連する処理系は、図２に示すように、ＵＩ（入力／表示）の層、構文解析層、ポートアクセスの層、クラスドライバー、物理層の各階層をなすソフトウェアコンポーネントおよびハードウェアによって構成されている。
【００４１】
ＰＣ１０において、プリンタ２０、複合機３０、プリンタ４０〜７０のいずれかに対する印刷出力が行われる際には、プリンタドライバー１３１が印刷関連の処理を実行し、その処理の中で、ステータスモニターＵＩ１４１がプリンタドライバー１３１とは別のプロセスとして起動される。
【００４２】
ステータスモニターＵＩ１４１は、利用者から情報の入力を受け付ける処理や、状態情報を表示する処理を実行するコンポーネントで、その処理の中で、ステータスモニタＰＪＬパーサ１５１、ＴＣＰ／ＩＰ  ＭＩＢパーサ／モニター１５３、独自規格１用リードバックパーサ１５５、独自規格２用リードバックパーサ１５７が、ステータスモニターＵＩ１４１とは別のプロセスとして起動される（以下、これらステータスモニタＰＪＬパーサ１５１、ＴＣＰ／ＩＰ  ＭＩＢパーサ／モニター１５３、独自規格１用リードバックパーサ１５５、独自規格２用リードバックパーサ１５７を総称して単にパーサともいう）。なお、これらステータスモニタＰＪＬパーサ１５１、ＴＣＰ／ＩＰ  ＭＩＢパーサ／モニター１５３、独自規格１用リードバックパーサ１５５、独自規格２用リードバックパーサ１５７は、常にすべてが起動される訳ではなく、印刷出力が行われるプリンタに対応する１あるいは複数のパーサが起動されるようになっている。
【００４３】
ステータスモニタＰＪＬパーサ１５１は、プリンタジョブ言語（ＰＪＬ；Printer Job Language）に準拠した形式で出力される状態情報の構文解析を行って、その状態情報をステータスモニターＵＩ１４１が参照可能なデータ形式に変換する。本実施形態においては、プリンタ２０および複合機３０が、ＰＪＬに対応した仕様となっている。なお、ＰＪＬは、プリンタが備える各種機能の制御を可能とするコマンド言語で、Hewlett-Packard社において開発され、その後他社でも採用された周知のものである。
【００４４】
ＴＣＰ／ＩＰ  ＭＩＢパーサ／モニター１５３は、簡易ネットワーク管理プロトコル（ＳＮＭＰ：Simple Network Management Protocol）によって取得した状態情報の構文解析を行って、その状態情報をステータスモニターＵＩ１４１が参照可能なデータ形式に変換する。本実施形態においては、プリンタ４０が、ＳＮＭＰに対応した仕様となっている。
【００４５】
独自規格１用リードバックパーサ１５５は、独自規格１に準拠した形式で出力される状態情報の構文解析を行って、その状態情報をステータスモニターＵＩ１４１が参照可能なデータ形式に変換する。本実施形態においては、プリンタ５０およびプリンタ６０が、独自規格１に対応した仕様となっている。
【００４６】
独自規格２用リードバックパーサ１５７は、独自規格２に準拠した形式で出力される状態情報の構文解析を行って、その状態情報をステータスモニターＵＩ１４１が参照可能なデータ形式に変換する。本実施形態においては、プリンタ７０が、独自規格２に対応した仕様となっている。
【００４７】
また、これら構文解析層に属するコンポーネントのうち、ステータスモニタＰＪＬパーサ１５１、独自規格１用リードバックパーサ１５５、および独自規格２用リードバックパーサ１５７は、その処理の中で、ＵＳＢ／ＬＰＴローカルポートアービトレイター１６１、ＩＥＥＥ１３９４ポートアービトレイター１６３、ＩｒＤＡポートアービトレイター１６５（以下、ＵＳＢ／ＬＰＴローカルポートアービトレイター１６１、ＩＥＥＥ１３９４ポートアービトレイター１６３、ＩｒＤＡポートアービトレイター１６５を総称して単にアービトレイターともいう）のひとつを動的にリンクする。
【００４８】
ＵＳＢ／ＬＰＴローカルポートアービトレイター１６１、ＩＥＥＥ１３９４ポートアービトレイター１６３、ＩｒＤＡポートアービトレイター１６５は、それぞれ同一ポートを利用する他のプロセスとの間で調停を行って、あるプロセスに渡るべきデータが他のプロセスに渡らないように制御する機能を有するコンポーネントである。また、これらＵＳＢ／ＬＰＴローカルポートアービトレイター１６１、ＩＥＥＥ１３９４ポートアービトレイター１６３、ＩｒＤＡポートアービトレイター１６５は、各パーサから利用する場合のインターフェースに互換性がある構造になっており、各アービトレイターのどれを動的にリンクしても、パーサからは全く同一の処理手順で利用できるようになっている。これにより、ＯＳが提供するクラスドライバー（ＬＰＴクラスドライバー１７１，ＵＳＢプリンタクラスドライバー１７３、ＩＥＥＥ１３９４プリンタクラスドライバー１７５、ＩｒＤＡプリンタクラスドライバー１７７）は、各ドライバー毎に仕様が異なり、また、ＯＳのバージョンによっても仕様が異なる場合があるものの、パーサは、インターフェースに互換性のあるアービトレイターを介して各クラスドライバーを利用できるので、パーサがポートの仕様毎に異なるクラスドライバーを意識しなくても、クラスドライバー側からパーサ側へのデータ伝送ができる。
【００４９】
これらポートアービトレータの構成は、そのポートの種類、ＯＳの種類によって変わる。例えば、ＯＳがＷｉｎｄｏｗｓ９８（登録商標）でポートがＵＳＢの場合では、ＵＳＢのプリンタクラスドライバーをアクセスする。また、ＯＳがＷｉｎｄｏｗｓ２０００（登録商標）でポートがパラレルの場合は、パラレルのバスドライバーにアクセスする。更に、ＯＳがＷｉｎｄｏｗｓ２０００（登録商標）でポートがＵＳＢの場合は、ポート名とＵＳＢのクラスドライバーのシンボリックリンク名との変換を行い、そのシンボリックリンク名を用いてクラスドライバーにアクセスする。
【００５０】
このように、ポートアービトレータは、ＯＳやポートの仕様に依存する処理であるが、そのアクセス方法自体に関しては、ＯＳあるいは使用するクラスドライバーの提供する標準的な方法であるので、これ以上の詳述は割愛する。
【００５１】
なお、これらのポートアービトレータは、更にプロセス間のポート排他の処理も行うが、この処理の詳細も、一般的なＯＳの排他処理関数を用いるものであるので、その詳述は割愛する。
【００５２】
また同時に、ここでデータ形式の変更も行われる。例えばパラレルポートの場合では、状態情報は、プリンタからデータとして返される文字列情報と、ポートの各信号線のＨｉｇｈ／Ｌｏｗで規定されるポートステータス情報とがある。このポートステータス情報に関しては、他のポートでは対応しないものもある。この場合は、動作に差し障りないポートステータス情報（ＲＥＡＤＹなど）を内部で擬似的に生成する。従って、上位側からみた場合、どのポートのポートアービトレータであっても、同じ接続インターフェースにてステータスをとることが可能である。
【００５３】
ＬＰＴクラスドライバー１７１、ＵＳＢプリンタクラスドライバー１７３、ＩＥＥＥ１３９４プリンタクラスドライバー１７５、ＩｒＤＡプリンタクラスドライバー１７７は、ＯＳによって提供されるコンポーネントであり、ＰＣ１０の起動時または各クラスドライバーに対応するデバイスの起動時に起動される。また、ＬＰＴ物理層１８１、ＵＳＢ物理層１８３、ＩＥＥＥ１３９４物理層１８５、ＩｒＤＡ物理層１８７は、各プリンタポートを構成するハードウェアである。
【００５４】
以上説明した各構成のうち、ＵＳＢ／ＬＰＴローカルポートアービトレイター１６１、ＩＥＥＥ１３９４ポートアービトレイター１６３、ＩｒＤＡポートアービトレイター１６５が、本発明でいう一次処理手段に相当する。また、ステータスモニタＰＪＬパーサ１５１、独自規格１用リードバックパーサ１５５、独自規格２用リードバックパーサ１５７が、本発明でいう二次処理手段に相当する。さらに、ステータスモニターＵＩ１４１が、本発明でいう出力制御手段に相当する。
【００５５】
上述の通り、パーサからアービトレイターを利用するためのインターフェースは、ＵＳＢ／ＬＰＴローカルポートアービトレイター１６１、ＩＥＥＥ１３９４ポートアービトレイター１６３、ＩｒＤＡポートアービトレイター１６５すべてで互換性があり、これらのアービトレイターを利用するための処理手順は、ステータスモニタＰＪＬパーサ１５１、独自規格１用リードバックパーサ１５５、独自規格２用リードバックパーサ１５７すべてで統一されているので、これらのパーサおよびアービトレイターは、どのパーサとどのアービトレイターを組み合わせても所期の処理を行うことができる。
【００５６】
図３は、ＰＪＬ対応プリンタ（本実施形態においては、プリンタ２０および複合機３０）が出力する状態情報、独自規格１対応プリンタ（本実施形態においては、プリンタ５０およびプリンタ６０）が出力する状態情報、独自規格２対応プリンタ（本実施形態においては、プリンタ７０）が出力する状態情報、パーサ（＝ステータスモニタＰＪＬパーサ１５１、独自規格１用リードバックパーサ１５５、独自規格２用リードバックパーサ１５７）が出力する状態情報の一部を例示する一覧表である。
【００５７】
図３に示すように、ＰＪＬ、独自規格１、独自規格２では、それぞれ状態情報の形式が異なっているが、これらがパーサ（＝ステータスモニタＰＪＬパーサ１５１、独自規格１用リードバックパーサ１５５、独自規格２用リードバックパーサ１５７）によって変換されると、いずれも図３中の“パーサ出力”の欄に示したような、最大７２バイトのバイナリデータに変換される。
【００５８】
したがって、ステータスモニターＵＩ１４１では、プリンタ毎に異なる状態情報の仕様を意識しなくても、パーサ（＝ステータスモニタＰＪＬパーサ１５１、独自規格１用リードバックパーサ１５５、独自規格２用リードバックパーサ１５７）が出力する統一形式の状態情報に基づいて、状態情報を表示部１１１に表示出力する制御を行うことができる。
【００５９】
次に、本発明の状態情報処理装置を構成する各手段が実行する処理について、フローチャートに基づいてより具体的に説明する。
まず、状態情報を表示する処理に先立って行われるプリンタドライバーのインストール処理について、図４のフローチャートに基づいて説明する。このプリンタドライバーのインストール処理は、新たなプリンタ（画像形成装置）をＰＣ１０から利用できるようにしたい場合に実行される処理である。
【００６０】
プリンタドライバーインストール処理を開始すると、ＰＣ１０は、まず、通常のプリンタドライバーインストール処理を実行する（Ｓ１０１０）。このＳ１０１０の処理では、例えば、プリンタドライバーのプログラムを格納したファイルのファイル名をＯＳの管理する記憶領域に登録する処理など、ＰＣにプリンタを導入する際に一般的に行われている一連の処理が実行される。
【００６１】
そして、ステータスモニタ設定ファイルにプリンタ名とパーサ名を登録して（Ｓ１０２０）、本処理を終える。ステータスモニタ設定ファイルは、本発明でいう対応関係記憶手段に相当するもので、ＰＣ１０が備えるＨＤＤ１０７に格納されているファイルである。このステータスモニタ設定ファイルには、ＰＣ１０が状態情報処理装置として機能する際に必要となる各種情報が記録されるようになっており、このＳ１０２０の処理では、インストール中のプリンタドライバに対応するプリンタのプリンタ名と、そのプリンタに対応するパーサ名（＝パーサプログラムが格納されたファイルのファイル名）とが、対にして記録される。この記録は、後述する処理の中で、プリンタ名に基づいて起動すべきパーサを特定する際に参照されることになる。
【００６２】
次に、プリンタドライバー１３１が実行する印刷処理について、図５のフローチャートに基づいて説明する。この印刷処理は、印刷機能を持ったアプリケーションプログラムに従ってＰＣ１０が各種処理を行う中で、プリンタドライバー１３１が起動されると実行される処理である。
【００６３】
この処理を開始すると、プリンタドライバー１３１は、まず、プリンタドライバー１３１に関する設定を行うか否かを判断する（Ｓ２０１０）。ここで、利用者が設定を行う旨の操作を行っている場合には（Ｓ２０１０：ＹＥＳ）、設定用のダイアログを表示して利用者の操作を受け付け、設定された内容を所定の記憶領域に保存する（Ｓ２０２０）。
【００６４】
また、利用者が設定を行う旨の操作を行っていない場合（Ｓ２０１０：ＮＯ）、もしくはＳ２０２０の処理を終えた場合は、引き続いて、印刷処理を行うか否かを判断する（Ｓ２０３０）。ここで、まだ印刷処理を行わない場合は（Ｓ２０３０：ＮＯ）、Ｓ２０１０の処理へと戻ることにより、Ｓ２０１０〜Ｓ２０３０の処理を繰り返し、プリンタに対する設定処理を継続する。
【００６５】
一方、Ｓ２０３０の処理で、印刷処理を行うと判断された場合は（Ｓ２０３０：ＹＥＳ）、引き続いて、ステータスモニターＯＮの設定がなされているか否かを判断する（Ｓ２０４０）。ステータスモニターＯＮ／ＯＦＦの設定は、上記Ｓ２０２０の処理で行うことができ、ステータスモニターＯＮの設定になっていたら（Ｓ２０４０：ＹＥＳ）、ステータスモニターＵＩ１４１を、別のプロセスとして起動する（Ｓ２０５０）。
【００６６】
そして、ステータスモニターＯＮの設定になっていなかった場合（Ｓ２０４０：ＮＯ）、もしくはＳ２０５０の処理を終えた場合には、引き続いて、通常の印刷処理を行い（Ｓ２０６０）、本処理を終える。なお、Ｓ２０６０の処理は、スプーラシステムからＦＩＦＯで送出される印刷データをプリンタ側へ伝送する処理や、同印刷データに対して二次的な加工を施す処理であるが、これらは周知の処理なので、ここでの詳細な説明は省略する。
【００６７】
次に、上記Ｓ２０５０の処理によって起動されるステータスモニターＵＩ１４１の処理について、図６のフローチャートに基づいて説明する。
この処理を開始すると、ステータスモニターＵＩ１４１は、まず、パーサ名の読み込みを行う（Ｓ３０１０）。この処理では、先に説明したＳ１０２０の処理において、ステータスモニタ設定ファイルに登録された情報（プリンタ名とパーサ名との対応関係）が参照され、このステータスモニターＵＩ１４１が対象としているプリンタに対応するパーサ名が読み込まれる。
【００６８】
そして、Ｓ３０１０の処理で読み込んだパーサ名を使用して、パーサを別のプロセスとして起動する（Ｓ３０２０）。このとき、パーサには、プリンタ名をコマンドラインで渡す。
【００６９】
そして、別プロセスでステータスモニターＵＩ１４１を既に起動済みかどうかを判断し（Ｓ３０３０）、起動済みでなければ（Ｓ３０３０：ＮＯ）、メッセージループ処理に移行する（Ｓ３０４０）。また、起動済みである場合（Ｓ３０３０：ＹＥＳ）、もしくはＳ３０４０の処理を終えた場合は、本処理を終了する。
【００７０】
Ｓ３０４０のメッセージループ処理は、詳しくは図７のフローチャートに示すような処理となる。このメッセージループ処理では、メッセージとして到来する指示の内容を判断して、その指示（メッセージ）に対応する処理を実行することが繰り返される。
【００７１】
具体的には、まず、メッセージによる指示が“初期化”かどうかを判断し（Ｓ４０１０）、“初期化”であれば（Ｓ４０１０：ＹＥＳ）、初期化処理を実行して、Ｓ４０１０の処理へと戻る。
【００７２】
また、メッセージによる指示が“初期化”でない場合（Ｓ４０１０：ＮＯ）、メッセージによる指示が“終了”かどうかを判断し（Ｓ４０３０）、“終了”であれば（Ｓ４０３０：ＹＥＳ）、他プロセスとの間の全通信を閉じて（Ｓ４０４０）、このメッセージループ処理を終える。
【００７３】
また、メッセージによる指示が“終了”でない場合（Ｓ４０３０：ＮＯ）、パーサからのメッセージかどうかを判断する（Ｓ４０５０）。パーサからのメッセージとは、上述したＳ３０２０の処理で起動したパーサのプロセスから到来するメッセージである。パーサが実行する処理の具体的な内容については、後から詳述するが、このメッセージループ処理では、パーサとの間でプロセス間通信を行いながら、各種処理を実行することになる。
【００７４】
Ｓ４０５０の処理において、パーサからのメッセージでない場合は（Ｓ４０５０：ＮＯ）、その他のメッセージに対する処理を実行した上で（Ｓ４０６０）、Ｓ４０１０の処理へと戻る。
【００７５】
一方、Ｓ４０５０の処理において、パーサからのメッセージであった場合は（Ｓ４０５０：ＹＥＳ）、そのメッセージによる指示が“インストール”かどうかを判断し（Ｓ４１００）、“インストール”であれば（Ｓ４１００：ＹＥＳ）、対象となるパーサとの通信を確立する（Ｓ４１１０）。対象となるパーサとの具体的な通信手順や通信方法については、プロセス間で相互にデータを送受信できるような仕組みになっていれば、特に限定されないが、本実施形態では、後述するパーサ処理において確保される共有メモリにアタッチして、共有メモリを介してプロセス間でデータのやり取りを行う方法を採用している。そして、表示バッファを確保して（Ｓ４１２０）、Ｓ４０１０の処理へと戻る。表示バッファは、ＰＣ１０が備える表示部１１１に状態情報を表示出力するためのバッファである。
【００７６】
また、メッセージによる指示が“インストール”でない場合（Ｓ４１００：ＮＯ）、メッセージによる指示が“ステータスアップデート”かどうかを判断し（Ｓ４２００）、“ステータスアップデート”であれば（Ｓ４２００：ＹＥＳ）、アタッチしている共有メモリから状態情報を読み出し、その状態情報を対象となる表示バッファに書き込むことにより更新する（Ｓ４２１０）。表示バッファは、上記Ｓ４１２０の処理によって確保されたメモリであるが、複数のパーサが起動されている場合には、Ｓ４１２０の処理が複数のパーサと同数回実行されて、複数の表示バッファが確保されているので、このＳ４２１０の処理では、メッセージに基づいて、どのパーサから到来したメッセージなのかを特定し、特定したパーサに対応する表示バッファを対象にして表示バッファを更新する。そして、表示バッファを更新したら、更新した状態情報をＰＣ１０が備える表示部１１１に実際に表示出力するため、表示部１１１の表示を更新するための制御を実行して（Ｓ４２２０）、Ｓ４０１０の処理へと戻る。
【００７７】
また、メッセージによる指示が“ステータスアップデート”でない場合（Ｓ４２００：ＮＯ）、メッセージによる指示が“アンインストール”かどうかを判断し（Ｓ４３００）、“アンインストール”であれば（Ｓ４３００：ＹＥＳ）、対象パーサとの通信を閉じる（Ｓ４３１０）。具体的には、本実施形態では、上記Ｓ４１１０の処理でアタッチした共有メモリをデタッチするが、上記Ｓ４１１０の処理において共有メモリ以外の手段でプロセス間通信を実現した場合は、そのプロセス間通信のために確保したリソースを解放する処理等を行うことになる。そして、Ｓ４１２０の処理で確保した対象表示バッファを消去する（Ｓ４３２０）。なお、これらＳ４３１０およびＳ４３２０の処理でも、メッセージに基づいて、どのパーサから到来したメッセージなのかを特定し、特定したパーサとの通信を閉じるとともに、特定したパーサに対応する表示バッファを対象にして表示バッファを消去することになる。そして、監視対象となるパーサのプロセスが一つもない状態になったかどうかを判断し（Ｓ４３３０）、監視対象となるパーサのプロセスが残っていれば（Ｓ４４３０：ＮＯ）、Ｓ４０１０の処理へと戻る一方、監視対象となるパーサのプロセスが残っていなければ（Ｓ４４３０：ＹＥＳ）、このメッセージループ処理を終える。
【００７８】
ステータスモニターＵＩ１４１が、以上説明したようなメッセージループ処理を実行するのと並行して、上記Ｓ３０２０の処理によって起動されたパーサ（ステータスモニタＰＪＬパーサ１５１、独自規格１用リードバックパーサ１５５、および独自規格２用リードバックパーサ１５７）は、図８のフローチャートに示すようなパーサ処理を実行する。
【００７９】
このパーサ処理では、まず、ステータスモニターＵＩとの通信確立を行うための準備を行う（Ｓ５０１０）。具体的には、共有メモリとなるメモリ領域を確保する処理などが行われる。そして、パーサ起動時に引数として渡されたプリンタ名に基づいて、そのプリンタが使用するポート名を調査し（Ｓ５０２０）、ポート名に基づいて、利用するアービトレイターを選択する（Ｓ５０３０）。
【００８０】
本実施形態において、選択対象となるアービトレイターは、先に説明したＵＳＢ／ＬＰＴローカルポートアービトレイター１６１、ＩＥＥＥ１３９４ポートアービトレイター１６３、ＩｒＤＡポートアービトレイター１６５のいずれかである。これらのアービトレイターとして機能を実現するためのプログラムは、いずれもダイナミック・リンク・ライブラリ（以下、ＤＬＬともいう）として提供され、パーサ処理を実行するプロセスが、Ｓ５０３０の処理で選択されたアービトレイターをメモリにロードし（Ｓ５０４０）、これにより、パーサは、処理対象としているプリンタが利用するポートに対応したアービトレイターを利用して、状態情報を取得することができるようになる。
【００８１】
パーサがアービトレイターを利用するためのインターフェースは、ＵＳＢ／ＬＰＴローカルポートアービトレイター１６１、ＩＥＥＥ１３９４ポートアービトレイター１６３、ＩｒＤＡポートアービトレイター１６５のすべてで互換性がある呼び出し形式にされており、パーサは、ＵＳＢ／ＬＰＴローカルポートアービトレイター１６１、ＩＥＥＥ１３９４ポートアービトレイター１６３、ＩｒＤＡポートアービトレイター１６５のいずれをリンクした場合でも、どれをリンクしたのかを意識することなく、同一の処理手順でアービトレイターを利用することができる。
【００８２】
以上の処理を終えたら、パーサは、ステータスモニターＵＩ１４１のプロセスに対して、インストールメッセージを送信する（Ｓ５０５０）。このメッセージは、先に説明したステータスモニターＵＩ１４１のメッセージループ処理において、Ｓ４１００〜Ｓ４１２０の処理を実行する契機となるメッセージで、ステータスモニターＵＩ１４１側の処理が完了した時点で、ステータスモニターＵＩ１４１とパーサとの通信が確立することになる。
【００８３】
続いて、パーサは、状態情報送信要求をプリンタへ送信する（Ｓ５０６０）。具体的な送信方法は、送信対象となるプリンタの仕様やそのプリンタが使用するプリンタポートの仕様などを考慮して、問題なくプリンタへ状態情報送信要求をできる方法であれば任意であるが、本実施形態においては、ＰＣ１０が備えるスプーラシステムを利用して、状態情報送信要求を一つの印刷ジョブとして処理することにより、状態情報送信要求をプリンタへと送信する。スプーラシステムはＦＩＦＯで印刷ジョブを処理するように構成されているので、スプーラシステム経由で状態情報送信要求をプリンタへと送信することにより、通常の印刷ジョブと状態情報送信要求が混在するかたちで同時にプリンタに送信されてしまうのを防止することができる。
【００８４】
続いて、パーサは、所定時間待機して（Ｓ５０７０）、終了条件を満足するか否かを判断する（Ｓ５０８０）。なお、Ｓ５０７０の処理は、後述するＳ５０８０〜Ｓ５１３０の処理が過剰な頻度で繰り返されないようにするための処理であり、本実施形態では１秒間待機するようにしてある。また、Ｓ５０８０の処理で終了条件を満足すると判断されるのは、通常、終了させるための操作がなされた時であるが、エラーその他の事情により、終了条件を満足することもある。
【００８５】
印刷出力中は、通常、終了条件を満足しないので（Ｓ５０８０：ＮＯ）、アービトレイターよりデータ（＝状態情報）を受信する（Ｓ５０９０）。本実施形態において、Ｓ５０９０の処理で受信するデータは、パーサが受信バッファとなるメモリを確保し、その受信バッファのアドレスを引数としてアービトレイター側に渡し、アービトレイターが指定されたアドレスにデータを格納することにより、そのデータをパーサ側で受信している。
【００８６】
アービトレイターは、ＵＳＢ／ＬＰＴローカルポートアービトレイター１６１であれば、ＬＰＴクラスドライバー１７１またはＵＳＢプリンタクラスドライバー１７３の仕様に応じた方式で、ＵＳＢ接続されたプリンタ２０、複合機３０、またはプリンタ６０からの状態情報を入力し、その状態情報を受信バッファに格納する。また、ＩＥＥＥ１３９４ポートアービトレイター１６３であれば、ＩＥＥＥ１３９４プリンタクラスドライバー１７５の仕様に応じた方式で、プリンタ５０からの状態情報を入力し、その状態情報を受信バッファに格納する。さらに、ＩｒＤＡポートアービトレイター１６５であれば、ＩｒＤＡプリンタクラスドライバー１７７の仕様に応じた方式で、プリンタ７０からの状態情報を入力し、その状態情報を受信バッファに格納する。このように各アービトレイターは、各クラスドライバーの仕様に応じた方式で状態情報を入力するものの、入力した状態情報は、各クラスドライバーの仕様に依存しない形式で受信バッファに格納されるので、パーサは、プリンタポートの仕様を全く意識することなく、受信バッファに格納された状態情報を参照することができる。ただし、受信バッファに格納された状態情報は、図３に示した「ＰＪＬ」、「独自規格１」、「独自規格２」の各欄に示したように、プリンタの仕様に依存したデータ形式になっている。
【００８７】
そこで、パーサは、受信バッファに格納された状態情報について、字句・構文の解析を行い（Ｓ５１００）、前回受信した状態情報との比較において変化がなければ（Ｓ５１１０：ＮＯ）、Ｓ５０７０の処理へと戻ることにより、Ｓ５０７０〜Ｓ５１３０の処理を繰り返す。
【００８８】
一方、前回受信した状態情報から変化があれば（Ｓ５１１０：ＹＥＳ）、ステータスモニターＵＩとの通信バッファに状態情報を書き込む（Ｓ５１２０）。Ｓ５１２０の処理で状態情報を書き込む通信バッファは、上記Ｓ５０１０の処理で確保した共有メモリであり、この共有メモリに状態情報を書き込むことにより、ステータスモニターＵＩ１４１側で最新の状態情報を参照できるようになる。Ｓ５１２０の処理で共有メモリに書き込まれる状態情報は、「ＰＪＬ」、「独自規格１」、「独自規格２」とも、それぞれ専用の字句解析・構文解析が行われ、図３に示した「パーサ出力」の欄に示したような、統一したデータ形式に変換される。これにより、ステータスモニターＵＩ１４１側では、「ＰＪＬ」、「独自規格１」、「独自規格２」といったプリンタの仕様を全く意識することなく、共有メモリに格納された状態情報を参照することができる。
【００８９】
こうして、Ｓ５１２０の処理により、共有メモリに「パーサ出力」仕様で統一された状態情報を書き込んだら、パーサは、ステータスモニターＵＩ１４１のプロセスに対して、ステータスアップデートメッセージを送信する（Ｓ５１３０）。このメッセージは、先に説明したステータスモニターＵＩ１４１のメッセージループ処理において、Ｓ４２００〜Ｓ４２２０の処理を実行する契機となるメッセージである。そして、Ｓ５１３０の処理を終えたら、Ｓ５０７０の処理へと戻ることにより、Ｓ５０７０〜Ｓ５１３０の処理を繰り返す。
【００９０】
この繰り返し処理の中で、操作者の操作により、Ｓ５０８０の処理における終了条件を満足したら（Ｓ５０８０：ＹＥＳ）、アンインストールメッセージを送信する（Ｓ５１４０）。このメッセージは、先に説明したステータスモニターＵＩ１４１のメッセージループ処理において、Ｓ４３００〜Ｓ４３３０の処理を実行する契機となるメッセージである。そして、ステータスモニターＵＩとの通信の後処理を行い（Ｓ５１５０）、本処理を終了する。Ｓ５１５０の処理では、Ｓ５０１０の処理で準備された共有メモリを解放する処理などが行われる。
【００９１】
ところで、以上説明した処理のうち、プリンタドライバー１３１が実行する印刷処理（図５参照）は、プリンタ２０、複合機３０、プリンタ５０、プリンタ６０、プリンタ７０のいずれかに対する印刷出力が行われる毎に実行されるので、この処理が並行して複数実行されることがある。そして、それら複数の印刷処理それぞれの中で、Ｓ２０５０の処理が実行されるので、複数のステータスモニターＵＩ１４１が起動され、複数のステータスモニターＵＩ処理（図６、図７参照）が並行して複数実行されることがある。さらに、複数のステータスモニターＵＩ処理それぞれの中で、Ｓ３０２０の処理が実行されるので、複数のパーサ（ステータスモニタＰＪＬパーサ１５１、ＴＣＰ／ＩＰ  ＭＩＢパーサ／モニター１５３、独自規格１用リードバックパーサ１５５、独自規格２用リードバックパーサ１５７）が起動され、複数のパーサ処理（図８参照）が並行して複数実行されることがある。
【００９２】
ただし、ステータスモニターＵＩ１４１については、複数が起動されたとしても、Ｓ３０２０の処理によってパーサを起動した後、Ｓ３０３０の処理を実行することにより、１番最初に起動されたステータスモニターＵＩ１４１だけが、Ｓ３０４０のメッセージループ処理を実行し、２番目以降に起動されたステータスモニターＵＩ１４１は、メッセージループ処理を実行することなく処理を終え、そのプロセスは終了する。そして、複数のステータスモニターＵＩ１４１それぞれが起動した複数のパーサは、１番最初に起動されたステータスモニターＵＩ１４１との間でプロセス間通信を行い、各パーサが出力する状態情報は、単一のステータスモニターＵＩによって受け取られる。
【００９３】
つまり、印刷処理の開始順で１台目のプリンタ（画像形成装置）に対応するアービトレイター（一次処理手段）、パーサ（二次処理手段）、およびステータスモニターＵＩ１４１（出力制御手段）が稼働している状態において、さらに２台目以降のプリンタに対応するアービトレイター、パーサ、およびステータスモニターＵＩ１４１を稼働させる際には、１台目のプリンタに対応するアービトレイター、およびパーサとは別に、２台目以降のプリンタに対応するアービトレイター、およびパーサが稼働するとともに、１台目のプリンタに対応するステータスモニターＵＩ１４１が、２台目以降のプリンタに対応するステータスモニターＵＩ１４１としても機能するように構成されているのである。
【００９４】
したがって、単一のステータスモニターＵＩ１４１によって、複数組のアービトレイター、およびパーサに対応した処理を実行することができるので、ステータスモニターＵＩ１４１が複数存在する場合よりも、リソースの消費を抑制可能な簡素な構成にすることができ、単一のステータスモニターＵＩ１４１が出力情報を一元管理して、複数のステータスモニターＵＩ１４１がバラバラに情報出力を行う場合よりも、状態情報を利用者がより見やすいかたちにまとめて提供するなど、より優れた情報提供ができるようになる。
【００９５】
以上説明した通り、上記ＰＣ１０によって構成される状態情報処理装置によれば、アービトレイター（一次処理手段）は、ＯＳまたはプリンタポート（入出力ポート）の仕様によって異なる複数のアービトレイターの中から、少なくとも１つが選択されてＰＣ１０に設けられる手段となっており、且つ、パーサ（二次処理手段）は、プリンタ（画像形成装置）の仕様によって異なる複数のパーサの中から、少なくとも１つが選択されてＰＣ１０に設けられる手段となっている。しかも、複数のアービトレイターそれぞれが利用するパーサとのインターフェイス（パーサから指定された受信バッファへ状態情報を格納する仕様等）には互換性があり、且つ、複数のパーサそれぞれが利用するアービトレイターとのインターフェイス（受信バッファのアドレスをアービトレイターに伝達する仕様等）には互換性があり、アービトレイターおよびパーサをどのような組み合わせでコンピュータに設けても、アービトレイターおよびパーサが連携可能となっている。
【００９６】
そのため、例えば、上記実施形態の場合、ＯＳまたはプリンタポートの仕様の違いにより、３種のアービトレイターが用意され、プリンタの仕様の違いにより、３種のパーサが用意されているものの、これら６種の手段を組み合わせるだけで、３種×３種＝９種の組み合わせに対応でき、従来品のように９種の手段をそれぞれ用意するのに比べ、開発・製造にかかるコストや時間を抑制することができる。
【００９７】
なお、ＴＣＰ／ＩＰ  ＭＩＢパーサ／モニター１５３は、ＴＣＰ／ＩＰ１９１経由で状態情報を取得するように構成されているものの、本発明でいう一次処理手段に相当する部分と二次処理手段に相当する部分が明確に区分されていないので、本発明の状態情報処理装置を構成可能なコンポーネントには相当しない。ただし、ステータスモニタＰＪＬパーサ１５１、ＴＣＰ／ＩＰ  ＭＩＢパーサ／モニター１５３、独自規格１用リードバックパーサ１５５、独自規格２用リードバックパーサ１５７は、すべて、ステータスモニターＵＩ１４１との間のインターフェースに互換性がある。つまり、本発明でいう出力制御手段に相当するステータスモニターＵＩ１４１は、本発明でいう一次処理手段ないし二次処理手段には相当しないＴＣＰ／ＩＰ  ＭＩＢパーサ／モニター１５３とも連携可能であり、ステータスモニターＵＩ１４１と連携するすべてのモジュールが、全て本発明の構成となっている必要はないのである。このようなモジュール構成にすれば、従来品が、一次処理手段に相当する部分と二次処理手段に相当する部分が明確に区分されていないモジュールを採用している場合に、そのような従来品と共存できるので、従来タイプからの移行も容易である。
【００９８】
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
例えば、上記実施形態では、パーサ内においてポートアービトレータを選択する方法として、利用するポート名に基づいて、そのポート名に対応するアービトレイターを選択する旨を説明したが、どのポート名にどのアービトレイターが対応しているのかを示す情報については、パーサが内部データとして記憶していてもよいし、パーサとは別の設定ファイルを用意しておいて、その設定ファイルをパーサが参照することにより、ポート名とアービトレイターとの対応関係を取得するように構成してあってもよい。
【００９９】
より具体的には、例えば、下記のように「ポート名＝対応アービトレータ」というかたちで、両者の対応関係を記述した書き換え可能な設定ファイルを用意する。
LPT1:  =  portArbitorator1.exe
LPT2:  =  portArbitorator1.exe
LPT3:  =  portArbitorator1.exe
USB001 =  portArbitorator2.exe
USB002 =  portArbitorator2.exe
IRDA1  =  portArbitorator3.exe
そして、パーサは、この設定ファイルを参照して対応するアービトレータを読み出し、そのアービトレータを使用する。
【０１００】
このようにすれば、新たに新規ポートに対応する場合に、その新しいポートに対応するアービトレータを用意するとともに、この設定ファイルを変更することで、パーサ自体を書き換えることなく、新規ポートに対応することができる。
【０１０１】
またポートアービトレータは、単一ＯＳ，単一ポート種ごとに作成する必要はない。例えば、別ポートであっても内部処理が近ければ、単一のポートアービトレータにて処理することも可能である。またＯＳが違っても同じ処理でできるポートは、ＯＳ間で共通に使ってもよい。
【０１０２】
例えば、上記実施形態では、ステータスモニターＵＩ１４１が、状態情報をＰＣ１０の表示部１１１に表示する例を示したが、具体的な出力先は任意であり、例えば、状態情報をログとしてファイルに出力するようにしてもよいし、ログ出力専用のプリンタを用意して印刷出力するようにしてもよい。また、表示出力する場合でも、一旦ファイルに出力し、そのファイルを汎用の表示プログラムを利用して表示するようにしてあってもよい。
【０１０３】
また、上記実施形態では、特定のプリンタポートの仕様や特定のプリンタの仕様を例示したが、プリンタポートの仕様やプリンタの仕様については特に限定されない。
また、上記実施形態では、ステータスモニターＵＩ１４１とパーサとの間でプロセス間通信を行う手段として、メッセージや共有メモリなどの具体例を挙げたが、これらプロセス間通信を行う手段は任意であり、例えば、ミューテックス、セマフォなど、どのような通信手段を利用しても構わない。
【０１０４】
また、上記実施形態では、パーサとアービトレイターとを連携させるため、アービトレイターをダイナミック・リンク・ライブラリとして用意し、パーサが必要なアービトレイターを動的にリンクするように構成してあったが、パーサが必要なアービトレイターを別プロセスとして起動するように構成してもよく、この場合、ステータスモニターＵＩ１４１とパーサとの連携方法と同様、パーサとアービトレイターとがプロセス間通信を行って、相互に必要な情報を伝送するように構成してあればよい。
【０１０５】
さらに、上記実施形態では、ステータスモニターＵＩ１４１をプリンタドライバー１３１が起動するように構成してあったが、ステータスモニターＵＩ１４１は、他の方法で起動されるようになっていてもよく、例えば、ポートモニターがステータスモニターＵＩ１４１を起動するように構成されていてもよいし、あるいは、利用者がマニュアル操作でステータスモニターＵＩ１４１を起動できるように構成されていてもよい。
【図面の簡単な説明】
【０１０６】
【図１】本発明の実施形態として説明した状態情報処理装置と画像形成装置を含むネットワークシステムの構成図。
【図２】状態情報処理装置が備える状態情報の処理系の階層図。
【図３】プリンタの仕様毎に異なる状態情報とパーサが出力する統一された状態情報を示す一覧表。
【図４】プリンタドライバーインストール処理のフローチャート。
【図５】プリンタドライバーによる印刷処理のフローチャート。
【図６】ステータスモニターＵＩ処理のフローチャート。
【図７】ステータスモニターＵＩによるメッセージループ処理のフローチャート。
【図８】パーサ処理のフローチャート。
【符号の説明】
【０１０７】
１０・・・パーソナルコンピュータ、２０，４０，５０，６０，７０・・・プリンタ、３０・・・複合機、８１・・・ＵＳＢハブ、８３・・・ＬＡＮ、８５・・・ＩＥＥＥ１３９４ハブ、１０１，２０１，３０１，４０１，５０１，７０１・・・ＣＰＵ、１０３，２０３，３０３，４０３，５０３，７０３・・・ＲＯＭ、１０５，２０５，３０５，４０５，５０５，７０５・・・ＲＡＭ、１０７，２０７，３０７，４０７，５０７，７０７・・・ハードディスク装置、１０９・・・操作部、１１１・・・表示部、１２２，２２１・・・パラレルインターフェース部、１２３，３２１・・・ＵＳＢインターフェース部、１２４，４２１・・・ＬＡＮインターフェース部、１２５，５２１・・・ＩＥＥＥ１３９４インターフェイス部、１２７，７２１・・・ＩｒＤＡインターフェイス部、１３１・・・プリンタドライバー、１４１・・・ステータスモニターＵＩ、１５１・・・ステータスモニタＰＪＬパーサ、１５３・・・ＴＣＰ／ＩＰ  ＭＩＢパーサ／モニター、１５５・・・独自規格１用リードバックパーサ、１５７・・・独自規格２用リードバックパーサ、１６１・・・ＵＳＢ／ＬＰＴローカルポートアービトレイター、１６３・・・ＩＥＥＥ１３９４ポートアービトレイター、１６５・・・ＩｒＤＡポートアービトレイター、１７１・・・ＬＰＴクラスドライバー、１７３・・・ＵＳＢプリンタクラスドライバー、１７５・・・ＩＥＥＥ１３９４プリンタクラスドライバー、１７７・・・ＩｒＤＡプリンタクラスドライバー、１８１・・・ＬＰＴ物理層、１８３・・・ＵＳＢ物理層、１８５・・・ＩＥＥＥ１３９４物理層、１８７・・・ＩｒＤＡ物理層、２０９，３０９，４０９，５０９，７０９・・・操作キー、２１１，３１１，４１１，５１１，７１１・・・表示パネル、２１３，３１３，４１３，５１３，７１３・・・不揮発性ＲＡＭ、２１５，３１５，４１５，５１５，７１５・・・印字部、３１７・・・読み取り部、３１９・・・モデム。
【図１】
2006053657.tif 000003
【図２】
2006053657.tif 000004
【図３】
2006053657.tif 000005
【図４】
2006053657.tif 000006
【図５】
2006053657.tif 000007
【図６】
2006053657.tif 000008
【図７】
2006053657.tif 000009
【図８】
2006053657.tif 000010