JP2004185217A - Device management method - Google Patents

Device management method Download PDF

Info

Publication number
JP2004185217A
JP2004185217A JP2002350237A JP2002350237A JP2004185217A JP 2004185217 A JP2004185217 A JP 2004185217A JP 2002350237 A JP2002350237 A JP 2002350237A JP 2002350237 A JP2002350237 A JP 2002350237A JP 2004185217 A JP2004185217 A JP 2004185217A
Authority
JP
Japan
Prior art keywords
status
print
job
port
printer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2002350237A
Other languages
Japanese (ja)
Inventor
Masakazu Nomoto
政和 野本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002350237A priority Critical patent/JP2004185217A/en
Publication of JP2004185217A publication Critical patent/JP2004185217A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To manage the operational status of a device while using a function of an existing system. <P>SOLUTION: A total number of ports which receive and transmit data to a device to be connected is acquired, and whether a print job is allocated is determined for each port. Control jobs corresponding to the number of the ports to which the print jobs are not allocated are generated, and a data block in which a status acquisition control command is added to the control job and/or print job is generated so as to acquire status information indicating the status of the device. The status information on the device corresponding to the port is acquired based on the data block. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、印刷装置の状態を特定するための情報を取得して、印刷装置を管理する装置管理技術に関するものである。
【0002】
【従来の技術】
従来の印刷システムにおいて、ユーザがホストコンピュータ側で作成した印刷データを所定のプリンタで処理する場合、プリンタの動作状態は、ホストコンピュータと、プリンタとの間の双方向通信により検出され、ホストコンピュータのディスプレイ装置上に表示され、ユーザに通知されていた。
【0003】
また、印刷システムにおいて、複数のプリンタを用い、印刷ジョブを複数のプリンタに分配することにより大量の印刷ジョブを高速に処理することが行われている。このような印刷システムとして、例えば、特許文献1(特許第2862430号公報)の印刷システムがある。これは各プリンタに対応付けてスプーラを設け、印刷キュー中のジョブを順次空いているスプーラに割り当てるものである。
【0004】
その印刷システムと同様の機能を持つものとして、例えばマイクロソフト社から供給されるオペレーティングシステムであるWindows(登録商標) NTおよびその後継オペレーティングシステムが提供する「プリンタプール」がある。いずれも印刷システムのユーザは出力先のプリンタを個別に指定せず、そのシステムの制御部またはオペレーティングシステムのスプーラがユーザの介在なしに分配対象のプリンタ群の中からジョブの割り当てられていないプリンタを選択し、選択されたプリンタへジョブを送信することにより大量のジョブを高速に処理すると共にユーザをプリンタ選択の手間から解放している。
【0005】
更に、複数のプリンタの動作状態を同時に監視し、ユーザに通知するシステムとして、特許文献2(特開平11−353075号)、特許文献3(特開2000−76032号)、特許文献4(特開2000−293336号)各公報にそれぞれ開示されているものがある。
【0006】
【特許文献1】
特許第2862430号公報
【特許文献2】
特開平11−353075号
【特許文献3】
特開2000−76032号
【特許文献4】
特開2000−293336号
【0007】
【発明が解決しようとする課題】
上記における複数のプリンタの動作状態を監視するシステムはいずれも、各プリンタの状態を取得する際に監視対象プリンタの接続先を指定し、そのプリンタへアクセスし、指定した対象のプリンタのステータス情報を取得しようとするものである。
【0008】
しかし、上記の「プリンタプール」のようにジョブ送信先のポートを指定せず、システム側が送信先を選択するシステムにおいては、プリンタステータス取得要求コマンドの送信先を制御することができず、ジョブ分配対象のすべてのプリンタに確実にアクセスすることができないため、ステータス取得要求コマンドの送信やプリンタステータスの受信のために、プリンタにアクセスする仕組みを独自に持つ必要があった。
【0009】
本発明の目的は、上記の「プリンタプール」のような、複数のポートの中からジョブが割り当てられていないポートをジョブの出力先として選択し、印刷キューから取得したジョブを順次送信する印刷処理分散システムにおいて、既存システムの機能を利用しつつ、すべてのジョブ分配対象ポートに対して確実にプリンタステータス要求コマンドを送信し、全プリンタのステータス情報をユーザに対して表示して、状態監視を可能にする装置管理技術を提供することにある。
【0010】
【課題を解決するための手段】
前述の課題を解決するために本発明にかかる装置管理方法は、主として以下の工程を有することを特徴とする。
【0011】
すなわち、装置管理方法は、接続する装置とデータの授受をするポートの総数を取得するポート数取得工程と、
前記ポートに関し、印刷ジョブの割り当ての有無を識別し、該印刷ジョブの割り当ての無いポート数分の制御ジョブを生成する第1生成工程と、
前記装置の状態を示すステータス情報を取得するために、ステータス取得制御コマンドを、前記制御ジョブ及び/または印刷ジョブに付加したデータブロックを生成する第2生成工程と、
前記データブロックに基づき、前記ポートに対応する装置のステータス情報を取得するステータス情報取得工程と、を備えることを特徴とする。
【0012】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0013】
[第1実施形態]
<システムの構成(図1)>
図1は、本発明の第1実施形態の構成を示すブロック図である。1はユーザが文書を作成し、印刷命令を実行し、後述のプリンタ(2−1)に対して印刷データを送信するホストコンピュータであり、(2−1)〜(2−n)は、ユーザが作成した印刷データを受信して、かかる印刷データの処理を実行するプリンタ群である。
【0014】
ホストコンピュータ1には、アプリケーションプログラム11、プリンタドライバ12、スプーラ13、プリントモニタ(14−1〜14−n)、ポートドライバ(15−1〜15−n)、ステータスモニタ17が含まれる。
【0015】
まず、ユーザによる操作で、アプリケーションプログラム11は所定のデータを作成して印刷開始を指示し、プリンタドライバ12は、アプリケーション11からの指示を受けて、生成されたデータをプリンタ(2−1)〜(2−n)に特有な印刷データに変換する。
【0016】
スプーラ13は、印刷データをジョブ単位で一時的に格納し、キューイングし、順次プリントモニタ(14−1、14−2、・・・14−n)に渡す。
【0017】
プリントモニタ(14−1〜14−n)は、スプーラ13から渡された印刷データを、プリンタと接続する入出力ポートへ送信するための送信制御を行うと共に、入出力ポートを介して各プリンタから受信したデータの処理を行う。
【0018】
ポートドライバ(15−1〜15−n)は、入出力ポートを介して各プリンタ(2−1〜2−n)との間でのデータ送受信の制御を行い、プリンタ側のインタフェースから受信した、プリンタに関するステータス情報をプリントモニタ(14−1〜14−n)に受け渡す。
【0019】
ステータスモニタ17は、各プリントモニタ(14−1〜14−n)から対応するプリンタに関するステータス情報を受信して、各プリンタ(2−1〜2−n)の状態をユーザに対して表示制御する。
【0020】
これらの構成要素のうち、スプーラ13およびポートドライバ(15−1〜15−n)はホストコンピュータ1のオペレーティングシステム16の一部として動作するものとする。
【0021】
スプーラ13は、プリントモニタ(14−1〜14−n)の中に、印刷ジョブを処理していないものがあれば、直ちにスプーラのキューの先頭からジョブを一つ取り出し、ジョブを処理していないプリントモニタに印刷ジョブデータを渡す。ジョブを処理していないポートが複数ある場合には、それらの内の任意の一つが選択される。またジョブを処理していないポートが一つもなければ、キュー中のすべてのジョブはいずれかのポートのジョブ処理が終了するまでスプーラ13で待機状態となる。
【0022】
一方、プリンタ(2−1、2−2、・・・2−n)はすべて同等の機能、構成を持つプリンタである。以下プリンタ(2−1)の構成を代表例として説明するが、他のプリンタ(2−2〜2−n)も同一の構成要素から成るものとする。
【0023】
プリンタ2−1はホストコンピュータ1との間で双方向通信を行うインタフェースコントローラ21と、プリンタ内部の制御を行う印刷制御部22と、プリンタ2−1内部で使用するデータを一時的に格納するRAM23と、記録媒体上に画像の記録を実行するプリントエンジン24を含む。
【0024】
RAM23はインタフェースコントローラ21を介してホストコンピュータ1から受信した印刷データを一時的に格納する受信バッファを含み、印刷制御部22がその印刷データに従ってプリントエンジン24を制御し、画像の記録を行う。また、印刷制御部22は、プリントエンジン24をはじめとするプリンタ内のステータス情報を収集し、RAM23に格納するとともに、そのステータス情報をインタフェースコントローラ21を介してホストコンピュータ1へ送信する。
【0025】
ホストコンピュータ1とプリンタ(2−1〜2−n)を接続するインタフェースにはIEEE1284パラレルインタフェースやUSBインタフェースが用いられるが、これらに限らず他のインタフェース技術を用いてもよい。
【0026】
<印刷制御部22の処理(図2)>
次に、図2のフローチャートを参照して、プリンタ2−1における印刷制御部22の処理動作について説明する。尚、他のプリンタ(2−2〜2−n)の構成も、同様のものであり、プリンタ2−1と全く同じ処理動作をすることが可能である。
【0027】
まず、ステップS101で、各プリンタの電源が投入されると、印刷制御部22は電源投入時に行うべき起動動作を行う。次いで、処理をステップS102に進め、フラグ変数Fを「FALSE」に初期化する。このフラグ変数Fはホストコンピュータ1に対するステータス情報送信の要否を示すものである。
【0028】
ステップS103ではプリンタ2−1の電源が断たれたかどうかを判定する。電源が切られた場合(S103−YES)は処理をステップS115に進め処理を終了させ、電源が切られていない場合(S103−NO)、処理をステップS104へ進める。ステップS104ではRAM23の受信バッファにホストコンピュータ1からの受信データがあるかどうかを判定し、受信データがあれば(S104−YES)、処理をステップS105に進め、受信データが無い場合(S104−NO)は、処理をステップS110へ進める。
【0029】
ステップS105では受信データのコマンドを解析し、その結果により分岐する。受信データがプリンタの状態を特定するためのステータス要求コマンドであれば(S105−YES)、処理をステップS106に進め、フラグ変数Fを「TRUE」(ステータス情報の送信が要)に設定し、受信データがステータス要求コマンドでなければ(S105−NO)、処理をステップS107へ進める。
【0030】
ステップS107では更に、受信データがステータス要求解除コマンドか否かにより分岐する。ステータス要求解除コマンドであれば(S107−YES)、処理をステップS108に進め、フラグ変数Fを「FALSE」(ステータス情報の送信が否)に設定し、ステータス要求解除コマンドでなければ(S107−NO)、処理をステップS109に進め、プリントエンジン24を制御して印刷動作を実行する。
【0031】
なお、ステップS105で判断されるステータス要求コマンドは図3の(a)のようなデータ列であり、また、ステップS107で判断されるステータス要求解除コマンドは図3の(b)に例示するようなデータ列である。
【0032】
その後、ステップS110ではプリンタ内部の状態をステータス情報として印刷制御部22が収集し、RAM23に格納する。
【0033】
ステップS111ではフラグ変数Fの値により、変数値が「TRUE」であれば(S111−YES)、処理をステップS112に進め、変数値が「FALSE」であれば(S111−NO)、処理をステップS103へ分岐する。
【0034】
ステップS112では、先にステップS110でRAM23に格納したプリンタの状態(ステータス情報)に変化があったか否かを判断し、変化があれば(S112−YES)、処理をステップS113に進め、ステータス情報に変化がなければ(S112−NO)、処理をステップS103へ分岐する。
【0035】
ステップS113では、ステータス情報の変化をホストコンピュータ1へ返送するステータス応答データを生成し、ステップS114でインタフェースコントローラ21を介してホストコンピュータ1へステータス応答データを返送する。
【0036】
図3の(c)はホストコンピュータ1に応答するステータス情報(「ステータス応答データ」)の一例を示す図である。これはプリンタにエラーは発生していないが、種別「02」の警告(例えば、「イエローインクの残量が少ない」)が発生している状態を示すものである。
【0037】
ステップS103の判断ステップにおいて、ステップS115へ処理を分岐した場合には、電源切断時に行うべき終了動作を行い、プリンタの動作を終了する。
【0038】
以上の処理により、プリンタ2−1〜2−nはホストコンピュータ1から受信する印刷データに従って印刷動作を行うと共に、ステータス要求コマンド受信以後、ステータス要求解除コマンド受信までの間はフラグ変数Fを「TRUE」(ステータス情報の送信が要)とし、プリンタ内のステータスが変化するたびにホストコンピュータ1へプリンタステータス情報を送信する。
【0039】
<ステータスモニタの処理(図4)>
次に、図4のフローチャートを参照して本実施形態にかかるステータスモニタ17の処理動作を説明する。
【0040】
ホストコンピュータ1のオペレーティングシステム(OS)16が起動する際にステータスモニタ17は起動され、図4に示す処理が起動する。
【0041】
ステップS201では整数変数nにポートの数を設定する。これはプリントモニタ(14−1〜14−n)の数、プリンタ(2−1〜2−n)の数と同じ数である。
【0042】
ステップS202では、ステータスモニタ17がn個の制御ジョブを生成し、プリンタドライバ12を介してスプーラ13のキューに投入する。ここで生成される制御ジョブはプリンタ用の印刷命令を含まないジョブであり、プリントモニタ(14−1〜14−n)が通常の印刷ジョブから判別できるものである。
【0043】
ステップS203ではオペレーティングシステム16が終了するかどうかを判定し、システム終了時(S203−YES)にはステータスモニタ17も起動を終了する。システム終了でなければ(S203−NO)、処理をステップS204へ進め、プリントモニタ(14−1〜14−n)からプロセス間通信によりステータス情報を取得する。
【0044】
ステップS205ではステップS204で取得したステータス情報の対象となるポート名を文字列変数Pに設定し、ステップS206でポートPのステータス情報をユーザに対して表示する。ポート名は、例えばIEEE1284パラレルポートについては「LPT1:」、「LPT2:」など、USBポートについては「USB001」、「USB002」などとなる。その後ステップS203へ戻り、一連の処理をシステム終了まで繰り返す。
【0045】
図5はステータスモニタ17によるユーザへの表示例を示す図であり、図5の31には監視対象となるプリンタ群をオペレーティングシステム16上で識別する名称を表示する。32にはジョブを分配する対象のポート群の名称をリスト表示し、その中のいずれかをユーザ操作により選択可能とする。33には32で選択されたポートを介して接続されたプリンタから取得した状態を示す情報がユーザに対して表示される。図5の33には、先に図3(c)で説明した、ステータス情報に対応する警告の表示(例えば、「イエローインクの残量が少ない」)が示される。
【0046】
<プリントモニタの処理(図6)>
次に、図6のフローチャートを参照してプリントモニタ(14−1〜14−n)の処理動作を説明する。プリントモニタ(14−1〜14−n)は、スプーラ13によって新たに、ジョブがポートに割り当てられた際に、プリントモニタ(14−1〜14−n)の内、割り当てられたポートに対応するプリントモニタが起動される。この場合、プリントモニタの処理動作はポートによらず同一である。
【0047】
ステップS301において、まず適当なサイズ(例えば最大4096バイトでそのジョブの残りデータがそれより小さい時はジョブ終端まで)のデータブロックをスプーラ13中のジョブから取得する。
【0048】
ジョブはステータスモニタ17の処理で説明した図4のステップS202で投入された制御ジョブや、またはアプリケーション11を用いてユーザ操作により投入されたユーザジョブのいずれかである。
【0049】
ステップS302では、取得したデータブロックに含まれるコマンドを解析し、ステップS303では、データブロックがジョブ先頭部に該当するか否かを判断する。データブロックがジョブ先頭の場合(S303−YES)は、処理をステップS304に進め、そのデータブロックの先頭部にステータス要求コマンドを付加する。
【0050】
一方、ジョブの先頭でない場合(S303−NO)は、ステップS304をスキップして処理をステップS305へ進める。ステップS304で付加されるステータス要求コマンドは図3の(a)で例示したデータである。
【0051】
ステップS305ではデータブロックを該当するプリントモニタに対応するポートドライバ(15−1〜15−n)に受け渡す処理が実行され、該当するポートドライバは所定のインタフェースを介してプリンタ(2−1〜2−n)の内、対応するプリンタに上述のデータブロックを送信する。
【0052】
続くステップS306ではステータス取得処理が実行され、ステップS307ではデータブロックでジョブが終了するかどうかにより分岐し、ジョブ終了の場合(S307−YES)は処理をステップS308へ進め、終了でない場合(S307−NO)には処理をステップS301へ戻し、再びジョブの処理を続行する。
【0053】
ステップS308ではプリントモニタに次のジョブが割り当てられたか、またはオペレーティングシステム16が終了するか否かを判定する。両者がいずれも満たされない場合(S308−NO)には、処理をステップS309に進め、ステータス取得処理を行い、処理をステップS308に戻す。ステップS308の条件のいずれか一方でも満たされる場合(S308−YES)、プリントモニタは一連の処理を終了する。ただし次のジョブが割り当てられている場合には、再びステップS301からの処理が起動される。
【0054】
<ステータス取得処理(図7)>
次に、図7のフローチャートを参照して、図6で説明したステップS306およびステップS309のステータス取得処理の詳細について説明する。
【0055】
ステータス取得処理では、まずステップS401でプリントモニタ14−1〜14−nに対応するポートドライバ15−1〜15−nを介して、そのポートに対応するプリンタから受信したステータス情報を取得する。
【0056】
ステップS402ではステップS401の処理でエラーが発生したか否かにより処理を分岐させる。エラーが発生した場合(S402−YES)、処理をステップS403に進め、エラーが発生しない場合(S402−NO)、ステップS404へ分岐する。ただし、単に何もデータが受信できなかっただけで、プリンタ(2−1〜2−n)との通信自体は切断されていない場合はエラーとはみなさない。
【0057】
ステップS403では、プリントモニタ(14−1〜14−n)とステータスモニタ17の間でのプロセス間通信によりステータスモニタ17へプリントモニタが対応する「ポート名」と「ポートエラー」の発生を通知する。この通知はステータスモニタ17側の処理を説明する図4のステップS204で取得され、図4のステップS206でユーザに対して表示される。
【0058】
ステップS404ではステップS401の処理でプリンタのステータス情報を受信したか否かによって、受信した場合(S404−YES)にはステップS405へ進み、ステータス情報を受信していない場合(S404−NO)は、処理を終了する。
【0059】
ステップS405ではプリントモニタ(14−1〜14−n)とステータスモニタ17の間でのプロセス間通信によりステータスモニタ17へ該当するプリントモニタが対応する「ポート名」と共に取得した「プリンタステータス情報」を通知する。
【0060】
以上の処理により、ホストコンピュータ1のオペレーティングシステム16の起動時にはステータスモニタ17が起動され、図4のステップS202でポート数分の制御ジョブがスプーラ13に投入される。これらの各制御ジョブがそれぞれどのポートに割り当てられるかを制御することはできないが、ポート数と同数のジョブが同時に投入されるため、すべてのプリントモニタ(14−1〜14−n)にジョブが割り当てられ、各プリントモニタ(14−1〜14−n)が起動される。
【0061】
これによりシステム起動以降、常時、接続された全プリンタ(2−1〜2−n)の状態をプリントモニタ(14−1〜14−n)が取得し、ステータスモニタ17に表示することができる。
【0062】
各制御ジョブの処理終了後の状態は、プリントモニタ(14−1〜14−n)の処理で説明した図6のステップS308、S309の処理により継続的にプリンタの状態の監視を行うことができ、ステップS308の分岐により次のジョブが投入されプリントモニタ(14−1〜14−n)に割り当てられた場合には、直ちに次のジョブの処理に移り、かつ、プリンタ状態の監視を続行することができる。
【0063】
印刷データの送信先として複数ポートを指定しながら印刷制御をする場合、その送信先ポートをオペレーティングシステム外部から選択することができないシステムにおいても、複数ポートすべてを介したプリンタのステータス情報を取得し、これをユーザへ表示することが可能になる。また、図5の例のように、接続先の複数ポートの内の一部をユーザが選択する場合であっても、それらのポートについてのみ、該等するプリンタのステータス情報を取得して、その情報をユーザに表示することも可能である。
【0064】
なお、上記の説明において、ユーザジョブはホストコンピュータ1上で動作するアプリケーション11が生成するものとしたが、これには限られず、ホストコンピュータ1とLANなどのコンピュータネットワークを介して接続した他のホストコンピュータ上で動作するアプリケーションが生成するジョブが、他のホストコンピュータおよびホストコンピュータ1の各オペレーティングシステムのネットワーク機能によりホストコンピュータ1のスプーラ13に転送されるものを含んでもよい。
【0065】
また、上記の説明において各プリンタ(2−1〜2−n)は各種インタフェースによってホストコンピュータ1と直接接続されている形態(図1)について説明したが、ホストコンピュータ1とプリンタ(2−1〜2−n)はそれぞれLANなどのネットワークに接続され、ポートドライバ15−1〜15−nの代わりにIETF(The Internet Engineering Task Force)のRFC(Request for Comments)1179に記載されているLPD(Line Printer Daemon)プロトコルを実装した通信モジュールが動作し、インタフェースコントローラ21はLPDサーバとして機能することにより、LANを介したネットワーク接続を利用するものであってもよい。
【0066】
また、図1に示すようにホストコンピュータ1とプリンタ(2−1〜2−n)とが直接接続されている形態とネットワーク接続を利用するものが混在する形態であってもよい。ネットワークはインターネットなどLANとは異なる形態のネットワークでもよく、LPDプロトコルの代わりに他の通信制御方式を用いるものでも構わない。
【0067】
[第2実施形態]
<システムの構成(図8、図9)>
第1実施形態ではホストコンピュータ1上のオペレーティングシステム16の動作中常時、ステータスモニタ17を動作させ、プリンタのステータス情報を取得し、表示するものとしたが、ホストコンピュータを操作するユーザによって任意にステータスモニタを起動し、終了させられるように構成してもよい。
【0068】
図8は本発明の第2実施形態の構成を示すブロック図である。ホストコンピュータ101を構成するアプリケーション11、プリンタドライバ12、スプーラ13、ポートドライバ(15−1〜15−n)の各構成要素、およびプリンタ(2−1〜2−n)の各構成要素は第1実施形態における構成と同一である。
【0069】
ただし、プリントモニタ(114−1〜114−n)およびステータスモニタ117は後述の通り上述の第1実施形態とは異なる動作をし、ホストコンピュータ101はオペレーティングシステム116の提供する機能として、プロセス間共有メモリ118を備える点において第1実施形態と相違する。
【0070】
図9はプロセス間共有メモリの内容の一例を示す図である。131−1、131−2はそれぞれ「キー」と称し、任意の文字列を名称としたデータが設定されるものとする。この図9の例ではキー131−1、131−2の名称はそれぞれ「LPT1:」、「USB001」というポートの名称である。キーは相互に名称が一致しない限り任意に作成、削除することができる。
【0071】
各キーの配下には0個以上のエントリを作成することができる。各エントリは任意の文字列を名称として持ち、文字列または数値をキーに設定された名称に対応する値として持つ。キー132−1、132−2はそれぞれ文字列「ERR=NO;WRN=02;」(132−1)、数値「2」(132−2)を値として持ち、名称がそれぞれ「Status」、「Monitoring」であるエントリの例であり、いずれもキー131−1、131−2の配下にある。これらエントリも同一キーの配下において名称が一致しない限り任意に作成、削除することができ、また任意にその値を書き換えることができる。異なるキーの配下にあるエントリ同士は同一名称であってもよい。プロセス間共有メモリ118はホストコンピュータ101上の任意のプロセスが読み書きすることができるものである。
【0072】
<ステータスモニタの処理(図10A、10B)>
次に、図10Aおよび図10Bのフローチャートを参照して本実施形態におけるステータスモニタ117の処理動作を説明する。
【0073】
ホストコンピュータ1のオペレーティングシステム116の動作中にユーザがステータスモニタ117を起動すると、図10のステップS1101から処理が開始する。ステップS1101では、プリントモニタ(114−1〜114−n)が対応付けられる各ポートの名称の「キー」をプロセス間共有メモリ118中に作成し、各キー中に名称「Monitoring」、値「1」の数値エントリを作成する。既にキー、エントリが存在する場合にはそれらを上書きする。数値エントリの値「1」はプリントモニタ(114−1〜114−n)にステータス要求コマンドを送信させることを意味するデータである。
【0074】
ステップS1102では、オペレーティングシステム(OS)116は、プロセス間共有メモリ118中の各ポート名称のキーについて、「Monitoring」エントリの値が1であるものの数を計数し、その数を整数変数nに格納する。
【0075】
ステップS1103では、OS116がnの値が0であるかどうかを判定し、「n=0」であれば(S1103−YES)、処理をステップS1108に進め、「n≠0」ならば(S1103−No)、処理をステップS1104へ進める。
【0076】
ステップS1104では、ステップS1102で見つかったキーの名称に対応するポートのプリントモニタ(114−1〜114−n)の内、現在ジョブが割り当てられていないプリントモニタがあるか否かを判定し、該当するプリントモニタが有れば(S1104−YES)、処理をステップS1105に進め、該当するプリントモニタが無ければ(S1104−NO)、処理をステップS1108へ分岐する。
【0077】
ステップS1105では、OS116はスプーラ113にアクセスし、現在既にプリントモニタ(114−1〜114−n)に割り当てられているものと、キュー中で待機しているものを合わせたジョブ数を整数変数mに設定する。
【0078】
ステップS1106では、整数変数nおよびmを比較し、「n>m」の場合(S1106−YES)は処理をステップS1107へ進め、「n≦m」の場合(S1106−NO)は、処理をステップS1108へ進める。
【0079】
ステップS1107では、ステータスモニタ117が、n−m個の制御ジョブを生成し、プリンタドライバ12を介してスプーラ113のキューに生成した制御ジョブを投入する。
【0080】
ステップS1108では、ユーザの操作によりステータスモニタ117の終了が指示されたかどうかを判定し、終了の場合(S1108−YES)は処理を図10BのステップS1111へ進め、ステータスモニタ117が終了でない場合(S1108−NO)は、処理をステップS1109へ進める。
【0081】
ステップS1109では、各プリントモニタ114−1〜114−nを介して取得したステータス情報をプロセス間共有メモリ118から取得する。ここで、ステータス情報はプリントモニタ(114−1〜114−n)が対応付けられる各ポート名称のキー中にエントリされた「Status」に設定されているデータにより取得することができる。
【0082】
ステップS1110では、ステップS1109で取得したステータス情報に基づいてユーザに対する表示を更新する。表示の形式は、第1実施形態で説明した図5のような形式に従って表示することができる。
【0083】
次に、ステップS1108の処理で分岐した処理の内容を図10Bを用いて説明する。
【0084】
ステップS1111では、プリントモニタ(114−1〜114−n)が対応付けられる各ポートの名称のキーをプロセス間共有メモリ118中から検索し、各キー中の「Monitoring」エントリの値をそれぞれ「3」に書き換える。値「3」はプリントモニタ(114−1〜114−n)にステータス要求解除コマンドを送信させることを意味する。
【0085】
ステップS1112では、オペレーティングシステム(OS)116は、プロセス間共有メモリ118中の各ポート名称のキーについて、「Moitoring」エントリの値が3であるものの数を計数し、その数を整数変数nに格納する。
【0086】
ステップS1113では、OS116がnの値が0であるかどうかを判定し、n=0であれば(S1113−YES)、ステータスモニタ117の処理は終了し、nの値が0でなければ(S1113−NO)、処理をステップS1114へ進める。
【0087】
ステップS1114では、先のステップS1112で検出された「Monitoring=3」であるキー名称に対応するポートのプリンタモニタ(114−1〜114−n)の内、現在ジョブが割り当てられていないプリントモニタがあるか否かを判定し、該当するプリントモニタがあれば(S1114−YES)、処理をステップS1115に進め、該当するものがなければ(S1114−NO)、処理をステップS1112へ分岐する。
【0088】
ステップS1115では、OS116はスプーラ113にアクセスし、現在既にプリントモニタ(114−1〜114−n)に割り当てられているものと、キュー中で待機しているものを合わせたジョブ数を整数変数mに設定する。
【0089】
ステップS1116では、整数変数nおよびmを比較し、n>mの場合(S1116−YES)は、ステップS1117へ処理を進め、そうでなければ(S1116−NO)、処理をステップS1112へ戻す。
【0090】
ステップS1117では、ステータスモニタ117は、n−m個の制御ジョブを生成し、プリンタドライバ112を介してスプーラ113のキューに投入する。
【0091】
<プリントモニタの処理(図11A、11B)>
図11Aおよび図11Bのフローチャートを参照して本実施形態におけるプリントモニタ(114−1〜114−n)の処理動作を説明する。
【0092】
プリントモニタ(114−1〜114−n)は、スプーラ113によって新たにポートにジョブが割り当てられると、そのポートに対応するプリントモニタ(114−1〜114−n)が起動するが、その処理動作はポートによらず同一である。
【0093】
動作はステップS1201から始まり、まず適当なサイズ(このサイズは第1実施形態の図6のステップS301で説明したものと同様)のデータブロックをスプーラ113中のジョブから取得する。ジョブはステータスモニタ117の処理で説明した図10AのステップS1107および図10BのステップS1117の処理により投入された制御ジョブか、またはアプリケーション111を用いてユーザの操作により投入されたユーザジョブのいずれかである。
【0094】
ステップS1202では、取得したデータブロックに含まれるコマンドを解析し、ステップS1203では、スプーラ113から取得したデータブロックがジョブ先頭部であるか否かを判断する。データブロックがジョブの先頭部である場合(S1203−YES)は、処理を図11BのステップS1204へ進め、先頭部に該当しない場合(S1203−NO)は、処理をステップS1211へ進める。
【0095】
説明を図11Bに移し、ステップS1204では、プリントモニタ(114−1〜114−n)が対応するポート名のキーをプロセス間共有メモリ118から検索し、その配下にエントリされている「Monitoring」値を取得し、整数変数mに設定する。
【0096】
ステップS1205では、整数変数mの値が「1」かどうかを判定し、「m=1」ならば(S1205−YES)、処理をステップS1206に進め、「m≠1」の場合(S1205−NO)、処理をステップS1208へ進める。
【0097】
ステップS1206では、先のステップS1201(図11A)で取得したデータブロックの先頭部に図3の(a)に示したステータス要求コマンドを付加し、処理をステップS1207に進める。
【0098】
ステップS1207では、ステップS1204で取得したプロセス間共有メモリ118の「Monitoring」値を2に書き換える。値「2」は、その該当するプリントモニタがステータス要求コマンドを送信済みであることを意味する。
【0099】
ステップS1208では、整数変数mの値が3かどうかを判定し、「m=3」ならば(S1208−YES)、処理をステップS1209へ進め、「m≠3」ならば、処理をステップS1211へ進める。
【0100】
ステップS1209では、ステップS1201で取得したデータブロックの先頭部に図3の(b)に示したステータス要求解除コマンドを付加し、ステップS1210では、ステップS1204で取得したプロセス間共有メモリ118の「Monitoring」値を0に書き換える。この値「0」は、プリントモニタがステータス要求解除コマンドを送信済みであることを意味する。
【0101】
ステップS1207、またはステップS1210で、それぞれ所定の値をMonitoring値に書き込んだ後、処理をステップS122(図11A)に戻す。
【0102】
説明を図11Aに戻して、ステップS1211では、データブロックをプリントモニタと対応するポートドライバに渡す。ポートドライバは所定のインタフェースを介して対応するプリンタにデータブロックを送信する。
【0103】
続くステップS1212では、ステータス取得処理を行う。ステータス取得処理は第1実施形態における図7で説明した処理と同様であるが、その処理中のステップS403およびステップS405では、エラー情報またはステータス情報をステータスモニタ117に通知するために、プロセス間通信によりプリントモニタ(14−1〜14−n)とステータスモニタ17間ではデータの授受が行なわれていたが、本実施形態においては、プロセス間共有メモリ118におけるポート名称キー配下にエントリされている「Status」値にその通知情報を書き込む処理を実行するものとする。
【0104】
ステップS1213では、そのデータブロックに関するジョブが終了するか否かを判断し、ジョブ終了の場合(S1213−YES)は、処理をステップS1214へ進め、ジョブ終了でない場合(S1213−NO)は、ステップS1201へ戻って当該ジョブの処理を続行する。
【0105】
ステップS1214では、プリントモニタ(114−1〜114−n)に次のジョブが割り当てられたか、または整数変数mが「0」(プリントモニタがステータス要求解除コマンドを送信済みであることを意味する)または「3」(データブロックにステータス要求解除コマンドを付加しない)に該当するか否かを判断する。mの値が、「0」でも「3」でもない場合、すなわち、両者がいずれも満たされない場合(S1214−NO)には、処理をステップS1215に進め、ステップS1212と同様のステータス取得処理を続行し、ステップS1214へ戻る。
【0106】
ステップS1214における条件のいずれか一方でも満たされていれば(S1214−YES)、プリントモニタ(114−1〜114−n)はステータス要求解除の指示に従い、一連の処理を終了する。
【0107】
ただし、次のジョブが割り当てられている場合には、再びステップS1201からの処理が起動される。
【0108】
以上の処理により、ホストコンピュータ1上でユーザがステータスモニタ117を起動すると、ステップS1101(図11A)において、プロセス間共有メモリ118の「Monitoring」値を1に設定し、以後各ポートにジョブが割り当てられると、プリントモニタ(114−1〜114−n)を介して、対応するプリンタ(2−1〜2−n)に対してステータス要求コマンドが付加されたデータブロックが送信される(図11BのステップS1206、図11AのステップS1211)。
【0109】
ステータスモニタ117の起動時点でジョブが割り当てられていないポートについては、ステータスモニタ117の処理ステップS1107(図10A)で投入された制御ジョブが直ちに割り当てられる。各制御ジョブがどのポートに割り当てられるかを制御することはできないが、空きポート数分の制御ジョブが同時に投入されるため、ジョブ処理中でないすべてのプリントモニタ(114−1〜114−n)に制御ジョブが割り当てられ、ステップS1206およびステップS1211によりステータス要求コマンドがプリンタに送信される。
【0110】
ステータスモニタ117起動時点で既にジョブが割り当てられていたポートについては、ステータス要求コマンドが送信されないが、このポートに対応するプロセス間共有メモリの「Monitoring」値は「1」のままであるため、後続のジョブがそのポートに割り当てられた時点で、ステップS1206およびステップS1211によりステータス要求コマンドがデータブロックに付加されて該当するプリンタに送信される。
【0111】
また、後続のジョブが存在しない場合には、「Monitoring」値が1であり、かつ対応するポートにジョブがない状態になるため、再びステータスモニタ117の処理ステップS1107(図10A)が実行され、制御ジョブが投入される。「Monitoring」値が1のポートがなくなるまでこの処理は繰り返されるため、すべてのポートのプリンタ状態を取得することができるようになる。
【0112】
ステータスモニタ117の終了時には「Monitoring」値を3にして同様の処理を行うため、すべてのポートについてステータス要求解除コマンドを送信することができる。
【0113】
こうして、印刷データの送信先として複数ポートを指定しながら、その中での送信先ポートをオペレーティングシステム外部から選択することができないシステムにおいても、ステータスモニタ動作中には、複数ポートすべてを介したプリンタステータス情報のユーザへの提供を行うことができ、またステータスモニタ終了時には各プリンタにステータス要求解除コマンドを送信し、プリンタが不要なデータ送信処理を行うことを防ぐことができる。
【0114】
尚、上記の説明においてユーザジョブはホストコンピュータ101上で動作するアプリケーション111が生成するものとしたが、これには限らず、ホストコンピュータ101とLANなどのコンピュータネットワークを介して接続された他のホストコンピュータ上で動作するアプリケーションが生成するジョブが、他のホストコンピュータおよびホストコンピュータ101の各オペレーティングシステムのネットワーク機能によりホストコンピュータ101のスプーラ113に転送されるものを含んでもよい。
【0115】
<他の実施形態>
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、プリンタ、ファクシミリ装置など)から構成されるシステムに適用してもよい。
【0116】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0117】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0118】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0119】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0120】
<本発明の実施態様>
本発明の実施態様の例を以下に示す。
【0121】
(実施態様1) 接続する装置とデータの授受をするポートの総数を取得するポート数取得工程と、
前記ポートに関し、印刷ジョブの割り当ての有無を識別し、該印刷ジョブの割り当ての無いポート数分の制御ジョブを生成する第1生成工程と、
前記装置の状態を示すステータス情報を取得するために、ステータス取得制御コマンドを、前記制御ジョブ及び/または印刷ジョブに付加したデータブロックを生成する第2生成工程と、
前記データブロックに基づき、前記ポートに対応する装置のステータス情報を取得するステータス情報取得工程と、
を備えることを特徴とする装置管理方法。
【0122】
(実施態様2) 前記ポート数取得工程は、前記ポートのうち、いずれかに割り当てられている処理中の第1印刷ジョブと、該ポートのいずれにも割り当てられていない処理待ちの第2印刷ジョブと、の総数を求め、
前記第1生成工程は、前記ポート数取得工程で取得したポート総数(n)と、前記第1印刷ジョブ及び第2印刷ジョブの総数(m)と、を比較し、
n−m個のポート数に対応した制御ジョブを生成することを特徴とする実施態様1に記載の装置管理方法。
【0123】
(実施態様3) 前記第2生成工程は、前記第1及び/または第2印刷ジョブの処理に際し、該ジョブのデータに前記ステータス制御コマンドを付加することを特徴とする実施態様1または2に記載の装置管理方法。
【0124】
(実施態様4) 前記ステータス取得制御コマンドには、前記装置のステータス情報を要求するコマンドと、該ステータス情報の要求を解除するコマンドと、が含まれることを特徴とする実施態様1または3に記載の装置管理方法。
【0125】
(実施態様5) 前記ステータス取得工程は、前記第1印刷ジョブ及び前記第2印刷ジョブに付加されたステータス取得制御コマンドに基づき、前記ポートに対応する装置のステータス情報を取得することを特徴とする実施態様1に記載の装置管理方法。
【0126】
(実施態様6) 前記ポートに対応する装置のステータス情報を格納する共有メモリを更に備え、
前記ステータス情報取得工程は、取得したポート毎のステータス情報を、該共有メモリに格納することを特徴とする実施態様1または5に記載の装置管理方法。
【0127】
(実施態様7) 前記取得したステータス情報を表示させる表示制御工程を更に備えることを特徴とする実施態様1に記載の装置管理方法。
【0128】
(実施態様8) 接続する装置とデータの授受をするポートの総数を取得するポート数取得手段と、
前記ポートに関し、印刷ジョブの割り当ての有無を識別し、該印刷ジョブの割り当ての無いポート数分の制御ジョブを生成する第1生成手段と、
前記装置の状態を示すステータス情報を取得するために、ステータス取得制御コマンドを、前記制御ジョブ及び/または印刷ジョブに付加したデータブロックを生成する第2生成手段と、
前記データブロックに基づき、前記ポートに対応する装置のステータス情報を取得するステータス情報取得手段と、
を備えることを特徴とする情報処理装置。
【0129】
(実施態様9) 情報処理装置から受信したジョブを解析し、装置のステータス情報を要求するコマンドが含まれているか否かを識別する識別手段と、
前記識別に基づき、前記ステータス情報を要求するコマンドが含まれている場合は、前記装置の状態を取得する状態取得手段と、
前記取得された状態を、ステータス情報として、前記情報処理装置に出力するデータ出力手段と、
を備えることを特徴とする印刷装置。
【0130】
(実施態様10) 接続する装置の状態を管理するための装置管理をコンピュータで実行可能にするプログラムであって、該プログラムが、
接続する装置とデータの授受をするポートの総数を取得するポート数取得モジュールと、
前記ポートに関し、印刷ジョブの割り当ての有無を識別し、該印刷ジョブの割り当ての無いポート数分の制御ジョブを生成する第1生成モジュールと、
前記装置の状態を示すステータス情報を取得するために、ステータス取得制御コマンドを、前記制御ジョブ及び/または印刷ジョブに付加したデータブロックを生成する第2生成モジュールと、
前記データブロックに基づき、前記ポートに対応する装置のステータス情報を取得するステータス情報取得モジュールと、
を備えることを特徴とするプログラム。
【0131】
(実施態様11) 前記ポート数取得モジュールは、前記ポートのうち、いずれかに割り当てられている処理中の第1印刷ジョブと、該ポートのいずれにも割り当てられていない処理待ちの第2印刷ジョブと、の総数を求め、
前記第1生成モジュールは、前記ポート数取得モジュールで取得したポート総数(n)と、前記第1印刷ジョブ及び第2印刷ジョブの総数(m)と、を比較し、
n−m個のポート数に対応した制御ジョブを生成することを特徴とする実施態様10に記載のプログラム。
【0132】
(実施態様12) 前記第2生成モジュールは、前記第1及び/または第2印刷ジョブの処理に際し、該ジョブのデータにステータス制御コマンドを付加することを特徴とする実施態様10に記載のプログラム。
【0133】
(実施態様13) 前記ステータス取得制御コマンドには、前記装置のステータス情報を要求するコマンドと、該ステータス情報の要求を解除するコマンドと、が含まれることを特徴とする実施態様10に記載のプログラム。
【0134】
(実施態様14) 前記ステータス取得モジュールは、前記第1印刷ジョブ及び前記第2印刷ジョブに付加されたステータス取得制御コマンドに基づき、前記ポートに対応する装置のステータス情報を取得することを特徴とする実施態様10に記載のプログラム。
【0135】
(実施態様15) 前記ポートに対応する装置のステータス情報を格納する共有メモリに対し、前記ステータス情報取得モジュールは、取得したポート単位のステータス情報を格納することを特徴とする実施態様10または14に記載のプログラム。
【0136】
(実施態様16) 接続する装置の状態を管理するための装置管理をコンピュータで実行可能にするプログラムコードを格納した記憶媒体であって、
接続する装置とデータの授受をするポートの総数を取得するポート数取得コードと、
前記ポートに関し、印刷ジョブの割り当ての有無を識別し、該印刷ジョブの割り当ての無いポート数分の制御ジョブを生成する第1生成コードと、
前記装置の状態を示すステータス情報を取得するために、ステータス取得制御コマンドを、前記制御ジョブ及び/または印刷ジョブに付加したデータブロックを生成する第2生成コードと、
前記データブロックに基づき、前記ポートに対応する装置のステータス情報を取得するステータス情報取得コードと、
を備えることを特徴とする記憶媒体。
【0137】
【発明の効果】
以上説明したように本発明によれば、既存のシステムの機能を利用しつつ、全てのポートに接続している装置に対し、装置の状態を管理するためのステータス取得制御コマンドを送信し、受信した装置からのステータス情報に基づき、ユーザに装置のステータス情報を表示することが可能になる。
【図面の簡単な説明】
【図1】第1実施形態におけるシステムの構成を示すブロック図である。
【図2】第1実施形態におけるプリンタの処理動作を説明するフローチャートである。
【図3】第1及び第2実施形態において、プリンタが送受するデータを例示する図である。
【図4】第1実施形態におけるステータスモニタの処理動作を説明するフローチャートである。
【図5】第1及び第2実施形態におけるステータスモニタの表示例を示す図である。
【図6】第1実施形態におけるプリントモニタの処理動作を説明するフローチャートである。
【図7】第1及び第2実施形態におけるプリントモニタのステータス取得の処理動作を説明するフローチャートである。
【図8】第2実施形態におけるシステムの構成を示すブロック図である。
【図9】第2実施形態におけるプロセス間共有メモリの内容を例示する図である。
【図10A】第2実施形態におけるステータスモニタの処理動作を説明するフローチャートである。
【図10B】第2実施形態におけるステータスモニタの処理動作を説明するフローチャートである。
【図11A】第2実施形態におけるプリントモニタの処理動作を説明するフローチャートである。
【図11B】第2実施形態におけるプリントモニタの処理動作を説明するフローチャートである。
【符号の説明】
1 ホストコンピュータ
2−1〜2−n プリンタ
11 アプリケーション
12 プリンタドライバ
13 スプーラ
14−1〜14−n プリントモニタ
15−1〜15−n ポートドライバ
16 オペレーティングシステム
17 ステータスモニタ
21 インタフェースコントローラ
22 印刷制御部
23 RAM
24 プリントエンジン
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an apparatus management technique for acquiring information for specifying a state of a printing apparatus and managing the printing apparatus.
[0002]
[Prior art]
In a conventional printing system, when a user processes print data created on the host computer side by a predetermined printer, the operation state of the printer is detected by bidirectional communication between the host computer and the printer, and the operation state of the host computer is determined. It was displayed on the display device and notified to the user.
[0003]
In a printing system, a large number of print jobs are processed at high speed by using a plurality of printers and distributing the print jobs to the plurality of printers. As such a printing system, for example, there is a printing system disclosed in Patent Document 1 (Japanese Patent No. 2862430). In this method, a spooler is provided in association with each printer, and jobs in the print queue are sequentially assigned to free spoolers.
[0004]
As a device having the same function as the printing system, for example, Windows (registered trademark) NT, which is an operating system supplied from Microsoft Corporation, and a “printer pool” provided by a succeeding operating system are provided. In each case, the printing system user does not individually specify the output destination printer, and the control unit of the printing system or the spooler of the operating system selects a printer to which a job is not assigned from a group of printers to be distributed without user intervention. By selecting and transmitting a job to the selected printer, a large number of jobs are processed at high speed, and the user is free from the trouble of selecting a printer.
[0005]
Further, as systems for simultaneously monitoring the operation states of a plurality of printers and notifying the user, Patent Document 2 (Japanese Patent Application Laid-Open No. 11-353075), Patent Document 3 (Japanese Patent Application Laid-Open No. 2000-76032), and 2000-293336), each of which is disclosed.
[0006]
[Patent Document 1]
Japanese Patent No. 2862430
[Patent Document 2]
JP-A-11-353075
[Patent Document 3]
JP-A-2000-76032
[Patent Document 4]
JP-A-2000-293336
[0007]
[Problems to be solved by the invention]
All of the above systems for monitoring the operation status of a plurality of printers specify the connection destination of the monitored printer when acquiring the status of each printer, access the printer, and report the status information of the specified target printer. Is what you want to get.
[0008]
However, in a system in which the job destination port is not specified and the system side selects the destination as in the above-described “printer pool”, the destination of the printer status acquisition request command cannot be controlled, and the job distribution Since it is not possible to reliably access all the target printers, it is necessary to have a unique mechanism for accessing the printers for transmitting the status acquisition request command and receiving the printer status.
[0009]
An object of the present invention is to provide a printing process for selecting a port to which a job is not assigned from among a plurality of ports, such as the above-mentioned "printer pool", as a job output destination, and sequentially transmitting jobs acquired from a print queue. In a distributed system, while using the functions of the existing system, send a printer status request command to all job distribution target ports without fail, display the status information of all printers to the user, and monitor the status. Another object of the present invention is to provide a device management technique.
[0010]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, a device management method according to the present invention is mainly characterized by including the following steps.
[0011]
That is, the device management method includes a port number obtaining step of obtaining the total number of ports for exchanging data with the connected device;
A first generation step of identifying whether or not a print job is allocated to the port and generating control jobs for the number of ports to which the print job is not allocated;
A second generation step of generating a data block in which a status acquisition control command is added to the control job and / or the print job in order to obtain status information indicating a state of the apparatus;
A status information obtaining step of obtaining status information of a device corresponding to the port based on the data block.
[0012]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0013]
[First Embodiment]
<System configuration (Fig. 1)>
FIG. 1 is a block diagram showing the configuration of the first embodiment of the present invention. Reference numeral 1 denotes a host computer for a user to create a document, execute a print command, and transmit print data to a printer (2-1) to be described later, and (2-1) to (2-n) denote users. Is a group of printers that receives the print data created by the printer and executes the processing of the print data.
[0014]
The host computer 1 includes an application program 11, a printer driver 12, a spooler 13, print monitors (14-1 to 14-n), port drivers (15-1 to 15-n), and a status monitor 17.
[0015]
First, the application program 11 creates predetermined data and instructs to start printing by a user's operation, and the printer driver 12 receives the instruction from the application 11 and converts the generated data into the printer (2-1) to the printer (2-1). The print data is converted into print data unique to (2-n).
[0016]
The spooler 13 temporarily stores the print data in a job unit, queues the print data, and sequentially passes the print data to the print monitors (14-1, 14-2,..., 14-n).
[0017]
The print monitors (14-1 to 14-n) perform transmission control for transmitting the print data passed from the spooler 13 to an input / output port connected to the printer, and receive print data from each printer via the input / output port. Process the received data.
[0018]
The port drivers (15-1 to 15-n) control data transmission / reception to / from each of the printers (2-1 to 2-n) through the input / output port, and receive data from the printer-side interface. Status information about the printer is transferred to the print monitors (14-1 to 14-n).
[0019]
The status monitor 17 receives status information on the corresponding printer from each of the print monitors (14-1 to 14-n) and controls the display of the status of each of the printers (2-1 to 2-n) to the user. .
[0020]
Among these components, the spooler 13 and the port drivers (15-1 to 15-n) operate as a part of the operating system 16 of the host computer 1.
[0021]
If any of the print monitors (14-1 to 14-n) has not processed a print job, the spooler 13 immediately takes out one job from the head of the spooler queue and does not process the job. Pass the print job data to the print monitor. If there are a plurality of ports that have not processed the job, any one of them is selected. If there is no port that has not processed a job, all the jobs in the queue are put on standby by the spooler 13 until the job processing of any port is completed.
[0022]
On the other hand, the printers (2-1, 2-2,..., 2-n) are all printers having the same functions and configurations. Hereinafter, the configuration of the printer (2-1) will be described as a representative example, but it is assumed that the other printers (2-2 to 2-n) also include the same components.
[0023]
The printer 2-1 has an interface controller 21 for performing bidirectional communication with the host computer 1, a print control unit 22 for controlling the inside of the printer, and a RAM 23 for temporarily storing data used inside the printer 2-1. And a print engine 24 for recording an image on a recording medium.
[0024]
The RAM 23 includes a reception buffer for temporarily storing print data received from the host computer 1 via the interface controller 21, and the print control unit 22 controls the print engine 24 according to the print data to record an image. The print control unit 22 collects status information in the printer including the print engine 24, stores the status information in the RAM 23, and transmits the status information to the host computer 1 via the interface controller 21.
[0025]
An IEEE 1284 parallel interface or a USB interface is used as an interface for connecting the host computer 1 and the printers (2-1 to 2-n), but other interface technologies may be used.
[0026]
<Process of Print Control Unit 22 (FIG. 2)>
Next, the processing operation of the print control unit 22 in the printer 2-1 will be described with reference to the flowchart in FIG. The configuration of the other printers (2-2 to 2-n) is the same, and can perform the same processing operation as the printer 2-1.
[0027]
First, in step S101, when the power of each printer is turned on, the print control unit 22 performs a startup operation to be performed when the power is turned on. Next, the process proceeds to step S102, and the flag variable F is initialized to “FALSE”. This flag variable F indicates whether or not transmission of status information to the host computer 1 is necessary.
[0028]
In step S103, it is determined whether the power of the printer 2-1 has been turned off. If the power has been turned off (S103-YES), the process proceeds to step S115 to end the process. If the power has not been turned off (S103-NO), the process proceeds to step S104. In step S104, it is determined whether or not there is data received from the host computer 1 in the reception buffer of the RAM 23. If there is received data (S104-YES), the process proceeds to step S105, and if there is no received data (S104-NO) ) Advances the process to step S110.
[0029]
In step S105, the command of the received data is analyzed, and the process branches depending on the result. If the received data is a status request command for specifying the status of the printer (S105-YES), the process proceeds to step S106, where the flag variable F is set to "TRUE" (requires transmission of status information). If the data is not a status request command (S105-NO), the process proceeds to step S107.
[0030]
In step S107, the process branches depending on whether the received data is a status request release command. If it is a status request release command (S107-YES), the process proceeds to step S108, and the flag variable F is set to "FALSE" (transmission of status information is not performed). If it is not a status request release command (S107-NO) ), The process proceeds to step S109, and the print engine 24 is controlled to execute a printing operation.
[0031]
The status request command determined in step S105 is a data string as shown in FIG. 3A, and the status request release command determined in step S107 is as illustrated in FIG. 3B. It is a data string.
[0032]
Thereafter, in step S110, the print control unit 22 collects the status inside the printer as status information and stores it in the RAM 23.
[0033]
In step S111, according to the value of the flag variable F, if the variable value is “TRUE” (S111-YES), the process proceeds to step S112, and if the variable value is “FALSE” (S111-NO), the process proceeds to step S112. The process branches to S103.
[0034]
In step S112, it is determined whether or not the status of the printer (status information) stored in the RAM 23 in step S110 has changed. If there is a change (S112-YES), the process proceeds to step S113, and the status information is stored. If there is no change (S112-NO), the process branches to step S103.
[0035]
In step S113, status response data for returning a change in status information to the host computer 1 is generated. In step S114, status response data is returned to the host computer 1 via the interface controller 21.
[0036]
FIG. 3C is a diagram illustrating an example of status information (“status response data”) responding to the host computer 1. This indicates a state in which no error has occurred in the printer, but a warning of type “02” (for example, “the remaining amount of yellow ink is low”) has occurred.
[0037]
If the process branches to step S115 in the determination step of step S103, an end operation to be performed when the power is turned off is performed, and the operation of the printer is ended.
[0038]
By the above processing, the printers 2-1 to 2-n perform the printing operation in accordance with the print data received from the host computer 1, and set the flag variable F to "TRUE" after receiving the status request command and before receiving the status request release command. (Requires transmission of status information), and transmits printer status information to the host computer 1 each time the status in the printer changes.
[0039]
<Status monitor processing (Fig. 4)>
Next, the processing operation of the status monitor 17 according to the present embodiment will be described with reference to the flowchart of FIG.
[0040]
When the operating system (OS) 16 of the host computer 1 is started, the status monitor 17 is started, and the processing shown in FIG. 4 is started.
[0041]
In step S201, the number of ports is set to an integer variable n. This is the same number as the number of print monitors (14-1 to 14-n) and the number of printers (2-1 to 2-n).
[0042]
In step S202, the status monitor 17 generates n control jobs and enters them into the queue of the spooler 13 via the printer driver 12. The control job generated here does not include a print command for a printer, and can be distinguished from a normal print job by the print monitor (14-1 to 14-n).
[0043]
At step S203, it is determined whether or not the operating system 16 is terminated. When the system is terminated (S203-YES), the status monitor 17 also terminates the activation. If the system has not been terminated (S203-NO), the process proceeds to step S204, and status information is obtained from the print monitor (14-1 to 14-n) by inter-process communication.
[0044]
In step S205, the port name that is the target of the status information acquired in step S204 is set in the character string variable P, and in step S206, the status information of the port P is displayed to the user. The port names are, for example, “LPT1:” and “LPT2:” for the IEEE1284 parallel port, and “USB001” and “USB002” for the USB port. After that, the process returns to step S203, and a series of processes is repeated until the system ends.
[0045]
FIG. 5 is a diagram showing an example of display to the user by the status monitor 17. In FIG. 5, a name 31 for identifying a printer group to be monitored on the operating system 16 is displayed. A list 32 shows the names of the port groups to which the job is to be distributed, and any one of them can be selected by a user operation. At 33, information indicating the status acquired from the printer connected via the port selected at 32 is displayed to the user. A display of a warning corresponding to the status information described above with reference to FIG. 3C (for example, “the remaining amount of the yellow ink is small”) is shown at 33 in FIG.
[0046]
<Print Monitor Processing (FIG. 6)>
Next, the processing operation of the print monitors (14-1 to 14-n) will be described with reference to the flowchart of FIG. The print monitors (14-1 to 14-n) correspond to the assigned ports of the print monitors (14-1 to 14-n) when a new job is assigned to a port by the spooler 13. The print monitor is activated. In this case, the processing operation of the print monitor is the same regardless of the port.
[0047]
In step S301, first, a data block of an appropriate size (for example, up to 4096 bytes, and when the remaining data of the job is smaller than it, up to the end of the job) is acquired from the job in the spooler 13.
[0048]
The job is either the control job submitted in step S202 of FIG. 4 described in the processing of the status monitor 17 or the user job submitted by a user operation using the application 11.
[0049]
In step S302, a command included in the acquired data block is analyzed. In step S303, it is determined whether the data block corresponds to the head of the job. If the data block is the head of the job (S303-YES), the process proceeds to step S304, and a status request command is added to the head of the data block.
[0050]
On the other hand, if it is not the head of the job (S303-NO), the process proceeds to step S305, skipping step S304. The status request command added in step S304 is the data exemplified in FIG.
[0051]
In step S305, a process of transferring the data block to the port driver (15-1 to 15-n) corresponding to the corresponding print monitor is executed, and the corresponding port driver transmits the data block to the printer (2-1 to 2-2) via a predetermined interface. In -n), the above data block is transmitted to the corresponding printer.
[0052]
In the following step S306, status acquisition processing is executed. In step S307, the process branches depending on whether the job ends in a data block. If the job has ended (S307-YES), the process proceeds to step S308, and if the job has not ended (S307-). If no, the process returns to step S301 to continue the job process again.
[0053]
In step S308, it is determined whether the next job has been assigned to the print monitor or whether the operating system 16 is terminated. If both are not satisfied (S308-NO), the process proceeds to step S309, a status acquisition process is performed, and the process returns to step S308. If any one of the conditions in step S308 is satisfied (S308-YES), the print monitor ends a series of processes. However, when the next job is assigned, the processing from step S301 is started again.
[0054]
<Status acquisition processing (FIG. 7)>
Next, the details of the status acquisition processing in steps S306 and S309 described in FIG. 6 will be described with reference to the flowchart in FIG.
[0055]
In the status acquisition processing, first, in step S401, the status information received from the printer corresponding to the port is acquired via the port drivers 15-1 to 15-n corresponding to the print monitors 14-1 to 14-n.
[0056]
In step S402, the process branches depending on whether an error has occurred in the process in step S401. If an error has occurred (S402-YES), the process proceeds to step S403. If no error has occurred (S402-NO), the process branches to step S404. However, if no data is simply received and the communication itself with the printers (2-1 to 2-n) is not disconnected, it is not regarded as an error.
[0057]
In step S403, the print monitor (14-1 to 14-n) and the status monitor 17 notify the status monitor 17 of the occurrence of the "port name" and "port error" corresponding to the print monitor by inter-process communication. . This notification is obtained in step S204 in FIG. 4 for explaining the process on the status monitor 17 side, and is displayed to the user in step S206 in FIG.
[0058]
In step S404, depending on whether the status information of the printer has been received in the process of step S401, if the status information has been received (S404-YES), the process proceeds to step S405. If the status information has not been received (S404-NO), The process ends.
[0059]
In step S405, the "printer status information" acquired together with the "port name" corresponding to the corresponding print monitor is sent to the status monitor 17 by inter-process communication between the print monitor (14-1 to 14-n) and the status monitor 17. Notice.
[0060]
With the above processing, the status monitor 17 is activated when the operating system 16 of the host computer 1 is activated, and control jobs for the number of ports are submitted to the spooler 13 in step S202 in FIG. Although it is not possible to control to which port each of these control jobs is assigned, the same number of jobs as the number of ports are submitted at the same time, so that the jobs are sent to all print monitors (14-1 to 14-n). Each print monitor (14-1 to 14-n) is activated.
[0061]
As a result, the status of all the connected printers (2-1 to 2-n) can be constantly acquired by the print monitors (14-1 to 14-n) and displayed on the status monitor 17 after the system is started.
[0062]
The state of each control job after processing is completed can be continuously monitored by the processing of steps S308 and S309 in FIG. 6 described in the processing of the print monitor (14-1 to 14-n). If the next job is input by the branch of step S308 and assigned to the print monitor (14-1 to 14-n), the processing immediately proceeds to the next job, and the monitoring of the printer status is continued. Can be.
[0063]
When performing print control while specifying a plurality of ports as the destination of print data, even in a system in which the destination port cannot be selected from outside the operating system, obtain status information of the printer through all of the plurality of ports, This can be displayed to the user. Further, even when the user selects a part of the plurality of ports to be connected as in the example of FIG. 5, the status information of the corresponding printer is acquired only for those ports, and the It is also possible to display information to the user.
[0064]
In the above description, the user job is generated by the application 11 running on the host computer 1. However, the present invention is not limited to this, and another host connected to the host computer 1 via a computer network such as a LAN. The job generated by the application running on the computer may include a job transferred to the spooler 13 of the host computer 1 by a network function of another host computer and each operating system of the host computer 1.
[0065]
In the above description, each printer (2-1 to 2-n) is directly connected to the host computer 1 by various interfaces (FIG. 1), but the host computer 1 and the printers (2-1 to 2-n) are connected. 2-n) are connected to a network such as a LAN, respectively. Instead of the port drivers 15-1 to 15-n, LPDs (Lines) described in RFC (Request for Comments) 1179 of IETF (The Internet Engineering Task Force) are used. A communication module implementing a Printer Daemon (Printer Daemon) protocol may be operated, and the interface controller 21 may use a network connection via a LAN by functioning as an LPD server.
[0066]
Further, as shown in FIG. 1, a form in which the host computer 1 and the printers (2-1 to 2-n) are directly connected and a form in which a network connection is used may be mixed. The network may be a network different from a LAN such as the Internet, or a network using another communication control method instead of the LPD protocol.
[0067]
[Second embodiment]
<System Configuration (FIGS. 8 and 9)>
In the first embodiment, the status monitor 17 is operated during the operation of the operating system 16 on the host computer 1 to acquire and display the status information of the printer. However, the status can be arbitrarily set by the user operating the host computer. The monitor may be configured to be activated and terminated.
[0068]
FIG. 8 is a block diagram showing the configuration of the second embodiment of the present invention. The application 11, the printer driver 12, the spooler 13, the components of the port drivers (15-1 to 15-n) and the components of the printer (2-1 to 2-n) which constitute the host computer 101 are the first component. This is the same as the configuration in the embodiment.
[0069]
However, the print monitor (114-1 to 114-n) and the status monitor 117 operate differently from the above-described first embodiment, as will be described later. The difference from the first embodiment is that a memory 118 is provided.
[0070]
FIG. 9 is a diagram showing an example of the contents of the inter-process shared memory. 131-1 and 131-2 are each referred to as a "key", and data having an arbitrary character string as a name is set. In the example of FIG. 9, the names of the keys 131-1 and 131-2 are the names of the ports "LPT1:" and "USB001", respectively. Keys can be created and deleted arbitrarily as long as their names do not match each other.
[0071]
Under each key, zero or more entries can be created. Each entry has an arbitrary character string as a name, and has a character string or a numerical value as a value corresponding to the name set as a key. The keys 132-1 and 132-2 each have a character string "ERR = NO; WRN = 02;" (132-1) and a numerical value "2" (132-2) as values, and the names are "Status" and "Status", respectively. Monitoring "is an example of an entry, both of which are under the keys 131-1 and 131-2. These entries can be arbitrarily created and deleted as long as the names do not match under the same key, and their values can be arbitrarily rewritten. Entries under different keys may have the same name. The inter-process shared memory 118 can be read and written by any process on the host computer 101.
[0072]
<Status Monitor Processing (FIGS. 10A and 10B)>
Next, the processing operation of the status monitor 117 in this embodiment will be described with reference to the flowcharts of FIGS. 10A and 10B.
[0073]
When the user activates the status monitor 117 while the operating system 116 of the host computer 1 is operating, the processing starts from step S1101 in FIG. In step S1101, a “key” of the name of each port associated with the print monitor (114-1 to 114-n) is created in the inter-process shared memory 118, and the name “Monitoring” and the value “1” are included in each key. Create a numeric entry for. If the key and entry already exist, overwrite them. The value “1” of the numerical value entry is data indicating that a status request command is transmitted to the print monitor (114-1 to 114-n).
[0074]
In step S1102, the operating system (OS) 116 counts the number of keys having the “Monitoring” entry of 1 for each port name key in the inter-process shared memory 118, and stores the number in the integer variable n. I do.
[0075]
In step S1103, the OS 116 determines whether or not the value of n is 0. If “n = 0” (S1103-YES), the process proceeds to step S1108, and if “n (0” (S1103- No), the process proceeds to step S1104.
[0076]
In step S1104, it is determined whether there is a print monitor to which a job is not currently assigned among print monitors (114-1 to 114-n) of ports corresponding to the key name found in step S1102. If there is a print monitor to perform (S1104-YES), the process proceeds to step S1105, and if there is no corresponding print monitor (S1104-NO), the process branches to step S1108.
[0077]
In step S1105, the OS 116 accesses the spooler 113, and sets the number of jobs including those currently assigned to the print monitors (114-1 to 114-n) and those waiting in the queue to an integer variable m. Set to.
[0078]
In step S1106, the integer variables n and m are compared. If “n> m” (S1106—YES), the process proceeds to step S1107; if “n ≦ m” (S1106—NO), the process proceeds to step S1107. The process proceeds to S1108.
[0079]
In step S1107, the status monitor 117 generates nm control jobs and inputs the generated control jobs to the queue of the spooler 113 via the printer driver 12.
[0080]
In step S1108, it is determined whether termination of the status monitor 117 has been instructed by a user operation. If the termination has been performed (S1108-YES), the process proceeds to step S1111 in FIG. 10B, and if the status monitor 117 has not been terminated (S1108). -NO), the process proceeds to step S1109.
[0081]
In step S1109, the status information obtained via each of the print monitors 114-1 to 114-n is obtained from the inter-process shared memory 118. Here, the status information can be acquired from data set in “Status” entered in the key of each port name associated with the print monitor (114-1 to 114-n).
[0082]
In step S1110, the display to the user is updated based on the status information acquired in step S1109. The display format can be displayed according to the format as shown in FIG. 5 described in the first embodiment.
[0083]
Next, the content of the process branched in the process of step S1108 will be described with reference to FIG. 10B.
[0084]
In step S1111, the key of each port name associated with the print monitor (114-1 to 114-n) is searched from the inter-process shared memory 118, and the value of the “Monitoring” entry in each key is set to “3”. ". The value "3" means that the print monitor (114-1 to 114-n) transmits a status request release command.
[0085]
In step S <b> 1112, the operating system (OS) 116 counts the number of keys having the “Motoring” entry of 3 for each port name key in the inter-process shared memory 118 and stores the number in the integer variable n. I do.
[0086]
In step S1113, the OS 116 determines whether the value of n is 0. If n = 0 (S1113-YES), the process of the status monitor 117 ends, and if the value of n is not 0 (S1113). -NO), the process proceeds to step S1114.
[0087]
In step S1114, among the printer monitors (114-1 to 114-n) of the ports corresponding to the key name "Monitoring = 3" detected in the previous step S1112, the print monitor to which the job is not currently assigned is selected. It is determined whether there is a print monitor. If there is a corresponding print monitor (S1114-YES), the process proceeds to step S1115. If there is no corresponding print monitor (S1114-NO), the process branches to step S1112.
[0088]
In step S1115, the OS 116 accesses the spooler 113, and sets the integer variable m to the total number of jobs that are currently assigned to the print monitors (114-1 to 114-n) and those that are waiting in the queue. Set to.
[0089]
In step S1116, integer variables n and m are compared. If n> m (S1116-YES), the process proceeds to step S1117; otherwise (S1116-NO), the process returns to step S1112.
[0090]
In step S1117, the status monitor 117 generates nm control jobs and submits them to the queue of the spooler 113 via the printer driver 112.
[0091]
<Print Monitor Processing (FIGS. 11A and 11B)>
The processing operation of the print monitors (114-1 to 114-n) in the present embodiment will be described with reference to the flowcharts of FIGS. 11A and 11B.
[0092]
When a new job is assigned to a port by the spooler 113, the print monitor (114-1 to 114-n) activates the print monitor (114-1 to 114-n) corresponding to the port. Is the same regardless of the port.
[0093]
The operation starts from step S1201. First, a data block of an appropriate size (this size is the same as that described in step S301 of FIG. 6 of the first embodiment) is acquired from the job in the spooler 113. The job is either a control job submitted by the processing of step S1107 in FIG. 10A and a step S1117 in FIG. 10B described in the processing of the status monitor 117, or a user job submitted by a user operation using the application 111. is there.
[0094]
In step S1202, the command contained in the acquired data block is analyzed. In step S1203, it is determined whether the data block acquired from the spooler 113 is the head of the job. If the data block is the head of the job (S1203-YES), the process proceeds to step S1204 in FIG. 11B, and if not, the process proceeds to step S1211.
[0095]
11B. In step S1204, the print monitor (114-1 to 114-n) retrieves the key of the corresponding port name from the inter-process shared memory 118, and enters the “Monitoring” value entered under the key. Is obtained and set to an integer variable m.
[0096]
In step S1205, it is determined whether the value of the integer variable m is “1”. If “m = 1” (S1205-YES), the process proceeds to step S1206, and if “m ≠ 1” (S1205-NO). ) And the process proceeds to step S1208.
[0097]
In step S1206, the status request command shown in FIG. 3A is added to the head of the data block acquired in the previous step S1201 (FIG. 11A), and the process proceeds to step S1207.
[0098]
In step S1207, the “Monitoring” value of the inter-process shared memory 118 acquired in step S1204 is rewritten to 2. The value “2” means that the corresponding print monitor has transmitted the status request command.
[0099]
In step S1208, it is determined whether the value of the integer variable m is 3; if “m = 3” (S1208-YES), the process proceeds to step S1209; if “m ≠ 3”, the process proceeds to step S1211. Proceed.
[0100]
In step S1209, the status request release command shown in FIG. 3B is added to the head of the data block acquired in step S1201, and in step S1210, "Monitoring" of the inter-process shared memory 118 acquired in step S1204. Rewrite the value to 0. This value “0” means that the print monitor has transmitted the status request release command.
[0101]
In step S1207 or step S1210, a predetermined value is written in the Monitoring value, and the process returns to step S122 (FIG. 11A).
[0102]
Referring back to FIG. 11A, in step S1211, the data block is passed to the port driver corresponding to the print monitor. The port driver transmits a data block to a corresponding printer via a predetermined interface.
[0103]
In a succeeding step S1212, a status acquisition process is performed. The status acquisition process is the same as the process described with reference to FIG. 7 in the first embodiment. However, in step S403 and step S405 during the process, an inter-process communication is performed to notify the status monitor 117 of error information or status information. In this embodiment, data is exchanged between the print monitor (14-1 to 14-n) and the status monitor 17, but in this embodiment, an entry is made under the port name key in the inter-process shared memory 118. It is assumed that processing for writing the notification information to the “Status” value is executed.
[0104]
In step S1213, it is determined whether the job related to the data block is completed. If the job is completed (S1213-YES), the process proceeds to step S1214. If not (S1213-NO), the process proceeds to step S1201. Then, the process of the job is continued.
[0105]
In step S1214, the next job is assigned to the print monitor (114-1 to 114-n), or the integer variable m is "0" (meaning that the print monitor has transmitted the status request release command). Alternatively, it is determined whether or not the status corresponds to “3” (a status request release command is not added to the data block). If the value of m is neither “0” nor “3”, that is, if both are not satisfied (S1214-NO), the process proceeds to step S1215, and the status acquisition process similar to step S1212 is continued. Then, the process returns to step S1214.
[0106]
If any one of the conditions in step S1214 is satisfied (S1214-YES), the print monitor (114-1 to 114-n) ends a series of processes according to the status request release instruction.
[0107]
However, when the next job is assigned, the processing from step S1201 is started again.
[0108]
When the user activates the status monitor 117 on the host computer 1 by the above processing, the “Monitoring” value of the inter-process shared memory 118 is set to 1 in step S1101 (FIG. 11A), and a job is assigned to each port thereafter. Then, the data block to which the status request command is added is transmitted to the corresponding printer (2-1 to 2-n) via the print monitor (114-1 to 114-n) (FIG. 11B). Step S1206, Step S1211 in FIG. 11A).
[0109]
For a port to which a job has not been assigned when the status monitor 117 is activated, the control job entered in the processing step S1107 (FIG. 10A) of the status monitor 117 is immediately assigned. Although it is not possible to control to which port each control job is assigned, since control jobs for the number of available ports are submitted at the same time, all print monitors (114-1 to 114-n) that are not in the process of a job are processed. A control job is assigned, and a status request command is transmitted to the printer in steps S1206 and S1211.
[0110]
Although a status request command is not transmitted for a port to which a job has already been assigned at the time of activation of the status monitor 117, the “Monitoring” value of the inter-process shared memory corresponding to this port remains “1”. Is assigned to the port, the status request command is added to the data block in steps S1206 and S1211 and transmitted to the corresponding printer.
[0111]
If there is no subsequent job, the “Monitoring” value is 1 and there is no job in the corresponding port, so the processing step S1107 of the status monitor 117 (FIG. 10A) is executed again, A control job is submitted. This process is repeated until there are no more ports whose “Monitoring” value is 1, so that the printer statuses of all ports can be obtained.
[0112]
At the end of the status monitor 117, since the same processing is performed with the “Monitoring” value set to 3, a status request release command can be transmitted for all ports.
[0113]
In this way, even in a system in which a plurality of ports are designated as a destination of print data and a destination port in the plurality of ports cannot be selected from outside the operating system, during a status monitor operation, the printer via all the plurality of ports is required Status information can be provided to the user, and a status request release command is transmitted to each printer when the status monitor ends, thereby preventing the printer from performing unnecessary data transmission processing.
[0114]
In the above description, the user job is generated by the application 111 running on the host computer 101. However, the present invention is not limited to this, and another user connected to the host computer 101 via a computer network such as a LAN may be used. The job generated by the application running on the computer may include a job transferred to the spooler 113 of the host computer 101 by a network function of another host computer and each operating system of the host computer 101.
[0115]
<Other embodiments>
The present invention may be applied to a system including a plurality of devices (for example, a host computer, an interface device, a printer, a facsimile machine, and the like).
[0116]
Further, an object of the present invention is to provide a computer (or CPU or MPU) of a system or an apparatus for reading a program code stored in a storage medium storing a program code of software for realizing the functions of the above-described embodiments. It is also achieved by performing. In this case, the program code itself read from the storage medium realizes the function of the above-described embodiment, and the storage medium storing the program code constitutes the present invention.
[0117]
As a storage medium for supplying the program code, for example, a floppy (registered trademark) disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, ROM, or the like is used. be able to.
[0118]
When the computer executes the readout program code, not only the functions of the above-described embodiments are realized, but also an OS (Operating System) running on the computer based on the instruction of the program code. This also includes a case where some or all of the actual processing is performed and the functions of the above-described embodiments are realized by the processing.
[0119]
Furthermore, after the program code read from the storage medium is written into a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion board is written based on the instructions of the program code. Also, there is a case where the CPU or the like provided in the function expansion unit performs part or all of the actual processing, and the processing realizes the functions of the above-described embodiments.
[0120]
<Embodiments of the present invention>
Examples of embodiments of the present invention are shown below.
[0121]
(Embodiment 1) a port number obtaining step of obtaining the total number of ports for exchanging data with a device to be connected;
A first generation step of identifying whether or not a print job is allocated to the port and generating control jobs for the number of ports to which the print job is not allocated;
A second generation step of generating a data block in which a status acquisition control command is added to the control job and / or the print job in order to obtain status information indicating a state of the apparatus;
A status information acquisition step of acquiring status information of a device corresponding to the port based on the data block;
An apparatus management method, comprising:
[0122]
(Embodiment 2) In the port number obtaining step, the first print job in process assigned to any of the ports and the second print job waiting to be processed not assigned to any of the ports And the total number of
The first generation step compares the total number of ports (n) acquired in the port number acquisition step with the total number (m) of the first print job and the second print job,
The apparatus management method according to the first embodiment, wherein a control job corresponding to the number of nm ports is generated.
[0123]
(Embodiment 3) The first or second embodiment is characterized in that, in the processing of the first and / or second print job, the status control command is added to data of the first and / or second print job. Device management method.
[0124]
(Embodiment 4) The first or third embodiment is characterized in that the status acquisition control command includes a command for requesting status information of the device and a command for canceling the status information request. Device management method.
[0125]
(Embodiment 5) In the status acquisition step, status information of a device corresponding to the port is acquired based on a status acquisition control command added to the first print job and the second print job. The device management method according to the first embodiment.
[0126]
(Embodiment 6) The apparatus further comprises a shared memory for storing status information of a device corresponding to the port,
6. The apparatus management method according to claim 1, wherein the status information obtaining step stores the obtained status information for each port in the shared memory.
[0127]
(Embodiment 7) The apparatus management method according to Embodiment 1, further comprising a display control step of displaying the acquired status information.
[0128]
(Embodiment 8) Port number acquisition means for acquiring the total number of ports for exchanging data with a device to be connected,
A first generation unit configured to identify whether or not a print job is allocated to the port and generate control jobs for the number of ports to which the print job is not allocated;
A second generation unit configured to generate a data block in which a status acquisition control command is added to the control job and / or the print job to acquire status information indicating a status of the apparatus;
Status information acquisition means for acquiring status information of a device corresponding to the port based on the data block,
An information processing apparatus comprising:
[0129]
(Embodiment 9) An identification unit that analyzes a job received from an information processing apparatus and identifies whether a command requesting status information of the apparatus is included,
Based on the identification, if a command requesting the status information is included, a status acquisition unit that acquires the status of the device,
A data output unit that outputs the obtained state as status information to the information processing apparatus;
A printing apparatus comprising:
[0130]
(Embodiment 10) A program that enables a computer to execute device management for managing the state of a device to be connected, the program comprising:
A port number acquisition module for acquiring the total number of ports for exchanging data with a device to be connected;
A first generation module for identifying whether or not a print job is allocated to the port and generating control jobs for the number of ports to which the print job is not allocated;
A second generation module that generates a data block in which a status acquisition control command is added to the control job and / or the print job to acquire status information indicating a status of the device;
A status information acquisition module for acquiring status information of a device corresponding to the port based on the data block;
A program characterized by comprising:
[0131]
(Embodiment 11) The port number acquiring module is configured to process a first print job assigned to one of the ports and a second print job waiting to be processed not assigned to any of the ports. And the total number of
The first generation module compares a total number of ports (n) acquired by the number-of-ports acquisition module with a total number (m) of the first print job and the second print job,
The program according to embodiment 10, wherein a control job corresponding to the number of nm ports is generated.
[0132]
(Embodiment 12) The program according to embodiment 10, wherein the second generation module adds a status control command to data of the first and / or second print job when processing the job.
[0133]
(Thirteenth embodiment) A program according to the tenth embodiment, wherein the status acquisition control command includes a command for requesting status information of the device and a command for canceling the status information request. .
[0134]
(Embodiment 14) The status acquisition module acquires status information of a device corresponding to the port based on a status acquisition control command added to the first print job and the second print job. The program according to embodiment 10.
[0135]
(Embodiment 15) In the embodiment 10 or 14, the status information acquisition module stores the acquired port-unit status information in the shared memory that stores the status information of the device corresponding to the port. The program described.
[0136]
(Embodiment 16) A storage medium storing a program code for enabling a computer to execute device management for managing the state of a device to be connected,
A port number acquisition code for acquiring the total number of ports for exchanging data with the connected device;
A first generation code for identifying whether or not a print job is allocated to the port and generating control jobs for the number of ports to which the print job is not allocated;
A second generation code for generating a data block in which a status acquisition control command is added to the control job and / or the print job to acquire status information indicating a status of the apparatus;
A status information acquisition code for acquiring status information of a device corresponding to the port based on the data block;
A storage medium comprising:
[0137]
【The invention's effect】
As described above, according to the present invention, the status acquisition control command for managing the status of the device is transmitted to the device connected to all the ports while receiving the It becomes possible to display the status information of the device to the user based on the status information from the device that has been set.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a system according to a first embodiment.
FIG. 2 is a flowchart illustrating a processing operation of the printer according to the first embodiment.
FIG. 3 is a diagram illustrating data transmitted and received by a printer in the first and second embodiments.
FIG. 4 is a flowchart illustrating a processing operation of a status monitor according to the first embodiment.
FIG. 5 is a diagram illustrating a display example of a status monitor according to the first and second embodiments.
FIG. 6 is a flowchart illustrating a processing operation of a print monitor according to the first embodiment.
FIG. 7 is a flowchart illustrating a processing operation of status acquisition of a print monitor according to the first and second embodiments.
FIG. 8 is a block diagram illustrating a configuration of a system according to a second embodiment.
FIG. 9 is a diagram illustrating contents of an inter-process shared memory according to the second embodiment;
FIG. 10A is a flowchart illustrating a processing operation of a status monitor according to the second embodiment.
FIG. 10B is a flowchart illustrating a processing operation of a status monitor according to the second embodiment.
FIG. 11A is a flowchart illustrating a processing operation of a print monitor according to the second embodiment.
FIG. 11B is a flowchart illustrating a processing operation of a print monitor according to the second embodiment.
[Explanation of symbols]
1 Host computer
2-1 to 2-n Printer
11 Applications
12 Printer Driver
13 Spooler
14-1 to 14-n Print monitor
15-1 to 15-n port driver
16 Operating system
17 Status Monitor
21 Interface Controller
22 Print control unit
23 RAM
24 Print Engine

