以下、本発明の実施の形態を図面を参照して詳細に説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る画像処理装置を備える画像処理システムの概略構成を示す図である。
図1において、201はLAN等のネットワークである。202はPC名/Menu管理PCである。203はスキャナ機能や印刷機能、通信機能を備えた画像処理装置としての複合印刷装置である。204,205,206,207は情報処理装置としてのクライアントコンピュータである。クライアントコンピュータ204はPC名「PC−ABCDE」とし、205はPC名「PC−CDEFG」とし、206はPC名「PC−EFGHI」とし、207はPC名「PC−HIJKLM」とする。なお、図示例では、クライアントコンピュータが4台分記載されているが、これに限定されるものではない。
PC名/Menu管理PC202は情報管理装置としてのパーソナルコンピュータであり、USBケーブル213を介して複合印刷装置203に通信可能に接続されている。また、PC名/Menu管理PC202は、ネットワーク201を介して複数のクライアントコンピュータ204〜207に通信可能に接続されている。なお、図示例では、PC名/Menu管理PC202と複合印刷装置203とはUSBケーブル213を介して接続されているが、これに限らず、ネットワーク201を介して接続されていてもよい。
更に、PC名/Menu管理PC202は、PC名/Menu管理DB601とMenu管理システムを備える。PC名/Menu管理DB601では、クライアントコンピュータ上で稼動するスキャナドライバで設定されたPC名やMenu名称、付随する情報が管理され、必要に応じて複合印刷装置203との間でその情報のやり取りを行う。Menu管理システムは、複合印刷装置203からの要求やEventを処理したり、クライアントコンピュータから複合印刷装置203への問い合わせ状況を監視する。
複合印刷装置203は装置制御システムを備え、装置制御システムが通常稼動状態での各種要求処理(コピー、印刷、スキャンなど)、スリープ(Sleep)状態での各種要求処理を実行する。スリープ状態での各種要求処理には、クライアントコンピュータからの問い合わせに対する応答処理、複合印刷装置のパネル押下に対する処理等が含まれる。
クライアントコンピュータ204〜207にはそれぞれスキャナドライバがインストールされており、スキャナドライバを使った画像読み取り処理が行われる。スキャナドライバは、クライアントコンピュータ上で稼働して複合印刷装置203内のスキャナ部24を制御するためのプログラムである。スキャナドライバは、画像読み取り処理の制御の他に、複合印刷装置203上の操作部22に表示されるPC名やMenu文字列の管理も行う。
また、クライアントコンピュータ204〜207にプリンタドライバをインストールして、クライアントコンピュータから複合印刷装置203に印刷情報を送って印刷処理を実行することも可能である。
図2は、図1のPC名/Menu管理PC202及び複合印刷装置203の概略構成を示すブロック図である。なお、クライアントコンピュータ204〜207は、PC名/Menu管理PC202と同一の構成を有することから、その説明は省略する。
図2において、PC名/Menu管理PC202は、CPU1と、RAM2と、ROM3と、システムバス4と、キーボードコントローラ(KBC)5と、CRTコントローラ(CRTC)6と、ディスクコントローラ(DKC)7を備える。さらに、入出力部8と、キーボード(KB)9と、CRT10と、外部メモリ11を備える。
CPU1は、ROM3のプログラム用ROM又は外部メモリ11に記憶された文書処理プログラム等に基づいて、図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行する。また、CPU1は、システムバス4に接続される各デバイスを総括的に制御する。
ROM3のプログラム用ROM又は外部メモリ11には、CPU1により実行される制御プログラムであるオペレーティングシステムプログラム(以下、「OS」と呼ぶ)等が記憶されている。ROM3のフォント用ROM又は外部メモリ11には、上記文書処理等の実行時に使用されるフォントデータ等が記憶されている。ROM3のデータ用ROM又は外部メモリ11には、上記文書処理等の実行時に使用される各種データが記憶されている。
CPU1は、表示制御手段としてCRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際に、印刷の設定に関するウインドウを開き、プリンタの設定や印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。また、CPU1は、例えば、RAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。
RAM2は、CPU1の主メモリ、ワークエリア等として機能する。KBC5はキーボードI/Fであり、KB9や不図示のポインティングデバイスからのキー入力を制御する。CRTC6はディスプレイI/Fであり、CRT10の表示を制御する。DKC7は外部メモリI/Fであり、外部メモリ11とのアクセスを制御する。外部メモリ11は、ハードディスク(HD)、フロッピー(登録商標)ディスク(FD)、コンパクトディスク(CD)等で構成され、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタドライバ等を記憶する。
入出力部8は、USBケーブル213やネットワークのような双方向性インターフェースを介して複合印刷装置203に接続され、複合印刷装置203との通信制御処理を実行する。
複合印刷装置203は、CPU12と、RAM19と、ROM13と、システムバス15と、入出力部18と、印刷部I/F16と、DKC20と、スキャナI/F23とを備える。さらに、印刷部(プリンタエンジン)17、外部メモリ14、操作部22、及びスキャナ部(スキャンエンジン)24を備える。
CPU12は、ROM13のプログラム用ROM又は外部メモリ14に記憶された制御プログラム等に基づいて、システムバス15に接続された印刷部17に出力情報としての画像信号を出力する。ROM13のプログラムROMには、CPU12により実行される装置制御プログラム等が記憶される。ROM13のフォント用ROMには、上記出力情報を生成する際に使用されるフォントデータ等が記憶されている。ROM13のデータ用ROMには、外部メモリ14がない場合に、PC名/Menu管理PCやクライアントコンピュータ上で利用される情報等が記憶される。
CPU12は、入出力部18を介してPC名/Menu管理PC202等との通信処理が可能となっており、複合印刷装置203の情報等をPC名/Menu管理PC202等に通知可能に構成されている。RAM19は、CPU12の主メモリ、ワークエリア等として機能する。また、RAM19は、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM、ストレージデバイス等に用いられる。
外部メモリ14は、ハードディスク(HD)、ICカード等で構成され、DKC20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。複合印刷装置203は、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリ14を複数接続できるように構成されていてもよい。また、外部メモリ14は、RAM19に格納されているデータをコピーして格納できるように構成されていてもよい。また、外部メモリ14は、図示しないNVRAMを有し、操作部22からのプリンタモード設定情報を記憶するように構成されていてもよい。
操作部22は、タッチパネル方式の大型液晶表示装置や、操作のためのスイッチ類、LED表示器等を備える。スキャナ部24は、画像読取装置であり、スキャナI/F23を介して、システムバス15に読み込んだデータを転送する。
図3は、複合印刷装置203上の操作部22の表示画面の一例を示す図であり、(a)はプッシュスキャンを選択した後の表示画面であり、(b)はデータの送信先のクライアントコンピュータを選択した後の表示画面である。
図3(a)において、301は、複合印刷装置203でプッシュスキャンが選択された後に操作部22に表示される表示画面である。表示画面301では、スキャン画像の送り先として、ネットワーク201上に存在するクライアントコンピュータ204〜207のいずれかをPC名で選択することができる。
図3(b)において、302は、表示画面301で任意のクライアントコンピュータが選択された後に操作部22に表示される表示画面である。表示画面302には、選択されたクライアントコンピュータ上で稼動しているスキャナドライバで設定可能なメニュー(Menu)名称が表示されている。例えば、表示画面301で「PC−CDEFG」が選択された後に、表示画面302で「PDF」が選択された場合の複合印刷装置203の動作について簡単に説明する。複合印刷装置203は、プッシュスキャンとして、PC名「PC−CDEFG」に対応するクライアントコンピュータ205のスキャナドライバに対して、「PDF」ボタンで指定されているモードで画像をスキャンするように指示を出す。
図4は、クライアントコンピュータ上で稼動しているスキャナドライバによりCRT10に表示される表示画面の一例を示す図であり、(a)は初期画面、(b)は画像の読取条件の設定画面、(c)は複合印刷装置に表示する画面の設定画面である。
図4(a)において、401は初期画面であり、PDFボタン402、Fileボタン403、Color300ボタン404、及びSettingボタン405が表示されている。PDFボタン402は、原稿をスキャンして画像をPDF化して保存することを指示するためのボタンである。Fileボタン403は、原稿をスキャンしてファイルに保存することを指示するためのボタンである。Color300ボタン404は、カラーモードでかつ300dpiの解像度でスキャンすることを指示するためのボタンである。Settingボタン405は、PC名やボタン名称(以下、「Menu名」とも呼ぶ)、ボタンに応じた動作モードの設定画面を開くためのボタンである。なお、これらのボタンの種類や配置を図示例に限定されるものではない。クライアントコンピュータ上で設定されたPC名やMenu名称は、ネットワーク201を介して複合印刷装置203に転送される。
図4(b)において、410は、初期画面401上のColor300ボタン404が押下された後にCRT10に表示される画面である。表示画面410では、スキャン時の動作モードの指定やスキャン実施の指示を行うことが可能である。411は、カラーモードを選択するためのプルダウンメニューである。カラーモードには、Color、白黒、グレースケール等の選択肢が考えられる。
412は、スキャン方法を選択するためのプルダウンメニューである。スキャン方法については、ADF上の原稿を1枚ずつ搬送しながら読み取りを行うADF方式や、原稿台ガラス上においてある原稿を静止したまま読み取る原稿台方式などが考えられる。413は、入力解像度を選択するためのプルダウンメニューである。解像度としては、150dpi、200dpi、300dpi、400dpi、600dpiなどが考えられる。
414は、読み取った画像の保存形式を選択するためのプルダウンメニューである。画像の保存形式としては、BMP、TIFF、JPEG、PDFなどが考えられる。415は、読み取った画像の保存先を指定するための指定欄である。画像の保存先としては、スキャナドライバがインストールされた外部メモリ11上のテンポラリフォルダ(例えば、C:¥Temp)が考えられる。
416は、呼び出しアプリを指定するための指定欄である。ここは、スキャナドライバで読み込んだ画像情報をそのまま引き渡すアプリケーションの実行モジュールが指定される箇所である。一般的には、OCRソフトなどが考えられる。417はOKボタンであり、OKボタン417が押下されると、表示画面410上で設定された内容でスキャン動作が開始される。418はキャンセルボタンであり、キャンセルボタン418が押下されると、表示画面410が閉じて初期画面401に戻る。
なお、初期画面401上でPDFボタン402が押下された場合も、上述した内容と略同一にスキャン処理が実行されることから、それらの説明については割愛する。
図4(c)において、420は、初期画面401上のSettingボタン405が押下された後にCRT10に表示される画面である。表示画面420では、複合印刷装置203の操作部22に表示するPC名やMenu情報を設定することができる。
421は、初期画面401に表示するボタンの数を選択するためのプルダウンメニューである。初期画面401には、プルダウンメニュー421で選択されたボタン数に1を加えた数のボタンが表示される。これは、表示画面420を表示するために必要なSettingボタン405を表示するためである。この数が変更された場合、初期画面401上で適切なボタンの大きさと適切なボタン間隔になるように、ボタン表示の自動調整が行われる。
422は、PC名を設定するための設定欄である。この設定欄422の初期値は、クライアントコンピュータに一意につけられたOSが管理するPC名である。ここで設定されたPC名が複合印刷装置203に送信され、図3(a)に示す表示画面301上に表示される。PC名は、いわゆるニックネームであり、ネットワーク上で一意である必要はなく(一意であるPC名はOSが持っているから)、判別しやすい名称をつけてかまわない。
423,424,425は、プルダウンメニュー421で選択されたボタン数に対応するボタンの名称を設定するための設定欄である。この設定欄423〜425の初期値は、例えば、Scan1、Scan2などの特に意味の無い値となっている。ここで設定したボタン名称が複合印刷装置203に送信され、図3(b)に示す表示画面302上に表示される。ボタン名称については、表示画面410上で行われた設定の内容が類推できるようなボタン名称を付与すると便利である。プルダウンメニュー421でボタン数が変更されると、その数に応じて設定欄423〜425の数も増減する。
426はOKボタンであり、OKボタン426が押下されると、表示画面420上で設定された内容が反映される。427はキャンセルボタンであり、キャンセルボタン418が押下されると、表示画面420上で設定された内容は反映されず、キャンセルされる。
図5は、複合印刷装置203とクライアントコンピュータとの間で交わされるデータパケットの一例を示す図である。図6は、複合印刷装置203とPC名/Menu管理PC202との間で交わされるデータパケットの一例を示す図である。図7は、複合印刷装置203からPC名/Menu管理PC202に送信されるイベントの一例を示す図である。
図5において、501〜506は、ネットワーク201を介してクライアントコンピュータと複合印刷装置203との間を流れるデータの塊(パケット)である。
図6において、507〜510は、USBケーブル213を介してPC名/Menu管理PC202と複合印刷装置203との間を流れるデータの塊(パケット)である。
図7において、511〜515は、USBケーブル213を介して複合印刷装置203からPC名/Menu管理PC202に送られるイベント(Event)である。ここでイベントについて説明する。
USB接続方式はホスト主導型の通信である。コンピュータとデバイスをUSB接続方式で接続した場合、コンピュータをホストと呼ぶ。そこで、複合印刷装置203とPC名/Menu管理PC202をUSBケーブル213で接続した場合、PC名/Menu管理PC202がホストとなる。なお、図1に示すシステム上では、コンピュータ側をクライアントと呼んでおり、それとは逆になるので注意が必要である。
USB接続方式における全ての送受信処理はホストが主導になって行う必要がある。例えば、プッシュスキャンのようにデバイス側のアクションを基点として処理を行わせたい場合には、イベントを示すデータをデバイス側からUSBインターフェース上に用意されたインタラプトエンドポイント(不図示)に送出する。一方、ホスト側は、インタラプトエンドポイントを定期的に監視しており、そこにイベントが投げられると、それに従った処理(例えばプルスキャン処理)を行うように構成される。こうすることであたかもデバイス側からの指示で何か処理が起動されたかのように動作させることが可能となる。イベントとは、あらかじめ決められた処理を起動するためのトリガとなるものである。
なお、デバイス側からの指示に従い、コンピュータ上のスキャナドライバが起動してスキャン処理を行うことを擬似プッシュスキャン処理と言う。
図5において、501は、クライアントコンピュータからデバイス(例えば、複合印刷装置203)に対して定期的に送信される状態問い合わせパケットの一例である。この状態問い合わせパケットに対して、複合印刷装置203から応答されるパケットが503〜506に示すパケットである。なお、定期的に問い合わせを送信する処理については、一般的にはポーリングと呼ばれている。
501〜506における「要求/応答」はデータの流れる方向を示しており、「0x0001」がクライアントコンピュータから複合印刷装置、「0x0002」が複合印刷装置からクライアントコンピュータへの流れを示す。501〜506における「IPアドレス」は、クライアントコンピュータのIPアドレスを示す。IPv4かIPv6かは特に問わない。
501〜506における「コマンド」はパケットの意味合いを示す。「要求/応答」が「0x0001」の場合、「コマンド」が「0x0002」は状態問い合わせを意味し、「0x0003」はPC名/Menu名情報送付を意味する。「要求/応答」が「0x0002」の場合、「コマンド」が「0x0000」はOKを意味し、「0x0001」はNGを意味し、「0x0002」は情報要求を意味し、「0x0003」はイベント発生を意味する。
502は、上述した状態問い合わせパケット501にPC名やMeun情報が付加されたパケットの一例である。この状態問い合わせパケットに対して、複合印刷装置203から応答されるパケットも、503〜506に示すパケットである。
503は、状態問い合わせパケットに対して複合印刷装置203から返される返答パケットの一例であり、複合印刷装置203側での処理が正常に終了したときに送られるOKの意味の返答パケットである。504は、状態問い合わせパケットに対して複合印刷装置203から返答される返答パケットの一例であり、複合印刷装置203側での処理が正常に終了しないときに送られるNGの意味の返答パケットである。505は、状態問い合わせパケットに対する複合印刷装置203からの返答パケットの一例であり、複合印刷装置203側で何らかの理由によりPC名やMeun情報が必要になった場合にその情報を要求するときに送られる情報要求の意味の返答パケットである。506は、状態問い合わせパケットに対する複合印刷装置203からの返答パケットの一例であり、イベント発生パケットと称する。イベント発生パケット506は、複合印刷装置203側でプッシュスキャン処理を実施した場合にその事象をクライアントコンピュータに通知するときに送られるイベント発生の意味の返答パケットである。
図6において、507は、PC名/Menu管理PC202から複合印刷装置203に対して送信されるポーリングパケット転送要求の一例である。図示例の「USBコマンド」における「0xA0」は、ポーリングパケット転送要求を示している。ポーリングパケットとは、状態問い合わせパケットのことで図5に示す状態問い合わせパケット501やPC名/Menu情報送付パケット502のことを指す。ポーリングパケット転送要求507の返答として複合印刷装置203からPC名/Menu管理PC202に送られてくるのが図6に示す508や509のパケットである。
508は、複合印刷装置203からPC名/Menu管理PC202に転送される応答データ_ポーリングパケット1の一例である。このパケットは、ポーリングパケット転送要求507の応答パケットとして複合印刷装置203からPC名/Menu管理PC202に送付される。また、このパケットは、図5に示す状態問い合わせパケット501とほとんど変わらないデータ構成を有する。この応答データ_ポーリングパケット1_501は、状態問い合わせパケット501を複合印刷装置203からPC名/Menu管理PC202に横流しする目的で送出される。
509は、複合印刷装置203からPC名/Menu管理PC202に転送される応答データ_ポーリングパケット2の一例である。このパケットは、ポーリングパケット転送要求507の応答パケットとして複合印刷装置203からPC名/Menu管理PC202に送付される。また、このパケットは、図5に示すPC名/Menu情報送付パケット502とほとんど変わらないデータ構成を有する。この応答データ_ポーリングパケット2_508は、図5に示すPC名/Menu情報送付パケット502を複合印刷装置203からPC名/Menu管理PC202に横流しする目的で送出される。
510は、PC名/Menu管理PC202から複合印刷装置203に対して送信されるPC名/Menu情報送付パケットの一例である。PC名/Menu情報送付パケット510における「USBコマンド」の「0xA1」はPC名/Menu情報送付を示している。また、「位置」は、複合印刷装置203の操作部22の表示装置上で表示すべき位置を示す。具体的には、図3(a)に示す表示画面301における表示位置を示している。例えば、上から順に0x01,0x02,…となる。
PC名/Menu情報送付パケット510における「Menu数」は、クライアントコンピュータ上で稼動しているスキャナドライバで用意しているボタンの数を示している。具体的には、図3(b)に示す表示画面302でいくつのメニューを表示するかという数字を示している。この数字は図4(c)に示すプルダウンメニュー421で設定された値と同じ値になる。
PC名/Menu情報送付パケット510における「Menu文字列」は、図3(b)に示す表示画面302で表示すべき文字列が格納されている。この文字列は図4(c)に示す設定欄423〜425で設定された文字列と同じ値になる。
図7において、511はポーリング受信Eventである。ポーリング受信Event511は、複合印刷装置203がクライアントコンピュータから定期的に送信された状態問い合わせパケット501又はPC名/Menu情報送付パケット502の受信をPC名/Menu管理PC202に伝えるために送信される。図示例では、16byteのイベントで最下位Byteが「0x01」となっている。
512は、表示画面301上で、ユーザがメニューを上にスクロールさせて表示されていないPC名を表示しようとした場合に、複合印刷装置203がPC名/Menu管理PC202に対して送信するイベントの一例である。複合印刷装置203で確保できるPC名が一度に操作部22に表示しきれる分だけである場合、表示されていないPC名を表示するには、PC名/Menu管理PC202からそのデータをもらう必要がある。その事象をPC名/Menu管理PC202に伝えるためのイベントである。
513は、表示画面301上で、ユーザがメニューを下にスクロールさせて表示されていないPC名を表示しようとした場合に、複合印刷装置203がPC名/Menu管理PC202に対して送信するイベントの一例である。複合印刷装置203で確保できるPC名が一度に操作部22に表示しきれる分だけである場合、表示されていないPC名を表示するには、PC名/Menu管理PC202からそのデータをもらう必要がある。その事象をPC名/Menu管理PC202に伝えるためのイベントである。
514は、複合印刷装置203がスリープ状態に入る前に複合印刷装置203からPC名/Menu管理PC202に対して送信するイベントの一例である。このイベントをPC名/Menu管理PC202が受信した場合、複合印刷装置203がスリープ状態に入ることから、PC名/Menu管理PC202がポーリング受信Event511を受信しなくなる。
515は、スリープ状態に入っていた複合印刷装置203がスリープ状態から復帰したときに複合印刷装置203からPC名/Menu管理PC202に対して送信するイベントの一例である。このイベントをPC名/Menu管理PC202が受信した場合、複合印刷装置203がスリープ状態から復帰したことから、PC名/Menu管理PC202がポーリング受信Event511を定期的に受信するようになる。
図8は、PC名/Menu管理PC202で保持管理されるPC名/Menu管理DB601の内容例を示す図である。
PC名/Menu管理DB601では、「IP_Address」、「PC名」、「Menu数」、「Menu名」、「更新時刻」、及び「開始終了位置」で構成される。図示の602〜609の各行がクライアントコンピュータ1台分の情報となる。
「IP_Address」は、各クライアントコンピュータが一意に持っているネットワークのアドレス情報である。「PC名」は、図4(c)に示すPC名の設定欄422で設定された値である。「Menu数」は、図4(c)に示すボタン数のプルダウンメニュー421で設定された値である。「Menu名」は、図4(c)に示すボタン名称1〜3の設定欄423〜425に入力されたボタン名称をひとまとめにした値である。「更新時刻」は、PC名/Menu管理PC202が、複合印刷装置203を経由してクライアントコンピュータから受信した状態問い合わせパケット501やPC名/Menu情報送付パケット502を受け取った時刻である。この「更新時刻」に記録される値は、パケット501や502を受け取る度に更新される。
状態問い合わせパケット501は、複合印刷装置203を経由すると、応答データ_ポーリングパケット1_508としてPC名/Menu管理PC202に送付される。PC名/Menu情報送付パケット502は、複合印刷装置203を経由すると、応答データ_ポーリングパケット2_509としてPC名/Menu管理PC202に送付される。
PC名/Menu管理PC202では、「更新時刻」が定期的に監視され、一定時間を過ぎたデータがあった場合には、そのクライアントコンピュータがスリープ状態に入ったか又は電源がOFFされたものと判断して、DB601から削除される。PC名/Menu管理DB601から削除されるのは、スリープ状態に入ったか又は電源がOFFされたクライアントコンピュータに関する情報(PC名やMenu数等)である。
「開始終了位置」は、PC名/Menu管理DB601に格納されたクライアントコンピュータに関する情報のどこからどこまでの情報が複合印刷装置203に転送済なのかを示すものである。図示例では、「開始終了位置」に「Start」が格納された「PC−ABCDE」から「End」が格納された「COMPUTER−A」までのクライアントコンピュータに関する情報が複合印刷装置203に転送される。これにより、複合印刷装置203で表示される表示画面は、図3(a)に示す表示画面301となる。図示例のように、複合印刷装置203で一度に表示しきれる分の情報しか保持できない場合は、「Start」が格納された「PC−ABCDE」が表示画面301上の一番上位に表示される。そして、「End」が格納された「COMPUTER−A」が表示画面301上の一番下位に表示される。
表示画面301上で、ユーザがメニューを上にスクロールさせて表示されていないPC名を表示させようとする場合、複合印刷装置203からPC名/Menu管理PC202にPC名/Menu情報一覧更新要求1Event512が送信される。その結果、PC名/Menu管理PC202では、PC名/Menu管理DB601上の開始終了位置における「Start」と「End」の位置が各々1つ下位の位置に移動する。そして、複合印刷装置203の操作部22の表示画面301上では、PC名が表示された欄全体が1行上にずれる。すると最下位の行が空くので、そこに新しく「End」がついたデータがPC名/Menu管理PC202から複合印刷装置203に送信され、表示がなされる。その結果、PC名が1行上にスクロールされたように表示させることが可能となる。
一方、表示画面301上で、ユーザがメニューを下にスクロールさせて表示されていないPC名を表示させようとする場合、複合印刷装置203からPC名/Menu管理PC202にPC名/Menu情報一覧更新要求2Event513が送信される。その結果、PC名/Menu管理PC202では、PC名/Menu管理DB601上の開始終了位置における「Start」と「End」の位置が各々1つ上位の位置に移動する。そして、複合印刷装置203の操作部22の表示画面301上では、PC名が表示された欄全体が1行下にずれる。すると最上位の行が空くので、そこに新しく「Start」がついたデータがPC名/Menu管理PC202から複合印刷装置203に送信され、表示がなされる。その結果、PC名が1行下にスクロールされたように表示させることが可能となる。
なお、メニューを上下にスクロールさせるためのスイッチ又はキー類については、表示画面301上にタッチパネル等で設けても、他の方法で設けてもよい。
図9は、クライアントコンピュータ上で実行されるスキャナドライバのインストール処理を示すフローチャートである。なお、以下に各図で説明する処理は、クライアントコンピュータ、複合印刷装置、及びPC名/Menu管理PCで個別に実行される処理である。クライアントコンピュータは204〜207のどの装置であってもよい。システム全体での処理の流れについては図24以降にて説明する。
図7において、ステップS702では、CPU1は、ネットワーク201上に存在する各種デバイス(例えば、複合印刷装置203等)に対してMIB値の問い合わせを行い、予め決められたMIB値で応答するデバイスを待つ。次に、ステップS703では、CPU1は、予め決められた所定のMIB値で応答してきたデバイスが見つかったか否かを判定する。この判定の結果、デバイスが見つかった場合は、当該デバイスがスキャナドライバのインストールが可能なデバイスであると判断して、ステップS704に進む。一方、デバイスが見つからなかった場合、スキャナドライバのインストールが可能なデバイスが存在しないと判断して、本処理を終了する。
ステップS704では、CPU1は、見つかったデバイスのIPアドレスに問い合わせを行い、IPアドレスのポートを作成して、そのポートを利用してスキャナドライバをインストールし、本処理を終了する。
図10は、クライアントコンピュータ上で実行されるスキャナドライバのポーリング送信処理を示すフローチャートである。なお、本処理は、インストール時に不図示のOSに登録され、OSが再起動する度に自動的に実行される。また、図9に示すスキャナドライバのインストール処理が正常に終了しているものとする。
図10において、ステップS802では、CPU1は、ポーリング間隔用タイマーをスタートさせる。これは、クライアントコンピュータから複合印刷装置203に対して、定期的に状態問い合わせを行うポーリングパケットを送出するためである。このポーリングパケットを送出する間隔をT秒間とする。
ステップS803では、CPU1は、T秒毎にポーリングパケットを送出するサブタスクを起動する。サブタスクは他の処理から独立して動作するので、図10の処理が終了しても稼働状態となる。ステップS804では、クライアントコンピュータ上で動作するスキャナドライバがなんらかの処理要求を待つ。この処理待ち状態時に実行される処理を図11に示す。一度、この処理要求待ち状態に入ると、その処理はそのままでは終了しない。終了させたい場合は、クライアントコンピュータの電源を切るかスキャナドライバをアンインストールする。
図11は、図10のステップS804で実行されるスキャナドライバの処理要求待ちの処理の詳細を示すフローチャートである。
ステップS902では、スキャナドライバは処理要求を待ち受ける。何らかの処理要求を受け付けると、処理要求がプルスキャン(Pull Scan)要求か否かを判断する(ステップS903)。プルスキャン要求であった場合にはステップS907に進む一方、そうでない場合はステップS904に進む。プルスキャン要求は、クライアントコンピュータ上で動作するアプリケーションソフトからスキャナドライバが呼び出された場合に発生する。
ステップS904では、要求が状態問い合わせパケット501やPC名/Menu情報送付パケット502に対するOKパケット503であったか否かを判断する。OKパケット503であった場合にはステップS908に進む一方、そうでない場合はステップS905に進む。
ステップS905では、要求が状態問い合わせパケット501やPC名/Menu情報送付パケット502に対するPC名/Menu情報要求パケット505であったか否かを判断する。PC名/Menu情報要求パケット505であった場合にはステップS909に進む一方、そうでない場合はステップS906に進む。
図4(c)の表示画面420上でPC名やボタン名称(=Menu名)が変更された場合、その情報を複合印刷装置203に伝えないといけないので、スップS906では、そのような更新が発生したか否かを判断する。更新が発生した場合にはステップS909に進む一方、そうでない場合にはステップS910に進む。
ステップS910では、要求が状態問い合わせパケット501やPC名/Menu情報送付パケット502に対する応答パケットとして、擬似プッシュスキャン(Push Scan)実施の意味合いのイベント発生パケット506であったか否かを判断する。イベント発生パケット506であった場合にはステップS911に進む。そうでない場合にはスキャナドライバで処理すべき内容ではないので、次の要求を受けるためにステップS902に戻る。
ステップS907では、図4(a)の初期画面401をクライアントコンピュータのCRT10に表示し、通常のプルスキャンを行う。すなわち、不図示のポーリングパケットをクライアントコンピュータから複合印刷装置203に対して発行して、プルスキャン処理を実施する。終了後には次の要求を受けるためにステップS902に戻る。
ステップS908では、OKパケットが帰ってきたということをクライアントコンピュータ内のRAM2に記憶して次の要求を受けるためにステップS902に戻る。
ステップS909では、PC名/Menu情報送付パケット502を複合印刷装置203に対して送出する。終了後には次の要求を受けるためにステップS902に戻る。
ステップS911では、擬似プッシュスキャン実施のイベント発生パケットに対する処理として、擬似プッシュスキャン処理を実施する。擬似プッシュスキャンとは、複合印刷装置203からの指示に従ってクライアントコンピュータがプルスキャンを実施することを意味する。
イベント発生パケット506にはメニュー番号が格納されている。この番号は初期画面401の各ボタンの左端を1として右に進む毎に1つ増える値であってもよいし、逆に右端を1として左に進む毎に1つ増える値であってもよい。そのルールは複合印刷装置203とスキャナドライバとの間であわせておけば問題はない。このメニュー番号に対応した処理を自動的に起動し、OKボタン417も自動で押下したことにしてスキャン処理を実施する。なお、表示画面410を表示させるか否かは本発明では問わない。どちらの場合でも、そのボタンに対応した処理が起動されるように処理を行う。終了後には次の要求を受けるためにステップS902に戻る。
以上がクライアントコンピュータ上で稼動しているスキャナドライバによる処理である。
図12は、電源ON後に複合印刷装置203で実行される処理を示すフローチャートである。
装置の電源がONされると、CPU12は、メモリの初期化やプリンタエンジン、スキャンエンジンの初期化を行い、装置を利用可能な状態にする(ステップS1002)。次に、ステップS1003では、CPU12は、スリープタイマーをスタートし、変数STを初期化(値を0にする)する。このスリープタイマーは1秒経過する毎に変数STの値を1づつ増やして行く。
ステップS1004では、CPU12は、ポーリングパケット到達時間監視用変数Nを60秒に設定する。ポーリングパケット到達時間監視用変数Nは、N秒間にポーリングパケットを1度も複合印刷装置203が受信しなかった場合、そのクライアントコンピュータをPC名/Menu管理DB601から削除するための変数である。図示例では、初期値は60秒である。スリープ状態に応じてその復帰時に変数Nの値が変化する。
ステップS1005では、CPU12は、PC名/Menu管理PC202が稼動中か否かの確認を行う。稼働中か否かの判定は、図24に示すように、複合印刷装置203から送信したポーリング受信イベント511に対して、所定時間内にポーリング転送要求507を受信したか否かにより行う。ポーリング転送要求507の受信については監視手段等が実行する。ステップS1005の判定の結果、稼働中である場合はステップS1006に進み、PC名/Menu管理PC202でPC名やMenu情報を管理してもらうように動作させる。一方、稼働中でない場合はステップS1007に進み、複合印刷装置203上で保持できるだけのPC名/Menu情報の処理を行う。
ステップS1006では、CPU12は、稼動FLG(フラグ)に「Yes」をセットし、PC名/Menu管理PC202が稼働中であることが分かるようにする。
ステップS1007では、CPU12は、稼動フラグに「No」をセットし、PC名/Menu管理PC202が稼働していないことが分かるようにする。次に、ステップS1008では、CPU12は、中断フラグに「NO」をセットする。この中断フラグは複合印刷装置203がスリープ状態に入ったか否かを示すフラグであり、「Yes」の場合はスリープ状態に入っていることを示し、「NO」の場合はスリープ状態に入っていないことを示す。
ステップS1009では、CPU12は、ポーリング監視Taskを開始する。ポーリング監視Taskの詳細な処理については図21で説明する。ステップS1010では、CPU12は、装置の要求待ちを行う。要求待ちの詳細な処理については図13及び図14で説明する。
以上説明した要求待ちの処理は装置の電源がOFFされるまで続く。
図13及び図14は、図12のステップS1010で実行される要求待ちの処理を示すフローチャートである。
ステップS1102では、CPU12は、装置に対する各種要求を受信する。次に、ステップS1103では、CPU12は、要求が装置の操作部22を使ったCopyやFaxの処理であるか否かを判断する。CopyやFaxの処理である場合、ステップS1104に進む。そうでない場合はステップS1106に進む。
ステップS1106では、CPU12は、要求が装置の操作部22を使った擬似プッシュスキャン処理であるか否かを判断する。擬似プッシュスキャン処理の場合はステップS1107に進む。そうでない場合はステップS1109に進む。
ステップS1109では、CPU12は、要求がクライアントコンピュータからの印刷データ受信かまたはプルスキャンの要求であるか否かを判断する。印刷データ受信またはプルスキャン要求である場合はステップS1110に進む。そうでない場合はステップS1112に進む。
ステップS1112では、CPU12は、要求がポーリング受信(クライアントコンピュータからの状態問い合わせパケット501やPC名/Menu情報送付パケット502の受信)であるか否かを判断する。ポーリング受信である場合には、ステップS1113に進む。そうでない場合はステップS1119に進む。
ステップS1119では、CPU12は、要求がPC名/Menu管理PC202からのポーリングパケット転送要求507であるか否かを判断する。ポーリングパケット転送要求507である場合にはステップS1120に進む。そうでない場合はステップS1122に進む。
ステップS1122では、CPU12は、要求がPC名/Menu管理PC202からのPC名/Menu情報送付パケット510の受信であるか否かを判断する。PC名/Menu情報送付パケット510の受信である場合にはステップS1123に進む。そうでない場合はステップS1125に進む。
ステップS1125では、CPU12は、要求が装置の操作部22に表示された表示画面301におけるメニューの上スクロール指示であるか否かを判断する。そうであればステップS1126に進む。そうでない場合、ステップS1125に進む。
ステップS1130では、CPU12は、要求が装置の操作部22に表示された表示画面301におけるメニューの下スクロール指示であるか否かを判断する。そうであればステップS1131に進む。そうでない場合、ステップS1135に進む。
ステップS1135では、CPU12は、要求が変数STとスリープ(Sleep)設定時間の間で「ST>Sleep設定時間」の関係にあるか否かを判断する。「ST>Sleep設定時間」である場合はステップS1136に進む。そうでない場合はステップS1102に戻る。変数STは、図12のステップS1003で説明した通り、スリープタイマーで1秒経過する毎に値が1ずつ増えてゆく。スリープ設定時間は、スリープ状態に入るまでの間隔を設定した変数であり、複合印刷装置203で管理される。「ST>Sleep設定時間」になるということはスリープ設定時間の間、スリープ状態への移行を阻害するような事象が発生しなかったためにスリープ状態に移行できるタイミングになったということを意味する。
ステップS1104では、要求が装置の操作部22を使ったCopyやFax要求であり、それがスリープ状態への移行を阻害する事象であることから、CPU12は、スリープタイマーである変数STを初期化(ST←0)する。次に、ステップS1105では、要求動作である、CopyやFaxの処理を実施する。そして、ステップS1102に戻り、次の要求受信処理に入る。
ここでスリープ状態に移行することを阻害する事象と阻害しない事象について説明する。
阻害する事象は、複合印刷装置203内のCPU12を使う作業である。一方、阻害しない事象とは複合印刷装置203内のCPU12を使わなくても対応可能な事象である。複合印刷装置203の入出力部18には代理応答システムというものがあり、特定のパターンの入力パケットであれば、CPU12の力を借りず、特定のパターンの応答パケットを返答することが可能である。そのようなパケットの受信はスリープ状態に移行することを阻害する事象とはならない。
ステップS1107では、要求が装置の操作部22を使った擬似プッシュスキャン要求であり、それがスリープ状態への移行を阻害する事象であることから、CPU12は、スリープタイマーである変数STを初期化する。次に、ステップS1108では、要求作業である、擬似プッシュスキャン処理を実施する。具体的には、クライアントコンピュータからの状態問い合わせパケット501もしくはPC名/Menu情報送付パケット502への応答パケットとしてイベント発生パケット506をクライアントコンピューから返答する。そして、ステップS1102に戻り、次の要求受信処理に入る。
ステップS1110では、要求が印刷データ受信又はプルスキャン要求であり、それらがスリープ状態への移行を阻害する事象であることから、CPU12は、スリープタイマーである変数STを初期化する。次に、ステップS1111では、要求作業である、クライアントコンピュータから受信した印刷データの印刷処理又はプルスキャン処理を実施する。そして、ステップS1102に戻り、次の要求受信処理に入る。印刷処理は、クライアントコンピュータ上にインストールされた不図示のプリンタドライバから送付される印刷データを解釈して、印刷部17で印刷する処理である。プルスキャン処理は、クライアントコンピュータにインストールされたスキャナドライバから送付される不図示のポーリングパケットによりスキャン要求を処理する。スキャンした結果は、不図示の応答パケットで複合印刷装置203からクライアントコンピュータに対して返送される。
ステップS1113では、CPU12は、要求が状態問い合わせパケット501かを判断する。状態問い合わせパケット501である場合はステップS1115に進む一方、PC名/Menu情報送付パケット502であった場合にはステップS1114に進む。PC名/Menu情報送付パケット502を受信することがスリープ状態への移行を阻害する事象なので、ステップS1114では、CPU12は、スリープタイマーである変数STを初期化する。次に、ステップS1115では、複合印刷装置203側での処理が正常に終了したことを意味するOKパケット503を返送する。次に、ステップS1116では、CPU12は、稼動フラグの状態を判断する。PC名/Menu管理PC202が稼動していて稼動フラグが「Yes」の場合はステップS1117に進む。そうでない場合はステップS1118に進む。
ステップS1117では、CPU12は、状態問い合わせパケット501もしくはPC名/Menu情報送付パケット502を受信したことを示すポーリング受信Event511をPC名/Menu管理PC202に送信する。そして、ステップS1102に戻り、次の要求受信処理に入る。
ステップS1118では、CPU12は、PC名/Menu管理PC202が稼動していないときの状態問い合わせパケット501又はPC名/Menu情報送付パケット502の受信に応じた処理を行う。状態問い合わせパケット501であれば特に何もしない。PC名/Menu情報送付パケット502であった場合には、複合印刷装置203のRAM19上で管理しているPC名/Menu情報DB601の更新処理を行う。複合印刷装置203のRAM19上で管理できる数には上限があるので、その数に達していない場合にはDBに情報を追加する。上限数に達していた場合には単純に無視する。
ステップS1120では、要求がPC名/Menu管理PC202からのポーリングパケット転送要求であった場合、それがスリープ状態への移行を阻害する事象なので、CPU12は、スリープタイマーである変数STを初期化する。次に、ステップS1121では、CPU12は、要求に従いポーリングパケットを転送する。この処理に来る前の時点で状態問い合わせパケット501を受信していれば、応答データ_ポーリングパケット1_508をPC名/Menu管理PC202に転送する。一方、この処理に来る前の時点でPC名/Menu情報送付パケット502を受信していれば、応答データ_ポーリングパケット2_509をPC名/Menu管理PC202に転送する。そして、ステップS1102に戻り、次の要求受信処理に入る。
ステップS1123では、要求がPC名/Menu管理PC202からのPC名/Menu情報送付パケット510である場合、それがスリープ状態への移行を阻害する事象なので、CPU12は、スリープタイマーである変数STを初期化する。次に、ステップS1124では、CPU12は、要求に従って複合印刷装置203のRAM19に格納された、表示画面301や302で表示すべきPC名/Menu情報の更新を行う。
ステップS1126では、要求が表示画面301上でのメニューの上スクロール指示であり、それはスリープ状態への移行を阻害する事象なので、CPU12は、スリープタイマーである変数STを初期化する。次に、ステップS1127では、CPU12は、稼動フラグの状態を判断する。PC名/Menu管理PC202が稼動していて稼動フラグが「Yes」の場合はステップS1129に進む。そうでない場合はステップS1128に進む。
ステップS1128では、PC名/Menu管理PC202が稼動していないので、この時点で複合印刷装置203のRAM19に格納された、表示画面301や302で表示すべきPC名/Menu情報の更新を行う。そして、ステップS1102に戻り、次の要求受信処理に入る。
ステップS1129では、PC名/Menu情報一覧更新要求1Event512をPC名/Menu管理PC202に対して発行する。そして、ステップS1102に戻り次の要求受信処理に入る。
ステップS1131では、要求が表示画面301上でのメニューの下スクロール指示であり、それはスリープ状態への移行を阻害する事象なので、CPU12は、スリープタイマーである変数STを初期化する。次に、ステップS1132では、CPU12は、稼動フラグの状態を判断する。PC名/Menu管理PC202が稼動していて稼動フラグが「Yes」の場合はステップS1134に進む。そうでない場合はステップS1133に進む。
ステップS1133では、PC名/Menu管理PC202が稼動していないので、この時点で複合印刷装置203のRAM19に格納された、表示画面301や302で表示すべきPC名/Menu情報の更新を行う。そして、ステップS1102に戻り、次の要求受信処理に入る。
ステップS1134では、PC名/Menu情報一覧更新要求2Event513をPC名/Menu管理PC202に対して発行する。そして、ステップS1102に戻り、次の要求受信処理に入る。
ステップS1136では、CPU12は、稼動フラグの状態を判断する。PC名/Menu管理PC202が稼動していて稼動フラグが「Yes」の場合はステップS1137に進む。そうでない場合はステップS1138に進む。
ステップS1137では、PC名/Menu管理PC202が稼動しているので、PC名/Menu管理PC202に対して状態監視中断Event514を発行する。そして、ステップS1139に進む。
ステップS1138では、PC名/Menu管理PC202が稼動していないので、図19に示す状態監視中断Event処理を複合印刷装置203のRAM19上で実施する。そして、ステップS1139に進む。
ステップS1139では、複合印刷装置203をスリープ状態に遷移させる。ステップS1137、S1138の後は、いずれも複合印刷装置203がスリープ状態に遷移するので、ステップS1137、S1138のいずれでも、スリープ状態へ遷移するための処理が行われる。スリープ状態中の処理については図15で説明する。スリープ状態が解除された後はステップS1102に戻る。
図15は、複合印刷装置203上でスリープ状態中に実行される処理を示すフローチャートである。複合印刷装置203は、予めスリープ状態に遷移しているものとする。なお、本処理では、複合印刷装置203がスリープ状態にあることから処理の主体は、後述する代理応答システムによって行われる。
ステップS1202では、複合印刷装置203はスリープ状態にあるが各種要求を受信する。スリープ時であっても、複合印刷装置203の操作部22への操作やクライアントコンピュータからの状態問い合わせパケット501やPC名/Menu情報送付パケット502の受信は可能で、その内容によってはスリープ状態が解除されることになる。
ステップS1203では、要求がクライアントコンピュータから状態問い合わせパケット501やPC名/Menu情報送付パケット502の受信であるか否か判断する。状態問い合わせパケット501やPC名/Menu情報送付パケット502の受信であればステップS1204に進む。そうでない場合ステップS1207に進む。
ステップS1204では、クライアントコンピュータから受信したパケットが状態問い合わせパケット501であるか否かを判断する。状態問い合わせパケット501である場合はステップS1205に進む。そうでない場合にはステップS1206に進む。
ステップS1205では、OKパケット503を代理応答システムにて返答する。代理応答システムとは、スリープ中に受信パケットの処理をしてくれる簡易的なシステムであり、特定のパケットパターンの場合には、特定の応答を自動で返答してくれるシステムである。この処理は複合印刷装置203のCPU12を使わないで行うことが可能なので、複合印刷装置203をスリープ状態という低消費電力の状態を維持したままで行うことが可能となっている。代理応答システムにて返答した後には再びステップS1202に戻り、次のスリープ時の要求受付処理を行う。
ステップS1206では、スリープ状態を解除する。PC名/Menu情報送付パケット502を受信した場合、該PC名/Menu情報送付パケット502に対応する処理の実行にはCPU12を使用する必要がある。そこで、複合印刷装置203をスリープ状態から通常状態に復帰させる。
ステップS1207では、受信したものがPC名/Menu情報送付パケット502であり、特定のパターンに収めることができないため、OKパケット503を複合印刷装置203のCPU12を使って返答する。
ステップS1208では、複合印刷装置203の操作部22から何か操作があったか否か判断する。操作があればステップS1210に進む。操作が無ければステップS1209に進む。
ステップS1209では、クライアントコンピュータから印刷データを受信していないか否か判断する。印刷データを受信していれば、それを印刷する必要があるので、ステップS1210に進む。一方、印刷データを受信していなければ、何もすることが無いのでステップS1202に戻り、次のスリープ時の要求受付処理を行う。
ステップS1210では、スリープ状態を解除する。複合印刷装置203の操作部22で受け付けた何らかの操作や印刷データの受信は、いずれもCPU12を使わないと対応できない処理なので、複合印刷装置203をスリープ状態から通常状態に復帰させる。
ステップS1211では、スリープ状態から通常状態に復帰したので、CPU12は、スリープタイマー用変数STを初期化する。次に、ステップS1212では、PC名/Menu管理PC202が稼働中であるか否かを稼動フラグを使って判断する。稼動フラグが「Yes」の場合、PC名/Menu管理PC202が稼働中なのでステップS1213に進む。一方、稼動フラグが「No」の場合、PC名/Menu管理PC202が稼働していないのでステップS1214に進む。
ステップS1213では、PC名/Menu管理PC202が稼働中なので状態監視再開Event515を複合印刷装置203からPC名/Menu管理PC202に対して発行する。
ステップS1214では、PC名/Menu管理PC202が稼働していないので、複合印刷装置203のRAM19上で動作している状態監視再開Event処理(図20または図22)を行う。
以上が複合印刷装置203上で稼動している装置制御システムによる処理である。
図16は、PC名/Menu管理PC202で実行されるMenu管理システムのインストール処理を示すフローチャートである。
ステップS1302では、Menu管理システムを複合印刷装置203内の外部メモリ14にコピーする。Menu管理システムも複合印刷装置203から見ればドライバの一種として扱われるので、動作させるのはOSに組み込む必要がある。
ステップS1303では、USBケーブル213でPC名/Menu管理PC202と複合印刷装置203が接続される。
次に、ステップS1304では、PC名/Menu管理PC202と複合印刷装置203との間でP&Pが発生し、通信用のUSBポート(Port)がOSによって作成される。そして、そのポートを使って、複合印刷装置203内の外部メモリ14に記憶されたMenu管理システムがPC名/Menu管理PC202内のOSに組み込まれる。
図17は、PC名/Menu管理PC202で実行されるMenu管理システムの起動後の処理を示すフローチャートである。なお、本処理はインストール時に不図示のOSに登録され、OSが再起動する度に自動的に実行される。
図17において、ステップS1402では、CPU1は、ポーリングパケット到達時間監視用変数Nを60秒に設定する。N=60を設定した場合、60秒間にポーリング受信Eventが1つも複合印刷装置203から受信できなかった場合に、該当するクライアントコンピュータに関する情報をPC名/Menu情報DB601から削除するという意味になる。
ステップS1403では、CPU1は、中断フラグを「NO」にセットする。中断フラグが「YES」の場合は、複合印刷装置203がスリープ状態に遷移したことを意味し、「NO」の場合は、複合印刷装置203がスリープ状態に遷移せずに稼動中という意味になる。
ステップS1404では、CPU1は、ポーリング監視Taskを開始する。ポーリング監視Taskは、他の処理から独立して動作するので、図17の処理が終了しても稼働状態になる。次に、ステップS1405では、CPU1は要求待ちを行う。具体的な動作については図18で説明する。
図18は、PC名/Menu管理PC202で実行されるMenu管理システムの要求待ちの処理を示すフローチャートである。
ステップS1502では、CPU1は、Menu管理システムに対する各種要求を受信する。次に、ステップS1503では、CPU1は、要求が複合印刷装置203からのポーリング受信Event511か否かを判断する。ポーリング受信Event511であればステップS1507に進む。そうでない場合は、ステップS1504に進む。
ステップS1504では、CPU1は、要求が複合印刷装置203からのPC名/Menu情報一覧更新要求1Event512か否かを判断する。PC名/Menu情報一覧更新要求1Event512である場合はステップS1508に進む。そうでない場合は、ステップS1505に進む。
ステップS1505では、要求が複合印刷装置203からのPC名/Menu情報一覧更新要求2Event513か否かを判断する。PC名/Menu情報一覧更新要求2Event513である場合はステップS1509に進む。そうでない場合は、ステップS1506に進む。
ステップS1506では、要求が複合印刷装置203からの状態監視中断Event514か否か判断する。状態監視中断Event514である場合はステップS1510に進む。そうでない場合は、ステップS1511に進む。複合印刷装置203は、外部の管理PC202とPC名やMenu文字列のやり取りを頻繁に行っているとスリープ状態に入れなくなるが、スリープ時には管理PC202での監視を中断する。これにより、複合印刷装置203がスリープに入るのを妨げることなく、外部のコンピュータを利用することが可能となる。
ステップS1511では、要求が複合印刷装置203からの状態監視再開Event515か否か判断する。状態監視再開Event515である場合はステップS1514に進む。そうでない場合は、ステップS1512に進む。
ステップS1512では、要求が、複合印刷装置203からのポーリングパケット転送要求507の応答である応答データ_ポーリングパケット1_508か否かを判断する。応答データ_ポーリングパケット1_508である場合は、ステップS1515に進む一方、そうでない場合は、ステップS1513に進む。
ステップS1513では、要求が、複合印刷装置203からのポーリングパケット転送要求507の応答である応答データ_ポーリングパケット2_509か否かを判断する。応答データ_ポーリングパケット2_509である場合は、ステップS1516に進む一方、そうでない場合は、ステップS1502に戻り、Menu管理システムに対する各種要求の受信を行う。
ステップS1507では、受信したポーリング受信Event511に対応する処理を行う。このイベントは、複合印刷装置203がクライアントコンピュータから状態問い合わせパケット501やPC名/Menu情報送付パケット502を受けたときに発行される。本ステップは第1の監視手段または第2の監視手段の一例である。各パケットは、そのままPC名/Menu管理PC202に転送される。PC名/Menu管理PC202では、このイベントを受けた時点で、複合印刷装置203にそのパケット情報を横流しするように依頼する意味でポーリングパケット転送要求507を複合印刷装置203に対して発行する。そして、ステップS1502に戻り、Menu管理システム対する各種要求の受信を行う。
ステップS1508では、受信したPC名/Menu情報一覧更新要求1Event512に対応する処理を行う。このイベントは、複合印刷装置203の操作部22に表示された表示画面301上でメニューを上方向にスクロールさせたいという指示がなされた場合、複合印刷装置203から発行される。このイベントを受けたとき、PC名/Menu管理PC202では、PC名/Menu情報DB601を参照し、「開始終了位置」に「Start」と「End」の付いている場所を探し出す。DB601に登録されている総データ数が一度に表示画面301に表示できる数以下であれば、何もせずに本処理を終了する。DB601に登録されている総データ数が一度に表示画面301に表示できる数以上であるときは、次の処理を行う。
まず、「Start」と「End」の付いているデータをそれぞれ1つ下のデータに移動させる。次いで、新しく「End」の付いたデータをPC名/Menu情報送付パケット510にのせて、複合印刷装置203に送信する。このとき、複合印刷装置203側では、RAM19内で最上位にあるデータを消去し、それ以下を順次1つずつ上位に繰り上げ、最下位を空けた状態で待機する。受信したPC名/Menu情報送付パケット510に付加された、「End」の付いたデータは、空けた状態にある最下位に組み込まれて、該データのPC名が表示画面301に表示される。その後、ステップS1502に戻り、Menu管理システム対する各種要求の受信を行う。
ステップS1509では、受信したPC名/Menu情報一覧更新要求2Event513に対応する処理を行う。このイベントは、複合印刷装置203で操作部22に表示された表示画面301上でメニューを下方向にスクロールさせたいという指示がなされた場合、複合印刷装置203から発行される。このイベントを受けたとき、PC名/Menu管理PC202では、PC名/Menu情報DB601を参照し、「開始終了位置」に「Start」と「End」の付いている場所を探し出す。DB601に登録されている総データ数が一度に表示画面301に表示できる数以下であれば、何もせずに本処理を終了する。DB601に登録されている総データ数が一度に表示画面301に表示できる数以上であるときは、次の処理を行う。
まず、「Start」と「End」の付いているデータをそれぞれ1つ上のデータに移動させる。次いで、新しく「Start」の付いたデータをPC名/Menu情報送付パケット510にのせて、複合印刷装置203に送信する。このとき、複合印刷装置203側では、RAM19内で最下位にあるデータを消去し、それ以下を順次1つずつ下位に繰り下げ、最上位を空けた状態で待機する。受信したPC名/Menu情報送付パケット510に付加された、「Start」の付いたデータは、空けた状態にある最上位に組み込まれて、該データのPC名が表示画面301に表示される。その後、ステップS1502に戻り、Menu管理システム対する各種要求の受信を行う。
ステップS1510では、受信した状態監視中断Event514に対応する状態監視中断イベント処理を行う。このイベントは、複合印刷装置203がスリープ状態に入る直前に複合印刷装置203から発行される。この処理の詳細については図19を用いて説明する。本処理の後はステップS1502に戻り、Menu管理システム対する各種要求の受信を行う。
ステップS1514では、受信した状態監視再開Event515に対応する状態監視再開イベント処理を行う。このイベントは、複合印刷装置203がスリープ状態から通常状態に復帰した直後に複合印刷装置203から発行される。この処理の詳細については図20又は図22を用いて説明する。どちらも同じ状態監視再開Event515に対応した処理であるが、スリープ状態から復帰したときのポーリングパケット到達時間監視用変数Nの計算ロジックが異なる。ステップS1514の後はステップS1502に戻り、Menu管理システム対する各種要求の受信を行う。
ステップS1515では、応答データ_ポーリングパケット1_508を受信したときの応答データ_ポーリングパケット1受信処理を行う。このパケットを受信したときは、まずPC名/Menu情報DB601とつき合わせる。図6に示すPC名/Menu情報DB601はIPアドレスをキーにして管理されている例であるが、データが一意に参照可能なキーであれば、これにこだわるものではない。PC名/Menu情報DB601とつき合わせた結果、一致するキーがなければ、そのキーを新規追加する。追加するときは単純にDB601の最後に追加し、「開始終了位置」の情報も更新しておく。そして、ステップS1502に戻り、Menu管理システム対する各種要求の受信を行う。
ステップS1516では、応答データ_ポーリングパケット2_509を受信したときの応答データ_ポーリングパケット2受信処理を行う。このパケットを受信したときは、まずPC名/Menu情報DB601とつき合わせる。図6に示すPC名/Menu情報DB601はIPアドレスをキーにして管理されている例であるが、データが一意に参照可能なキーであれば、これにこだわるものではない。PC名/Menu情報DB601とつき合わせた結果、一致するキーがなければ、そのキーを新規追加する。追加するときは単純にDB601の最後に追加し、「開始終了位置」の情報も更新しておく。たいていの場合は、応答データ_ポーリングパケット1_508の処理結果により、PC名/Menu情報DB601にエントリが出来上がっているため、不足しているMenu情報を追記するだけですむ。
Menu情報を追記してデータが完成したときは、PC名/Menu情報DB601の「開始終了位置」の更新も行う。追加した結果、表示画面301に一度に表示しきれる量のデータであった場合には、「Start」を最上位のデータに設定し、「End」を最下位のデータに設定する。追加する前からすでに表示画面301に一度に表示しきれる量のデータ量が有る場合は、「Start」と「End」の更新はしない。そして、ステップS1502に戻り、Menu管理システム対する各種要求の受信を行う。
図19は、図18のステップS1510で実行される状態監視中断Event処理の詳細を示すフローチャートである。本処理は、PC名/Menu管理PC202が稼動していればそのPC上で実行され、PC名/Menu管理PC202が稼動していなければ、複合印刷装置203のRAM19上で実行される。状態監視中断Eventなので、複合印刷装置203がスリープ状態に入るときの処理となる。
ステップS1602では、複合印刷装置203がスリープ状態に入るので、中断フラグを「Yes」にセットする。次に、ステップS1603では、中断時刻←現在時刻として、中断した時点の時刻を確保し、処理を終了する。
図20は、図18のステップS1514又は図15のステップS1214で実行される状態監視再開Event処理の詳細を示すフローチャートである。本処理は、PC名/Menu管理PC202が稼動していればそのPC上で実行され、PC名/Menu管理PC202が稼動していなければ、複合印刷装置203のRAM19上で実行される。状態監視再開Eventなので、複合印刷装置203がスリープ状態から通常状態に復帰したときの処理となる。なお、状態監視再開Event515に対応する処理は、図20と図22に示す2つの処理を用意してあり、どちらでも利用可能である。どちらの方式を利用するか、どのようにして切り替えるかは本発明では問わない。
ステップS1702では、再開時刻←現在時刻として、再開した時点の時刻を確保しておく。次に、ステップS1703では、複合印刷装置203がスリープ状態から通常状態に戻るので、中断フラグを「No」にセットする。
ステップS1704では、再開時刻−中断時刻<10分であるか否か判断する。これはスリープしていたのは10分以内であるか否かを判断しているのに等しい。スリープしていたのが10分以内であればステップS1706に進む一方、そうでない場合はステップS1705に進む。
ステップS1705では、再開時刻−中断時刻<30分であるか否か判断する。これはスリープしていたのは30分以内であるか否かを判断しているのに等しい。スリープしていたのが30分以内であればステップS1707に進む一方、そうでない場合はステップS1708に進む。
ステップS1706では、ポーリングパケット到達時間監視用変数Nを60秒に設定して、本処理を終了する。
ステップS1707では、ポーリングパケット到達時間監視用変数Nを30秒に設定して、本処理を終了する。
ステップS1708では、ポーリングパケット到達時間監視用変数Nを10秒に設定して、本処理を終了する。ステップS1706〜S1708の処理の理由であるが、長時間スリープした場合は、その間にクライアントコンピュータもスリープ状態に入る可能性が高いと考えることができる。そのような場合には、60秒間ポーリングパケットの到達を監視せずとも、もっと短い期間監視すれば、表示画面301から削除することが可能と判断する。そして、スリープ状態に入っていた期間に応じて、監視条件であるポーリングパケット到達時間監視用変数Nの値を変更する。以上は、スリープ状態に遷移していた時間に応じて、ポーリングの監視条件を変更する第1の変更手段の一例である。
図21は、図12のステップS1009で開始されるポーリング監視Taskの処理を示すフローチャートである。本処理は、一度起動すると終了させることの無い処理なので、図中には終了が配置されていない。また、本処理は、PC名/Menu管理PC202が稼動していればそのPC上で実行され、PC名/Menu管理PC202が稼動していなければ、複合印刷装置203のRAM19上で実行される。
ステップS1802では、中断フラグが「NO」であるか否かを判断する。「YES」である場合、つまり、複合印刷装置203がスリープ中でない場合はステップS1803に進む。「NO」である場合、つまり複合印刷装置203がスリープ中である場合は、再びステップS1802に戻る。なお、無駄な処理ループで複合印刷装置203のCPU12の能力を浪費するのを防ぐ目的でステップS1802に戻る前に適度な待ち(Wait)を入れてからステップS1802に戻るようにしてもかまわない。
ステップS1803では、ポーリングパケット到達時間監視用変数Nが60秒か否かの判断を行う。60秒である場合はステップS1804に進む。そうでない場合は、ステップS1806に進む。変数Nが60秒か否かを判断するのは、Nは60秒以上には長くならないため、最大値に設定されているか否かを確認していることになる。なお、本実施形態では、変数Nのデフォルト及び最大値を60秒と設定したが、この値は60秒に限定されるものではない。そのシステムで予め決めた値であれば、何秒でもよい。
ステップS1804では、更新時刻<現在時刻−NのデータがPC名/Menu情報DB601にあるか否かを確認する。現在時刻よりN秒以上前が最終更新時間のデータは、言い換えれば、少なくともN秒間はPC名/Menu情報DB601の更新がないということになる。この条件に該当するデータがあればステップS1805に進む一方、該当するデータがなければステップS1802に戻る。
ステップS1805では、少なくともN秒間はPC名/Menu情報DB601の更新がないデータをPC名/Menu情報DB601から削除する。このとき、DB601の「開始終了位置」に「Start」と「End」のついている間に存在するデータを削除している場合には、複合印刷装置203に更新したDB601の情報をPC名/Menu情報送付パケット510で送付する。PC名/Menu情報DB601の「開始終了位置」に「Start」と「End」の付いている間の外側を削除しているのであれば、PC名/Menu情報DB601の更新だけ行う。その後、ステップS1802に戻る。
ステップS1806では、現在時刻<再開時刻+Nか否か判断する。現在時刻が再開時刻+Nより小さければ、まだPC名/Menu情報DB601の更新状況の監視を行わないでもよい時間帯なので、そのような場合にはステップS1802に戻る。そうでない場合はステップS1807に進む。
ステップS1807では、更新時刻<再開時刻のデータがあるか否かを判断する。処理がここに来た時点で現在時刻は再開時刻+Nより大きいことが明白である。この状態で更新時刻が再開時刻より小さいということは、それは削除対象となるのでステップS1808に進む。そうでない場合は、ステップS1809に進む。
ステップS1808では、該当データをPC名/Menu情報DB601から削除する。このとき、DB601の「開始終了位置」に「Start」と「End」のついている間に存在するデータを削除している場合には、複合印刷装置203に更新したDB601の情報をPC名/Menu情報送付パケット510で送付する。PC名/Menu情報DB601の「開始終了位置」に「Start」と「End」のついている間の外側を削除しているのであれば、PC名/Menu情報DB601の更新だけ行う。その後、ステップS1809に進む。このように、外部のコンピュータが稼動していない場合でも、複合印刷装置203に確保しておける分だけの情報は保持して利用することが可能となる。
ステップS1809では、60秒と現在時刻−再開時刻のうちで小さい方を変数Nに代入する。Nは60秒を最大として再開時刻から順次進んで行く値であるので、その計算を行う。その後、ステップS1802に戻る。
図22は、図18のステップS1514又は図15のステップS1214で実行される状態監視再開Event処理の詳細を示すフローチャートである。本処理は、PC名/Menu管理PC202が稼動していればそのPC上で実行され、PC名/Menu管理PC202が稼動していなければ、複合印刷装置203のRAM19上で実行される。
ステップS1902では、再開時刻←現在時刻として、再開した時点の時刻を確保しておく。次に、ステップS1903では、複合印刷装置203がスリープ状態から通常状態に戻るので、中断フラグを「No」にセットする。
ステップS1904では、図23に示すMatrixA1910を使い、スリープ中断時刻とスリープ状態からの再開時刻を使ってポーリングパケット到達時間監視用変数Nの値を設定する。例えば、スリープ中断時刻が8時の場合、スリープ状態からの再開時刻が19時台までであった場合は、ポーリングパケット到達時間監視用変数Nは60秒とし、それ以降に復帰した場合は10秒とする。また、スリープ中断時刻が17時の場合、スリープ状態からの再開時刻が翌日の5時以降になっていた場合などは、スリープ状態から復帰したときのポーリングパケット到達時間監視用変数Nは10秒とする。これは、前者は一般的な業務時間中はクライアントコンピュータも稼動中が多いと判断できるので、スリープ状態から復帰したときのポーリングパケット到達時間監視用変数Nを60に設定し、容易にDB601から削除されないように配慮した結果である。
後者の場合は、夕方から翌日の朝までスリープ状態に入っていたようなケースである。この場合、クライアントコンピュータも稼動していないことがほとんどと判断できるのでスリープ状態から復帰したときのポーリングパケット到達時間監視用変数Nを10に設定して、容易にPC名/Menu情報DB601から削除されるように配慮する。以上は、スリープ状態に遷移した時刻と復帰した時刻に応じて、ポーリングの監視条件を変更する第2の変更手段の一例である。なお、MatrixA1910は図示例に限ったものではない。
以上がPC名/Menu管理PC202上で稼動しているMenu管理システムでの処理である(一部は複合印刷装置203上もしくはPC名/Menu管理PC202で動作する処理)。
次に、上述したクライアントコンピュータ、複合印刷装置203、PC名/Menu管理PC202上で実行される処理の関連性と流れを説明する。
図24は、クライアントコンピュータに新規のスキャナドライバがインストールされた後に、複合印刷装置203の操作部22に表示画面301が表示されるまでの一連の処理の流れを説明するための図である。なお、PC名/Menu管理PC202は、前提として稼動しているものとする。
S2001では、クライアントコンピュータ上でスキャナドライバをインストールする。このとき、クライアントコンピュータのIPアドレスは「111.222.333.444」であるものとする。次に、S2002では、スキャナドライバのインストールが完了すると、状態問い合わせパケット501がクライアントコンピュータから複合印刷装置203に対して発行される。
S2003では、複合印刷装置203は、クライアントコンピュータに対してOKパケット503を返送する。同時に、ポーリング受信Event511をPC名/Menu管理PC202に対して発行する。
S2004では、PC名/Menu管理PC202は、ポーリングパケット転送要求507を複合印刷装置203に対して発行する。
S2005では、複合印刷装置203は、応答データ_ポーリングパケット1_508をPC名/Menu管理PC202に対して発行する。PC名/Menu管理PC202は、応答データ_ポーリングパケット1_508を受信したときは、まずPC名/Menu情報DB601とつき合わせる。PC名/Menu情報DB601は、IPアドレスをキーにして管理されている例であるが、データが一意に参照可能なキーであれば、これにこだわるものではない。PC名/Menu情報DB601とつき合わせた結果、一致するキーがなければ、そのキーを新規追加する。追加するときは単純にDB601の最後に追加し、「開始終了位置」の情報も更新しておく。
S2006では、PC名/Menu情報送付パケット502がクライアントコンピュータから複合印刷装置203に対して発行される。複合印刷装置203は、受信したPC名/Menu情報送付パケット502からクライアントコンピュータに関する情報(PC名、Menu数、Menu文字列)を取得する。なお、スキャナドライバインストール後には、状態問い合わせパケット501を飛ばした次のパケットでPC名/Menu情報送付パケット502を飛ばすように予めスキャナドライバを設定しておく。
S2007では、複合印刷装置203は、クライアントコンピュータに対してOKパケット503を返送する。同時に、ポーリング受信Event511をPC名/Menu管理PC202に対して発行する。S2008では、PC名/Menu管理PC202は、ポーリングパケット転送要求507を複合印刷装置203に対して発行する。
S2009では、複合印刷装置203は、応答データ_ポーリングパケット2_509をPC名/Menu管理PC202に対して発行する。PC名/Menu管理PC202は、応答データ_ポーリングパケット2_509を受信したときは、PC名/Menu情報DB601とつき合わせる。PC名/Menu情報DB601は、IPアドレスをキーにして管理されている例であるが、データが一意に参照可能なキーであれば、これにこだわるものではない。PC名/Menu情報DB601とつき合わせた結果、一致するキーがなければ、そのキーを新規追加する。追加するときは単純にDB601の最後に追加し、「開始終了位置」の情報も更新しておく。たいていの場合は、応答データ_ポーリングパケット1_508の処理結果により、PC名/Menu情報DB601にエントリが出来上がっているため、不足しているMenu情報を追記するだけの処理となる。ここまで処理すると1つのクライアントコンピュータに関する情報がPC名/Menu情報DB601上で完成する。
S2010では、1つのクライアントコンピュータに関する情報がPC名/Menu情報DB601上で完成したのを受けて、その情報をPC名/Menu情報送付パケット510としてPC名/Menu管理PC202から複合印刷装置203に送付する。S2011では、この時点で初めて新規にクライアントコンピュータにインストールしたスキャナドライバの情報が複合印刷装置203に表示することが可能となる。
S2012では、状態問い合わせパケット501がクライアントコンピュータから複合印刷装置203に対して発行される。これは通常の状態問い合わせの意味のパケットである。
S2013では、複合印刷装置203は、クライアントコンピュータに対してOKパケット503を返送する。同時に、ポーリング受信Event511をPC名/Menu管理PC202に対して発行する。
S2014では、PC名/Menu管理PC202は、ポーリングパケット転送要求507を複合印刷装置203に対して発行する。
S2015では、複合印刷装置203は、応答データ_ポーリングパケット1_508をPC名/Menu管理PC202に対して発行する。PC名/Menu管理PC202は、応答データ_ポーリングパケット1_508を受信したときは、PC名/Menu情報DB601とつき合わせる。PC名/Menu情報DB601は、IPアドレスをキーにして管理されている例であるが、データが一意に参照可能なキーであれば、これにこだわるものではない。PC名/Menu情報DB601とつき合わせた結果、一致するキーがあるので、そのキーの「更新時刻」をPC名/Menu管理PC202で保持している現在時刻に更新しておく。以降、特に、何もなければS2012からS2015がポーリング間隔T秒毎に繰り返される。
このようにして、クライアントコンピュータに関する情報が複合印刷装置203を経由してPC名/Menu管理PC202に伝わり、その情報はPC名/Menu管理PC202で管理され、最終的には複合印刷装置203で表示されるようになる。
図25(a)は、複合印刷装置203上の操作部22に表示された表示画面301上でメニューが上スクロールされた場合の処理の流れを説明するための図である。図25(b)は、表示画面301上でメニューが下スクロールされた場合の処理の流れを説明するための図である。
図25(a)において、S2101では、操作部22の表示画面301上でメニューの上スクロールの指示を受け付ける。S2102では、複合印刷装置203は、PC名/Menu情報一覧更新要求1Event512をPC名/Menu管理PC202に対して発行する。それを受けたPC名/Menu管理PC202は、PC名/Menu情報DB601から、要求された送信先に関する情報を抽出する。
S2103では、PC名/Menu情報DB601から抽出した送信先に関する情報をPC名/Menu情報送付パケット510でPC名/Menu管理PC202から複合印刷装置203に送付する。S2104では、上スクロールされたときに表示すべきPC名やMenu情報を表示画面301上に表示する。
図25(b)において、S2111では、操作部22の表示画面301上でメニューの下スクロールの指示を受け付ける。S2112では、複合印刷装置203は、PC名/Menu情報一覧更新要求1Event512をPC名/Menu管理PC202に対して発行する。それを受けたPC名/Menu管理PC202は、PC名/Menu情報DB601から、要求された送信先に関する情報を抽出する。
S2113では、PC名/Menu情報DB601から抽出した送信先に関する情報をPC名/Menu情報送付パケット510でPC名/Menu管理PC202から複合印刷装置203に送付する。S2114で、下スクロールされたときに表示すべきPC名やMenu情報を表示画面301上に表示する。
図26は、クライアントコンピュータの電源が落ちた等によりPC名/Menu管理PC202にポーリング受信Event511が届かなくなってしまったときの処理の流れを説明するための図である。以下の例では、IPアドレス:111.222.333.444のクライアントコンピュータからのポーリングが途絶えたという前提で説明する。
S2201では、PC名/Menu管理PC202は、「111.222.333.444」のIPアドレスを持つクライアントコンピュータからのポーリングが来ないことを検出する。これは、図21に示すポーリング監視TaskでPC名/Menu情報DB601の更新状況を監視することにより、ポーリング受信Event511が届かなくなったクライアントコンピュータとしてピックアップされた結果による。
S2202では、PC名/Menu情報DB601上から「111.222.333.444」のIPアドレスを持つクライアントコンピュータの情報を削除する。S2203では、新しくPC名/Menu管理PC202から複合印刷装置203に転送すべきデータを把握する。DB601の「開始終了位置」に「Start」と「End」の付いている間に存在するデータを削除している場合には、S2204でPC名/Menu情報送付パケット510により複合印刷装置203の操作部22に表示すべきデータを送付する。一方、PC名/Menu情報DB601の「開始終了位置」に「Start」と「End」の付いている間に存在するデータ以外を削除しているのであれば、S2204でデータの送付を行わない。
S2205では、ポーリングが途絶えたクライアントコンピュータの情報が複合印刷装置203の操作部22の表示画面から消える。なお、複合印刷装置203の操作部22に表示されていないクライアントコンピュータからのポーリングが途絶えた場合には、操作部22の表示画面は見かけ上は何も変化しない。しかしながら、メニューを上下にスクロールさせた場合、そのようなクライアントコンピュータの情報(PC名等)は表示されなくなっている。
図27は、複合印刷装置203がスリープ状態に入る前後の処理の流れを説明するための図である。
S2301では、ST>Sleep設定時間の条件を満たしたので、複合印刷装置203がスリープに入れる状態になる。
S2302では、複合印刷装置203からPC名/Menu管理PC202に対して、状態監視中断Event514を発行する。その結果、図21のポーリング監視Taskは、PC名/Menu情報DB601の更新状態監視処理をスキップするようになる。
S2303では、複合印刷装置203がスリープ状態(DeepSleep)に遷移する。S2304では、クライアントコンピュータから複合印刷装置203に対して状態問い合わせパケット501が送出される。
S2305では、複合印刷装置203の代理応答システムにてOKパケット503がクライアントコンピュータに対して返信される。
S2306では、複合印刷装置203の操作部22を操作してスリープ状態を解除する。
S2307では、複合印刷装置203からPC名/Menu管理PC202に対して、状態監視再開Event515を発行する。この時点でPC名/Menu管理PC202では、ポーリングパケット到達監視用変数Nの値をスリープしていた時間もしくはスリープ状態への遷移〜スリープ状態からの復帰の時刻に従って再計算する。PC名/Menu管理PC202は、状態監視再開Event515を受信してから、PC名/Menu情報DB601の更新状態を監視するが、N秒間に更新がかからなかったクライアントコンピュータに関する情報を削除対象とする。ここでは図示されていないが、仮にDB601の「開始終了位置」に「Start」と「End」の付いている間に存在するデータを削除している場合には、表示すべきデータをパケット510でPC202から複合印刷装置203に送付して、表示を更新する。
S2308では、状態問い合わせパケット501がクライアントコンピュータから複合印刷装置203に対して発行される。これは通常の状態問い合わせの意味のパケットである。S2309では、複合印刷装置203は、クライアントコンピュータに対してOKパケット503を返送する。同時にポーリング受信Event511をPC名/Menu管理PC202に対して発行する。
S2310では、PC名/Menu管理PC202は、ポーリングパケット転送要求507を複合印刷装置203に対して発行する。S2311では、複合印刷装置203は、応答データ_ポーリングパケット1_508をPC名/Menu管理PC202に対して発行する。PC名/Menu管理PC202は、応答データ_ポーリングパケット1_508を受信したときは、PC名/Menu情報DB601とつき合わせる。図6のPC名/Menu情報DB601は、IPアドレスをキーにして管理されている例であるが、データが一意に参照可能なキーであれば、これにこだわるものではない。PC名/Menu情報DB601とつき合わせた結果、一致するキーがあるので、そのキーの更新時刻を現在時刻に更新しておく。以降、特に、何もなければS2308からS2311が繰り返される。
図28は、クライアントコンピュータに新規のスキャナドライバをインストールされた後に、複合印刷装置203の操作部22に表示画面301が表示されるまでの一連の処理の流れを説明するための図である。なお、PC名/Menu管理PC202は、前提として稼動していないものとする。
S2401では、クライアントコンピュータ上でスキャナドライバをインストールする。このとき、クライアントコンピュータのIPアドレスは「111.222.333.444」であるものとする。次に、S2402では、スキャナドライバのインストールが完了すると、状態問い合わせパケット501がクライアントコンピュータから複合印刷装置203に対して発行される。複合印刷装置203では、PC名/Menu情報DB601をRAM19上で管理しており、IPアドレスをキーにして管理されている。いま受信したデータをPC名/Menu情報DB601とつき合わせた結果、一致するキーがなければ、そのキーを新規追加する。
S2403では、複合印刷装置203は、クライアントコンピュータに対してOKパケット503を返送する。S2404では、PC名/Menu情報送付パケット502がクライアントコンピュータから複合印刷装置203に対して発行される。なお、スキャナドライバインストール後には、状態問い合わせパケット501を飛ばした次のパケットでPC名/Menu情報送付パケット502を飛ばすように予めスキャナドライバを設定しておく。いま受信したデータをPC名/Menu情報DB601とつき合わせた結果、一致するキーがなければ、そのキーを新規追加する。たいていの場合は、状態問い合わせパケット501の処理結果により、PC名/Menu情報DB601にエントリが出来上がっているため、不足しているMenu情報を追記するだけの処理となる。ここまで処理すると1件分の情報がPC名/Menu情報DB601上で完成する。
S2405では、複合印刷装置203は、クライアントコンピュータに対してOKパケット503を返送する。次に、S2406では、この時点で初めて新規にクライアントコンピュータにインストールしたスキャナドライバの情報が複合印刷装置203に表示することが可能となる。
上記実施形態によれば、プッシュスキャンでデータを送付する宛先の情報としてPC名やMenu文字列等を十分に保存するだけのメモリや外部記憶装置が画像処理装置に確保できない場合であっても、プッシュスキャン時のユーザの使い勝手を向上できる。
[第2の実施形態]
図29は、本発明の第2の実施形態に係る画像処理装置を備える画像処理システムの概略構成を示す図である。
本発明の第2の実施の形態では、図2に示す構成が上記第1の実施の形態と同じであり、第1の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第1の実施の形態と異なる点のみを説明する。
図29における2502〜2507は、図1における202〜207にそれぞれ対応する。第2実施形態では、クライアントコンピュータ2505上にポーリング制御システムが追加搭載され、ポーリングパケット送出のON/OFF制御を行う点で上記第1の実施形態とは異なる。更に、PC名/Menu管理PC2502からの稼動状況問い合わせに応答する点で上記第1の実施形態とは異なる。
更に、第2実施形態では、PC名/Menu管理PC2502上に稼動状況問い合わせシステムが追加搭載され、特定の条件のクライアントコンピュータ2505に対して、直接稼動状況の問い合わせを行う点で上記第1の実施形態とは異なる。
図30は、クライアントコンピュータ上で実行されるポーリング制御システムのインストール処理を示すフローチャートである。なお、クライアントコンピュータ2504〜2507、複合印刷装置2503、及びPC名/Menu管理PC2502は、ネットワーク201(またはUSBケーブル213)を介して接続されているものとする。
ステップS2602では、ポーリング制御システムのインストール処理が行われる。次に、ステップS2603では、ポーリング制御システムが実行され、処理要求待ち状態に入る。ポーリング制御システムは、他の処理から独立して動作することが可能なシステムなので、図30の処理が終了しても稼働状態になる。
図31は、図30のステップS2603で実行されるポーリング制御システムの処理要求待ちの処理の詳細を示すフローチャートである。なお、本処理は、インストール時に不図示のOSに登録されて、OSを再起動する度に自動的に起動されるようになっている。
ステップS2702では、ポーリング制御システムは処理要求を待ち受ける。何らかの処理要求を受け付けると、処理要求が稼動状況問い合わせか否かを判断する(ステップS2703)。稼動状況の問い合わせは、PC名/Menu管理PC2502から不図示の稼動状況問い合わせパケットをクライアントコンピュータに転送することで行われる。処理要求が稼動状況問い合わせである場合はステップS2706に進み、そうでない場合はステップS2704に進む。
ステップS2704では、処理要求がクライアントコンピュータから複合印刷装置2503に対して送信された状態問い合わせパケット501やPC名/Menu情報送付パケット502によるポーリングパケットの送付再開指示か否かが判断される。なお、送付再開指示パケットは不図示である。送付再開指示パケットである場合はステップS2707に進み、そうでない場合はステップS2705に進む。
ステップS2705では、処理要求がクライアントコンピュータから複合印刷装置2503に対して送信された状態問い合わせパケット501やPC名/Menu情報送付パケット502によるポーリングパケットの送付中断指示か否かが判断される。なお、送付中断指示パケットは不図示である。送付中断指示パケットである場合はステップS2708に進み、そうでない場合はステップS2702に戻る。
ステップS2706では、クライアントコンピュータが稼動しているという意味のOKパケットをPC名/Menu管理PC2502に対して返答する。なお、OKパケットは不図示である。クライアントコンピュータが稼動していない場合、OKパケットは返答されないので、PC名/Menu管理PC2502は、OKパケットの返答があるか否かで、クライアントコンピュータが稼動しているか否かの判断が可能となる。その後、ステップS2702に戻る。
ステップS2707では、処理要求がクライアントコンピュータから複合印刷装置2503に対して送信された状態問い合わせパケット501等によるポーリングパケットの送付再開指示と判断する。そして、中断していたT秒間隔でポーリングパケットを送信するサブタスクを再開する。その後、ステップS2702に戻る。
ステップS2708では、処理要求がクライアントコンピュータから複合印刷装置2503に対して送信された状態問い合わせパケット501等によるポーリングパケットの送付中断指示と判断する。そして、T秒間隔でポーリングパケットを送信するサブタスクを中断する。その後、ステップS2702に戻る。
図32は、PC名/Menu管理PC2502上で実行される稼動状況問い合わせシステムのインストール処理を示すフローチャートである。なお、クライアントコンピュータ2504〜2507、複合印刷装置2503、及びPC名/Menu管理PC2502は、ネットワーク201(またはUSBケーブル213)を介して接続されているものとする。
ステップS2802では、稼動状況問い合わせシステムのインストール処理が行われる。ステップS2803では、稼動状況問い合わせシステムが実行される。このシステムは、他の処理から独立して動作することが可能なシステムである。本処理の詳細については図33で説明する。
図33は、図32のステップS2803で実行される稼動状況問い合わせシステムの起動処理の詳細を示すフローチャートである。なお、本処理は、インストール時に不図示のOSに登録されて、OSを再起動するたびに自動的に起動されるようになっている。
ステップS2902では、CPU1は、PC名/Menu管理PC2502上で管理するPC名/Menu情報DB601の内容を確認し、「開始終了位置」に「Start」と「End」の付いているデータの外側に位置するデータがあるか否かを判断する。図6のPC名/Menu情報DB601の例では、607,608,609がこれに該当する。そのようなデータがある場合はステップS2903に進み、ない場合はステップS2902に戻る。なお、無駄な処理ループでPC名/Menu管理PC2502のCPU1の能力を浪費するのを防ぐ目的でステップS2902に戻る前に適度な待ち(Wait)を入れからステップS2902に戻るようにしてもかまわない。
ステップS2903では、PC名/Menu情報DB601上で「開始終了位置」に「Start」と「End」の付いているデータの外側にあるPCに対して、稼動状況問い合わせパケットを送信する。図6のPC名/Menu情報DB601の例では、607,608,609に記載されているPCに対して稼動状況問い合わせパケットを送出する(稼動状況問い合わせパケットは不図示)。そして、その返答を待つ。
ステップS2904では、クライアントコンピュータ2505からの稼動状況問い合わせパケットに対する返信パケット(OKパケット)が来たか否かを判断する。OKパケットが帰ってきた場合、ステップS2905に進む。一定時間の間にOKパケットが帰って来ない場合、ステップS2902に戻る。
ステップS2905では、クライアントコンピュータ2505からの稼動状況問い合わせパケットに対する返信パケット(OKパケット)が帰ってきたので、DB601の更新時刻の情報をPC名/Menu管理PC2502の現在時刻で更新する。そして、ステップS2902に戻る。
第2の実施形態では、図15の処理フローの内部処理が若干変更となるので、以下で説明する。なお、フローの流れに変更はない。以下の部分の内部処理が異なる。
ステップS1508では、PC名/Menu情報一覧更新要求1Event512に対応した処理を行う。このイベントは、複合印刷装置2503で操作部22の操作を行い、表示画面301で表示されている画面を上方向にスクロールさせて表示したいという指示がなされた場合、複合印刷装置2503から発行される。このイベントを受けたとき、PC名/Menu管理PC2502では、PC名/Menu情報DB601を参照し、「開始終了位置」に「Start」と「End」の付いている場所を探し出す。PC名/Menu情報DB601に登録されている総データ数が一度に表示画面301に表示できる数以下であれば、何もせずに終了する。PC名/Menu情報DB601に登録されている総データ数が一度に表示画面301に表示できる数以上であるとき次の処理を行う。
まず「Start」と「End」のついているデータを各々1つ下のデータに移動させる。このとき、移動させる前に「Start」のついていたデータが示すクライアントコンピュータ2505に対して、不図示のポーリングOFF指示パケットを送出する。この送出により、それを受けた当該クライアントコンピュータでは、T秒間隔でポーリングパケットを送信するサブタスクが中断する。
次いで、新しく「End」のついたデータをPC名/Menu情報送付パケット510にのせて、複合印刷装置2503に送信する。このとき、新しく「End」の付いたデータが示すクライアントコンピュータ2505に対して、不図示のポーリングON指示パケットを送出する。この送出により、それを受けた当該クライアントコンピュータでは、T秒間隔でポーリングパケットを送信するサブタスクが再開する。
複合印刷装置2503側では、RAM19内で最上位にあるデータを消去し、それ以下を順次1つずつ上位に繰り上げ、最下位を空けた状態で待機させておく。ここで送信したデータはこの最下位に組み込まれて表示されることになる。
PC名/Menu情報送付後にはステップS1502に戻り、Menu管理システム対する各種要求の受信を行う。
ステップS1509では、PC名/Menu情報一覧更新要求2Event512に対応した処理を行う。このイベントは、複合印刷装置2503で操作部22の操作を行い、表示画面301で表示されている画面を下方向にスクロールさせて表示したいという指示がなされた場合、複合印刷装置2503から発行される。このイベントを受けたとき、PC名/Menu管理PC2502では、PC名/Menu情報DB601を参照し、「開始終了位置」に「Start」と「End」の付いている場所を探し出す。DBに登録されている総データ数が一度に表示画面301に表示できる数以下であれば、何もせずに終了する。PC名/Menu情報DB601に登録されている総データ数が一度に表示画面301に表示できる数以上であるとき次の処理を行う。
まず、「Start」と「End」のついているデータを各々1つ上のデータに移動させる。このとき、移動させる前に「End」のついていたデータが示すクライアントコンピュータ2505に対して、不図示のポーリングOFF指示パケットを送出する。この送出により、それを受けた当該クライアントコンピュータでは、T秒間隔でポーリングパケットを送信するサブタスクが中断する。
次いで、新しく「Start」のついたデータをPC名/Menu情報送付パケット510にのせて、複合印刷装置2503に送信する。このとき、新しく「Start」の付いたデータが示すクライアントコンピュータ2505に対して、不図示のポーリングON指示パケットを送出する。この送出により、それを受けた当該クライアントコンピュータでは、T秒間隔でポーリングパケットを送信するサブタスクが再開する。
複合印刷装置2503側では、RAM19内で最下位にあるデータを消去し、それ以下を順次1つずつ下位に繰り下げ、最上位を空けた状態で待機させておく。ここで送信したデータはこの最上位に組み込まれて表示されることになる。PC名/Menu情報送付パケット510の送付後には、ステップS1502に戻りMenu管理システム対する各種要求の受信を行う。
ステップS1516では、応答データ_ポーリングパケット2_509を受信したときの処理を行う。このパケットを受信したときは、まずPC名/Menu情報DB601とつき合わせる。図6のPC名/Menu情報DB601はIPアドレスをキーにして管理されている例であるが、データが一意に参照可能なキーであれば、これにこだわるものではない。PC名/Menu情報DB601とつき合わせた結果、一致するキーがなければ、そのキーを新規追加する。追加するときは単純にDBの最後に追加し、開始終了位置の情報も更新しておく。たいていの場合は、応答データ_ポーリングパケット1_508の処理結果により、PC名/Menu情報DB601にエントリが出来上がっているため不足しているMenu情報を追記するだけですむ。
Menu情報を追記してデータが完成したときは、PC名/Menu情報DB601の開始終了位置の更新も行う。追加した結果まだ一度に表示画面301に表示しきれる量のデータであった場合には、「Start」を最上位のデータに設定し、「End」を最下位のデータに設定する。追加する前からすでに一度の表示画面301に表示しきれる量またはそれ以上のデータ量が有る場合は、「Start」と「End」の更新はしない。このとき、新規に追加したデータが「Start」と「End」の外側にあるような場合には、そのデータが示すクライアントコンピュータ2505に対して、不図示のポーリングOFF指示パケットを送出する。この送出により、それを受けた当該クライアントコンピュータでは、T秒間隔でポーリングパケットを送信するサブタスクが中断する。そして、ステップS1502に戻り、Menu管理システム対する各種要求の受信を行う。このステップS1508,S1509,S1516の修正を上記第1の実施形態で説明した処理から第2の実施形態で説明した処理に変更することにより以下のことが発生する。
第1に、PC名/Menu情報DB601の開始終了位置において、「Start」と「End」の間に挟まれたデータに該当するクライアントコンピュータ2505でのみT秒間隔でポーリングパケットを送信するサブタスクが動作する。言い換えると「Start」と「End」の間に挟まれていないデータに該当するクライアントコンピュータ2505では、T秒間隔でポーリングパケットを送信するサブタスクが中断する。
第2に、複合印刷装置2503で操作部22の操作を行い、表示画面301で表示されている画面を上下方向にスクロールさせて表示させる場合について説明する。この場合、表示から消えたデータに該当するクライアントコンピュータ2505では、T秒間隔でポーリングパケットを送信するサブタスクが中断する。
第3に、複合印刷装置2503で操作部22の操作を行い、表示画面301で表示されている画面を上下方向にスクロールさせて表示させる場合について説明する。この場合、新しく表示されたデータに該当するクライアントコンピュータ2505では、T秒間隔でポーリングパケットを送信するサブタスクが再開する。
まとめると、図33の処理では、DB601の「開始終了位置」の「Start」と「End」間に挟まれていないデータに該当するクライアントコンピュータ2505に対して、稼動状況問い合わせシステムで稼動状況の問い合わせを行っている。
DB601の「開始終了位置」の「Start」と「End」間に挟まれたデータに該当するクライアントコンピュータ2505からはT秒間隔でポーリングパケットが送出され、その情報を元にして、PC名/Menu情報DB601の更新時刻が更新される。
一方、DB601の「開始終了位置」の「Start」と「End」間に挟まれていないデータに該当するクライアントコンピュータ2505には、稼動状況問い合わせシステムで稼動状況の問い合わせを行い、DB601の更新時刻が更新される。そして、これは、複合印刷装置2503で操作部22の操作を行い、表示画面301で表示されている画面を上下方向にスクロールさせて表示させる場合新しく更新されたPC名/Menu情報DB601の開始終了位置に対しても有効となる。第1の実施形態では、全てのクライアントコンピュータからの状態問い合わせパケット501が1台の複合印刷装置203に集中して送付されることになるので、状態問い合わせパケット501に対する処理の負荷が大きくなる懸念がある。
第2の実施形態では、複合印刷装置203に対して恒常的に状態問い合わせパケット501を送付するのは最大で1度に複合印刷装置2503の操作部22(表示画面301)に表示しきれる台数分のクライアントコンピューに抑えることが可能となる点である。
第2の実施形態によれば、複合印刷装置203等のデバイスに送信される状態問い合わせパケットの量を制限することが可能となるので、デバイスでの応答負荷を軽減することも併せて可能となる。
上記第1及び第2の実施形態では、本発明をスキャナ機能を備えた複合印刷装置に適用した形態について説明したが、これに限定されるものではなく、スキャナ装置や印刷装置、単機能の周辺機器等に適用しても本発明の効果が得られることは云うまでもない。
また、本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(プログラム)を画像処理装置のCPUやプロセッサにて実行することでも実現できる。