(57)【要約】【課題】１台のプリンタを複数のホスト機器で共用する環境であっても、印刷を行っていないホスト機器から送られた情報取得リクエストに応えて、適切なプリンタ情報を返信することを可能にしたプリンタアダプタ装置を提供する。【解決手段】外部プリンタ１４と有線インターフェースで接続されるプリンタアダプタ１６とホスト機器とで構成される印刷システムにおいて、前記ホスト機器からのプリンタアダプタ１６への情報取得リクエストに従って、外部プリンタ１４から前記有線インターフェースで取得される外部プリンタ１４の情報を、プリンタアダプタ１６が有するインターフェース及びネットワークの使用状況情報に従って、追加・変更を行い、前記ホスト機器へ返信する。【選択図】        図１
2005011246.tif 000002
【特許請求の範囲】
【請求項１】
デバイスと第１のインターフェースを介して接続されると共に、複数の外部の情報処理装置と前記第１のインターフェースとは異なる第２のインターフェースを介して接続されたデータ処理装置において、
前記情報処理装置から送られてきた情報取得リクエストに従って、前記デバイスに関する情報であるデバイス情報を前記デバイスから取得する取得手段と、
前記取得手段により前記デバイスから取得したデバイス情報の内容を、前記デバイスの種類及び情報処理装置との通信状況に従って変更する変更手段と、
前記変更手段により変更されたデバイス情報を、前記情報取得リクエストを送った情報処理装置へ返信する返信手段とを備えたことを特徴とするデータ処理装置。
【請求項２】
前記デバイスがネットワーク対応型のデバイスであるか否かを判定する判定手段を有し、前記変更手段は、前記判定手段の判定結果に基づいて、前記デバイス情報の変更を異なるものにしたことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記情報取得リクエストを送った情報処理装置とは異なる情報処理装置と通信中であるかを判断する判断手段を有し、前記変更手段は、前記判断手段の判断結果に基づいて、前記デバイス情報の変更を異なるものにしたことを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
前記変更手段は、前記情報取得リクエストを送った情報処理装置とは異なる情報処理装置と通信中であり、かつデバイスが複数の情報処理装置に対応可能である場合には、他の情報処理装置が使用中であることを示すデバイス情報へ変更し、前記情報取得リクエストを送った情報処理装置とは異なる情報処理装置と通信中であり、かつデバイスが複数の情報処理装置に対応可能でない場合には、インターフェース使用中であることを示すデバイス情報へ変更することを特徴とする請求項１乃至３のいずれかに記載のデータ処理装置。
【請求項５】
前記返信手段は、前記情報取得リクエストを送った情報処理装置とは異なる情報処理装置と通信中でない場合には、正常であることを示すデバイス情報を返信することを特徴とする請求項１乃至４のいずれかに記載のデータ処理装置。
【請求項６】
デバイスと第１のインターフェースを介して接続されると共に、複数の外部の情報処理装置と前記第１のインターフェースとは異なる第２のインターフェースを介して接続されたデータ処理装置の制御方法において、
前記情報処理装置から送られてきた情報取得リクエストを受信し、
前記情報取得リクエストに従って前記デバイスに関する情報であるデバイス情報を前記デバイスから取得し、
前記デバイスから取得したデバイス情報の内容を、前記デバイスの種類及び情報処理装置との通信状況に従って変更して前記情報処理装置へ返信することを特徴とするデータ処理装置の制御方法。
【請求項７】
デバイスと第１のインターフェースを介して接続されると共に、外部の情報処理装置と前記第１のインターフェースとは異なる第２のインターフェースを介して接続されたデータ処理装置を制御するためのコンピュータで読み取り可能な制御プログラムであって、
前記情報処理装置から送られてきた情報取得リクエストに従って、前記デバイスに関する情報であるデバイス情報を前記デバイスから取得する取得ステップと、
前記取得ステップにより前記デバイスから取得したデバイス情報の内容を、前記デバイスの種類及び情報処理装置との通信状況に従って変更する変更ステップと、
前記変更ステップにより変更されたデバイス情報を、前記情報取得リクエストを送った情報処理装置へ返信する返信ステップとを備えたことを特徴とする制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタ等のデバイスとＵＳＢなどのローカルインターフェースで接続され、外部の情報処理装置と例えば有線及び無線のインターフェースで接続されたデータ処理装置及びその制御方法に関する。
【０００２】
【従来の技術】
従来より、有線または無線、あるいはその両者のインターフェースを備え、且つ外部プリンタとはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などのローカルインターフェースと接続されたプリンタアダプタが知られている。このプリンタアダプタは、無線あるいは有線ネットワーク経由で複数のホストコンピュータから印刷指示を受けて、外部プリンタを使用して印刷処理を行う機能を有している。
【０００３】
プリンタは、ＰＣとＵＳＢなどのローカルインターフェースで一対一の接続が一般的であったが、家庭などでも複数のＰＣから印刷するようなニーズに応えられるネットワークへの要望が増している。現在のプリンタは、ローカルインターフェース（例えばＵＳＢ）を使ってＰＣ（パーソナルコンピュータ）から印刷を行うものが多く、これらのプリンタを有線及び無線インターフェースで利用しようとする場合は、有線及び無線インターフェースを備えたプリンタアダプタを接続することで実現することができる。すなわち、プリンタアダプタをローカルインターフェースを介して既存のプリンタへ接続することで、有線、無線インターフェース経由で複数のホストＰＣからプリンタに容易に接続して印刷することができる（例えば、特許文献１）。
【０００４】
また、現在のＵＳＢのようなローカルインターフェースでＰＣと接続されるプリンタでは、プリンタのインターフェース状況やプリンタの状態情報を表示するソフトウェア（ステータスモニタ）を利用して、インクの残量やエラーの状況などをユーザに知らせることが一般的に行われている。
【０００５】
【特許文献１】
特開２００２−１２３３７３号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、プリンタがプリンタアダプタを介して複数のホストＰＣに共有されるシステムにおいては、複数のホストＰＣから同時期に印刷指示が発行されるような状況が発生するようになった。
【０００７】
その一方で、プリンタとプリンタアダプタとはローカルインタフェースを介して接続されるため、プリンタ側からすると、プリンタアダプタを経由してプリンタに送信される印刷指示（または印刷ジョブ、印刷データ）は１台のＰＣのみから発行されていると認識する。
【０００８】
従って、プリンタは、プリンタアダプタを介して接続されている複数のＰＣに対しては、印刷処理を実行しりているＰＣに対しても、印刷処理を実行していないＰＣに対しても、同様な情報を提供してしまう。
【０００９】
さらに、ローカルインターフェースでＰＣと接続されたプリンタ（第１タイプのプリンタ）では、１台のＰＣから利用されることを前提に各種ソフトウェアが作成されているため、複数のＰＣからの印刷指示が同時期に発行されることに対応していない。一例として、このようなプリンタに対するステータスモニタは、印刷処理を実行しているＰＣ（ユーザ）においては印刷の状況や情報（ステータス）を表示することはできるが、それ以外のＰＣ（ユーザ）においてはステータスの表示を行うことができない。或いは、印刷処理を実行していないＰＣが強制的にステータスをこのようなプリンタから取得しようとすると、現在行われている印刷処理に影響を与えてしまう可能性がある。
【００１０】
その一方で、複数のＰＣからの印刷指示が同時期に行われることに対応して、印刷処理を実行しているＰＣ以外のＰＣに対してもステータスを提供可能なプリンタ（第２タイプのプリンタ）も存在する。
【００１１】
したがって、ローカルインターフェースでプリンタに接続され且つ有線、無線インターフェース経由で複数のホストＰＣに接続されるプリンタアダプタは、どちらのタイプのプリンタに接続されうるか分からないため、第１タイプのプリンタに合わせて設計されることになる。しかし、この場合、プリンタアダプタは第２タイプのプリンタと接続されているにもかかわらず、印刷を行っていないＰＣから発せられた状況確認のためのリクエストに応えることができない。
【００１２】
本発明は、上記問題点に鑑み、１台のデバイスを複数の情報処理装置で共有できるようにする一方で複数の情報処理装置のぞれぞれに対して適切なデバイス情報を提供できるとともに、異なるタイプのデバイスのそれぞれに関して適切なデバイス情報を提供できるデータ処理装置、その制御方法、及び制御プログラム等を提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記目的を達成するために、本発明のデータ処理装置では、デバイスと第１のインターフェースを介して接続されると共に、複数の外部の情報処理装置と前記第１のインターフェースとは異なる第２のインターフェースを介して接続されたデータ処理装置において、前記情報処理装置から送られてきた情報取得リクエストに従って、前記デバイスに関する情報であるデバイス情報を前記デバイスから取得する取得手段と、前記取得手段により前記デバイスから取得したデバイス情報の内容を、前記デバイスの種類及び情報処理装置との通信状況に従って変更する変更手段と、前記変更手段により変更されたデバイス情報を、前記情報取得リクエストを送った情報処理装置へ返信する返信手段とを備えたことを特徴とする。
【００１４】
本発明のデータ処理装置の制御方法では、デバイスと第１のインターフェースを介して接続されると共に、複数の外部の情報処理装置と前記第１のインターフェースとは異なる第２のインターフェースを介して接続されたデータ処理装置の制御方法において、前記情報処理装置から送られてきた情報取得リクエストを受信し、前記情報取得リクエストに従って前記デバイスに関する情報であるデバイス情報を前記デバイスから取得し、前記要求により前記デバイスから取得したデバイス情報の内容を、前記デバイスの種類及び情報処理装置との通信状況に従って変更して前記情報処理装置へ返信することを特徴とする。
【００１５】
本発明の制御プログラムでは、デバイスと第１のインターフェースを介して接続されると共に、外部の情報処理装置と前記第１のインターフェースとは異なる第２のインターフェースを介して接続されたデータ処理装置を制御するためのコンピュータで読み取り可能な制御プログラムであって、前記情報処理装置から送られてきた情報取得リクエストに従って、前記デバイスに関する情報であるデバイス情報を前記デバイスから取得する取得ステップと、前記取得ステップにより前記デバイスから取得したデバイス情報の内容を、前記デバイスの種類及び情報処理装置との通信状況に従って変更する変更ステップと、前記変更ステップにより変更されたデバイス情報を、前記情報取得リクエストを送った情報処理装置へ返信する返信ステップとを備えたことを特徴とする。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１７】
＜システム構成＞
図１は、本発明の実施の一形態に係るデータ処理装置を有する印刷システムの一構成例を示すブロック図である。
【００１８】
図中のノートＰＣ１１，１２，１３は、無線ＬＡＮとしてＰＣＭＣＩＡカードタイプの無線ＬＡＮカード１８を装着することができる構成となっている。プリンタ１４は、インクジェット方式によるカラー印刷が可能なプリンタであって、有線ローカルインターフェースとしてＵＳＢとＩＥＥＥ１２８４の両者を備える。有線ローカルインターフェースＵＳＢは、プリンタアダプタ１６とＵＳＢケーブルで接続する。
【００１９】
プリンタアダプタ１６は、無線ＬＡＮとして、ＰＣＭＣＩＡカードタイプの無線ＬＡＮカード１８を装着し、また有線ＬＡＮを有する。アクセスポイント１５は無線ＬＡＮのアクセスポイントであって、無線機器同士のデータ転送を行う仲介の役割を果たし、ＰＣＭＣＩＡカードタイプの無線ＬＡＮカード１８を装着することができる。
【００２０】
各ＰＣ１１〜１３は、無線ＬＡＮを用いてアクセスポイント１５を経由して、プリンタアダプタ１６のローカルインターフェース（ＵＳＢ）で接続されたプリンタ１４へ印刷データを送ることが可能である。無線ＬＡＮには、アクセスポイントを経由して複数の無線ＬＡＮ機器と接続可能なモード（インフラストラクチャモード）がある。インフラストラクチャモードでは、アクセスポイントに設定されたＩＤ（ＳＳＩＤ）と同じＩＤを無線ＬＡＮ機器にも設定することで、複数の無線ＬＡＮ機器からアクセスポイントを経由してＬＡＮを構成することができる。
【００２１】
無線ＬＡＮとしてプリンタアダプタを使用する場合、プリンタアダプタがアクセスポイントに接続できるように設定する必要がある。本実施形態では、各ＰＣ１１〜１３並びにプリンタアダプタ１６はアクセスポイント１５との間での設定は既になされていて、インフラストラクチャモードでアクセスポイントと通信できる状態になっているものとする。
【００２２】
一般的にＰＣでは何らかのＯＳが動作していて、そのＯＳ環境で印刷を行うためには印刷用ソフト（プリンタドライバ）が必要となる。プリンタドライバは、ＯＳメーカーあるいはプリンタメーカーから提供され、予めＰＣにインストールされていたり、ＣＤなどの形式で提供される。プリンタで印刷を行うためには何らかの形でプリンタドライバをインストールする必要がある。また、無線ＬＡＮを使って印刷を行うような場合には、プリンタ内の無線ＬＡＮの設定を行いアクセスポイントと接続できる状態にした上、ＰＣでは無線ＬＡＮでの印刷を可能とするソフトウェアをインストールしてプリンタアダプタに適した設定にしておく必要がある。
【００２３】
このような環境を構築することで、無線ＬＡＮを用いて複数のＰＣから１台のプリンタへの印刷処理を行うことができるようになる。プリンタとプリンタアダプタとの間でのみケーブルが使われ、他の機器はケーブルで接続する必要がないため自由な配置を行うことができる。
【００２４】
＜プリンタアダプタの外観＞
図２（ａ），（ｂ）は、図１のプリンタアダプタ１６の外観を示した図であり、同図（ａ）は上方からの外観、同図（ｂ）に背面からの外観を示している。
【００２５】
図２（ａ）に示すように、プリンタアダプタ１６の上面側は、ＰＣＭＣＩＡカードタイプの無線ＬＡＮカード１８が装着される構成となっており、さらにユーザが各種設定を行うためのキースイッチ２２と、プリンタアダプタ１６の動作状況を示すＬＥＤ２１を複数個配置している。ＬＥＤ２１は、電源のＯＮ／ＯＦＦや、データの転送状況、エラーなどをユーザに知らしめるために用いられる。キースイッチ２２は、プリンタアダプタ１６をリセットしたり動作モードを設定したりすることに用いられる。キースイッチ２２を押下することで、プリンタアダプタ１６に設定されている情報をプリンタ１４へ送信して印刷するような機能も考えられる。
【００２６】
また、プリンタアダプタ１６の背面側は、図２（ｂ）に示すように、無線ＬＡＮカード１８が装着されているほか、有線ＬＡＮコネクタ２４とＵＳＢペリフェラルコネクタ２５とＵＳＢホストコネクタ２６を装備している。有線ＬＡＮコネクタ２４は、有線ＬＡＮで接続を行うためにケーブルを接続するためのコネクタであり、一般的はカテゴリー５のケーブルを接続する。
【００２７】
ＵＳＢペリフェラルコネクタ２５は、ホストＰＣを接続するためのコネクタであって、プリンタアダプタ１６はコネクタ２５によってホストＰＣからＵＳＢで接続された場合にＵＳＢデバイスとして機能する。この機能の１つとしては、プリンタアダプタの各種設定（無線ＬＡＮ設定、有線ＬＡＮ設定など）を行う。また別の機能としては、プリンタアダプタに接続されるプリンタへＰＣからＵＳＢ経由で印刷を行うことができるように、プリンタアダプタがプリンタとしてＰＣから認識されるように動作する。この場合、ＰＣからＵＳＢで送られてきた印刷データはプリンタアダプタ１６を経由してプリンタ１４へ送られて、印刷が実行される。これは、プリンタアダプタ１６に送られてきた印刷データをそのままＵＳＢで接続されたプリンタ１４へ引き渡す処理を行う。
【００２８】
ＵＳＢホストコネクタ２６は、プリンタ１４へＵＳＢで接続するためのコネクタであり、ＰＣ側からＵＳＢで送られてくる印刷データと無線・有線ＬＡＮ経由で送られてくる印刷データをプリンタ１４へ送るために使われる。
【００２９】
＜プリンタアダプタ１６の電気的構成＞
図３は、プリンタアダプタ１６の電気的構成を示すブロック図である。
【００３０】
図中のＣＰＵ３１は、セントラルプロセッサであって、ＲＯＭ３２に保存されているプログラムを読み出して実行する。ＲＯＭ３２は、ＣＰＵ３１で実行されるプログラムを保持する読み出し専用のメモリである。
【００３１】
ＲＡＭ３３は、各種情報、データを保持するメモリであって、電源が消えることで失われるＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）と電源が消えても失われないＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）とを含んでいる。ＤＲＡＭには印刷データのような一時的に必要なデータなどが保存され、ＳＲＡＭには各種設定などの継続的に使われる情報が保存される。
【００３２】
ＬＥＤ／コントローラ３４は、図２で示したＬＥＤ２１と該ＬＥＤ２１を制御するコントローラとから成り、コントローラは、ＣＰＵ３１からの指示によりＬＥＤ２１の点灯／消灯などの制御を行う。ＫＥＹ／コントローラ３４は図２で示したキースイッチ２２と該キースイッチ２２を制御するコントローラとから成り、キースイッチ２２が押下されることにより、コントローラは押下されたキースイッチ２２の種類や状況をＣＰＵ３１へ知らせることができる。
【００３３】
カードコントローラ３６は、接続されている無線ＬＡＮカード１８の制御を行うコントローラである。ＬＡＮコントローラ３８は、有線ＬＡＮの制御を行うためのコントローラであって図２のコネクタ２４に接続された有線ＬＡＮの制御を行う。ＵＳＢ・ＨＯＳＴコントローラ３９は、プリンタアダプタ１６がプリンタ１４を制御するためにＵＳＢホスト機能を実現するコントローラであって、図２のコネクタ２６に接続されたプリンタ１４で印刷ができるような制御を行うほか、プリンタ１４からのＵＳＢで情報を受取ることにも使われる。
【００３４】
ＵＳＢ・ＰＨＲＩＰＨＥＲＡＬコントローラ３１０は、プリンタアダプタ１６がホストＰＣと接続されＵＳＢデバイスとして機能するための制御を行うコントローラであって、ＰＣと接続された場合にプリンタアダプタ１６に接続されたプリンタ１４の代わりとしてＰＣから認識されるように動作する。
【００３５】
ＢＵＳ３１１はシステムバスであって、該ＢＵＳ３１１に接続された各デバイスのデータ／アドレスをやり取りするバスである。ＣＰＵ３１は、ＲＯＭ３２に保存されたプログラムに従い各デバイス・コントローラ３４、３５、３６、３８、３９、３１０を制御し各機能を実現する。
【００３６】
＜接続可能な全ての組み合わせ＞
図４は、本実施形態で接続可能な全ての組み合わせで構成した印刷システムのシステム構成図である。
【００３７】
図１の構成において、ＩＥＥＥ１２８４インターフェースでプリンタ１４に接続されるノートＰＣ４１と、プリンタアダプタ１６のＵＳＢペリフェラルコネクタ２５に接続されるノートＰＣ４２と、プリンタアダプタ１６の有線ＬＡＮコネクタに接続されるイーサネット（登録商標）ハブ４５と、ハブ４５に接続されるノートＰＣ４３と、ノートＰＣ４４とが追加されている。
【００３８】
イーサネット（登録商標）ハブ４５は、有線ＬＡＮの分岐を行い複数の機器を接続するために用いられる。追加された各ＰＣでも各インターフェースを通してプリンタ１４で印刷を行うことができ、ＰＣ４１以外のＰＣはプリンタアダプタ１６を経由して印刷を行うことになる。
【００３９】
ノートＰＣ４１とプリンタ１４との関係は従来からのＰＣとプリンタの関係と同じである。しかし、プリンタ１４はあくまで１台であり、ある時点で印刷を実行できるのはどれか１つのＰＣからになる。後に説明するが１台のＰＣで印刷中にそれ以外のＰＣで印刷が実行された場合は、既に印刷が行われていてプリンタ１４が使われている状態であるので、直ちに印刷を実行することはできない。印刷が実行できる状態、すなわちそれ以前に印刷を実行していたＰＣの印刷が終わるまで、後から印刷を指示したＰＣは待つことになる。後で詳細に説明するが各ＰＣでは印刷状況を知らしめるためのソフトウェア（ステータスモニタ）を印刷実行の際に起動することで、印刷の状況やプリンタの状態をユーザに知らせることができる。現在行われている一般的な印刷でもステータスモニタを表示してプリンタ１４の状況を表示している。
【００４０】
＜ステータスモニタの表示画面＞
図５は、印刷実行中におけるステータスモニタの表示内容を示す画面図であり、印刷が行われているＰＣでの状態を表している。
【００４１】
図中の５１はステータスモニタの表示領域を示しており、そのうちの領域５２に印刷状況を表すメッセージ情報が表示される。図５の例では、正常に印刷が行われているＰＣでの状況を示すため、“印刷中”のメッセージが表示されている。「紙なし」などのエラーが発生した場合は、このメッセージ領域に対応したエラーメッセージが表示される。
【００４２】
５８は印刷を行っているホストの名前を示す領域であり、５９は印刷しているドキュメントの名前を表示する領域であり、５１０は印刷実行中のページ番号とトータルの印刷ページ番号を示す領域であり、印刷ページが進むにつれて更新される。
【００４３】
５４、５５、５６、５７は、プリンタ１４に装着されている各インクの残量を表していて、Ｃ（シアン）、Ｍ（マゼンダ）、Ｙ（イエロー）、Ｋ（ブラック）の各色の残量を個別に示す領域である。これらの情報は、プリンタ１４またはプリンタアダプタ１６から得られた情報を基に、ユーザに知らせるための表示がなされる。ユーザはステータスモニタに表示された情報を見ることでインクの有無やエラーの状況を知ることができる。
【００４４】
図６は、他のインターフェースで印刷実行中におけるステータスモニタの表示内容を示した画面図であり、異なるインターフェース間で印刷の指示がなされた場合に、後から印刷が指示され印刷が実行されずに待たされているＰＣでのステータスモニタの表示を表している。
【００４５】
これは、図４のＰＣ４とプリンタアダプタ１６との間で、あるいは有線・無線ＬＡＮで印刷を行うＰＣ１、２、６、７とプリンタアダプタ１６のＵＳＢインターフェースを使って印刷を行うＰＣ５との間で起こる場合があり、どちらかのＰＣが先に印刷を行っている状態で別のインターフェースに属するＰＣからの印刷が実行されたケースである。
【００４６】
どちらかのインターフェースが使用されている場合、他方のインターフェースではプリンタ１４の情報を取ることができないため図６に示したように各詳細情報は表示することができず、メッセージ領域５２に“他のインターフェース使用中”が表示されるだけとなる。この場合、プリンタ１４の詳しい情報をユーザに知らせることはできない。
【００４７】
図７は、他のＰＣで印刷実行中におけるステータスモニタの表示内容を示した画面図であり、同種類のインターフェース間で印刷の指示がなされた場合に後から印刷が指示され印刷が実行されずに待たされているＰＣでのステータスモニタの表示を表している。
【００４８】
これは、図４の有線・無線ＬＡＮで印刷を行うＰＣ１、２、６、７との間で起こる場合があり、どちらかのＰＣが先に印刷を行っている状態で同じインターフェースに属する他のＰＣからの印刷が実行されたケースである。既に印刷は行われているため印刷は待たされることになるが、プリンタ１４の詳細情報を取ることができるため図７に示したように各情報は表示することができき、メッセージ領域７２に“他のホスト使用中”が表示される。
【００４９】
別のＰＣが現在印刷を行っていることとプリンタ１４の詳しい情報とをユーザに知らせることはできる。実際に印刷を行っているＰＣのホスト名やドキュメント名を知ることができ（図７中の５８，５９）、さらに現在の印刷ページとトータルページ数を知ることができる（図７中の５１０）。
【００５０】
これにより、従来印刷を行っていたＰＣでしか分からなかった情報を他の印刷していないＰＣでも知ることが可能になる。エラーの情報も表示することができるので別のＰＣでもエラーに対する対応ができるようになる。例えば、印刷中に紙なしエラーになった場合、印刷を指示した以外のＰＣでも同じ紙なしのメッセージが得られるため、印刷ユーザ以外の人が紙を補給する必要性を認知して紙を補給することができるようになる。
【００５１】
＜コマンドとパラメータ等のデータ類＞
以下、コマンド等について説明する。これらのコマンド等はＬＡＮで印刷を行う場合に使用する、コマンド、パラメータ及び戻り値を示したもので、有線・無線ＬＡＮで共通に使われる。
【００５２】
「（１）ＳｅｓｓｉｏｎＳｔａｒｔ  （２）ＨＯＳＴＮＡＭＥ：ＰＣ１；ＤＯＣＵＭＥＮＴＮＡＭＥ：ＴＥＸＴ１；ＴＯＴＡＬＰＡＧＥ：４；ＳＥＳＳＩＯＮ−ＮＯ：１；」（（１）及び（２）は説明のためのものである）は、ＰＣで発行されるＳｅｓｓｉｏｎＳｔａｒｔのコマンドである。
【００５３】
（１）に示すものは、印刷データを転送するためにセッションの確立をリクエストするためのコマンドであり、プリンタアダプタ１６は既にセッションが成立していない状態でセッションを成立できる場合には、成功の戻り値を返し、既にセッションが成立していてセッションが確立できない場合には、失敗（既にセッション有り）を戻り値とする。（１）のＳｅｓｓｉｏｎＳｔａｒｔのパラメータとして（２）に示した値が付加される。パラメータは、指定する内容を示す固定の文字列プラス「：」と、それに対応する値との区切れを表す「；」を用いて構成され、複数の指定内容を「；」で区切って列記することができる。
【００５４】
（２）の例では、「ＨＯＳＴＮＡＭＥ」、「ＤＯＣＵＭＥＮＴＮＡＭＥ」、「ＴＯＴＡＬＰＡＧＥ」、「ＳＥＳＳＩＯＮ−ＮＯ」が指定される内容を示す文字列であり、この後「；」までにそれぞれに対応した値が存在する。「ＨＯＳＴＮＡＭＥ」は印刷実行中のＰＣのホスト名であり、「ＨＯＳＴＮＡＭＥ：」に続く「ＰＣ１」がそのホスト名となる。「ＤＯＣＵＭＥＮＴＮＡＭＥ」は、印刷するドキュメントの名前、「ＴＯＴＡＬＰＡＧＥ：」はトータルページ数を表しており、図７の５８，５９，５１０に表示される情報である。
【００５５】
ＰＣはセッション成立をリクエストする際にプリンタアダプタ１６へこれらの情報を通知している。「ＳＥＳＳＩＯＮ−ＮＯ：」はセッションを特定するための番号であり、コマンドによってこのセッション番号を指定する際に使用される。ＳｅｓｓｉｏｎＳｔａｒｔでは０以外の任意の値を指定する。セッションが成立した場合、ＳＥＳＳＩＯＮ−ＮＯで指定した値がこの後印刷を行うためのセッションを特定する値となる。
【００５６】
「（３）ＳｅｓｓｉｏｎＥｎｄ  （４）ＳＥＳＳＩＯＮ−ＮＯ：１；」（（３）及び（４）は説明のためのものである）は、ＰＣで発行されるＳｅｓｓｉｏｎＥｎｄのコマンドである。
【００５７】
このコマンドは、セッションを終了するコマンドであり、（２）で指定したＳＥＳＳＩＯＮ−ＮＯと同じ番号をパラメータとして指定する。ＳｅｓｓｉｏｎＥｎｄをリクエストすることで印刷を終了することができる。
【００５８】
「（５）ＧｅｔＤｅｖｉｃｅＩＤ  （６）ＳＥＳＳＩＯＮ−ＮＯ：ｎ；  ｎ＞＝０」（（５）及び（６）は説明のためのものである）は、ＰＣで発行されるＧｅｔＤｅｖｉｃｅＩＤのコマンドである。
【００５９】
このコマンドはＤｅｖｉｃｅＩＤを取得するためのコマンドであって、パラメータとしてＳＥＳＳＩＯＮ−ＮＯを指定する。セッションが成立している場合、（２）で指定したＳＥＳＳＩＯＮ−ＮＯを用い、セッションが成立していない場合にはＳＥＳＳＩＯＮ−ＮＯに０を指定する。このパラメータの違いによりプリンタアダプタ１６は返信するＤｅｖｉｃｅＩＤの内容を変更することができる。
【００６０】
図８（ａ）〜（ｅ）は、ＰＣで発行されるＧｅｔＤｅｖｉｃｅＩＤのコマンドで得られるＤｅｖｉｃｅＩＤを示した図であり、ＧｅｔＤｅｖｉｃｅＩＤのコマンドで返送されるＤｅｖｉｃｅＩＤの内容を表している。
【００６１】
同図（ａ）、（ｂ）は、ネットワークに対応していない従来型のプリンタでのＤｅｖｉｃｅＩＤを示し、同図（ｃ）、（ｄ）、（ｅ）はネットワークに対応しているプリンタでのＤｅｖｉｃｅＩＤを示している。ここで、戻されるＤｅｖｉｃｅＩＤの内容は、ＩＥＥＥ１２８４で決められているＤｅｖｉｃｅＩＤと同様のものに、拡張された情報を加えて構成されている。
【００６２】
図８（ａ）、（ｂ）において、「ＭＦＧ：ＡＢＣＤＥ；ＣＭＤ：ＴＥＸＴ；ＭＤＬ：ＢＪ−１０００；ＣＬＳ：ＰＲＩＮＴＥＲ；」までは、ＩＥＥＥ１２８４でのＤｅｖｉｃｅＩＤと同じ内容である。ＭＦＧはマニュファクチャを示し、ＣＭＤはコマンド、ＭＤＬはモデル、ＣＬＳはクラスを表している。これらの情報は、プリンタのベンダー・コマンド・モデル名・機器分類を知るために用いられる。
【００６３】
図８（ｃ），（ｄ），（ｅ）では、ＣＭＤにネットワーク対応であることを示すＮＷが追加されている。プリンタアダプタ１６は、ＣＭＤにあるＮＷを見つけることでネットワーク対応のプリンタであるかないかを判定することができる。「ＳＴＡ：」以降が拡張されたもので、プリンタアダプタ１６のインターフェース使用状況を表すステータスになっている。
【００６４】
図８（ａ）、（ｄ）に示す「ＳＴＡ：ＮＯＲＭＡＬ」は、まだ印刷が行われていない状態で印刷を指示できる状況である場合、あるいは既にセッションが成立しているＰＣでＧｅｔＤｅｖｉｃｅＩＤを実行した場合に戻されるインターフェースのステータスになり、図５で示したステータスが表示される。セッションを確立する以前の状態でＳＴＡがＮＯＲＭＡＬであれば、セッションを確立し印刷データを送ることができる状況であることが分かる。
【００６５】
図８（ｂ）、（ｄ）に示す「ＳＴＡ：ＩＦＢＵＳＹ」は別のインターフェースが使用中で印刷ができず、プリンタ１４の情報も得られない状態であることを示している。これは、図６のメッセージ領域５２に表示されるインターフェースの状況である。この場合には、セッションを確立することができないので、ＩＦＢＵＳＹでなくなるまで待つことになる。
【００６６】
図８（ｅ）に示す「ＳＴＡ：ＨＯＳＴＢＵＳＹ」は同一・同種インターフェースが使用中で印刷ができないが、プリンタ１４の情報は得られる状態であることを示している。これは図７のメッセージ領域５２に表示されるインターフェースの状況である。この場合には、セッションを確立することができないので、ＨＯＳＴＢＵＳＹでなくなるまで待つことになるが、プリンタ１４のステータスを表示することはできる。
【００６７】
「（７）ＧｅｔＳｔａｔｕｓ」（（７）は説明のためのものである）は、ＰＣで発行されるＧｅｔＳｔａｔｕｓのコマンドを示した図である。
【００６８】
このコマンドは、プリンタ１４の詳細情報（例えばインク残量など）を取得するためのコマンドであり、図５及び図７のインク残量５４〜５７、ホスト名５８などを表示するために用いられる。
【００６９】
「（８）ＨＯＳＴＮＡＭＥ：ＰＣ１；ＤＯＣＵＭＥＮＴＮＡＭＥ：ＴＥＸＴ１；ＴＯＴＡＬＰＡＧＥ：４；ＰＲＩＮＴＰＡＧＥ：２；Ｃ−ＩＮＫ：７５；Ｍ−ＩＮＫ：５０；Ｙ−ＩＮＫ：５０；Ｋ−ＩＮＫ：１００；」（（８）は説明のためのものである）は、ＰＣで発行されるＧｅｔＳａｔｕｓのコマンドで得られるステータスであり、ＧｅｔＳｔａｔｕｓコマンドに対して戻される情報を表したものである。
【００７０】
ＨＯＳＴＮＡＭＥ、ＤＯＣＵＭＥＮＴＮＡＭＥ、ＴＯＴＡＬＰＡＧＥ、ＰＲＩＮＴＰＡＧＥ、Ｃ−ＩＮＫ、Ｍ−ＩＮＫ、Ｙ−ＩＮＫ、Ｋ−ＩＮＫに関する情報が含まれている。ＨＯＳＴＮＡＭＥ、ＤＯＣＵＭＥＮＴＮＡＭＥ、ＴＯＴＡＬＰＡＧＥは、ＳｅｓｓｉｏｎＳｔａｒｔコマンドで説明した内容と同じであり、ＰＲＩＮＴＰＡＧＥは現在の印刷ページ番号を示している。（８）の例では２ページ目を印刷中であるということが分かる。この情報は、図５及び図７で５１０の印刷ページの情報を表示することに使用される。
【００７１】
Ｃ−ＩＮＫはシアンインクの残量を示す情報であり、各インクの情報は０〜１００までの値を取り、インク残量をパーセンテージで表している。（８）の例では７５の値が戻されていて７５％のインクが残っていることを表している。この情報は、図５及び図７で５４のシアンインクの残量情報を表示することに使用される。
【００７２】
同様に、Ｍ−ＩＮＫはマゼンダインクの残量、Ｙ−ＩＮＫはイエローインクの残量、Ｋ−ＩＮＫはブラックインクの残量情報をそれぞれ示している。それぞれの残量に合わせた表示（５５，５６，５７）がステータスモニタで行われ、ユーザはインク残量を視覚的に知ることができる。
【００７３】
「（９）ＷｒｉｔｅＤａｔｅ」（（９）は説明のためのものである）は、ＰＣで発行されるＷｒｉｔｅＤａｔａのコマンドである。
【００７４】
このコマンドは、印刷データ転送のためのコマンドであり、印刷データがコマンドに続き送られる。
【００７５】
＜ホストＰＣで印刷を行うための処理＞
図９〜図１１は、ホストＰＣで印刷を行うための処理を示したフローチャートである。これらのフローチャートに従ったプログラムをＰＣ内の記憶装置に格納し動作することにより、以下の制御方法を実現させることが可能となる。
【００７６】
Ｉ．印刷ジョブ
図９は、ＰＣで実行される印刷ジョブ転送処理を示したフローチャートであり、ネットワークで印刷する場合とＵＳＢで印刷する場合のフローとなっている。
【００７７】
まずステップＳ１５００で、ＤｅｖｉｃｅＩＤの取得を行う。ネットワークの場合は、（５）及び（６）で示したコマンドを用いて行う。ＵＳＢの場合はプリンタクラスで規定されているＤｅｖｉｃｅＩＤ取得方法で行う。ＤｅｖｉｃｅＩＤ取得の結果として、ネットワーク、ＵＳＢ共に図８で示したＤｅｖｉｃｅＩＤの情報が取得できる。
【００７８】
次のステップＳ１５０１では、取得したＤｅｖｉｃｅＩＤ情報内のＳＴＡの値に設定されている内容をチェックし、値としてＩＦＢＵＳＹが設定されているかどうかをチェックする。他のインターフェース使用中を示すＩＦＢＵＳＹが設定されていた場合は、ステップＳ１５０２へ進み、図６で示したステータスを表示する。他のインターフェース使用中だけの情報しか得ることができないので、その他のインク残量情報などを表示することはできないため、図６に示した画面表示になる。
【００７９】
続いてステップＳ１５０３へ進み数秒程度ウェイトし、ステップＳ１５００へ戻る。ステップＳ１５０３でウェイトするのは、頻繁にＤｅｖｉｃｅＩＤの取得を行わないようにするためであり、ある程度間隔を置いてＤｅｖｉｃｅＩＤの取得を行うようにする。
【００８０】
前記ステップＳ１５０１で他のインターフェース使用中でない場合は、ステップＳ１５０４へ進みＧｅｔＳｔａｔｕｓを実行する。ＧｅｔＳｔａｔｕｓは、ネットワークの場合には、（７）で示したＧｅｔＳｔａｔｕｓのコマンドを使用して行われ、ＵＳＢの場合には、プリンタアダプタ１６からＵＳＢ規格で規定されているデータ取得方法（データ読み出し用ＥｎｄｐｏｉｎｔへのＢｕｌｋ  Ｉｎ）で行われる。ＧｅｔＳｔａｔｕｓ取得の結果として、ネットワーク、ＵＳＢ共に（８）で示したステータスの情報が取得できる。
【００８１】
次のステップＳ１５０５では、取得したＤｅｖｉｃｅＩＤのＳＴＡ情報で値として他のホスト使用中が設定されているかどうかをチェックする。他のホスト使用中を示すＨＯＳＴＢＵＳＹが設定されていた場合は、ステップＳ１５０６へ進み図７に示したステータスを表示する。この場合、ステップＳ１５０４でステータス情報を取得しているので（８）に示した情報が得られていて、図７で示したステータスを表示することができる。しかしこの場合、実際には他のＰＣが印刷中であるためこのＰＣからの印刷処理は実行できないので、ステップＳ１５０７へ進みウェイトを行いステップＳ１５００へ戻る。
【００８２】
ステップＳ１５０７は、ステップＳ１５０３と同様の処理で現在印刷中のＰＣからの印刷が終了し印刷できるようになるまで待つための処理になる。ステップＳ１５０５で他のホスト使用中でない場合、すなわちＳＴＡが図８（ａ）、（ｄ）で示したＮＯＲＭＡＬであった場合にはステップＳ１５０８へ進む。
【００８３】
ステップＳ１５０８では、図５に示したステータスの表示を行い、印刷が実行可能なのでステップＳ１５０９で進み印刷データの転送処理を行う。印刷データ転送処理は図１０及び図１１のフローチャートで説明を行う。そしてステップＳ１５１０において、ジョブの完了かどうかをチェックし、完了であれば戻りとなり、完了でなければステップＳ１５００へ戻る。
【００８４】
ＩＩ．ネットワークでのデータ転送
図１０は、図９のステップＳ１５０９におけるネットワーク印刷データ転送処理を示したフローチャートである。
【００８５】
まずステップＳ１６００において、セッションを成立するためにＳｅｓｓｉｏｎＳｔａｒｔコマンドを送信する。ＳｅｓｓｉｏｎＳｔａｒｔコマンドは、（１）及び（２）で説明したコマンドであり、印刷データを送るためにセッションの成立をリクエストするコマンドである。
【００８６】
次にステップＳ１６０１へ進みＳｅｓｓｉｏｎＳｔａｒｔコマンドが成功したかどうかをチェックする。何らかの理由によりセッションが確立できない場合は、ＳｅｓｓｉｏｎＳｔａｒｔの戻りとして失敗が戻される。この場合、データ転送処理を終了して戻りとなる。
【００８７】
ステップＳ１６０１でＳｅｓｓｉｏｎＳｔａｒｔが成功した場合は、ステップＳ１６０２へ進み印刷データを転送するコマンドＷｒｉｔｅＤａｔａを実行する。ＷｒｉｔｅＤａｔａは、（９）で説明したが、印刷データをプリンタアダプタ１６へ送信するためのコマンドであり、同時に印刷データが送信される。
【００８８】
次にステップＳ１６０３へ進み印刷データが全て転送されたかどうかをチェックする。全てのデータが転送されていない場合は、ステップＳ１６０４へ進み次のデータを準備してステップＳ１６０２へ戻る。
【００８９】
ステップＳ１６０２では、ＷｒｉｔｅＤａｔａのコマンドはある限られた量のデータを１回のコマンドで送ることができ、１回のＷｒｉｔｅＤａｔａで送りきれないデータ量の場合、複数回のＷｒｉｔｅＤａｔａコマンドに分けて転送を繰り返し行う。ステップＳ１６０３で全ての印刷データが転送された場合はステップＳ１６０５へ進みジョブの完了を戻り値とする。
【００９０】
ＩＩＩ．ＵＳＢでのデータ転送
図１１は、図９のステップＳ１５０９におけるＵＳＢ印刷データ転送処理を示したフローチャートである。
【００９１】
まずステップＳ１７００では、印刷データを転送するためにＵＳＢ規格で規定されているデータ書き込み方法（データ書き込みＥｎｄｐｏｉｎｔへのＢｕｌｋＯｕｔ）を用いて印刷データの転送を行う。次にステップＳ１７０１へ進みＢｕｌｋ  Ｏｕｔが成功したかどうかをチェックする。これは、Ｂｕｌｋ  Ｏｕｔに対するＡＣＫ、ＮＡＣＫの判定で行われる。ＮＡＣＫが戻された場合は、ステップＳ１７００へ戻り、再度データの転送を試みる。ステップＳ１７０１でＮＡＣＫでない場合は、次のステップＳ１７０２へ進み印刷データが全て転送されたかどうかをチェックする。全てのデータが転送されていない場合はステップＳ１７０３へ進み次のデータを準備しステップＳ１７００へ戻る。
【００９２】
Ｂｕｌｋ  Ｏｕｔでは、ある限られた量のデータを１回で送ることができ、１回のＢｕｌｋ  Ｏｕｔで送りきれないデータ量の場合は、複数回のＢｕｌｋ  Ｏｕｔに分けて転送を繰り返し行う。ステップＳ１７０２で全ての印刷データが転送された場合はステップＳ１７０４へ進みジョブの完了を戻り値とする。
【００９３】
以上、図５〜図１１を用いて説明したように、プリンタアダプタ１６にネットワーク（有線・無線インターフェース）で接続されたＰＣと、ＵＳＢで接続されたＰＣ、またプリンタ１４へ直接ＩＥＥＥ１２８４などのローカルインターフェースで接続されたＰＣにおいて、プリンタアダプタ１６またはプリンタ１４から戻されるＤｅｖｉｃｅＩＤの情報に従って現在のインターフェースの使用状況をステータスとして表示することができる。すなわち、ＤｅｖｉｃｅＩＤの情報に従ってプリンタの詳細情報を得ることができる場合とできない場合とが判別され、詳細情報を得ることができる場合は詳細のステータス情報を得て、それら情報を反映したステータスをユーザに知らしめるための表示を行う。また、印刷データの転送が可能であることが判断された場合は印刷データの転送を開始することができる。
【００９４】
ユーザはステータスモニタで印刷中の状況を知ることができると共に、他のユーザが使用中で印刷が待たされている状態であることと、現在行われている印刷とプリンタの状態に関する情報を知ることができる。また同時に情報を取得できないインターフェースを使用して印刷が行われている場合にもその状況を知ることができる。
【００９５】
＜プリンタアダプタ１６側の処理＞
図１３〜図１９は、図５〜図１１で説明したホストＰＣでの印刷処理を実現するためのプリンタアダプタ１６側での処理を説明するためのフローチャートである。これらのフローチャートに従ったプログラムをプリンタアダプタ１６内のＲＯＭ３２に格納し動作することにより、以下の制御方法を実現させることが可能となる。
【００９６】
Ｉ．コマンド等のデータ類
「（１０）ＵＳＢＧｅｔＤｅｖｉｃｅＩＤ」（（１０）は説明のためのものである）は、プリンタアダプタ１６で発行されるＵＳＢＧｅｔＤｅｖｉｃｅＩＤのコマンドである。
【００９７】
このコマンドは、プリンタアダプタ１６からＵＳＢで接続されたプリンタ１４へＤｅｖｉｃｅＩＤを取得するために送られるコマンドであり、実際にはＵＳＢプリンタクラスで規定されているＤｅｖｉｃｅＩＤ取得方法を実行し、プリンタ１４からＤｅｖｉｃｅＩＤを取得するものである。
【００９８】
図１２（ａ）〜（ｄ）は、プリンタアダプタ１６でのＵＳＢＧｅｔＤｅｖｉｃｅＩＤのコマンドで得られるＤｅｖｉｃｅＩＤを示した図であり、（１０）で示したＵＳＢＧｅｔＤｅｖｉｃｅＩＤのコマンドで返送されるＤｅｖｉｃｅＩＤの内容を表している。
【００９９】
同図（ａ）、（ｂ）は、ネットワークに対応していない従来型のプリンタでのＤｅｖｉｃｅＩＤを示し、同図（ｃ）、（ｄ）はネットワークに対応しているプリンタでのＤｅｖｉｃｅＩＤを示している。
【０１００】
ここで、戻されるＤｅｖｉｃｅＩＤの内容は、ＩＥＥＥ１２８４で決められているＤｅｖｉｃｅＩＤと同様のものに、拡張された情報を加えて構成されている。
【０１０１】
図１２（ａ）、（ｂ）、（ｃ）、（ｄ）において、「ＭＦＧ：ＡＢＣＤＥ；ＣＭＤ：ＴＥＸＴ；ＭＤＬ：ＢＪ−１０００；ＣＬＳ：ＰＲＩＮＴＥＲ；」までは、ＩＥＥＥ１２８４でのＤｅｖｉｃｅＩＤと同じ内容である。「ＳＴＡ：」以降が拡張されたもので、プリンタ１４のインターフェース使用状況を表すステータスになっている。内容に関しては図８で説明した内容と同様である。
【０１０２】
図１２（ａ）、（ｃ）の「ＳＴＡ：ＮＯＲＭＡＬ」は、まだ印刷が行われていない状態で印刷を指示できる状況を示し、図１２（ｂ）、（ｄ）の「ＳＴＡ：ＩＦＢＵＳＹ」は他のインターフェースが使用中で印刷ができず、プリンタの情報も得られない状態であることを示している。これは、図４でノートＰＣ４１からプリンタ１４への印刷が既に行われている状況下で、プリンタアダプタ１６からＵＳＢでＤｅｖｉｃｅＩＤを取得した場合か、逆にプリンタアダプタ１６に接続されたいずれかのＰＣから印刷が行われ、印刷データをＵＳＢで転送中にノートＰＣ４１からＩＥＥＥ１２８４経由でＤｅｖｉｃｅＩＤを取得した場合に戻される。
【０１０３】
プリンタアダプタ１６では、図１２（ｂ）、（ｄ）のＩＦＢＵＳＹが戻された場合、現在プリンタ１４が使用中で印刷が実行できない状態にあることを知ることができる。
【０１０４】
「（１１）ＵＳＢＧｅｔＳｔａｔｕｓ」（（１１）は説明のためのものである）は、プリンタアダプタ１６で発行されるＵＳＢＧｅｔＳｔａｔｕｓのコマンドである。
【０１０５】
このコマンドは、プリンタアダプタ１６からＵＳＢで接続されたプリンタ１４へステータスを取得するために送られるコマンドであり、実際にはＵＳＢの規格で規定されているデータ取得方法（データを読み出すためのＥｎｄｐｏｉｎｔへのＢｕｌｋ  Ｉｎ）で行われる。ＵＳＢＧｅｔＳｔａｔｕｓ取得の結果として（１２）で示したステータスの情報が取得できる。
【０１０６】
「（１２）ＰＲＩＮＴＰＡＧＥ：２；Ｃ−ＩＮＫ：７５；Ｍ−ＩＮＫ：５０；Ｙ−ＩＮＫ：５０；Ｋ−ＩＮＫ：１００；」（（１２）は説明のためのものである）は、プリンタアダプタで発行されるＵＳＢＧｅｔＳｔａｔｕｓのコマンドで得られるステータスである。
【０１０７】
このステータスには、ＰＲＩＮＴＰＡＧＥ、Ｃ−ＩＮＫ、Ｍ−ＩＮＫ、Ｙ−ＩＮＫ、Ｋ−ＩＮＫに関する情報が含まれている。ＰＲＩＮＴＰＡＧＥは現在の印刷ページ番号を示している。（１２）の例では２ページ目を印刷中となる。Ｃ−ＩＮＫはシアンインクの残量を示す情報で０〜１００までの値を採り、インク残量をパーセンテージで表している。（１２）の例では７５の値が戻されていて７５％のインクが残っていることを表している。同様にＭ−ＩＮＫはマゼンダインクの残量、Ｙ−ＩＮＫはイエローインクの残量、Ｋ−ＩＮＫはブラックインクの残量情報をそれぞれ示している。（１２）の例では、マゼンダインクが残量５０％、イエローインクが残量５０％、ブラックインクが残量１００％であることが示されている。
【０１０８】
以降フローチャートに従いプリンタアダプタ１６での印刷処理を詳細に説明する。
【０１０９】
ＩＩ．プリンタアダプタ１６側の印刷処理全体フロー
図１３は、プリンタアダプタ１６側の印刷処理の全体フローを示すフローチャートである。
【０１１０】
まずステップＳ２２００では、ＵＳＢからの印刷リクエストがあるかどうかをチェックする。このチェックは、図４でノートＰＣ４２がプリンタアダプタ１６とＵＳＢインターフェースで接続されてノートＰＣ４２からの印刷データ転送が行われているかどうかの判断となる。ＵＳＢでの印刷データの転送はＵＳＢ規格で規定されているデータ書き込み方法（データ書き込みＥｎｄｐｏｉｎｔへのＢｕｌｋ  Ｏｕｔ）を用いて行われ、このデータ書き込みが開始されたことがＵＳＢでの印刷リクエストがあったことになる。
【０１１１】
ステップＳ２２００でＵＳＢインターフェースからの印刷リクエストがあった場合はステップＳ２２０１へ進み、ＵＳＢでの印刷動作実行中を示すＵＳＢ使用中フラグをオンとする。
【０１１２】
次のステップＳ２２０２では、ＵＳＢの印刷処理を実行し印刷を行う。ＵＳＢの印刷処理については図１５のフローチャートで説明する。ＵＳＢでの印刷処理が終了すると、ステップＳ２２０３へ進みステップＳ２２０１でオンにしたＵＳＢ使用中フラグをオフにし、ステップＳ２２００へ戻り、次の印刷指示がなされるのを待つ状態になる。
【０１１３】
ステップＳ２２００でＵＳＢのリクエストがない場合は、ステップＳ２２０４へ進みネットワークからの印刷リクエストがあるかどうかをチェックする。このチェックは、図４で無線ＬＡＮあるいは有線ＬＡＮでプリンタアダプタ１６と接続されているノートＰＣ１１、ＰＣ１２、ＰＣ４３、ＰＣ４４から印刷データの転送を開始するために、データ転送のセッションを成立させるコマンドが着いたかどうかで判断する。具体的には（１）及び（２）で説明したＳｅｓｓｉｏｎＳｔａｒｔコマンドが送信されてきたかどうかで行われる。
【０１１４】
前記ステップＳ２２０４でネットワークからの印刷リクエストでない場合は、リクエスト待ちとなり、ステップＳ２２００へ戻る。ステップＳ２２０４でネットワークからのリクエストであった場合は、ステップＳ２２０５へ進みネットワークでの印刷動作実行中を示すネットワーク使用中フラグをオンとする。
【０１１５】
次のステップＳ２２０６では、ネットワークの印刷処理を実行し印刷を行う。ネットワークの印刷処理については図１４のフローチャートで説明する。ネットワークでの印刷処理が終了すると、ステップＳ２２０７へ進みステップＳ２２０５でオンにしたネットワーク使用中フラグをオフにし、ステップＳ２２００へ戻り次の印刷指示がなされるのを待つ状態になる。
【０１１６】
ＩＩＩ．ネットワーク印刷処理の詳細
図１４は、図１３のステップＳ２２０６に示したネットワーク印刷処理を詳細に説明するフローチャートである。
【０１１７】
まずステップＳ２３００では、ネットワークで送られてきたコマンドの取得を行う。本実施形態では、（１）、（２）、（３）、（４）、（５）、（６）、（７）及び（９）で説明したネットワークのコマンドがあり、これらのコマンドがＰＣから送られて印刷が実行される。次にステップＳ２３０１へ進み、コマンドがＧｅｔＤｅｖｉｃｅＩＤのコマンドであるかどうかをチェックする。ＧｅｔＤｅｖｉｃｅＩＤのコマンドは（５）及び（６）で説明したコマンドであり、プリンタアダプタ１６からＤｅｖｉｃｅＩＤを取得するコマンドとなる。
【０１１８】
ステップＳ２３０１においてＧｅｔＤｅｖｉｃｅＩＤのコマンドであると判定された場合は、ステップＳ２３０２へ進み、プリンタアダプタ１６から戻されるＤｅｖｉｃｅＩＤの基になるＤｅｖｉｃｅＩＤをプリンタ１４から取得し、リクエストのあったＰＣへＤｅｖｉｃｅＩＤを返送する処理（ネットワークＧｅｔＤｅｖｉｃｅＩＤ処理）になる。処理の詳細は図１６のフローチャートで説明を行う。このネットワークＧｅｔＤｅｖｉｃｅＩＤ処理では、ＵＳＢでプリンタ１４へＤｅｖｉｃｅＩＤ取得を行い、プリンタ１４から受取ったＤｅｖｉｃｅＩＤにプリンタアダプタ１６でのインターフェース状況を加味してＰＣへ返送する処理を行う。図８で説明したＤｅｖｉｃｅＩＤの情報がＰＣへ戻される。
【０１１９】
次にステップＳ２３００へ戻り次のコマンドを受取る状態となる。ステップＳ２３０１でＧｅｔＤｅｖｉｃｅＩＤのコマンドでなかった場合は、ステップＳ２３０３へ進みＧｅｔＳｔａｔｕｓのコマンドかどうかのチェックを行う。ＧｅｔＳｔａｔｕｓのコマンドは（７）で説明したコマンドであり、プリンタアダプタ１６からステータスを取得するコマンドとなる。
【０１２０】
ステップＳ２３０３でＧｅｔＳｔａｔｕｓのコマンドであると判定された場合はステップＳ２３０４へ進み、プリンタアダプタ１６から戻されるステータスの基になるステータスをプリンタ１４から取得し、リクエストのあったＰＣへステータスを返送する処理（ネットワークＧｅｔＳｔａｔｕｓ処理）になる。処理の詳細は図１８のフローチャートで説明を行う。このネットワークＧｅｔＳｔａｔｕｓ処理では、ＵＳＢでプリンタ１４へステータス取得を行いプリンタ１４から受取ったステータスにプリンタアダプタ１６でのステータス状況を加味してＰＣへ返送する処理を行う。（８）で説明したステータスの情報がＰＣへ戻される。
【０１２１】
次にステップＳ２３００へ戻り次のコマンドを受取る状態となる。前記ステップＳ２３０３でＧｅｔＳｔａｔｕｓのコマンドでなかった場合はステップＳ２３０５へ進み、ＷｒｉｔｅＤａｔａのコマンドかどうかのチェックを行う。ステップＳ２３０５でＷｒｉｔｅＤａｔａのコマンドであると判定された場合は、ステップＳ２３０６へ進み、セッションが確立されているかどうかのチェックを行う。これはＳｅｓｓｉｏｎフラグがオンになっているかどうかで判定される。
【０１２２】
ステップＳ２３０６でＳｅｓｓｉｏｎフラグがオンでない場合、まだ印刷データを受信できる状態ではないため、受取ったＷｒｉｔｅＤａｔａのコマンドは無効なコマンドとなり、次にステップＳ２３００へ戻り次のコマンドを受取る状態となる。
【０１２３】
ステップＳ２３０６でＳｅｓｓｉｏｎフラグがオンでセッションが確立されている場合は、ステップＳ２３０７へ進む。ステップＳ２３０７ではＷｒｉｔｅＤａｔａで受取った印刷データをＵＳＢでプリンタ１４へ転送するために、ＵＳＢ規格で規定されているデータ書き込み方法（データ書き込み用ＥｎｄｐｏｉｎｔへのＢｕｌｋ  Ｏｕｔ）を用いて印刷データの転送を行う。これでネットワークから受取った印刷データをＵＳＢで接続されたプリンタ１４へ転送することができる。
【０１２４】
次にステップＳ２３００へ戻り次のコマンドを受取る状態となる。ステップＳ２３０５でＷｒｉｔｅＤａｔａコマンドでなかった場合は、ステップＳ２３０８へ進み、ＳｅｓｓｉｏｎＳｔａｒｔのコマンドかどうかのチェックを行う。ステップＳ２３０８でＳｅｓｓｉｏｎＳｔａｒｔのコマンドであると判定された場合は、ステップＳ２３０９へ進み、ＵＳＢで使用中でないかどうかをチェックする。これは図１３ステップＳ２２０１でオンにされるＵＳＢ使用中フラグによって判定される。ＵＳＢ使用中フラグがオンの場合はＵＳＢでの印刷が行われていることを示しているので、ＳｅｓｓｉｏｎＳｔａｒｔのコマンドが実行できなかったことを意味する。ステップＳ２３０９でＵＳＢ使用中でない場合は、ステップＳ２３１０へ進み、ネットワークでのセッションが確立できるのでセッションが成立していることを示すセッションフラグをオンとする。
【０１２５】
次のステップＳ２３１１では、ＳｅｓｓｉｏｎＳｔａｒｔコマンドのパラメータとして添付された情報（（２））を保存する。この保存された情報は、ＧｅｔＳｔａｔｕｓコマンドでプリンタアダプタ１６からＰＣへステータスを戻す際にプリンタ１４からのステータス情報に付加することに使用される。
【０１２６】
次にステップＳ２３１２へ進みＳｅｓｓｉｏｎＳｔａｒｔコマンドが成功したことをＰＣへ返信する。ステップＳ２３０９でＵＳＢ使用中であった場合は、ステップＳ２３１３へ進みＳｅｓｓｉｏｎＳｔａｒｔコマンドが失敗したことをＰＣへ返信し、処理終了の戻りとなる。
【０１２７】
ステップＳ２３０８でＳｅｓｓｉｏｎＳｔａｒｔコマンドでなかった場合は、ステップＳ２３１４へ進み、ＳｅｓｓｉｏｎＥｎｄのコマンドかどうかのチェックを行う。ＳｅｓｓｉｏｎＥｎｄのコマンドであった場合は、ステップＳ２３１６へ進む。ステップＳ２３１４でＳｅｓｓｉｏｎＥｎｄのコマンドでなかった場合は、ステップＳ２３１５へ進みセッションが成立しているかどうかをチェックする。セッションが成立していた場合は、ステップＳ２３００へ戻りコマンド取得処理を繰り返し行う。ステップＳ２３１５でセッションがオンでない場合は、ステップＳ２３１６へ進む。ステップＳ２３１６では、セッションフラグをオフにして処理終了の戻りとなる。
【０１２８】
ＩＶ．ＵＳＢ印刷処理の詳細
図１５は、図１３のステップＳ２２０２に示したＵＳＢ印刷処理を詳細に説明するフローチャートである。
【０１２９】
まずステップＳ２４００において、ＧｅｔＤｅｖｉｃｅＩＤのリクエストであるかどうかをチェックする。ステップＳ２４００でＧｅｔＤｅｖｉｃｅＩＤのコマンドであると判定された場合は、ステップＳ２４０１へ進み、プリンタアダプタ１６でＤｅｖｉｃｅＩＤをプリンタ１４から取得しリクエストのあったＰＣへＤｅｖｉｃｅＩＤを返送する処理（ＵＳＢＧｅｔＤｅｖｉｃｅＩＤ処理）になる。処理の詳細は図１７のフローチャートで説明を行う。
【０１３０】
ＵＳＢＧｅｔＤｅｖｉｃｅＩＤ処理では、ＵＳＢでプリンタ１４へＤｅｖｉｃｅＩＤ取得を行い、プリンタ１４から受取ったＤｅｖｉｃｅＩＤにプリンタアダプタ１６でのネットワークインターフェース状況を加味してＰＣへ返送する処理を行う。図８（ａ）、（ｂ）、（ｃ）、（ｄ）で説明したＤｅｖｉｃｅＩＤの情報がＰＣへ戻される。ＵＳＢでは複数のホストＰＣを接続することができないので図８（ｅ）が戻されることはない。
【０１３１】
次にステップＳ２４００へ戻り次のリクエストを受取る状態となる。ステップＳ２４００でＧｅｔＤｅｖｉｃｅＩＤのコマンドでなかった場合は、ステップＳ２４０２へ進み、Ｂｕｌｋ  Ｉｎのリクエストかどうかのチェックを行う。Ｂｕｌｋ  Ｉｎのリクエストは、プリンタアダプタ１６からステータスを取得するリクエストとなる。ステップＳ２４０２でＢｕｌｋ  Ｉｎのリクエストであると判定された場合は、ステップＳ２４０３へ進み、プリンタアダプタ１６でのステータスをプリンタ１４から取得しリクエストのあったＰＣへステータスを返送する処理（ＵＳＢＧｅｔＳｔａｔｕｓ処理）になる。処理の詳細は図１９のフローチャートで説明を行う。ＵＳＢＧｅｔＳｔａｔｕｓ処理では、ＵＳＢでプリンタ１４へステータス所得を行いＰＣへ返送する処理を行う。（１２）で説明したステータスの情報がＰＣへ戻される。
【０１３２】
次にステップＳ２４００へ戻り次のコマンドを受取る状態となる。ステップＳ２４０２でＢｕｌｋ  Ｉｎのリクエストでなかった場合は、ステップＳ２４０４へ進み、Ｂｕｌｋ  Ｏｕｔのリクエストかどうかのチェックを行う。ステップＳ２４０４でＢｕｌｋ  Ｏｕｔのリクエストであると判定された場合は、ステップＳ２４０５へ進み、ネットワークで印刷が行われているかどうかのチェックを行う。これは、図１３のステップＳ２２０５でオンにされるネットワーク使用中フラグがオンになっているかどうかで判定される。
【０１３３】
前記ステップＳ２４０５でネットワーク使用中フラグがオンでない場合は、ＵＳＢでの印刷を行うことができる状態であり、ステップＳ２４０６では、Ｂｕｌｋ  Ｏｕｔで受取った印刷データをＵＳＢでプリンタ１４へ転送するために、ＵＳＢ規格で規定されているデータ書き込み方法（データ書き込み用ＥｎｄｐｏｉｎｔへのＢｕｌｋ  Ｏｕｔ）を用いて印刷データの転送を行う。これでＵＳＢから受取った印刷データをＵＳＢで接続されたプリンタ１４へ転送することができる。
【０１３４】
次にステップＳ２４００へ戻り次のリクエストを受取る状態となる。ステップＳ２４０５においてネットワーク使用中フラグがオンでネットワークからの印刷実行中であった場合は、ステップＳ２４０７へ進み、Ｂｕｌｋ  Ｏｕｔに対してＮＡＣＫを返送し処理終了の戻りとなる。ステップＳ２４０４でＢｕｌｋ  Ｏｕｔのリクエストでなかった場合は、ステップＳ２４０８へ進み、Ｂｕｌｋ  Ｏｕｔで転送されるデータがないかどうかをチェックする。ＵＳＢで印刷を行うような場合には引き続きＢｕｌｋ  Ｏｕｔで印刷データが送られてくるため、ステップＳ２４０８のチェックで印刷データが存在することになり、ステップＳ２４００への戻りとなり、次のリクエストを受取る状態となる。ステップＳ２４０８のチェックで印刷データがない場合は戻りとなり処理が終了する。
【０１３５】
Ｖ．ネットワークＧｅｔＤｅｖｉｃｅＩＤ処理の詳細
図１６は、図１４のステップＳ２３０２で説明したネットワークＧｅｔＤｅｖｉｃｅＩＤ処理の詳細フローチャートである。
【０１３６】
まずステップＳ２５００において、ＵＳＢで接続されたプリンタ１４へＤｅｖｉｃｅＩＤの取得を行うためのリクエストを行う。このリクエストは、ＵＳＢのプリンタクラスで規定されているコントロールデータ取得方法（コントロール用Ｅｎｄｐｏｉｎｔへのデータ取得リクエスト）で行われる。
【０１３７】
次にステップＳ２５０１で、ＤｅｖｉｃｅＩＤのデータを受取るためにコントロール用Ｅｎｄｐｏｉｎｔからの読み込みリクエストを行い、ＤｅｖｉｃｅＩＤをプリンタ１４から取得する。図１２にプリンタ１４から受取ったＤｅｖｉｃｅＩＤの詳細を示す。
【０１３８】
続くステップＳ２５０２では、ＤｅｖｉｃｅＩＤのＳＴＡがＩＦＢＵＳＹであるかどうかをチェックする。プリンタ１４から受取ったＤｅｖｉｃｅＩＤでＳＴＡがＩＦＢＵＳＹであった場合は、プリンタ１４に接続されている他のインターフェースからの印刷が既に行われていることを表していて、ネットワークからの印刷は受け付けられない状態であることを示している。つまり、図４でノートＰＣ４１からの印刷が行われていて、プリンタアダプタ１６を介した印刷は受け付けられない状態であることを示している。
【０１３９】
前記ステップＳ２５０２でＳＴＡがＩＦＢＵＳＹであった場合は、ステップＳ２５０３へ進み、ＳＴＡはそのままＩＦＢＵＳＹを設定し、ステップＳ２５１１へ進む。すなわちプリンタ１４から受取ったＤｅｖｉｃｅＩＤのＳＴＡがＩＦＢＵＳＹであった場合には、プリンタアダプタ１６はＳＴＡの内容を変更することなしにリクエストのあったＰＣへ返送することになる。
【０１４０】
前記ステップＳ２５０２でＳＴＡがＩＦＢＵＳＹでなかった場合は、ステップＳ２５０４へ進み、セッションが成立しているかどうかをチェックする。セッションが成立しているかどうかは、図１４のステップＳ２３１０でオンにされるセッションフラグがオンかどうかで判断でき、ネットワークで印刷データを送るためにＳｅｓｓｉｏｎＳｔａｒｔコマンドが成功しているかどうかの判定となる。セッションが成立していない場合は新たに印刷を行うためにセッションを成立することが可能であることを示している。
【０１４１】
前記ステップＳ２５０４でセッションがオンの場合は、ステップＳ２５０５へ進み、ＧｅｔＤｅｖｉｃｅＩＤで指定されたＳＥＳＳＩＯＮ−ＮＯとＳｅｓｓｉｏｎＳｔａｒｔで指定されたＳＥＳＳＩＯＮ−ＮＯとが一致するかどうかをチェックする。それぞれ（１）、（２）、（６）で示している。セッションが成立している場合には、ＧｅｔＤｅｖｉｃｅＩＤで指定されるＳＥＳＳＯＩＮ−ＮＯとＳｅｓｓｉｏｎＳｔａｒｔで指定されるＳＥＳＳＩＯＮ−ＮＯとは同一の値となる。ＳＥＳＳＩＯＮ−ＮＯの比較によって、セッションが成立しているＰＣからのＧｅｔＤｅｖｉｃｅＩＤコマンドであるか、セッションが成立していないＰＣからのＧｅｔＤｅｖｉｃｅＩＤコマンドであるかを判定することができる。
【０１４２】
前記ステップＳ２５０５でＳＥＳＳＩＯＮ−ＮＯが一致した場合は、ステップＳ２５０６へ進み、ＳＴＡはそのままＮＯＲＭＡＬを設定し、ステップＳ２５１１へ進む。すなわちプリンタ１４から受取ったＤｅｖｉｃｅＩＤのＳＴＡがＮＯＲＭＡＬ（ＵＳＢ以外のインターフェースの印刷が行われていない）で、且つ印刷を実行中のＰＣから行われたＧｅｔＤｅｉｖｅＩＤリクエストの場合には、プリンタアダプタ１６はＳＴＡの内容を変更することなしにリクエストのあったＰＣへ返送することになる。
【０１４３】
前記ステップＳ２５０５でＳＥＳＳＩＯＮ−ＮＯが一致しない場合は、ステップＳ２５０７へ進み、ＣＭＤがネットワーク対応であるかどうかのチェックを行う。これは、ＣＭＤにＮＷが含まれるかどうかで行われる。ステップＳ２５０７でネットワーク対応でない場合は、ステップＳ２５０８へ進み、従来型のネットワーク対応プリンタでないことが分かり、ＳＴＡにはＩＦＢＵＳＹを設定し、ステップＳ２５１１へ進む。ネットワーク対応でないプリンタに対してネットワークから、あるＰＣが印字している場合は、印字している以外のＰＣではステータスを取得することができないことになる。
【０１４４】
前記ステップＳ２５０７でネットワーク対応であると判定された場合は、ステップＳ２５０９へ進みＳＴＡにＨＯＳＴＢＵＳＹを設定してステップＳ２５１１へ進む。ＳＥＳＳＩＯＮ−ＮＯが一致しないＰＣからのＤｅｖｉｃｅＩＤコマンドが来た場合に、ネットワーク対応プリンタであれば、他のホストが印刷中であることを示すＨＯＳＴＢＵＳＹをリクエストしたＰＣへ返送することができる。
【０１４５】
前記ステップＳ２５０４でセッションがオンでない場合は、ステップＳ２５１０へ進み、ＳＴＡはそのままＮＯＲＭＡＬを設定し、ステップＳ２５１１へ進む。ステップＳ２５１１では、変更されたＳＴＡを、プリンタアダプタ１６からのＤｅｖｉｃｅＩＤとしてコマンドのリクエストがあったＰＣへ返送して、処理を終了する。
【０１４６】
これにより、プリンタ１４からのＳＴＡが「ＮＯＲＭＡＬ」である場合でも、Ｓｅｓｓｉｏｎオンでありかつプリンタ１４がネットワーク対応でない場合には「ＳＴＡ＝ＩＦＢＵＳＹ」としてＤｅｖｉｃｅＩＤを返信し、Ｓｅｓｓｉｏｎオンでありかつプリンタ１４がネットワーク対応である場合には「ＳＴＡ＝ＨＯＳＴＢＵＳＹ」としてＤｅｖｉｃｅＩＤを返信する。つまり、他のＰＣからの印刷データに基づいて印刷が行われていることを通知する場合でも、さらにプリンタの種類に従って通知内容を変更する。
【０１４７】
ＶＩ．ＵＳＢＧｅｔＤｅｖｉｃｅＩＤ処理の詳細
図１７は、図１５のステップＳ２４０１で説明したＵＳＢＧｅｔＤｅｖｉｃｅＩＤ処理の詳細フローチャートである。
【０１４８】
まずステップＳ２６００では、ＵＳＢで接続されたプリンタ１４へＤｅｖｉｃｅＩＤの取得を行うためのリクエストを行う。このリクエストは、ＵＳＢのプリンタクラスで規定されているコントロールデータ取得方法（コントロール用Ｅｎｄｐｏｉｎｔへのデータ取得リクエスト）で行われる。次のステップＳ２６０１では、ＤｅｖｉｃｅＩＤのデータを受取るためにコントロール用Ｅｎｄｐｏｉｎｔからのデータ読み込みリクエストを行い、ＤｅｖｉｃｅＩＤをプリンタ１４から取得する。図１２（ａ）、（ｂ）にプリンタ１４から受取ったＤｅｖｉｃｅＩＤの詳細を示す。
【０１４９】
続くステップＳ２６０２では、ＤｅｖｉｃｅＩＤのＳＴＡがＩＦＢＵＳＹであるかどうかをチェックする。プリンタ１４から受取ったＤｅｖｉｃｅＩＤにおいてＳＴＡがＩＦＢＵＳＹであった場合、プリンタ１４に接続されている他のインターフェースからの印刷が既に行われていることを表していて、プリンタアダプタ１６のＵＳＢからの印刷は受け付けられない状態であることを示している。図４でノートＰＣ４１からの印刷が行われていて、プリンタアダプタ１６にＵＳＢで接続されたノートＰＣ４２からの印刷は受け付けられない状態であることを示している。
【０１５０】
前記ステップＳ２６０２においてＳＴＡがＩＦＢＵＳＹであった場合は、ステップＳ２６０４へ進み、ＳＴＡはそのままＩＦＢＵＳＹを設定し、ステップＳ２６０６へ進む。すなわちプリンタ１４から受取ったＤｅｖｉｃｅＩＤのＳＴＡがＩＦＢＵＳＹであった場合にはプリンタアダプタ１６はＳＴＡの内容を変更することなしにリクエストのあったＰＣへ返送することになる。
【０１５１】
ステップＳ２６０２でＳＴＡがＩＦＢＵＳＹでなかった場合は、ステップＳ２５０３へ進み、セッションが成立しているかどうかをチェックする。セッションが成立しているかどうかは図１４のステップＳ２３１０でオンにされるセッションフラグがオンかどうかで判断でき、既にネットワークで印刷データを送るためにＳｅｓｓｉｏｎＳｔａｒｔコマンドが成功しているかどうかの判定となる。セッションが成立していない場合は新たにＵＳＢでの印刷を行うことが可能であることを示している。
【０１５２】
ステップＳ２６０３でセッションがオンの場合は、ステップＳ２６０４へ進み、ＳＴＡにＩＦＢＵＳＹを設定し、ステップＳ２６０６へ進む。この場合は、プリンタアダプタ１６にネットワークで接続されたＰＣから既に印刷が行われていることを示していて、プリンタアダプタ１６にＵＳＢで接続されたＰＣからの印刷は行えず、且つステータスを取得することができないことを示している。ステップＳ２６０３でセッションがオンでなければ、ステップＳ２６０５へ進みＳＴＡにＮＯＲＭＡＬを設定し、ステップＳ２６０６へ進む。プリンタ１４から戻されたＳＴＡがＮＯＲＭＡＬ（ＵＳＢ以外のインターフェースでの印刷が行われていない）でネットワークからの印刷が行われていない場合は、ＳＴＡにＮＯＲＭＡＬを戻し、プリンタアダプタ１６にＵＳＢで接続されているＰＣからの印刷が行える。
【０１５３】
ステップＳ２６０６では、変更されたＳＴＡを、プリンタアダプタ１６からのＤｅｖｉｃｅＩＤとしてコマンドのリクエストがあったＰＣへ返送して、処理を終了する。
【０１５４】
ＶＩＩ．ネットワークＧｅｔＳｔａｔｕｓ処理の詳細
図１８は、図１４に示したステップＳ２３０４のネットワークＧｅｔＳｔａｔｕｓ処理の詳細フローチャートである。
【０１５５】
まずステップＳ２７００では、ＵＳＢで接続されたプリンタ１４からステータス情報を取得するためにＵＳＢ規格で規定されているデータ取得方法（データ読み込み用のＥｎｄｐｏｉｎｔへのＢｕｌｋ  Ｉｎ）が行われ、ステップＳ２７０１でプリンタ１４からステータス情報を受取ることができる。（１２）はプリンタ１４から受取るステータス情報を示している。
【０１５６】
次にステップＳ２７０２へ進み、ステップＳ２７０１で受取ったステータス情報にネットワークでセッションが成立する際にＳｅｓｓｉｏｎＳｔａｒｔコマンドのパラメータとして受取った情報（（２））を追加する。（８）に追加された後のステータス情報が示されている。
【０１５７】
次のステップＳ２７０３では、ステップＳ２７０２で追加されたステータス情報を、ＧｅｔＳｔａｔｕｓコマンドをリクエストしたＰＣへ返送し、処理を終了する。
【０１５８】
ＶＩＩＩ．ＵＳＢＧｅｔＳｔａｔｕｓ処理の詳細
図１９は、図１５ステップＳ２４０３のＵＳＢＧｅｔＳｔａｔｕｓ処理の詳細フローチャートである。
【０１５９】
まずステップＳ２８００では、ＵＳＢで接続されたプリンタ１４からステータス情報を取得するためにＵＳＢ規格で規定されているデータ取得方法（データ読み込み用のＥｎｄｐｏｉｎｔへのＢｕｌｋ  Ｉｎ）が行われ、続くステップＳ２８０１では、プリンタ１４からステータス情報を受取ることができる。（１２）にプリンタ１４から受取るステータス情報が示されている。
【０１６０】
次にステップＳ２８０２へ進み、ステップＳ２７０１で受取ったステータス情報がＢｕｌｋ  ＩｎをリクエストしたＰＣへ返送して、処理を終了する。プリンタ１４のステータスがそのままの送り返されることになる。
【０１６１】
以上、図１３〜図１９を用いて説明したように、本実施形態によれば、プリンタアダプタ１６は、ＵＳＢで接続されいるプリンタ１４から取得したＤｅｖｉｃｅＩＤとプリンタアダプタ１６自身が持つインターフェースの使用状態とを考慮して追加・変更したＤｅｖｉｃｅＩＤを、リクエストのあったＰＣへ戻すことができる。さらに、ＵＳＢで接続されいるプリンタ１４から取得したステータスとプリンタアダプタ１６自身が管理するステータス情報とを考慮して追加・変更したステータスを、リクエストのあったＰＣへ戻すことができる。
【０１６２】
したがって、複数のネットワークで接続されたＰＣに対して、印刷中であるかどうかの情報やプリンタ１４の状況等を、印刷しているＰＣに限らず知らせることができ、プリンタ１４が複数のインターフェースを有する場合でも、プリンタアダプタ１６と接続されていないインターフェースでの使用状況をＰＣへ知らせることができる。これにより、ユーザは、１台のプリンタを共有する環境でも、ＰＣにローカルインターフェースで直接接続されたプリンタと同様の使い勝手を提供することができる。
【０１６３】
また、プリンタ１４がネットワークに対応したプリンタであるかどうかを判定して異なる情報をＰＣへ戻すようにしたので、ネットワークに対応していないプリンタでは、誤動作なく従来通りの動作をすることができ、ネットワーク対応したプリンタでは、より使い勝手の良い印刷環境を実現することができる。
【０１６４】
また本実施形態では、プリンタ１４とプリンタアダプタ１６をＵＳＢインターフェースを用いて接続したが、ＵＳＢインターフェースと同様な機能を実現できるものであればこの限りではない。さらに、無線ＬＡＮとして８０２．１１ｂを使用したが、無線ＬＡＮを実現するものであればこの限りではない。
【０１６５】
なお、上述した図９〜図１１のフローチャートに従ったプログラムをＰＣ内の記憶装置に格納し動作することにより、上述の制御方法を実現させることが可能となる。
【０１６６】
本発明は、上述した実施形態の装置に限定されず、複数の機器から構成されるシステムに適用しても、１つの機器から成る装置に適用してもよい。前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、完成されることは言うまでもない。
【０１６７】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭを用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６８】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、次のプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるＣＰＵなどが処理を行って実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６９】
【発明の効果】
以上詳細に説明したように、本願発明によれば、１台のデバイスを複数の情報処理装置で共有する環境においても、複数の情報処理装置のぞれぞれに対して適切なデバイス情報を提供するとともに、異なるタイプのデバイスのそれぞれに関して適切なデバイス情報を提供できる。
【０１７０】
また、請求項１、３、４，５，６、７の発明によれば、１台のデバイスを複数の情報処理装置で共有する環境においても、デバイスを使用していない情報処理装置から送られた情報取得リクエストに応えて、適切なデバイス情報を返信することが可能になる。
【０１７１】
請求項２の発明によれば、ネットワークに対応していないデバイスでは従来通り不具合なく動作させることができ、ネットワーク対応型のデバイスでは、情報取得リクエストを行った情報処理装置に対して適切なデバイス情報を返信することができる。
【図面の簡単な説明】
【図１】本発明の実施の一形態に係るデータ処理装置を有する印刷システムの一構成例を示すブロック図である。
【図２】図１のプリンタアダプタ１６の外観を示した図である。
【図３】プリンタアダプタ１６の内部ブロック構成を示した図である。
【図４】実施形態で接続可能な全ての組み合わせで構成した印刷システムのシステム構成図である。
【図５】印刷実行中におけるステータスモニタの表示内容を示す画面図である。
【図６】他のインターフェースで印刷実行中におけるステータスモニタの表示内容を示した画面図である。
【図７】他のＰＣで印刷実行中におけるステータスモニタの表示内容を示した画面図である。
【図８】ＧｅｔＤｅｖｉｃｅＩＤのコマンドで得られるＤｅｖｉｃｅＩＤを示した図である。
【図９】ＰＣで実行される印刷ジョブを説明するフローチャートである。
【図１０】ＰＣで実行されるネットワーク印刷データ転送処理を説明するフローチャートである。
【図１１】ＰＣで実行されるＵＳＢ印刷データ転送処理を説明するフローチャートである。
【図１２】プリンタアダプタで発行されるＵＳＢＧｅｔＤｅｖｉｃｅＩＤのコマンドで得られるＤｅｖｉｃｅＩＤを示した図である。
【図１３】プリンタアダプタ側の印刷処理の全体フローを示すフローチャートである。
【図１４】プリンタアダプタ側のネットワーク印刷処理を説明するフローチャートである。
【図１５】プリンタアダプタ側のＵＳＢ印刷処理を説明するフローチャートを示した図である。
【図１６】プリンタアダプタ側のネットワークＵＳＢＧｅｔＤｅｖｉｃｅＩＤ処理を説明するフローチャートである。
【図１７】プリンタアダプタ側のＵＳＢＧｅｔＤｅｖｉｃｅＩＤ処理を説明するフローチャートである。
【図１８】プリンタアダプタ側のネットワークＧｅｔＳｔａｔｕｓ処理を説明するフローチャートである。
【図１９】プリンタアダプタ側のＵＳＢＧｅｔＳｔａｔｕｓ処理を説明するフローチャートである。
【符号の説明】
１１，１２，１３，４１，４２  ノートＰＣ
１４  プリンタ
１５  アクセスポイント
１６  プリンタアダプタ
１８  無線ＬＡＮカード
【図１】
2005011246.tif 000003
【図２】
2005011246.tif 000004
【図３】
2005011246.tif 000005
【図４】
2005011246.tif 000006
【図５】
2005011246.tif 000007
【図６】
2005011246.tif 000008
【図７】
2005011246.tif 000009
【図８】
2005011246.tif 000010
【図９】
2005011246.tif 000011
【図１０】
2005011246.tif 000012
【図１１】
2005011246.tif 000013
【図１２】
2005011246.tif 000014
【図１３】
2005011246.tif 000015
【図１４】
2005011246.tif 000016
【図１５】
2005011246.tif 000017
【図１６】
2005011246.tif 000018
【図１７】
2005011246.tif 000019
【図１８】
2005011246.tif 000020
【図１９】
2005011246.tif 000021