以下、添付図面に従って本発明に係る実施形態を説明する。
<システム全体の説明>
図1は、実施形態におけるスキャナ/ネットワーク接続装置を利用したシステムの形態を示している。
図示において、100がスキャナ/ネットワーク接続装置であり、ネットワークインタフェース及びSCSIインタフェースを有する。200はイメージスキャナ装置(以下、単にスキャナという)であり、SCSIインタフェースを有するものである。300はイーサネット(登録商標)等構築されたローカルエリアネットワーク(単にネットワークという)であり、401乃至405はネットワーク300に接続されたパーソナルコンピュータ(以下、PCという)であって、各ユーザが使用するものである。500は実施形態におけるスキャナ/ネットワーク接続装置100を管理するとともに、遠隔制御する制御用PCである。なお、この制御用PC500とPC401乃至405との違いは、それ上で、スキャナ/ネットワーク接続装置を制御するアプリケーションや後述する各種ドライバプログラムが稼働しているか否かの違いであって、ハードウェア上の違いはない。また、後述する説明から明らかになるが、この制御用PC500は、管理者が管理するためのものであって、PC401乃至405等のユーザはその存在を知らなくても構わない。なお、図示では、一般ユーザが使用するPCとして5台を示したが、もちろん、この数により本願発明が限定されるものではない。また、図示では、ネットワーク上に設置された各種サーバやルータ、プリンタ等を示しているが、これらは周知の装置であるので、その説明は省略する。なお、実施形態では、ネットワーク300のプロトコルとしてTCP/IPを利用するものとして説明するが、以下の機能を実現するものであれば、如何なるものでも構わない。
<スキャナ制御用PCとスキャナ/ネットワーク接続装置の説明>
図2はスキャナ/ネットワーク接続装置100、スキャナ200、ネットワーク300、スキャナ制御用PC500のブロック構成図を示している。
スキャナ制御用PCのハードウェア構成は、通常のPCのそれを変わるものはないが、一応説明する。
図中、501は装置全体を制御するCPUであり、502はブートプログラム及びBIOS等を記憶しているROMである。503はCPU501が実行するOS、アプリケーションをロードしたり、ワークエリアとして使用するRAMである。504はキーボード、506はマウス(登録商標)等のポインティングデバイスである。506はネットワーク300と接続するためのネットワークインタフェースであり、507はグラフィックスエンジンプロセッサ及びビデオメモリを搭載した表示制御部507である。508はCRT等の表示装置であり、509はOS、実施形態におけるスキャニングアプリケーション、更には画像を一時的に蓄積するハードディスク装置である。なお、稼働するOSは如何なるものでも良いが、実施形態では、米国マイクロソフト社が提供するWindows(登録商標)が動作するものとする。スキャニングアプリケーションについての詳細は後述する。
一方、スキャナ/ネットワーク接続装置100は以下の構成を備える。101は装置全体を制御するCPU(PCのCPUほどの高速な処理能力は不要である)、102は処理手順であるプログラム(ファームウェア)を記憶しているROM、103はワークエリアとして使用するRAMである。104はタッチパネルであり、105は液晶表示用のコントローラ、106は液晶表示器である。実施形態におけるタッチパネルは透明シートで構成される感圧式を採用し、液晶表示器(LCD)106の前面に設けるものとした。なお、座標検出方式はこれに限らず如何なるものでも良いのは勿論である。また、実施形態でのLCD106はスキャナ200のユーザインタフェースとして機能するに十分な解像度とすべく320×200ドットの表示能力を有し、表示画像は2値とした。107はネットワークインタフェース、108はSCSIインタフェースである。イメージスキャナ200はSCSIインタフェースを有する既存のスキャナ装置で良いので、その詳細は省略する。
図3は、図2に示したスキャナ制御用PC500とスキャナ/ネットワーク接続装置100それぞれの、主にソフトウェア面から見たレイヤ構造を示している。
スキャナ制御用PC500上では、ネットワークドライバや、スキャナドライバが動作する。ネットワークドライバは、ネットワークインタフェース506を製造・販売するメーカが用意したもの、或いは、OSがサポートするドライバで良い。また、スキャナドライバはスキャナ200のメーカが用意するたとえばTWAIN(Technology Without any Interested Name)ドライバで良く、格別なものではない。本実施形態における、特徴とする点は、仮想LCDドライバ551、仮想タッチパネルドライバ552、仮想SCSIドライバ553にある。
仮想LCDドライバ551は、遠隔にあるスキャナ/ネットワーク接続装置100が有するLCD106及びLCDコントローラ105が、あたかもスキャナ制御用PCというローカルなスキャナ制御用PC500にハードウェアとして接続されているかのように見えるようにするドライバである。また、仮想タッチパネルドライバも、スキャナ/ネットワーク接続装置100が有するタッチパネル104が、あたかもローカルなスキャナ制御用PC500にハードウェアとして接続されているかのように見えるようにするドライバである。そして、仮想SCSIドライバも、スキャナ/ネットワーク接続装置100が有するSCSIインタフェース108がローカルなスキャナ制御用PC500にハードウェアとして接続されているかのように見えるようにするためのドライバである。
要するに、これら3つの仮想ドライバは、遠隔に存在するスキャナ/ネットワーク接続装置100が有するハードウェア資源を、あたかもスキャナ制御用PC500というローカルなPCが有するかの如く動作させるものである。より詳しくは、仮想LCDドライバ551及び仮想タッチパネルドライバ552により、あたかも標準入出力装置(コンソールともいい、コンピュータ技術分野では表示装置、及び、ユーザからの入力を受け付ける入力装置を総称して言う)がスキャナ制御用PC500に接続されているかのように動作し、仮想SCSIドライバによりSCSIインタフェース(カード)があるかのように動作することになる。
一方、スキャナ/ネットワーク接続装置100上では、ファームウェアとしてのネットワークドライバ154が動作し、その上位レイヤにLCDサーバ151、タッチパネルタスク152、SCSIサーバ153が稼働する。
上記構成において、スキャナ制御用PC500における仮想LCDドライバ551、及び、スキャナ/ネットワーク接続装置100におけるLCDサーバ151とが連携して、スキャナ/ネットワーク接続装置100が有するLCD151への画像表示が実現する。因に、スキャナ制御用PC500の仮想LCDドライバから、スキャナ/ネットワーク接続装置100へ出力されるデータのフォーマットは、識別コード、表示すべき矩形画像の左上隅の表示座標位置(x、y)、その矩形サイズである幅W、高さH、そして、実際のビットストリーム(1画素1ビットの2値画像データ)とした。
また、スキャナ制御用PC500における仮想タッチパネルドライバ552、及び、スキャナ/ネットワーク接続装置100におけるタッチパネルタスク152とが連携して、スキャナ/ネットワーク接続装置100が有するタッチパネル104のユーザによるタッチ座標位置(x、y)を検出し、上位レイヤに通知することができる。データの流れは、タッチパネルタスク152からタッチパネルドライバ552に流れるので、タッチパネルタスク152がクライアント、タッチパネルドライバ552がサーバという関係になる。
そして、スキャナ制御用PC500における仮想SCSIドライバ553、及び、スキャナ/ネットワーク接続装置100におけるSCSIサーバ153とが連携することになる。すなわち、スキャナ制御用PCのスキャナドライバから要求コマンドがあると、仮想SCSIドライバ553がその要求コマンドをスキャナ/ネットワーク接続装置100に送信する。スキャナ/ネットワーク接続装置100は、これを受信すると、SCSIドライバを介してスキャナ200に出力する。また、スキャナ200から出力されてきたデータ(読取った画像データも含まれる)は、逆の経路を経て、最終的にスキャナ制御用PC上で動作しているアプリケーションに供給することが可能となる。
このように、スキャナ制御用PC500とスキャナ/ネットワーク接続装置100間のデータの種類は大きく分けて3つ存在する。従って、それぞれのデータが判別できるようにする必要がある。本実施形態では、論理を示すポート番号を利用することで解決した。つまり、ネットワーク上に流れるパケットのヘッダに、送信相手先IPアドレス、自身のIPアドレスを付加するのは勿論、表示に関するものであればポート番号をP1、タッチパネルの座標データはP2、SCSIに関するデータはP3をそれぞれ用いるようにし、それらのポート番号による割振りをそれぞれのネットワークドライバが行うようにした。ただし、通常、TCP/IP通信では、クライアント側がポート番号を指定してサーバにアクセスすることになる。換言すれば、クライアント側はサーバが開いているポート番号を利用する必要がある。
図3に示す如く、スキャナ/ネットワーク接続装置100は、専用のハードウェアで構成され、動作するLCDサーバ151及びSCSIサーバ153は文字どおりサーバとして機能するものであるから、それら2つのサーバが利用するポートP1、P3は固定で構わない。すなわち、スキャナ制御用PC500の仮想LCDドライバ、仮想SCSIドライバは、スキャナ/ネットワーク接続装置100のIPアドレスのポートP1、P3がはじめから開いているものとして通信を行ってかまわない。
一方、タッチパネルの座標位置情報の通信においては、スキャナ制御用PC500側で動作する仮想タッチパネルドライバ552が受信側、すなわち、サーバとなる。先に説明したように、実施形態におけるスキャナ制御用PC500は、汎用のパーソナルコンピュータ等の情報処理装置で実現しているものであるから、それ上で動作するアプリケーションに際限はない。必然、個々のアプリケーションが利用するTCP/IPプロトコルのポート番号も自由に使って構わないことになり、他のアプリケーションで使用中のポートは、タッチパネルのデータ通信に用いることはできない。すなわち、仮想タッチパネルドライバ552は、自身が稼働する際、空いているポートを探し、それを利用することになる。
従って、スキャナ/ネットワーク接続装置100におけるタッチパネルタスク152がそのポート番号を知らない限りは、タッチされた座標位置情報をスキャナ制御用PC500に通知することはできなくなってしまう。そこで、本実施形態では、固定ポートP1を用いているLCDサーバ151(勿論、SCSIサーバ153でも構わない)宛てに、タッチパネルタスク152が利用するポート番号P2を、表示すべきデータとは判別可能なコマンド形式で通知するようにした。
<スキャナ/ネットワーク接続装置の処理の説明>
以下、実施形態におけるスキャナ/ネットワーク接続装置100の処理手順を順に説明する。
図4はスキャナ/ネットワーク接続装置100の初期処理を示している。
電源が投入されると初期化処理を行なう。この初期化処理には、ネットワークインタフェース107の初期化及びネットワークドライバ154の駆動が含まれる。ネットワークドライバ154は、ネットワーク300上のパケットを監視し、予め自身に割り当てられたIPアドレス(不図示の不揮発性メモリに設定登録する)のパケットを捕捉する処理、及び、ネットワークへのパケット送信を行うことになる。なお、このIPアドレスの登録は、図示しないスキャナ/ネットワーク接続装置100の設定メニューにより、固定アドレスを設定しても良いし、DHCP(Dynamic Host Configuration Protocol)クライアントとして設定されるようにしても構わない。
次いで、ステップS2に進み、LCDサーバタスク151を生成起動する(詳細は図5、図6)。そして、ステップS3、S4でタッチパネルタスク152、SCSIサーバ153を生成起動する(詳細は図7、図8)。この後、これらの処理がマルチタスクとして動作するようマルチタスクを有効にする(ステップS5)。
上記の様にして、LCDサーバ151、タッチパネルタスク152、SCSIサーバ152のそれぞれがその処理が開始されることになるが、以下、各々の処理内容を順に説明する。
LCDサーバ151は図5に示す処理手順に従って処理を行う。
先ず、ステップS11では、LCDコントローラ105を初期化し、ステップS12においてスキャナ制御用PC500から接続待ちを示す画面を表示する。この画面は、たとえば、図10に示すようなものである。図10に示す画像は、スキャナ制御用PC500からの接続以前の画像であるので、スキャナ/ネットワーク接続装置100側で自発的に表示するものとなる。また、このとき、スキャナ/ネットワーク接続装置100が有するネットワークインタフェース107に割り当てているIPアドレスも表示する。この結果、スキャナ/ネットワーク接続装置100はDHCPクライアントとしてネットワーク300に接続している場合にも、そのIPが容易に判別できるようになっている。
次いで、ステップS13に進み、ポートP1を監視することで、スキャナ制御用PC500からの接続を待つ。
接続が行われると、ステップS14に進んで、コマンドを受信したか否かを判断し、コマンドを受信したステップS16に進んで、各種コマンドに応じた処理を行う(詳細は図6で説明する)。一方、接続終了の通知を受けた場合(スキャナ制御用PC500において、スキャニングアプリケーションを終了させた場合に相当する)には、ステップS12に進み、次の接続要求を待つことになる。
図6は、上記のステップS16の詳細を示している。
ステップS21ではビットマップ受信であるか否かを判断する。ビットマップ受信であると判断した場合には、左上隅座標、幅、高さ情報に基づき、後続するビットマップデータをLCDコントローラ105に出力することで、画像をLCD106に表示する。実施形態におけるLCD106の表示画素数は320×200であり、2値画像を表示するものであるから、1つの画像の最大サイズは320×200ビット=64000ビットということになり、通常のネットワークの帯域が10Mbpsとか100Mbpsであるから、ネットワークにかかる負担は微々たるものとなるし、画面の更新においてもレスポンスが悪くなることもない。
LCDサーバ151の機能は上記の通りで十分であるが、先に説明したように、タッチパネルタスクは送信すべきスキャナ制御用PCのポートを確定する必要が有るので、LCDサーバ151内でそのポートの確定と、タッチパネルの有効/無効を制御するようにした。
そのため、ステップS23では、タッチパネルスタートコマンドを受信したか否かを判断し、そのコマンドを受信した場合には、そのコマンドに含まれるタッチパネルの座標送信用ポートを取得し、それをRAM103の適当な位置に格納すると共に、タッチパネルを有効を示すタッチパネルフラグをONにする。なお、タッチパネルスタートコマンド内にタッチパネルのポート番号P2を含ませるものとして説明したが、別々でも構わないのは勿論である。
また、ステップS25ではタッチパネルストップコマンドを受信したか否かを判断し、それが受信したと判断した場合には、タッチパネルフラグをOFFにする。
タッチパネルタスクについては後述するが、タッチパネルフラグがON状態にあるときにタッチ座標位置をスキャナ/ネットワーク接続装置100のネットワークアドレスのポートP2に向けてタッチ位置の座標データを出力することになる。
次に、スキャナ/ネットワーク接続装置100におけるSCSIサーバの処理手順を図7のフローチャートに従い説明する。
先ず、ステップS31でSCSIインタフェース108を初期化する。次いで、ステップS32で、スキャナ制御用PC500からの接続が行われるのを待つ。
ステップS33では、ポートP3を監視し、スキャナ制御用PC500からのSCSIに関するコマンド受信があったか否かを判断し、無ければステップS34に進んで接続終了の通知コマンドであるか否かを判断し、それを受信した場合にはステップS32に戻り、そうでなければステップS33に戻る。
さて、SCSIに関するコマンド(接続終了コマンドを除く)を受信したと判断した場合、処理はステップS35に進み、受診したSCSIコマンドを実行する。すなわち、SCSIインタフェース108に対してコマンド処理させる。この結果、SCSIインタフェース108に接続されているスキャナ200から何らかのレスポンスがあるので、それを受信し、受信したデータを今度はスキャナ制御用PCのポートP3に向けて出力する。
上記の通り、SCSIサーバ153の処理は、単純に、ネットワークから受診したSCSIコマンドをSCSIインタフェース108に対して実行させ、その結果をSCSIインタフェース108が返してくる(この中には、原稿を読取ったデータも含まれる)ので、そのデータをスキャナ制御用PC500に通知するだけの処理である。
一般に、SCSIインタフェースに接続されるデバイス(8ビットデータバスの場合)、IDとして0乃至6(ID=7はSCSIインタフェースに割り当てることが多い)のいずれかを有する。また、初期の段階では、SCSIインタフェースに対して、1つ1つのIDに対してスキャンすることで、そのIDを有するデバイスが接続されているか否か、接続されている場合にはそのデバイスを検出し、その結果をOSが保持し、それ以降はそのIDを用いてSCSIデバイスと通信する。
本実施形態でも、スキャナ制御用PC500の仮想SCSIドライバ及びSCSIサーバが同様のことを行うので、如何なるSCSIデバイスが接続されているかはスキャナ制御用PC500側で把握することになる。換言すれば、実施形態におけるSCSIサーバ153は、接続されているスキャナ200が如何なるIDであるのかについての情報は一切不要となる。
次に、スキャナ/ネットワーク接続装置100におけるタッチパネルタスク152の処理内容を図8のフローチャートに従い説明する。
先ず、ステップS41において、初期化処理を行う。次いで、タッチパネル104に対してユーザによるパネルへのタッチ入力に変化があったか否かを判断し、その変化を待つ。なお、タッチ入力の変化とは、タッチパネル104に非接触の状態から押下する変化と、その逆である。後者のそれは座標データとして意味のないデータを送る、或いは、タッチされたか否かの属性情報を付けて送信する等を行えば良いであろう。
タッチ入力に変化があると判断した場合には、ステップS43に進み、そのときにタッチパネルフラグがONになっているか否かを判断する。このタッチパネルフラグのON/OFFの制御は、先に説明したように、LCDサーバ151により行われる。タッチ入力に変化があり、尚且つ、タッチパネルフラグがONであると判断した場合には、そのタッチ座標データ(タッチされたのか、離れたのかを判別できるようにする)を、先のLCDサーバ151のS24で保存されたポートP2を読出し、スキャナ制御用PC500のポートP2宛てにその座標データを出力する処理を行う。
以上、実施形態におけるスキャナ/ネットワーク接続装置100における処理内容を説明した。
<スキャニングアプリケーションの説明>
次に、スキャナ制御用PC500上で動作するスキャニングアプリケーションについて説明する。
なお、以下の説明において、「表示する」、「タッチ入力」、「画像入力」等の用語の意味は、スキャニングアプリケーションから見た場合の処理である。たとえば、スキャニングアプリケーションが行う表示処理は、仮想LCDドライバ551に対して行なうものである。仮想LCDドライバ551は指示された要求に従ってビットマップを生成し、それをスキャナ/ネットワーク接続装置100のIP宛のポートP1に送信して、遠隔のLCD106に表示されるものである。タッチ入力も同様であるし、スキャナに対する読取り等の指示も同様であるので、注意されたい。
図9はスキャニングアプリケーションの処理内容を示すフローチャートである。
このスキャニングアプリケーションは、スキャナ制御用PC500が有するハードディスク509に記憶されているもので、ユーザにより起動する、もしくは、PCの起動に従って自動的に起動するものである。
先ず、ステップS51において、ネットワーク300を介してスキャナ/ネットワーク接続装置100に接続を行う。この接続処理は、スキャナ/ネットワーク接続装置100のIPアドレスのポートP1、P3に接続を行う処理と、タッチデータの受信に使用可能なポートP2をサーチし、それを通知する処理(タッチパネルフラグONコマンド)が含まれる。
次いで、ステップS52に進んで、LCD106への画面表示処理を行ない、ステップS53でタッチ入力を行ない、それに応じた処理をステップS55で行うことを繰り返す。S52、S53、S55の処理を繰り返すことで、スキャナ/ネットワーク接続装置100におけるユーザの入力及びそれに対するレスポンス画面の表示更新が順次行われることになる。画面が切り換わったときには、当然、その画面に相当するイメージを描画する処理をステップS52で行ない、ユーザはそれに応じた入力を行うことになる。ここで、注目したい点は、スキャニングアプリケーションは、タッチ入力された座標情報を取得したとき、その直前に表示されていた画面イメージ、すなわち、ユーザによる操作するであろう各種ボタン等の座標位置を把握しているから、そのタッチ座標情報が如何なる指示であるのかが判明している点である。また、ユーザによるタッチされたボタンに対する処理は、原則として、タッチ状態から非タッチ状態になったときに行われるものとした。タッチ状態になった場合には、そのタッチされたボタン等のハイライトイメージを転送する処理を行うことになる。
また、後述する説明から明らかにするが、上記S52、53、55のループにより、ユーザによる各種設定登録も行われる。
さて、上記のように、必要に応じて画面を更新する処理を行っては、各種設定をユーザが行うことになるが、最終的に、スキャンの開始指示に相当する座標情報を受信したと判断した場合には、ステップS54からステップS56に進み、スキャナドライバに対して読取りを指示する。この結果、仮想SCSIドライバ553は、その指示コマンドをスキャナ/ネットワーク接続装置100であるIPアドレスのポートP3に対して行ない、スキャンを開始させることになる。また、これにより、スキャナ/ネットワーク接続装置100からは読取った原稿画像データが送られてくることになるので、仮想SCSIドライバ153はスキャナドライバにそのデータを出力し、最終的にスキャニングアプリケーションに渡されることになる(S57)。
スキャニングアプリケーションは、この読取り画像の受信が完了すると、先の設定処理(S52、S53、S55のループ)で設定した内容に従い、読取り画像に対する後(あと)処理を行う。
実施形態における後処理の種類としては、次のようなものが実現できるようにした。
1.所望とするファイルサーバ(ユーザが指定したファイルサーバ)への読取り画像の格納、及び、その際の格納ファイル形式の設定、
2.FAX送信(FAXサーバへの転送)、
3.電子メールの添付ファイルとしての送信、
3.FTPによるサーバへの転送、及び、その際の格納ファイル形式の設定、
4.所望とするプリンターサーバでの印刷、
5.1乃至4の所望とする組み合わせ処理
これらの処理については後述することととする。
また、図9において、スキャニングアプリケーションを終了する旨の指示があった場合には(この指示は、スキャナ制御用PC500上での指示である)、ステップS59で切断処理(タッチパネルフラグOFFの指示コマンドを含む)を行ない、本処理を終えることになる。なお、スキャニングアプリケーションは常時稼働状態にしておいても勿論構わない。
以上の通りであるが、スキャニングアプリケーションの具体的な処理内容を理解し易くするため、図10乃至図38を用いて説明する。
図10は、スキャナ制御用PC500上でスキャニングアプリケーションを起動する以前の、スキャナ/ネットワーク接続装置のLCD106に表示される画面を示している。
スキャニングアプリケーションが起動すると、上記のように接続が試みなれるが、スキャニングアプリケーションがPC500にインストールが行われ、最初に起動した場合、スキャナ/ネットワーク接続装置100のIPアドレスは不明であるので、図11に示す画面をスキャナ制御用PC500に表示し、スキャナ/ネットワーク接続装置100のIPを入力し、登録保存を行う。この登録は、HDD等に記憶することで、次回起動した際には、IPアドレスの入力は求めない。
さて、接続が行われると、スキャニングアプリケーションは、スキャナ/ネットワーク接続装置100のLCD106に初期画面を表示させるため、図12に示す画面を仮想LCDドライバ551に描画させる。図12に示すように、表示すべき画像は、LCD106の全面であるので、仮想ドライバ551は、表示位置0、0、幅320、高さ200の画像を描画し、そのビットマップイメージをスキャナ/ネットワーク接続装置100のIPアドレスのポートP1に向けて送信することになる(図9のステップS52の処理に相当する)。
図12の場合、ユーザはGuest(一般の不特定ユーザのためのもの)、Jamというユーザ名、staffというユーザ名のいずれかをタッチすることになる。たとえば、「Guest」をタッチすると、その座標位置情報がスキャナ制御用PC500に通知され(図9のS53に相当)、その結果、スキャニングアプリケーションは、その座標データに基づき、いずれがタッチされたのかが判明するから、その選択された内容を一時的にRAM503に記憶する(S55に相当)。
そして、その「Guest」がタッチされたことを報知するため、その部分のハイライトイメージ(反転イメージ)を作成し、仮想LCDドライバ551に対して表示指示する。また、ログインユーザ名の選択が行われたことになるから、「ログオン」ボタンが機能することを示すため、その「ログオン」ボタンも反転イメージも同様に仮想LCDドライバ551に表示させる。仮想LCDドライバ551は表示指示されたビットマップイメージを、スキャナ/ネットワーク接続装置100のポートP1に向けて送信することで、表示画面を更新する(S52に相当)。
以上の結果、スキャナ/ネットワーク接続装置100が有するLCD106は図12の画面から図13に示す画面に更新されることになる。
以下、スキャナ制御用PC500とスキャナ/ネットワーク接続装置100との通信が同様に行われるものとし、簡潔に説明することとする。
図13の画面において、ログオンボタンがタッチされると、図14に示す画面がLCD106に表示される。同図は、スキャナ200にセットした(する)原稿画像を読取った際に、その出力先を設定する画面である。基本的に、この画面が表示されると、送信先を決めるため、「宛先表」をタッチすることで、宛て先一覧を表示させ、必要な分だけ順次選択することになる。
ただし、図14において、「200dpi」と表示されていることからも分かるように、デフォルトで読取り解像度を200dpiであることが示されている。この解像度を変更したい場合には、同箇所をタッチすることで、図15のような画面が表示される(手前に位置するウインドウイメージを描画し、その位置とサイズ及びビットマップを転送することになる)。
また、図14において、「グレー(モノクロ256階調)」ボタンをタッチすると、図16に示す読取りモード指定の画面を表示し、「A4」ボタンをタッチすると、図17に示す読取る原稿サイズの指定用ウインドウが表示される。また、「片面」ボタンがタッチされると図18に示す片面、両面の選択ウインドウが表示される。図15乃至図18のウインドウで所望とする項目をタッチし、それぞれのウインドウでOKをタッチすると、その結果が反映された図14と同様の画面が表示されることになる。
ここで、若干、捕捉説明する。通常、スキャナ装置に添付されているスキャナドライバ(通常は、CDROMよりインストールすることになる)に対し、アプリケーション等から如何なる読み取り解像度があるか、読み取り原稿サイズがどのようなものをサポートしているのか、更には、読取り階調としてどのようなモード(白黒2値、白黒多値、カラー多値等)を問い合わせると、そのスキャナドライバから回答が返ってくる。図15乃至図18は、実施形態でのスキャナ200にドライバから上記のようなデータを取得することで、その表示画面を描画することになる。換言すれば、実施形態におけるスキャナ200及びスキャナドライバの組み合わせにより選択可能な機能によって、図15乃至図18に表示される画面が決定されるとも言える。
また、読取りモードの指定であるが、たとえば、原稿画像を誤差拡散処理して読込む場合の処理の方法としては、2通り存在する。1つ目は、スキャナ装置自身に各種読取りモードが存在し、そのモード指定のコマンドを送ることで原稿の読取るものである。そして、2つ目は、スキャナ装置が一律同じ解像度で、多階調画像を読取る装置であって、スキャナドライバにおいて、解像度変換等の処理を行うものである。
前者のようなスキャナ及びスキャナドライバの組み合わせの場合、スキャニングアプリケーションから、モードを指定すると、スキャナドライバは仮想SCSIドライバ553に対して、そのSCSIコマンドを出力することになり、結果的に、スキャナ/ネットワーク接続装置100のSCSIサーバはそのコマンドを接続されたスキャナに出力することになる。
また、後者の場合、スキャナドライバは、自身内部で処理するわけであるから、仮想SCSIドライバに対しては、設定モードに対応するコマンドは出力されない。
つまり、スキャナ200とスキャナドライバの組み合わせが正しい限り、スキャナ200に対して不明なコマンドが発行されることはあり得ないことになる。従って、実施形態における仮想SCSIドライバが、実際に使用するスキャナ装置及びスキャナドライバを実質的に選ばない点、及び、今後、新規にスキャナ装置単体を導入しても、それをネットワークスキャナとして活用できることが可能になるのは容易に理解できよう。
さて、図14の画面(或いは図14の画面に対して各種設定を行った後であれば、当然、選択された宛て先が表示された画面になる)において、「宛先表」をタッチすると、スキャニングアプリケーションは、スキャナ制御用PC500でログオンユーザ名が「Guest」であることから、HDD509内の「Guest」用に作成したアドレス帳を参照し、登録されている宛先一覧を表示させるべく、たとえば図19に示すような画面を仮想LCDドライバを用いて表示させる。
図19に示す如く、宛先リスト画面が表示される。図示に示す如く、宛先リスト画面は、宛先リスト、宛先検索ボタン(虫眼鏡アイコンのボタン)、宛先の追加や削除を行うための編集ボタンをはじめ、スクロールボタン、閉じるボタン等が表示される。
宛先リスト領域には、図示では4つ表示されているが、これはユーザ「Guest」のアドレス帳には4つ登録されているからである。なお、「すべて」と表示されているコンボボックス形式のボタンをタッチすると、カテゴリ毎に選択する宛て先が指定できる。たとえば、FAX送信であれば、このボタンをタッチすることで、FAX送信として登録された宛て先のみが表示される。図示の場合「すべて」となっているので、登録されてる宛先の全てのカテゴリが混在した状態で表示されていることを示している。
また、図19の画面における「MENU」ボタンをタッチすると、その時ログオンしているユーザ用のアドレス帳(図示の場合、ユーザ「Guest」用のアドレス帳)を編集するため、図20の画面が表示される。図示では、新に宛て先を登録するための「登録」ボタン、既登録宛先を編集する「編集」ボタン、既登録宛て先を削除する「削除」ボタン、そして、終了を示す「閉じる」ボタンで構成される。
図20の画面で、「登録」ボタンをタッチすると、図21に示す画面が表示される。図示に示す如く、実施形態では、読取り画像の送信方法として、FAX、FTP、メール、PC(ファイルサーバ)、プリンター、グループのいずれにするかを指定できる。なお、「グループ」とは、複数の宛先をまとめたものを言い、通常のFAXにおける同報と同様のものである。ただし、異なる送信カテゴリが混在していても構わない点で大きく異なる。
ここで、「PC」ボタンをタッチした場合、図22に示す画面が表示されるので、ここでその宛先の表示名称、及び、ネットワーク上のパス名を入力する。
「表示名称」ボタンをタッチすると、図23に示すようにキーボード画像が表示されるので、所望とするキーを順次入力していく。1つのキー入力がある度に、カーソル位置に入力文字が表示されるが、それは、その表示欄に文字のイメージをその都度、該当する位置に描画した結果であるのは先に説明したとおりである。文字のイメージは、せいぜい十数ドット×十数ドット程度であるので、仮想LCDドライバが転送する情報量が微々たるものであり、タッチ入力に対して十分なレスポンスが得られる。すなわち、ユーザにしてみれば、あたかもスキャナ/ネットワーク接続装置100内での処理であるかのような操作環境を提供できる。
図24は、たとえば、登録する表示名として「Aoki ToDo」と入力した例を示している。キー入力を間違えたり、文字を挿入する等の操作は、カーソル移動ボタン、バックスペース等で対応できるし、たとえば、「シフト」ボタンをタッチすることで、表示された個々のキーの文字を大文字に切り替えることができる(大文字で示されるキーボードイメージを描画することになる)。スキャナ制御用PC500では、仮想キーボードによるキー入力がある度に、その座標データからいずれのキーが押下されたのか判断し、文字キーであれば順にその文字コード記憶し、修正等のキーであれば記憶された文字列を修正する等の処理を行うことになる。
こうして、表示名称の登録が完了した場合には、図24における「OK」ボタンをタッチすることで、図22の表示名称の入力欄には「Akio ToDO」の文字列が入力されることになる(スキャナ制御用PCはこの文字列コードを取得することが可能となる)。
また、図22の画面で、「パス」ボタンをタッチすると、図25に示す画面が表示される。この画面は、スキャナ制御用PC500が、ネットワーク上のファイル供給しているPCをブラウズして得た情報に基づく画面である。通常、マイクロソフト社のネットワークにおいては、ブラウズマスタとなるPCがネットワーク上の供給設定されたPC(サーバ)を管理しているので、そのブラウズマスタからネットワーク上のファイルサーバの情報を取得できる。
さて、図25において、登録名称「Aoki ToDo」のネットワークパス名となるサーバを選択するが、その画面に表示していないサーバを選択する場合には、スクロールボタン(画面右上に表示されている2つの三角形ボタンのいずれか)をタッチして、スクロールさせ、目的とするサーバを探し出す。ユーザから見ると、スクロールしているかのように見えるが、現実には、サーバ一覧を表示する領域のビットマップイメージをスクロールボタンがタッチされる度に、スキャニングアプリケーションが仮想LCDドライバ551に描画させ、その結果がLCD106に表示されることになるのは既に説明した通りである。
ここでは、サーバとして「Aoki」が選択されたものとして説明する。サーバ「Aoki」をタッチして選択したとき、スキャナ制御用PC500はサーバ「Aoki」に対して、サーバ「Aoki」が共有しているリソースを取得することを試みるが、このときのログインする際のユーザ名称はスキャナ制御用PC500にログオンしているユーザとなる。もし、サーバ「Aoki」にログインパスワードが設定されている場合、そのサーバからパスワードの入力が求められるので、そのパスワードを入力する画面を表示する。図26がその画面の例である。図示の如く、仮想的なキーボードを表示し、その各キーを入力することで、パスワードを入力することになる。ただし、スキャナ制御用PC500は、サーバ「Aoki」からパスワードが求められていることを検出しているので、キー入力されたパスワードの各文字が第3者に知らせないようにするため、入力される文字が何であれ「*」という文字イメージを描画し、LCD106に表示させる。最終的に、パスワードの入力が完了すると、「OK」ボタンをタッチする。この結果、入力されたパスワードが、サーバ「Aoki」に設定したパスワードと合致しない場合には、再度、入力を促することになる。また、合致した場合には、サーバ「Aoki」が共有設定している共有名一覧を表示する。たとえば、図27である。ここで、所望とする共有名を選択し、最終的に「OK」ボタンをタッチすることで、新規登録する名称及びそのパスの設定が完了する。
図28は、図27の画面において、サーバ「Aoki」が共有設定しているリソース名「ToDo」をタッチし、次いで、「OK」ボタンをタッチした場合の画面を示している。つまり、先に示した図22における入力結果を示していることになる。ここで「OK」ボタンをタッチすることで、スキャナ/ネットワーク接続装置100におけるログインユーザ名「Guest」のアドレス帳に、ファイル共有されたリソース「\\Aoki\ToDo」が、略称表示名「Aoki ToDo」として登録が行われることになる。
上記はファイルサーバの登録であったが、プリンターサーバもネットワーク300上に存在するものであるので、同様の操作で登録できる。また、メール、FAX、FTP等はネットワーク300の外のインターネット上に存在するのでネットワーク300上からはブラウズできないので、以下のようになる。ここでは、図21の画面で「メール」をタッチした場合のメール宛先を登録するについて説明する。
この場合の画面は、図29に示すようなもので、表示名称、メールアドレスを入力することになる。これらは、図23に示す仮想キーボードを表示させることで設定することになる。図30はその入力が行われた後の画面を示しており、ここで「OK」ボタンをタッチすることで、新たなメール宛先名「Tanaka Taro」が登録されることになる。
上記のように、原稿読み取り宛て先としてのファイルサーバ+その供給名(一般にディレクトリ名)、メール宛先の登録が行われるが、再度、宛先リスト(図19)の画面を表示させたときには、これら新たに登録した内容が反映されたものとなる(図31参照)。
以上は、図20の画面で「登録」がタッチされた場合の説明であったが、同図において「削除」ボタンをタッチした場合には、登録されているデータを削除することができる。図32はその削除画面を示している。削除の仕方は、削除対象となる宛て先をタッチし、次いで、「OK」をタッチすることで行われる。
なお、図20の画面で、「編集」ボタンがタッチされると、登録されている宛て先一覧が表示され、その中の所望とするものを選択することで、個々の宛て先のデータを編集することが可能であるが、上記説明からすれば当業者であれば容易に想到できよう。
以上、宛て先の登録等について説明したが、上記はスキャナ/ネットワーク接続装置100にログオンする際のユーザ名として「Guest」とした場合である点に注意されたい。他のユーザ名でログオンした場合には、それ専用のアドレス帳に従って作業が進むことになる。
次に、図14において、「送信設定」ボタンをタッチされた場合の処理を説明する。
図33は、「送信設定」ボタンをタッチされた場合に表示される画面を示している。図示の如く、ファイル名、ファイル形式、メールのボタンが表示される。
「ファイル名」ボタンがタッチされた場合には、図34に示すように、仮想的なキーボードを表示し、各キーをタッチすることで、原稿画像を読取った際の送信宛て先(従って、ファイル名は送信宛て先としてPC、FTPは指定されたときに有効になる)に格納される際のファイル名を設定できる。なお、ファイル名が入力され、実際に読取った画像を指定した宛て差に転送する際のファイルの名称は、ユーザ入力のファイル名の文字列+入力した年月日時分秒を接続したものとする。
また、図33において、「メール」ボタンがタッチされると、通常のメーラーソフトと同様、図35に示す如く、件名、本文を入力する画面が表示される。件名、本文はこれまで説明したように、夫々のボタンをタッチした際に仮想キーボードを表示して入力することになるので、その詳述は省略する。
また、図33において、「ファイル形式」ボタンがタッチされた場合、図36に示す画面を表示する。図示に示す如く、ファイル形式は、モノクロ(2値)、グレー、カラーの3種類に対して設定できる。また、図示では、デフォルトとして、「モノクロ」はマルチTIFF(TIFF形式を複数ページに拡張したファイルフォーマット)、「グレー」及び「カラー」はPDF(米国アドビ社が提唱するファイルフォーマット)が設定されていることを示している。なお、これらデフォルトのファイル形式は、ユーザ毎(ここではGuest)に設定変更できるものである。
ここで、「モノクロ」の現在設定されている形式を変更したい場合には、「モノクロ」の「変更」ボタンをタッチする。この結果、図37に示すように、従前に選択されている形式が反転された画面が表示される。ユーザは、その中から所望とするものを選択し、「OK」ボタンをタッチすることで変更することができる。なお、一旦、変更すると、次回のデフォルトは、この結果が反映されることになる(スキャナ制御用PC500は、各ユーザ毎のファイル形式を記憶保持する)。
また、たとえば、図36の画面において「カラー」に対する「変更ボタン」をタッチした場合には、図38に示す画面が表示される。図37との違いは、カラーであるので、ファイル形式として「JPEG」が付加された点である。変更方法は図37と同様である。
以上の如く、読取り解像度等の設定、宛て先の登録、ファイル名、ファイル形式、メールの設定等の処理は、ユーザが自由にスキャナ/ネットワーク接続装置100のユーザインタフェースを利用して行うことが可能になるが、いずれにしても、図19もしくは図31の画面から、所望とする宛て先を1つ以上タッチすることを行ない、「OK」ボタンをタッチすることで、宛て先が決定される。より詳しく説明するのであれば、宛て先を一度タッチするとその宛て先が選択されていることを示すため反転表示され、再度タッチすると非選択状態を示すため表示形態は元に戻るようにしてある。従って、ユーザは、1以上の所望とする宛て先を選択できることになる。
こうして、宛て先の選択が行われると、図14の「送信先」の下に示される欄に選択した宛て先が表示され、ユーザは自身が選択した宛て先を確認することができるようになる。
ここで特に注目したい点は、実施形態の場合、送信宛て先として、異なるカテゴリの混在を許容していることである。すなわち、1つの原稿読み取りに対して、送信先として1つはファイルサーバ、もう1つはメールとしての送信というように、異なる送信カテゴリが選択できる。勿論、これ以外の送信カテゴリであるFAX、プリンター、FTP、グループについても混在できる。
以上説明したように、必要に応じて読取りモード等各種設定を行うことができ、送信宛先の選択が行われていくが、この処理はネットワーク300上のスキャナ制御用PC500の処理、より詳しくは、図9のS52、S53、S55のループ処理で行われていくものである。
さて、図14の宛て先リストの欄に宛先が表示され、「スキャン」ボタンをタッチされたことを、スキャナ制御用PC500上で動作しているスキャニングアプリケーションが判断した場合、スキャナドライバに対して設定内容の通知及び読取り指示を発行する。これを受け、スキャナドライバは、設定内容がスキャナ200側で行われるものであれば、その設定コマンドと共にスキャン開始コマンドを仮想SCSIドライバ553に出力し、設定内容がスキャナドライバみずから行う種類であればスキャン開始コマンドを仮想SCSIドライバ553に出力する。仮想SCSIドライバ553はネットワーク300を介して、上位の処理であるスキャナドライバから指示されたコマンド(スキャナ200のSCSI−IDも含まれる)をスキャナ/ネットワーク接続装置100のポートP3に向け送信することになる(図9のステップS56に対応する)。
スキャナ/ネットワーク接続装置100におけるSCSIサーバ153は、このコマンドを受け取り、SCSIインタフェース108に対して実行することで、スキャナ200に原稿読み取りを実行させることになる。この結果、SCSIサーバ153はSCSIインタフェース108を介して読取ったデータを受信するので、それをスキャナ制御用PC500のポートP3、すなわち、仮想SCSIドライバ553に送信する。仮想SCSIドライバは、受けとった画像データをスキャナドライバに送出し、スキャナドライバで適当な処理を行った後(スルーの場合もある)、スキャニングアプリケーションにその画像データを渡す。スキャニングアプリケーションは、それを受信し、HDD509内の一次保存エリアに格納することになる(図9のステップS57に対応する)。
この後、スキャニングアプリケーションは、図9のS52、S53、S55のループ処理で設定された内容に従い、格納した画像の送出処理を行うことになる(図9のステップS58に対応)。
以下、図9のステップS58における具体的な処理内容を図39のフローチャートに従い説明する。
先ず、ステップS61において、図9のステップS52、S53、S55のループ処理で、選択された宛て先情報を、送信カテゴリ別にソートする。たとえば、FAX送信するのであればFAX送信宛て先をまとめる等の処理である。次いで、ステップS62乃至S66で、FAX送信、メール送信、プリンタへの送信(印刷)、FTP送信、PCへの送信(ファイルサーバへの格納)についての宛て先があるか否かを判断し、夫々において送信処理をステップS67乃至71でを行う。
たとえば、FAX送信の場合(ステップS67)、FAXサーバ(図1参照)に、宛て先情報(電話番号)と共に送信する。FAXサーバは、受診した画像データを、指定された宛て先に向けてFAX送信することになる。なお、FAX送信する宛て先が複数存在する場合、個々の宛て先毎にFAXサーバに送信する。但し、FAXサーバは同報送信機能を有しているのであれば、この限りではない。
また、スキャナ制御用PC500自身にFAXモデムが接続されている場合には、FAXモデムを利用したファクシミリサービスを起動し、それに渡せば良いので、スキャナ制御用PC500とは独立したFAXサーバは必須ではない。
メール送信の場合には、画像データをMIME(Multipurpose Internet Mail Extensions)形式に変換し、送信相手先メールアドレスと共にメールサーバに送信する。また、件名や本文が存在すればそれも併せて送信するのは勿論である。なお、スキャナ制御用PC500からメールサーバへの通信プロトコルはSMTP等を用いれば良い。メールサーバは、公知の手順で、ルータ等を介して送信することになる。
また、印刷処理の場合、ネットワークプリンタに向け、その画像データを出力する。但し、この出力は、周知の通り、スキャナ制御用PC500が有するプリンタードライバ(ユーザが指定したネットワークプリンタ用のドライバ)を介して行うことになる。
FTP送信についても、FTPプロトコルに従って指定されたFTPサーバに向けて送信するだけである。更に、送信先がPC(ファイルサーバ)である場合には、そのファイルサーバの共有名に向けて送信することになる。ただし、送信宛て先がFTPサーバ、メールサーバ、PC等である場合、送信するファイル名は設定されたファイル名にし、設定されたファイル形式(たとえばPDF等)に変換してから送信することになる。
ここで注目する点は、先に説明したように、1つの原稿画像の読み取りにより、複数の宛て先、しかも、異なる送信カテゴリが混在しても、一度の原稿の読み取りで実現できることである。すなわち、送信する宛て先が幾つあっても、更には、送信するカテゴリが如何なる種類及びそれらが混在していても、その割振りはスキャナ制御用PC500が代行する点である。この結果、スキャナ200による原稿読み取りが一回で良くなる。
以上説明したように本実施形態によれば、ハードウェアとしてのスキャナ/ネットワーク接続装置100と、汎用のPC上で動作する仮想ドライバ群及びスキャニングアプリケーションでもって、既存の汎用のSCSIスキャナ装置をネットワークで利用できることになる。しかも、スキャナ/ネットワーク接続装置100はその構成は非常に単純なものであるので、安価にネットワークスキャニングシステムを構築することが可能となる。
また、上記の如く、スキャナ/ネットワーク接続装置100で動作するファームウェアは必要最低限の機能しか持たないわけであるから、そのファームウェアのアップグレードは実質的に無くすることが可能となる(ファームウェアをアップデートする場合には書き換え可能なフラッシュメモリ等に記憶することが、マスクROMで構成できるので更に安価な装置とすることが可能になる)。
また、読取った画像の送信先は、ファイルサーバに限らず、メール、FAX、プリンタ等から指定できることになり、これまでのように、一旦ファイルサーバに格納後、PCを利用しての操作も簡略化できるようになる。
また、読み取りに関する設定も、スキャナ/ネットワーク接続装置100上で、設定や変更が可能となるので、ユーザにしてみれば、原稿画像の読み取り指示とその条件の設定が一連の作業で行え、ユーザインタフェースとしても優れた環境を提供できるようになる。
また、本実施形態によれば、原稿画像をFAXし、尚且つ、メールで送信するという異なる送信カテゴリを混在させて実行できるようになり、ユーザの利便性を更に向上させることができる。
<第2の実施形態>
上記実施形態において、たとえば、スキャナ200より原稿読取って、スキャナ/ネットワーク接続装置100がスキャナ制御用PC500にその読取画像データを送信中、スキャナ制御用PC500のCPU501はドライバやアプリケーションの処理、具体的には、画像データの受信及び格納処理に多くのCPUパワーが費やされる。
この意味は、原稿画像を読取中は、スキャナ制御用PC500からスキャナ/ネットワーク接続装置100への表示画面の更新を行うのが困難であり、もしそれを行うと、肝心の読取り画像データの伝送速度が落ちることにもなりかねないことを意味する。従って、画像データの伝送速度を優先させるのであれば、スキャナ/ネットワーク接続装置100のLCD106の表示画面に変化を与えることができない。スキャナ/ネットワーク接続装置100のユーザにしてみれば、原稿画像が読取られ伝送中においては、LCD106の画面がフリーズ状態となって見えることになり、不安を与えることになる。
そこで、本第2の実施形態では、スキャナ/ネットワーク接続装置100に、自発的に複数の画像を切り替え表示する、アニメーション機能を付加させるようにした。
切り替えるべき画像は、スキャナ制御用PC500のスキャニングアプリケーションから、予めスキャナ/ネットワーク接続装置100に出力し保存させておき、スキャナ制御用PC500からアニメーションの開始及び終了を制御するコマンドと送信することで対処する。
また、スキャナ制御用PC500におけるスキャニングアプリケーションが、アニメーションの開始コマンドの発行するタイミングは、スキャンスタートコマンドを発行する直前に行うことになる。
かかる処理を実現するには、スキャナ/ネットワーク接続装置100の処理はたとえば次のようにする。
図40はスキャナ/ネットワーク接続装置100の起動時の処理手順を示している。図4と異なるのは、ステップS4とS5との間に、ステップS6のアニメーションタスクの生成起動に係る処理が追加された点と、ステップS1の初期化処理には、アニメーションフラグ(RAM503に確保されるもので、アニメーションを有効/無効を決定するためのフラグ)をOFFに処理が追加される点である。これ以外は、図4と同じである。
アニメーションタスクは、たとえば図41に示す通りである。
先ず、ステップS71においてアニメーションフラグがONであるか否かを判断し、ONにならない限りは何の処理もしない。
また、アニメーションフラグがONになったと判断した場合には、ステップS72に進み、不図示のタイマ値を取得する。そして、ステップS73において、前回の画像を表示してから設定時間以上経過したか否かを判断する。もし設定時間以上経過していると判断した場合には、RAM103に格納された次の画像データを読出し、LCD106に表示させるべくLCDコントローラを制御する。
図42は、第2の実施形態におけるLCDサーバ151の処理手順を示している。
図6と異なるのは、ステップS201乃至S206が追加された点である。すなわち、アニメーション用ビットマップデータを受信した場合に、そのアニメーションビットマップをRAM103に保存する処理と、アニメーションスタート/エンドコマンドに応じてアニメーションフラグをON/OFFする処理が設けられた点である。
一方、スキャナ制御用PC500のスキャニングアプリケーションとしては、図9におけるステップS56の直前で、ユーザがスキャンスタートのボタンがタッチしたことを受けて、アニメーション用であることを示すコマンドと共にビットマップイメージ(少なくとも2つ)をスキャナ/ネットワーク接続装置100に送信し記憶させると共に、アニメーションスタートコマンドを送信しする。そして、ステップS57で画像入力が完了した後に、アニメーションストップコマンドを送信するようにすれば良いであろう。
図45は、上記のようにしたRAM103に保存されたアニメーション用画像を管理するテーブルを示している。図示に示す如く、このテーブルは、ビットマップイメージのRAM103上における格納ポインタ(アドレス)で管理し、且つ、各フレームの表示時間が設けられている(表示間隔が一律同じであれば、このフィールドは不要)。そして、最後のフレームの次のレコードには、NULLデータを記憶することで、これ以上のフレームが存在しないことを示している。実際、単純なアニメーションの場合には、2乃至4、5程度のフレームで良いが、凝ったアニメーションを行うこともできる。また、保存するビットマップイメージは画面サイズにする必要はなく、アニメーションを行う部分(図示ではx、y座標が100、120、幅50、高さ70のビットマップイメージ)のみを記憶することで、記憶するサイズは少なくできる。
かかる処理を行うと、たとえば、原稿を読取り、その画像データをスキャナ制御用PC500に送信している最中、図43、図44のような画像が交互に表示されることになり、ユーザに対して処理が進んでいることを知らしめることが可能となる。
なお、実施形態では、2つの画面が切り換わる例を示したが、3つでも良いし、それ以上でも構わない。また、実施形態ではアニメーション処理を、LCDサーバ等のタスクと同等に扱ったが、アニメーション処理における画面の切り換え間隔は1秒当たり2回もあれば十分であるので、マルチタスク処理の優先度は低くして構わない。場合によっては、0.5秒毎に割り込みをかけて動作するようにしても構わないであろう。
また、スキャナ200にADFが設けられ、一度に複数原稿を読取ることができるような場合、アプリケーションは1枚の原稿を読取る毎に、ページ番号を示すイメージ部分のみを転送することで、今現在、何枚目を読取っているのかについても報知させる。
更に、本第2の実施形態を発展させると、たとえば、スキャニングアプリケーションがスキャナ/ネットワーク接続装置100から、適当な期間経過してもタッチ位置情報を受信しなくなったとき、その時に表示させていた画像情報を待避し、そのかわり、アニメーション用ビットマップデータ及びアニメーションスタートコマンドを送出するようにしても良いであろう。そして、タッチ座標データを受信したとき、アニメーションストップコマンドを送信し、待避していた画像を送信する。このようにすれば、ユーザによる操作していない期間においては、コミカルなアニメーションを行えるようになろう。
なお、実施形態におけるスキャナ/ネットワーク接続装置100に接続するスキャナはSCSIインタフェースを有する装置であるものとして説明したが、USB(Universal Serial Bus)接続のスキャナであっても構わないし、他のインタフェースでも構わない。たとえば、USBスキャナの場合には、スキャナ制御用PC500には、仮想USBドライバをインストールし、スキャナ/ネットワーク接続装置100にはSCSIサーバのかわりにUSBサーバを搭載すれば同様のことが実現できるのは、当業者であれば容易に想到し得よう。
また、スキャナ/ネットワーク接続装置100が有するユーザインタフェースもLCD(液晶ディスプレイ)+タッチパネルに限定されるものではなく、如何なるものでも構わないであろう。別なユーザインタフェースを採用した場合には、それに応じたドライバやファームウェアを容易すれば事足りるからである。ただし、スキャナ/ネットワーク接続装置100には、物理的なスイッチやボタンを設けるのは望ましいとは言えない。なぜなら、このような物理的なボタンやスイッチを設けた場合、そのボタンのマークや文字によって、その機能が制約されるからである。従って、上記実施形態の如く、ユーザインタフェースという観点からすれば、表示画面に表示する論理的(グラフィカル)なボタン等の方が望ましい形態であると言える。
また、実施形態では、原稿画像を読取る目的として、FAX送信、メール、プリンタ(印刷)、FTP送信、PCへの格納を例にして説明したが、これによっても本願発明が限定されるものではない。たとえば、OCR処理を行わせ、その結果を所望とする宛て先に送信するようにしてもよいであろうし、ファイリングシステムに保存するようにしても構わないであろう。
また、スキャナ装置から原稿画像を読取らせ、各種画像編集する一般のアプリケーションは、実施形態で説明した仮想LCDドライバ、仮想タッチパネルドライバを利用するようにはなっていないが、少なくとも、実施形態における仮想SCSIドライバはそのまま利用できることになる。すなわち、本実施形態における仮想SCSIドライバがインストールされていれば、既存のアプリケーションはそのまま動作させることができるのは容易に想到し得よう。
また、実施形態では、ハードウェアとしてスキャナ/ネットワーク接続装置100を必要とするものの、その制御用アプリケーション(実施形態でのスキャニングアプリケーション)、仮想ドライバは、パーソナルコンピュータ等の汎用の情報処理装置にインストールすることで実現できるわけであるから、本願発明がこれらコンピュータプログラムを含むのは明らかである。
また、通常、コンピュータプログラム(アプリケーションやドライバ)は、CDROM等のコンピュータ可読記憶媒体に記憶され、コンピュータにセットしてインストールされるものであるから、本願発明はこのようなコンピュータ可読記憶媒体をもその範疇とすることも明らかである。