Claims (1)

接続する装置とデータの授受をするポートの総数を取得するポート数取得工程と、
前記ポートに関し、印刷ジョブの割り当ての有無を識別し、該印刷ジョブの割り当ての無いポート数分の制御ジョブを生成する第1生成工程と、
前記装置の状態を示すステータス情報を取得するために、ステータス取得制御コマンドを、前記制御ジョブ及び/または印刷ジョブに付加したデータブロックを生成する第2生成工程と、
前記データブロックに従い、前記ポートに対応する装置のステータス情報を取得するステータス情報取得工程と、
を備えることを特徴とする装置管理方法。
A port number acquisition step of acquiring the total number of ports for exchanging data with the connected device;
A first generation step of identifying whether or not a print job is allocated to the port and generating control jobs for the number of ports to which the print job is not allocated;
A second generation step of generating a data block in which a status acquisition control command is added to the control job and / or the print job in order to obtain status information indicating a state of the apparatus;
According to the data block, a status information obtaining step of obtaining status information of a device corresponding to the port,
An apparatus management method, comprising:
JP2002350237A 2002-12-02 2002-12-02 Device management method Withdrawn JP2004185217A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002350237A JP2004185217A (en) 2002-12-02 2002-12-02 Device management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002350237A JP2004185217A (en) 2002-12-02 2002-12-02 Device management method

Publications (1)

Publication Number Publication Date
JP2004185217A true JP2004185217A (en) 2004-07-02

Family

ID=32752522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002350237A Withdrawn JP2004185217A (en) 2002-12-02 2002-12-02 Device management method

Country Status (1)

Country Link
JP (1) JP2004185217A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1821192A2 (en) * 2006-02-20 2007-08-22 Canon Kabushiki Kaisha Information processing apparatus, peripheral apparatus control method, and computer readable medium
WO2013115188A1 (en) * 2012-01-30 2013-08-08 京セラドキュメントソリューションズ株式会社 Network-based event notification system
JP2017027617A (en) * 2016-10-13 2017-02-02 キヤノン株式会社 Information processing method, information processing apparatus, and program

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1821192A2 (en) * 2006-02-20 2007-08-22 Canon Kabushiki Kaisha Information processing apparatus, peripheral apparatus control method, and computer readable medium
JP2007226755A (en) * 2006-02-20 2007-09-06 Canon Inc Peripheral device control method, information processor and control program therefor
JP4667281B2 (en) * 2006-02-20 2011-04-06 キヤノン株式会社 Peripheral device control method, information processing apparatus and control program therefor
EP1821192A3 (en) * 2006-02-20 2011-09-14 Canon Kabushiki Kaisha Information processing apparatus, peripheral apparatus control method, and computer readable medium
WO2013115188A1 (en) * 2012-01-30 2013-08-08 京セラドキュメントソリューションズ株式会社 Network-based event notification system
JP2013156809A (en) * 2012-01-30 2013-08-15 Kyocera Document Solutions Inc Event notification system in network
US9367274B2 (en) 2012-01-30 2016-06-14 Kyocera Document Solutions Inc. Network-based event notification system
JP2017027617A (en) * 2016-10-13 2017-02-02 キヤノン株式会社 Information processing method, information processing apparatus, and program

Similar Documents

Publication Publication Date Title
US7061635B1 (en) Information processing apparatus, distributed printing method, and storage medium
US8045202B2 (en) Information processing apparatus and print device control method
US7382477B2 (en) Information processing apparatus capable of transferring print job to another information processing apparatus, and its control method
JP3265573B2 (en) Printing system and printer
WO2005124531A1 (en) Information processing device and job transfer control method
EP1452956A2 (en) print control system
JP3774702B2 (en) Print control program and information processing apparatus
JP2004334874A (en) Print control system and print control method
US8711390B2 (en) Method and apparatus for executing load distributed printing
US7315404B2 (en) Monitoring job status for grouped print jobs
US7420696B2 (en) Job management apparatus, job management system, job management method, and storage medium storing program
JP2001105691A (en) Information-processing apparatus and method for processing data and memory medium
JP4086770B2 (en) Information processing apparatus and transfer control method thereof
JP2004185217A (en) Device management method
JP3508752B2 (en) Printing system, method and printer
JP2001109599A (en) Information processor and method for data processing and storage medium
JP5305754B2 (en) Information processing apparatus, client, information processing method, and program
JP3994984B2 (en) Print support module, recording medium, and print job issuing method
JP2005349768A (en) Printing device and printing method
JP4541581B2 (en) Printing control apparatus, data processing method, and storage medium
EP1727036A2 (en) Multi image forming method and system using job retention functions
JP4035304B2 (en) Digital information output system
JP2002202873A (en) Print system and printing controller and print monitor method and storage medium with computer readable program stored
JP4350343B2 (en) PRINT CONTROL DEVICE, PRINT CONTROL METHOD, PROGRAM, AND STORAGE MEDIUM
JP4164243B2 (en) Print monitoring system, print monitoring method, and computer program

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060207