以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
<第1の実施形態>
図1は、本発明の第1の実施形態に係る、一般的な情報処理装置として例示したコンピュータと、画像読取装置としてのスキャナとのソフトウエアブロック図である。
情報処理装置の一例であるコンピュータ100には、オペレーティングシステム101、ファイルシステム201、USBマスストレージドライバ202及びUSBインターフェースドライバ103がインストールされている。オペレーティングシステム101は、いわゆるOSのことであり、コンピュータ100の基本ソフトウエアである。ファイルシステム201は、ハードディスクドライブなどの記憶装置にファイルを格納するためのソフトウエアである。USBマスストレージドライバ202は、ハードディスクドライブ、CD−ROM、DVD−ROM、CD−R、DVD−R、USBメモリなどのマスストレージを制御するためのソフトウエアである。USBインターフェースドライバ103は、USBインターフェースに接続されたUSBデバイスを制御するためのソフトウエアである。なお、これらのソフトウエアはOSの一部であってもよい。
一方、周辺装置の一例であるスキャナ装置106には、キャプチャアプリケーション210、制御ファイル204、USBディスクドライブインターフェース205及びUSBマスストレージクラスインターフェース206が備えられている。キャプチャアプリケーション210は、コンピュータ100で実行されて画像を読み取るための制御を行うソフトウエアである。制御ファイル204は、キャプチャアプリケーション210を実行しているコンピュータ100からの制御コマンドなどが書き込まれるファイルである。USBディスクドライブインターフェース205は、スキャナ装置106に備えられているメモリ(フラッシュメモリ、EEPROMなど)をディスクドライブとして使用するためのソフトウエアである。USBマスストレージクラスインターフェース206は、USBディスクドライブインターフェース205を介してメモリをUSBマスストレージとして使用するためのソフトウエアである。
なお、一般的なスキャナ装置は、これらのソフトウエアの代わりに、USBスキャナクラスインターフェースを備えている。また、一般的なパーソナルコンピュータは、キャプチャアプリケーションソフトウエアや専用のスキャナドライバを備えている。しかし、本発明であれば、USBスキャナクラスインターフェースは必ずしも必要ではない。また、パーソナルコンピュータ側では、キャプチャアプリケーションソフトウエアや専用のスキャナドライバが必ずしも必要ではない。
設定ファイル212は、スキャナ装置106の画像読取処理に適用される各種のパラメータを保持するファイルである。このようなパラメータとしては、たとえば、読取モード(モノクロ/カラー)、読取サイズ(例:A4、B5、任意サイズ)、解像度(例:600dpi、300dpi)、読取面(片面/両面)などがある。
とりわけ、本実施形態のスキャナ装置106は、スキャナドライバやアプリケーションソフトウエアをパーソナルコンピュータにインストールすることなく画像の読取を実行する。管理者権限がなければこれらのソフトウエアをインストールできない場合でも、スキャナ装置106を使用可能とするためである。なお、管理者権限がなければソフトウエアをインストールできない場合は、設定ファイルをパーソナルコンピュータに保存することもできない。そこで、本実施形態では、コンピュータごとの設定パラメータおよびユーザごとの設定パラメータの少なくとも一方をスキャナ装置106の内部に格納することを特徴としている。
図2は、一般的なパーソナルコンピュータとして例示するコンピュータとスキャナのハードウエアブロック図である。図2において、コンピュータ100は、CPU121、ROM123、RAM124、ハードディスクドライブ122、USBインターフェース104を備えている。USBインターフェース104は、USBケーブル105を介してスキャナ装置106と接続される。また、CPU121は、キーボード/マウス125とディスプレイ126とが接続されている。ネットワークカード129は、ネットワークを介して他の機器と通信するための通信ユニットである。一般に、ネットワークカード129には、固有の識別情報(MACアドレスなど)が付与されている。よって、各コンピュータを識別するための情報として利用可能である。
コンピュータ100に電力が投入されると、CPU121は、ROM123からファームウエアを起動し、ハードディスクドライブ122からマイクロソフトウインドウズ(登録商標)オペレーティングシステム101を起動する。OSなどの必要なソフトウエアは、RAM124にロードされる。
一方、スキャナ装置106は、CPU110、ROM127、RAM203、画像読み取り部112、USBコントローラ128、USBインターフェース107を備えている。スキャナ装置106に電力が投入されると、CPU110は、ファームウエアをROM127から起動する。とりわけ、ROM127やRAM203の両方または一方は、画像読取装置を使用するために情報処理装置で実行されるソフトウエアを記憶したソフトウエア記憶手段や制御ファイル等を記憶するファイル記憶手段の一例である。なお、ROM127やRAM203は、フラッシュメモリやEEPROMなどの不揮発性メモリによって実現されてもよい。特にROM127にソフトウエアを記憶し、バージョンアップを可能とする場合は、ROM127を不揮発性メモリにすることが望ましい。また、1つの不揮発性メモリによってROM127とRAM203が実現されてもよい。なお、RAM203には、画像読み取り部によって取得された画像データを一時的に格納するためのバッファ領域が確保される。
本実施形態で、ROM127は、不揮発性のメモリであり、コンピュータ100によって情報を書き込むことが可能なメモリである。ROM127には、少なくとも、キャプチャアプリケーション210と設定ファイル212が記憶される。よって、ROM127は、画像読取装置に接続される情報処理装置ごとおよび情報処理装置を使用するユーザごとの少なくとも一方の、画像の読み取りに適用されるパラメータを記憶するファイル記憶手段の一例である。
まず、コンピュータ100上のオペレーティングシステム101は、USBインターフェース104にUSBケーブル105を介して何らかの周辺デバイスが接続されると、周辺デバイスのクラスインターフェースにアクセスし、周辺デバイスの種類を確定する。ここで、スキャナ装置106には、オペレーティングシステム101にマスストレージデバイスクラスとして認識してもらう必要がある。マスストレージデバイスクラスを制御するためのUSBマスストレージドライバ202は、一般にコンピュータに備えられており、新たにインストールする必要がないからである。それゆえ、本実施形態のスキャナ装置106は、USBマスストレージクラスインターフェース206を有している。
このように、オペレーティングシステム101は、標準で、マスストレージクラスのUSBデバイスをサポートしている。すなわち、オペレーティングシステム101は、マスストレージクラスを制御するためのデバイスドライバ(USBマスストレージドライバ202)を含んでいる。そのため、CPU121は、コンピュータ100へ特別なデバイスドライバ等をインストールせずに、マスストレージクラスのUSBデバイスにアクセスできる。また、マスストレージクラスデバイスへの標準的なアクセスは、オペレーティングシステム101を使用して、管理者権限なしに実行可能である。
コンピュータ100にスキャナ装置106が接続されると、CPU121は、予めインストールされている標準のUSBマスストレージドライバ202を起動する。また、スキャナ装置106は、USBマスストレージクラスインターフェース206を有している。そのため、コンピュータ100にスキャナ装置106を接続すると、USBマスストレージクラスインターフェース206は、自己がUSBマスストレージクラスインターフェースであることを示す識別情報を送信する。よって、CPU121及びオペレーティングシステム101は、スキャナ装置106をマスストレージデバイスとして認識する。さらに、CPU121及びオペレーティングシステム101は、スキャナ装置106のROM127やRAM203を外部記憶装置としてアクセスする。すなわち、スキャナ装置106は、よく知られたUSBメモリと同等の動作をすることになる。オペレーティングシステム101は、使用されていないドライブレター(D:やE:など)をスキャナ装置106に割り当てることで、スキャナ装置106はドライブの1つとなる。
この認識処理についてさらに詳細に説明する。コンピュータ100にスキャナ装置106が接続された場合、オペレーティングシステム101(CPU121)は、USBインターフェース104にて何らかの周辺デバイスの接続を検知し、USBケーブル105を介して、スキャナ装置106のUSBインターフェース107にアクセスする。スキャナ装置106のCPU110は、USBインターフェース107にコンピュータ100からアクセスがあると、USBマスストレージクラスインターフェース206にアクセスさせる。オペレーティングシステム101は、スキャナ装置106のUSBマスストレージクラスインターフェース206にアクセスすることで、予めオペレーティングシステム101に含まれているUSBマスストレージドライバ202を利用して、USBインターフェースドライバ103とUSBインターフェース104からUSBケーブル105を介してスキャナ装置106にアクセス可能になる。
また、スキャナ装置106は、オペレーティングシステム101に、マスストレージクラスデバイスとして認識されている。そのため、コンピュータ100は、スキャナ装置106のUSBインターフェース107、USBマスストレージクラスインターフェース206、USBディスクドライブインターフェース205を介して、管理者権限の有無に依存しないアクセス方法でスキャナ装置106にアクセスできる。ただし、コンピュータ100は直接的に画像読み取り部112を制御することはできず、あくまで記憶装置としてスキャナ装置106にアクセスできるにすぎない。
また、スキャナ装置106には、キャプチャアプリケーション210と、スキャナ装置106を制御するための制御ファイル204とを予めROM127またはRAM203に保存してある。ROM127またはRAM203は、フラッシュメモリ、EEPROM、DRAMなどの組み合わせによって実現可能である。キャプチャアプリケーション210は、コンピュータ100からスキャナ装置106で画像読み取りを行うためのソフトウエアであり、オペレーティングシステム101上で動作する。
さらに、コンピュータ100は、ファイルシステム201に関連付けたファイルフォルダ内に、スキャナ装置106内に保存してある制御ファイル204とキャプチャアプリケーション210に対応するテーブルを形成する。
図3は、コンピュータ100からキャプチャアプリケーション210を利用してスキャナ装置106で画像読み取りを行う処理のフローチャートである。
ステップS301で、コンピュータ100のCPU121は、スキャナ装置106が接続されたか否かを判断する。
ステップS302で、CPU121は、周辺デバイスのクラスインターフェースとしてスキャナ装置106を接続する。
ステップS303で、CPU121は、周辺デバイスのクラスインターフェースの情報をスキャナ装置106から取得する。この情報により接続された周辺装置の種類が認識できる。
ステップS304で、コンピュータ100にスキャナ装置106が接続されたとき、CPU121は、USBマスストレージデバイスが接続されたと認識する。上述したようにスキャナ装置106は、USBマスストレージインターフェースを有しているからである。また、スキャナ装置106は、USBマスストレージクラスインターフェース206のサブクラスとして、USBディスクドライブインターフェース205を有している。そのため、CPU121は、接続されたスキャナ装置106をディスクドライブとして認識する。このように、USBマスストレージクラスインターフェース206は、画像読取装置を情報処理装置の外部記憶装置として情報処理装置に認識させるための認識制御手段の一例である。
ステップS305で、オペレーティングシステム101は、スキャナ装置106内に保存してある制御ファイル204とキャプチャアプリケーション210に対応するテーブルを、ファイルシステム201に関連付けたファイルフォルダ内に形成する。このことによりCPU121は、スキャナ装置106内に格納してある制御ファイル204とキャプチャアプリケーション210を、ドライブレターを割り当てたディスクドライブ上のファイルとして扱うことができる。これは、スキャナ装置106が、OSによってドライブレターを割り当てたディスクドライブとして認識されているからである。
図4は、ドライブレターを割り当てられたディスクドライブ(スキャナ)をファイル管理ソフト(エクスプローラ)で開いた様子を示す図である。スキャナ装置106が提供するメモリは、フォルダ300に対応している。フォルダ300は、コンピュータ100に接続されたキーボード/マウス125を使用して開くことができる。フォルダ300には、キャプチャアプリケーション210(ファイル名:CaptureApplication.exe)と制御ファイル204(ファイル名:Control.dat)と、設定ファイル212(Setting.dat)とが格納されている。
ステップS306で、CPU121は、フォルダ300内のキャプチャアプリケーション210を起動するための指示が入力されたか否かを判定する。この指示は、キーボード/マウス125から入力されてもよいし、フォルダ300に不可視状態で格納されているautorun.infによって指示されてもよい。たとえば、マイクロソフト(登録商標)ウインドウズオペレーティングシステムにおいては、CDドライブ内にCD−ROMが挿入されると、「autorun.inf」と呼ばれる、CD−ROM上のファイルを検出し、「autorun.inf」内で自動実行することが指定されたコマンドファイルを実行する。よって、自動実行すべきコマンドファイルの名称として上述のCaptureApplication.exeがautorun.inf内で記述されていることになる。
キャプチャアプリケーション210を起動するための指示が入力されると、ステップS307で、CPU121は、スキャナ装置106のROM127に記憶されているキャプチャアプリケーション210を読み出し、RAM124にロードして起動する。このように、外部記憶装置として認識された画像読取装置のソフトウエア記憶手段からソフトウエアが情報処理装置によって実行される。スキャンボタン301がキーボード/マウス125によりクリックされたと判断すると、ステップS307aに進む。
ステップS307aで、キャプチャアプリケーション210(CPU121)は、スキャン設定を実行する。コンピュータ100は、ディスプレイ126を接続しており、スキャン設定を実行するためのユーザインターフェースをディスプレイ126に表示する。
図5は、キャプチャアプリケーション210が起動したときに表示されるユーザインターフェースの一例を示した図である。図5に示すようなキャプチャアプリケーション210のユーザインターフェースが表示されると、ユーザは、キーボード/マウス125を操作して、スキャン設定を入力する。たとえば、読み取りモード(本実施形態では、白黒)、用紙サイズ(本実施形態では、A4)、解像度(本実施形態では、300dpi)、読み取り面(本実施形態では、両面)がキーボード/マウス125を使用して選択される。さらに、読み取った画像を保存するための画像ファイルのファイル名(本実施形態では、test1)もキーボード/マウス125を操作して入力される。また、アプリケーション設定、たとえば、キャプチャアプリケーション210により読み取った画像をディスプレイ126に表示するか否か(本実施形態では、チェックが入っている状態をTRUEとする)を、キーボード/マウス125を操作して選択できる。最後に、スキャンボタン301がキーボード/マウス125を使用してクリックされる。
このように、図5に示したスキャン設定の確認と変更のためのユーザインターフェースには、各種の設定項目に対して現在選択されている内容が表示される。とりわけ、キャプチャアプリケーションを起動した直後に選択されている設定項目の内容は、CPU121が設定ファイル212から読み出した内容に基づいて選択したものである。これらの読取設定内容は、CPU121が、コンピュータの識別情報やユーザの識別情報を認識し、それらの少なくとも一方に対応する読取設定内容を設定ファイル212から抽出して、ユーザインターフェースに表示させている。ユーザインターフェースを用いてこれらの読取設定内容を変更する設定処理の詳細は後述する。
ステップS308で、キャプチャアプリケーション210(CPU121)は、スキャン設定を受け付け、スキャナ装置106内の制御ファイル204にスキャン設定を書き込むことでスキャナ装置106へ送信が行われる。さらに、CPU121は、スキャン開始コマンドも制御ファイル204に書き込む。なお、スキャン設定は、スキャン開始コマンドに添付されて転送されるデータであってもよい。このように、CPU121は、情報処理装置に対応したパラメータをファイル記憶手段から読み出し、読み出したパラメータに応じたコマンドを画像読取装置に送信するコマンド送信手段として機能する。また、キャプチャアプリケーション210は、情報処理装置をコマンド送信手段として機能させるソフトウエアの一例である。
スキャナ装置106のCPU110は、制御ファイル204が更新されたか否かを監視している。制御ファイル204が更新されると、CPU110は、制御ファイル204を解析し、制御ファイル204に含まれているコマンドを実行する。たとえば、CPU110は、スキャン設定およびスキャン開始コマンドなどが制御ファイル204に書かれたことを検出すると、制御ファイル204に書かれているスキャン設定にしたがって画像読み取り部112を制御し、スキャンを開始する。このように、CPU110は、ファイル記憶手段に書き込まれた制御ファイルを解析し、制御ファイルに含まれているコマンドを実行する実行手段の一例である。また、CPU110は、ソフトウエア記憶手段からソフトウエアが情報処理装置によって実行されたときに、ソフトウエアにしたがって情報処理装置がファイル記憶手段に書き込んだ制御ファイルを読み出すとともに、制御ファイルに含まれているコマンドを実行する実行手段の一例である。
スキャナ装置106はスキャンを開始すると、画像読み取り部112で読み取った画像データを制御ファイルに書き込む。この制御ファイルは、スキャン設定やコマンドが書き込まれている制御ファイル204と同一であってもよいし、異なってもよい。ここでは、説明の便宜上、両者は同一であるものとする。又は制御ファイルではなく画像データを転送するための他のファイルを別途用意してもよい。
ステップS309で、コンピュータ100のCPU121は、画像データが制御ファイル204に書き込まれたか否かを監視する。画像データが制御ファイル204に書き込まれたことを検出すると、ステップS310に進む。
ステップS310で、CPU121は、制御ファイル204から画像データを読み出す。
ステップS311で、CPU121は、指定された画像ファイル(本実施形態では、ファイル名「test1」)を作成し、ハードディスクドライブ122に記憶する。
ところで、1枚の画像あたりのデータサイズが、RAM203に確保しているバッファのサイズよりも大きいことがある。これは、原稿のサイズが大きかったり、画像圧縮率が小さかったりすると、発生しやすい。なお、バッファは、RAM203以外の不図示のメモリに確保されてもよい。
そこで、本実施形態では、CPU110は、バッファの記憶可能容量を超える画像データについて、この画像データのサイズより小さなサイズの部分画像データごとに、読取と制御ファイル204への格納とを実行する。このように、部分画像データは、1枚の画像の全体を表す全体画像データに対する部分的な画像データである。
CPU110は、原稿から読み取った部分画像データによってバッファが満杯になると、その旨を示すステータスデータを制御ファイル204に書き込む。また、CPU110は、部分画像データを制御ファイル204に保存する。このように、CPU110は、バッファに格納された部分画像データを制御ファイルに保存する保存手段の一例である。
コンピュータ100のCPU121は、制御ファイル204の一部を読み出し、満杯になったことを示すステータスデータが格納されているか否かを判定する。満杯になったことを示すステータスデータが格納されていれば、部分画像データの転送が可能となったことを意味する。よって、CPU121は、制御ファイル204から部分画像データを読み出し、RAM124に格納するとともに、制御ファイル204から部分画像データを削除する。このように、ステータスデータは、部分画像データの転送が可能となったことを通知するための通知手段の一例である。なお、通知手段は、ソフトウエアを実行する情報処理装置によって制御ファイルにコマンドが書き込まれてから、実行手段によって制御ファイル又は他のファイルへ部分画像データの書き込みが完了するまで、情報処理装置による制御ファイル又は他のファイルの読み出し要求に応答しないようにしてもよい。
スキャナ装置106のCPU110は、制御ファイル204から部分画像データが削除されると、画像の読取を再開する。CPU110は、原稿から読み取った新たな部分画像データによってバッファが満杯になると、その旨を示すステータスデータを制御ファイル204に書き込む。これらの動作は、1枚の原稿についての画像の読取が完了するまで、繰り返し実行される。1枚の原稿についての画像の読取が完了すると、CPU110は、画像読取の完了を示すステータスデータを制御ファイル204に書き込む。
コンピュータ100のCPU121は、制御ファイル204を読み出し、読取完了を示すステータスデータが格納されているか否かを判定する。読取完了を示すステータスデータが格納されていれば、CPU121は、RAM124に格納して置いた一連の部分画像データから、1枚相当の画像データを作成する。なお、CPU121の動作は、スキャナ装置106に保存されているキャプチャアプリケーション210を、コンピュータ100のCPU121で実行することによって実現されている。一方、スキャナ装置106のCPU110の動作は、ファームウエアによって実現されている。
<画像データの転送処理>
一般的なスキャナ装置では、コンピュータにインストールされたスキャナドライバにより直接的に制御されて画像の読取を実行する。そのため、スキャナ装置から逐次画像データがコンピュータに転送されることになる。しかし、本実施形態では、スキャナドライバを介さずにマスストレージドライバを介して画像データを転送するため、スキャナ装置が有しているバッファのサイズが画像データのサイズを制限することになる。
そこで、本実施形態では、スキャナ装置106のバッファのサイズよりも大きな画像データを分割して格納する方法について詳細に説明する。すなわち、上述したステップS308ないしS311に関して、より詳細に説明する。
[コマンドの送受信]
図6は、画像データの分割転送の一例として、コンピュータ側及びスキャナ装置側で実行される通信プロトコルを示したフローチャートである。以下で説明するコンピュータ側の処理は、スキャナ装置106側に記憶されたキャプチャアプリケーション210をコンピュータ100のCPU121が実行することによってCPU121が行うものとする。すなわち、ソフトウエア上の主体は、キャプチャアプリケーション210であり、ハードウエア上の主体はCPU121である。なお、コンピュータ100のCPU121は、キャプチャアプリケーション210にしたがってRAM124にバッファAを確保しておくものとする。一方、以下で説明するスキャナ装置側の処理は、ファームウエアにしたがってCPU110が実行するものとする。すなわち、ソフトウエア上の主体は、ファームウエアであり、ハードウエア上の主体はCPU110である。なお、スキャナ装置106のCPU110は、ファームウエアにしたがってRAM203にバッファBを確保しておくものとする。
ステップS601で、コンピュータ100のCPU121は、キャプチャアプリケーション210にしたがって、バッファAに制御コマンドを書き込む。制御コマンドは、たとえば、SCSIコマンドのフォーマットにしたがって独自に定義したデータ列である。
制御コマンドとして、たとえば、画像取得のために必要なスキャン解像度等を設定するSet Windowコマンドや、画像取得の開始を指示するScanコマンド、画像データを読み込むときに使用するRead Imageコマンド等を予め定義しておく。予め定義された制御コマンドとその意味との関係を示す制御コマンド定義情報は、キャプチャアプリケーション210およびスキャナ装置106の双方に保持されているものとする。制御コマンド定義情報には、各コマンドを識別するための固有のコマンドデータ列と、コマンドデータ列の長さを示す整数値と、コマンドにデータを添付して転送を行う必要性を示す真偽値と、データ転送の方向(スキャナ装置106からキャプチャアプリケーション210へ転送するものか、あるいはその逆か)を示す情報とを含む。
ステップS602で、CPU121は、制御コマンドにデータを添付して送信する必要があるか否かを判定する。CPU121は、バッファAに書き込まれた制御コマンドをキーとしてコマンド定義情報を検索し、抽出した真偽値からデータを添付すべきか否かを判定する。データを添付すべき制御コマンドであれば、ステップS603に進む。一方、データを添付すべき制御コマンドでなければ、ステップS604に進む。
ステップS603で、CPU121は、既にステップS601で書き込まれている制御コマンドに続けてデータをバッファAに追記する。
ステップS604で、CPU121は、スキャナ装置106に記憶されている制御ファイル204にバッファAの内容を書き込む。なお、本実施形態では、キャプチャアプリケーション210から制御ファイル204に対して読み書きを開始するときに、マイクロソフトウインドウズ(登録商標)によるファイルキャッシュ機能が働くと正常に通信を行うことができないおそれがある。そこで、CPU121は、ファイルキャッシュ機能を停止する。
スキャナ装置106は、ステップS604によって制御ファイル204が更新されるまで監視しつつ待機している。ステップS650で、スキャナ装置106のCPU110は、制御ファイル204が更新されたか否かを判定する。制御ファイル204の更新の検知方法は、たとえば、CPU110は、スキャナ装置106のRAM203に保持しているファイルシステムのアドレステーブルから制御ファイル204が存在しているセクタアドレスを参照する。CPU110は、コンピュータ100からこのセクタアドレスに対するデータ書き込みが行われ、その終了を検知したとき、制御ファイル204が更新されたと判定する。他の例としては、CPU110が、制御ファイル204を一定周期で読み込み、制御ファイル204の内容、サイズ、日付等に変化があったときに、制御ファイル204が更新されたと判定する。制御ファイルの更新検知処理は、キャプチャアプリケーション210による制御ファイル204への書き込み及び読み出し処理と重複しないように、排他制御される。
ステップS651で、CPU110は、制御ファイル204の先頭から、各制御コマンドに対応したサイズだけコマンドデータ列を読み出す。CPU110は、コマンド定義情報を参照し、制御ファイル204に書かれている制御コマンドの長さを取得して、コマンドデータ列を読み出す。
ステップS652で、CPU110は、制御ファイル204を解析し、受信した制御コマンドにデータが添付されているか否かを判定する。データが添付されていなければ、ステップS654に進む。データが添付されていれば、ステップS653に進む。
ステップS653で、CPU110は、制御コマンドの後端部分から添付データを読み込む。読み出す添付データの長さは、前述のコマンド定義情報を参照して取得する。
ステップS654で、スキャナ装置106は、制御ファイル204から抽出した制御コマンドを実行する。たとえば、制御コマンドが前述のSet Windowコマンドであった場合、CPU110は、スキャナ装置106のRAM203にスキャン設定を保持するための領域を確保し、そこに受信した添付データを元にスキャン設定を書き込む。たとえば、制御コマンドがScanコマンドであった場合、CPU110は、RAM203内部でスキャン設定を保持している領域を参照して画像読み取り部112等を制御し、取得した画像データをRAM203に別途確保したスキャンバッファに保存する。
ステップS655で、CPU110は、制御ファイル204から抽出した制御コマンドが添付データの送信の必要なコマンドであるか否かを判別する。この判別は制御コマンド定義情報を参照して実行される。データの送信が必要なコマンドであった場合、ステップS656に進む。データの送信が必要でないコマンドであった場合、ステップS657に進む。
ステップS656で、CPU110は、受信したコマンドに対応したステータスデータとともに、当該コマンドに対応したデータをバッファBに書き込む。たとえば、制御コマンドが、Read Imageコマンドであった場合、CPU110は、画像読み取り部112等を制御して取得した画像データのうち、キャプチャアプリケーション210が指定したサイズだけ抽出し、その画像データをバッファBに書き込む。その後、ステップS658に進む。
ステップS657で、CPU110は、受信したコマンドに対応したステータス情報をバッファBに書き込む。その後、ステップS658に進む。ステータス情報は、受信した制御コマンドの実行状態を表す情報である。ステータス情報には、たとえば、制御コマンドに対応する処理が正常に行われたことを表すGOOD STATUSや、スキャナ装置106が他の処理を実行中であり、コマンドを受け付けることができないことを表すBUSYなどがある。なお、ステップS656で、バッファBに添付データが書き込まれた場合についても同様のステータス情報を、CPU110は、この添付データの末尾等に追加する。
CPU110は、キャプチャアプリケーション210に送信すべきデータのバッファBへの書き込みが完了すると、ステップS658で、制御ファイル204にバッファBの内容を書き込む。なお、スキャナ装置106による制御ファイル204へのデータ書き込み処理は、キャプチャアプリケーション210による制御ファイル204への書き込み及び読み出し処理と重複しないように、排他制御される。このとき制御コマンドは受信した制御コマンドのまま変更しないものとするが、変更してもよい。
スキャナ装置106は、ステップS658の処理が終了したら、ステップS650に戻る。
ステップS605で、コンピュータのCPU121は、制御ファイル204を監視しつつ、制御ファイル204が更新されるまで待機する。制御ファイルの監視および更新の検知方法は、たとえば、制御ファイル204のうち、添付データ以外の部分の内容を一定周期で繰り返し読み込み、RAM124に保存されている制御ファイルの内容と比較する。現在の制御ファイルと、前回の制御ファイルとが不一致であれば、CPU121は、制御ファイル204が更新されたと判定する。また、たとえば、他の通知用ファイルを読み込んで、その内容により制御ファイル204の更新を判定するようにしてもよい。また、たとえば、スキャナ装置106は、ステップS650で制御コマンドの更新を検知してから、ステップS658で制御ファイル204を更新するまでの間に、コンピュータのCPU121が制御ファイル204を読み込もうとしたときには、その処理をブロックし、応答を返さないようにUSBディスクドライブインターフェース205を制御してもよい。この場合、コンピュータのCPU121は、制御ファイル204に対して読み込み処理を実行し、その処理が終了したことを検知すると、制御ファイル204が更新されたと判定する。更新が判定され読み込まれた制御ファイル204の内容は、RAM124に保持される。
ステップS606で、CPU121は、ステップS604で送信のために制御ファイル204に書き込んだ制御コマンド又は、S605で制御ファイル204から読み込んだ制御コマンドが添付データの受信を必要とするものであるか否かを判別する。この判別は、ステップS602と同様、前述のコマンド定義情報を参照することで実行される。送信又は、読み込まれた制御コマンドが添付データを受信すべきものであった場合、ステップS607に進む。添付データを受信すべきものでなければ、ステップS608に進む。
ステップS607で、CPU121は、制御ファイル204から添付データを読み込む。
ステップS608で、CPU121は、制御ファイル204からステータス情報を読み込む。添付データが存在する場合は、添付データの後端からステータス情報が抽出される。一方、添付データの受信を行わなかった場合には、制御ファイル204の先頭からステータス情報が読み込まれる。
ステップS609で、CPU121は、ステータス情報から、次に行うべき動作を決定して実行する。たとえば、ステータス情報がGOOD STATUSであったなら、CPU121は、引き続き次のコマンドの送受信を実行する。一方、ステータス情報がBUSY等の異常を示すものであった場合、CPU121は、その要因を取得するコマンドを新たに発行する(ステップS601)。CPU121は、このコマンドに応答してスキャナ装置106が制御ファイル204に書き込んだ詳細情報を読み出す(S607、S608)。CPU121は、この詳細情報にしたがって、ディスプレイ126に要因を通知するためのダイアログボックスを表示する。
<画像データの転送処理の詳細>
図7は、上記各実施形態でのコンピュータ側の画像転送処理の一例を示したフローチャートである。図8は、上記各実施形態でのスキャナ装置側の画像転送処理の一例を示したフローチャートである。
上記各実施形態のマスストレージクラスは、SCSIコマンド体系での送受信をサポートしている。つまり、コンピュータ100は、マスストレージデバイスに対して、SCSIコマンド体系で、コマンドを発行する。また、コンピュータ100のマイクロソフトウインドウズ(登録商標)オペレーティングシステム101は、マスストレージデバイスの接続があると、定期的に、Test Unit Readyコマンドを発行する。
コンピュータ100から、スキャナ装置106にスキャン開始指示を行うとき、まず、キャプチャアプリケーション210は、制御ファイル204へのスキャン開始命令の書き込みを準備する(S701)。具体的には設定ファイル212から、コンピュータやユーザごとの読取設定内容を読み出す作業と、該読取設定内容を制御ファイル204に書き込むことで送信し、スキャナ装置106の読取設定をする作業等を行う。次に、マイクロソフトウインドウズ(登録商標)オペレーティングシステム101がWriteコマンドを発行すると(S702)、そのパラメータデータとして、キャプチャアプリケーション210はスキャン開始命令を制御ファイル204に書き込むことで送信する(S703)。
スキャナ装置106は、Writeコマンドのパラメータデータを制御ファイル204から読み出すことでスキャン開始命令を受信すると(S801,S802)、スキャンを開始し、画像読み取り部112で読み取った画像データを制御ファイル204に書き込む(S803)。
このとき、スキャナ装置106は、画像読み取り中の画像データが制御ファイル204に書き込み中である場合、Test Unit Readyコマンドに対して、正常状態を示すGOODステータスを返す(S804,S805)。コンピュータ100は、定期的にTest Unit Readyコマンドを送信する(S704)。
その後、スキャナは、画像データの制御ファイル204への書き込みが終了した場合(S806)、Test Unit Readyコマンドに対して(S807)、異常終了状態を示すCHECK CONDITIONステータスを返す(S808)。
コンピュータ100のオペレーティングシステム101はスキャナ装置106から、GOODステータスの代わりにCHECK CONDITIONステータスを受信すると(S705でNO)、異常終了状態の詳細情報を取得するために、Request Senseコマンドを発行する(S706)。
スキャナ装置106は、Request Senseコマンドを受信すると(S809)、前回のコマンドであるTest Unit Readyコマンドに対して、CHECK CONDITIONステータスを返しているため、CD‐ROM等の入れ替えが行われたと仮想的に認識させるためのセンスデータとしてMEDIUM NOT PRESENTセンスキーとセンスコード、または、MEDIUM MAY HAVE CHANGEDセンスキーとセンスコードとを送信する(S810)。
コンピュータ100のオペレーティングシステム101はスキャナ装置106から、センスデータとして、MEDIUM NOT PRESENTセンスキーとセンスコード、または、MEDIUM MAY HAVE CHANGEDセンスキーとセンスコードを受信すると(S707)、マスストレージデバイスのCD−ROM等のメディアが排出されたものと判断する。さらに、コンピュータ100のオペレーティングシステム101は、マスストレージデバイスのメディアの挿入を待つために、定期的に、Test Unit Readyコマンドを発行する(S708)。
スキャナ装置106は、CHECK CONDITIONステータスを返した後に、次のTest Unit Readyコマンドを受信すると(S811)、正常状態を示すGOODステータスを返す(S812)。
コンピュータ100のオペレーティングシステム101はGOODステータスを受信すると(S709)、マスストレージデバイスのメディアが挿入されたと判断する。オペレーティングシステム101は、スキャナ装置106内にある制御ファイル204に対応するファイルシステム201内の管理テーブルを更新し、更新された管理テーブルにより制御ファイル204に画像データが書き込まれたことを認識する(S710)。
このように、キャプチャアプリケーション210は、制御ファイル204に画像データが書かれたことを認識し、書き込まれた画像データを指定された保存ファイル名(上記実施形態では、test1)で保存する。
なお、上記実施形態では、Test Unit Readyコマンドに対して、上述したようにCHECK CONDITIONステータスを返したが、コンピュータ100のオペレーティングシステム101が発行する他のコマンド(たとえば、Mode SelectコマンドやStart−Stop Unitコマンド)に対して、CHECK CONDITIONステータスを返しても実現できる。このように、CPU110は、部分データの転送が可能となった後に、情報処理装置から送信されるTest Unit Readyコマンド、Mode Selectコマンド又はStart−Stop Unitコマンドのいずれか1つを受信すると、CHECK CONDITION ステータスを返信する。これにより、制御ファイル204が更新されたことが伝達される。
また、上記実施形態では、マスストレージデバイスのメディアの排出/挿入が行われたと仮想的に認識させるための振る舞いをすることで、オペレーティングシステム101にファイルシステム201内の管理テーブルの更新を行うよう促したが、USBバスのD+信号とD−信号をとともに0にするよう制御してから、USBバスリセットステートに移行して、USBデバイスの脱着が行われたという振る舞いをしても実現できる。すなわち、上記のように、バッファに部分データが書き込まれると、CPU110は画像読取装置と情報処理装置とを接続しているUSBバスのD+信号とD−信号とをともにゼロに変更してUSBバスリセットステートに移行する。これにより、制御ファイル204が更新されたことが伝達される。
以上説明した各実施形態によれば、画像読取装置を情報処理装置の外部記憶装置(例:USBマスストレージクラス)として情報処理装置に認識させることで、画像読取装置のデバイスドライバを情報処理装置にインストールする必要がない。また、小サイズの部分画像データを取得して制御ファイルに格納して読み出し可能な状態にすることで、比較的に大きな画像も読取可能となる。
とりわけ、画像データをより小さな複数の部分画像データごとに読取と転送とを実行することで、バッファのサイズが小さくても大きな画像を転送できるようになる。
また、制御ファイルを通じて部分データを転送することで、画像読取装置を外部記憶装置として認識させたまま、画像の読み取りを実現できる。
通常、制御ファイルを通じて部分データを転送するには、制御ファイルに部分データが書き込まれたことを情報処理装置に通知する必要がある。定期的に制御ファイルを監視する方法もあるが、監視周期が長ければ、遅延が多くなり、監視周期が短すぎれば無駄な監視作業が多くなる。そこで、画像読取装置が制御ファイルに部分画像データが書き込まれたことを情報処理装置に通知するようにしてもよい。具体的には、情報処理装置からTest Unit Readyコマンド、Mode Selectコマンド、または、Start−Stop Unitコマンドを受信すると、画像読取装置は、CHECK CONDITION ステータスを返信すればよい。これにより、ファイルテーブルが参照され、制御ファイルの更新が認識されることになる。
また、USBバスのD+信号とD−信号とをともにゼロに変更することでUSBバスリセットステートに移行してもよい。この場合も、同様に、ファイルテーブルが参照され、制御ファイルの更新が認識されることになる。
このように、本実施形態によれば、デバイスドライバやソフトウエアをコンピュータにインストールすることなく、画像読取装置が利用可能となる。これは、画像読取装置を外部記憶装置として情報処理装置に認識させ、この外部記憶装置に画像ファイルを書き込み、情報処理装置がこの画像ファイルを読み出すことで実現される。一般に、情報処理装置を制御するオペレーティングシステム(OS)は、画像読取装置のデバイスドライバを有していないが、外部記憶装置のデバイスドライバであれば有しているからである。この点に着目し、本発明では、画像読取装置を外部記憶装置として情報処理装置に認識させたまた、画像の読み取り処理を実現できる。
したがって、デバイスドライバやアプリケーションソフトウエアを情報処理装置にインストールする手間を省ける。また、管理者権限を有していないユーザであっても、画像の読み取りを実行できる。
また、デバイスドライバやアプリケーションソフトウエアを準備する必要はなく、これらを記憶したCD−ROMを持ち運ぶ必要はないし、紛失してしまってもよい。メーカーは、CD−ROMを製品パッケージに同梱する必要がなくなるため、製造コスト面で有利である。
<設定処理の詳細>
ここでは、図3のステップS307aに関して説明したスキャン設定の詳細について説明する。
図9は、デフォルト状態の設定ファイルの一例を示した図である。ここでは、1つの設定ファイル内に、コンピュータやユーザごとの設定項目を記述するものとする。もちろん、煩雑ではあるが、コンピュータやユーザごと個別の設定ファイルを用意していもよい。
[DefaultSetting]は、初期設定であることを示している。初期設定は、コンピュータやユーザを特定できないときに使用される設定である。そのため、ComuputerNameには、コンピュータに依存しないことを意味するNULLが設定されている。Modeは、白黒読み取りモードまたはカラー読み取りモードかを示す。PaperSizeは読み取りサイズを示す。Resolutionは、読取解像度を示している。ReadSideは、片面読取か両面読取かを示す。FileNameは、読み取った画像に付与されるファイル名称を示す。DisplayImageは、読み取った画像を表示するか否かを示す。
図10は、設定ファイルの一例を示した図である。ここでは、初期設定セット1001に加えて、第1のコンピュータ用の設定セット1002と、第2のコンピュータ用の設定セット1003とが示されている。各設定セットには、複数のパラメータ(設定項目、設定内容)が存在する。
第1のコンピュータ用の設定セット1002は、”Computer1”という名称のコンピュータによって使用されることがわかる。Modeは、256階調のグレースケールである。PaperSizeはA3である。Resolutionは、600dpiである。ReadSideは片面である。FileNameは、”test2”である。DisplayImageは、”表示しない”に設定されている。
第2のコンピュータ用の設定セット1003によれば、”Comput”という名称のコンピュータによって使用されることがわかる。Modeは、カラーである。PaperSizeはB5である。Resolutionは、200dpiである。ReadSideは両面である。FileNameは、”test3”である。DisplayImageは、”表示あり”に設定されている。
次に、スキャナ装置106を使用するコンピュータ100の識別方法を説明する。
CPU121は、キャプチャアプリケーション210にしたがって、オペレーティングシステム101管理する情報、たとえば、現在使用しているコンピュータ100のコンピュータ名や、MACアドレス(Media Access Control address)などの情報を問い合わせて取得することできる。以下では、便宜上、ソフトウエア名を動作主語として記載するが、ハードウエア上の動作主体はCPU121である。
具体的に、キャプチャアプリケーション210は、オペレーティングシステム101に対して、Win32APIのGetHostNameコマンドと、コンピュータ名を保存するバッファのアドレスと、コンピュータ名のデータ長とをパラメータとして送信する。オペレーティングシステム101は、キャプチャアプリケーション210から指定されたバッファに、コンピュータ名を格納すること。これによって、キャプチャアプリケーション210は、現在使用しているコンピュータ100のコンピュータ名を取得することができる。
キャプチャアプリケーション210は、Win32APIのNetBiosを利用し、ネットワークカード129に登録されているMACアドレスを問い合わせる。この問い合せに対し、オペレーティングシステム101は、ネットワークカード129のMACアドレスを取得し、キャプチャアプリケーション210にMACアドレスを送信する。これによって、キャプチャアプリケーション210は、現在使用しているコンピュータ100のMACアドレスを取得することができる。
キャプチャアプリケーション210は、MACアドレスなどの一意に割り当てられた識別情報を元に、使用するコンピュータ100を区別することができる。
初期設定セットに含まれるいずれかの設定項目が変更されると、キャプチャアプリケーション210は、コンピュータ名やMACアドレスなどの固有の識別情報をComputerNameに記述し、この識別情報に対応する設定項目を有した設定セットを設定ファイル212に追加する。このような新規な設定セットは、例えば、初期設定セットをコピーし、変更された設定項目のみ設定を新規な設定セットに反映させることでCPU121によって作成される。
図11は、スキャナ設定処理の一例を示したフローチャートである。この設定処理は、ステップS307aをサブルーチン化したものである。また、以下の処理は、キャプチャアプリケーション210とOSとが連携して実行する処理である。
ステップS1101で、コンピュータ100のCPU121は、コンピュータ100のコンピュータ名を取得する。このように、CPU121は、情報処理装置に付与された識別情報を取得する取得手段の一例である。
ステップS1102で、CPU121は、取得したコンピュータ名を設定ファイル212から検索する。
ステップS1103で、CPU121は、検索結果に基づいて、取得したコンピュータ名が設定ファイル212に登録されているか否かを判定する。コンピュータ名が設定ファイル212に登録されていなければ、ステップS1104に進む。
ステップS1104で、CPU121は、スキャナ装置106のROM127に記憶されている設定ファイル212から初期設定セットを読み出す。CPU121は、読み出した初期設定を反映させたユーザインターフェースをディスプレイ126に表示する(図5)。
一方、コンピュータ名が設定ファイル212に登録されていれば、ステップS1105に進む。
ステップS1105で、CPU121は、コンピュータ名に対応する各種のスキャン設定(設定セット)を設定ファイル212から読み出す。このように、CPU121は、情報処理装置に付与された識別情報に基づいて対応するパラメータをファイル記憶手段から検索して抽出する検索抽出手段の一例である。
ステップS1106で、CPU121は、読み出した個別の設定セットを反映させたユーザインターフェースをディスプレイ126に表示する(図5)。よって、CPU121は、ファイル記憶手段から読み出したパラメータを提示するためのユーザインターフェースを表示する表示手段の一例である。
CPU121は、キーボード/マウス125をユーザが操作してスキャンボタンが押下されたことを検出する。なお、ユーザは、ユーザインターフェースを通じて、各種のスキャン設定を選択したり、入力したりすることができる。CPU121は、キーボード/マウス125を通じて選択ないしは入力されたスキャン設定を認識する。よって、CPU121は、ユーザインターフェースを通じてパラメータの変更を受け付ける受付手段の一例といえる。
ステップS1107で、CPU121は、ユーザインターフェースを通じて指定された設定項目と、設定ファイル212から特定(S1104、S1105)された設定項目とを比較し、設定項目が変更されたか否かを判定する。設定項目が変更されていなければ、ステップS1108をスキップして、ステップS308に進む。一方、設定項目が変更されていれば、ステップS1108に進む。
ステップS1108で、CPU121は、設定ファイル212に、コンピュータ名と変更後の設定項目とを書き込む。よって、CPU121は、変更されたパラメータをファイル記憶手段に書き込む書き込み手段の一例である。このとき書き込まれた設定内容は、コンピュータ名と対応して画像読取の前にコンピュータ100により再び読み出される。そして、コンピュータ100は、画像読取時に必要な各種設定をスキャナ装置106に行わせるべく、スキャン設定のためのコマンドを制御ファイルに書き込むことで、送信するものとする。なお、スキャン設定のためのコマンドは前述のスキャン開始命令と統合されていてもよい。
なお、現在ユーザが使用しているコンピュータ100のコンピュータ名が既に登録されていて、かつパラメータを変更した場合、ステップS1108でCPU121は、設定ファイル212内の対応する設定項目を書き換える。一方、コンピュータ名が設定ファイル212に登録されていない場合、CPU121は、このコンピュータ名に対応した設定セットを設定ファイル212に追加する。その後、ステップS308に進む。
本実施形態によれば、スキャナ装置106が、各パーソナルコンピュータに対応した設定を格納した設定ファイル212を保持しているため、接続したパーソナルコンピュータに対応した設定を容易に反映させることができる。これは、セキュリティ上の制限によってユーザが設定ファイルをパーソナルコンピュータの記憶装置に書き込むことができない場合に特に有効である。もちろん、自己の記憶装置に設定ファイルを書き込むことができるコンピュータであっても、本発明を適用できることはいうまでもない。
また、設定の変更が行われた場合は、スキャナ装置106に記憶された設定ファイルに設定の変更が反映される。よって、ユーザは、スキャナ装置106を接続するコンピュータが変更されても、そのコンピュータに適するであろう新しい設定内容を読み出して、使用することができる。
<第2の実施形態>
第1の実施形態は、スキャナ装置が接続されるコンピュータごとの設定を設定ファイルに格納する発明であった。このような設定は、ユーザごとに切り替えられてもよい。そこで、第2の実施形態では、ユーザごとの設定を設定ファイルに格納することについて説明する。
一般に、CPU121(キャプチャアプリケーション210)は、オペレーティングシステム101に問い合わせることで、現在ログインしているユーザの識別情報を取得することができる。
具体的に、キャプチャアプリケーション210は、オペレーティングシステム101に対して、Win32APIのGetUserNameコマンドと、ユーザ名を保存するバッファのアドレスと、ユーザ名のデータ長とをパラメータとして送信する。オペレーティングシステム101は、キャプチャアプリケーション210から指定されたバッファに、ユーザ名を格納する。これにより、キャプチャアプリケーション210は、現在ログインしているユーザのユーザ名を取得することができる。
キャプチャアプリケーション210は、この取得したユーザ名によって、コンピュータ100を使用するユーザを区別することができる。キャプチャアプリケーション210は、必要に応じて、ユーザ名を設定ファイル212に保存する。
図12は、設定ファイルの一例を示す図である。図10と比較すると、ComputerNameに代えて、ユーザ名を示すUserNameが採用されている。[DefaultSetting]は、ユーザ名に依存しない初期設定セットである。[UserSetting]は、ユーザごとのスキャン設定やアプリケーション設定の内容が記述される。その他は、図10に関して説明した通りである。
図13は、スキャナ設定処理の一例を示したフローチャートである。この設定処理は、ステップS307aをサブルーチン化したものである。また、以下の処理は、キャプチャアプリケーション210とOSとが連携して実行する処理である。
ステップS1301で、コンピュータ100のCPU121は、コンピュータ100のユーザ名を取得する。このように、CPU121は、情報処理装置にログインしているユーザの識別情報を取得する取得手段の一例である。
ステップS1302で、CPU121は、取得したユーザ名を設定ファイル212から検索する。
ステップS1303で、CPU121は、検索結果に基づいて、取得したユーザ名が設定ファイル212に登録されているか否かを判定する。ユーザ名が設定ファイル212に登録されていなければ、ステップS1304に進む。
ステップS1304で、CPU121は、スキャナ装置106のROM127に記憶されている設定ファイル212から初期設定セットを読み出す。CPU121は、読み出した初期設定セットを反映させたユーザインターフェースをディスプレイ126に表示する(図5)。
一方、ユーザ名が設定ファイル212に登録されていれば、ステップS1305に進む。
ステップS1305で、CPU121は、ユーザ名に対応する各種のスキャン設定(設定セット)を設定ファイル212から読み出す。このように、CPU121は、ユーザの識別情報に基づいて対応するパラメータをファイル記憶手段から検索して抽出する検索抽出手段の一例である。
ステップS1306で、CPU121は、読み出した個別の設定セットを反映させたユーザインターフェースをディスプレイ126に表示する(図5)。よって、CPU121は、ファイル記憶手段から読み出したパラメータを提示するためのユーザインターフェースを表示する表示手段の一例である。
CPU121は、キーボード/マウス125をユーザが操作してスキャンボタンが押下されたことを検出する。なお、ユーザは、ユーザインターフェースを通じて、各種の設定項目を選択したり、入力したりすることができる。CPU121は、キーボード/マウス125を通じて選択ないしは入力された設定項目を認識する。よって、CPU121は、パラメータの変更を受け付ける受付手段の一例といえる。
ステップS1307で、CPU121は、ユーザインターフェースを通じて指定された設定項目と、設定ファイル212から特定(S1304、S1305)された設定項目とを比較し、設定項目が変更されたか否かを判定する。設定項目が変更されていなければ、ステップS1308をスキップして、ステップS308に進む。一方、設定が変更されていれば、ステップS1308に進む。
ステップS1308で、CPU121は、設定ファイル212に、ユーザ名と変更後の設定項目とを書き込む。よって、CPU121は、変更されたパラメータをファイル記憶手段に書き込む書き込み手段の一例である。このとき書き込まれた設定内容は、ユーザ名に対応して画像読取の前にコンピュータ100により再び読み出される。そして、コンピュータ100は、画像読取時に必要な各種設定をスキャナ装置106に行わせるべく、スキャン設定のためのコマンドを制御ファイルに書き込むことで、送信するものとする。なお、スキャン設定のためのコマンドは前述のスキャン開始命令と統合されていてもよい。
なお、現在コンピュータ100を使用しているユーザ名が既に登録されていて、かつパラメータを変更した場合、ステップS1308でCPU121は、設定ファイル212内の設定セットを書き換える。一方、ユーザ名が設定ファイル212に登録されていない場合、CPU121は、このユーザ名に対応した設定セットを設定ファイル212に追加する。その後、ステップS308に進む。
本実施形態によれば、スキャナ装置106が、各ユーザに対応した設定を格納した設定ファイル212を保持しているため、ログインしているユーザに対応した設定を容易に反映させることができる。これは、セキュリティ上の制限によってユーザが設定ファイルをパーソナルコンピュータの記憶装置に書き込むことができない場合に特に有効である。もちろん、自己の記憶装置に設定ファイルを書き込むことができるコンピュータであっても、本発明を適用できることはいうまでもない。
また、設定の変更が行われた場合は、スキャナ装置106に記憶された設定ファイルに設定の変更が反映される。よって、ユーザは、スキャナ装置106を接続するコンピュータが変更されても、ユーザの用途に適するであろう新しい設定内容を読み出して、使用することができる。
<他の実施形態>
実施形態1や実施形態2では、コンピュータやユーザの識別情報に応じてスキャナ装置やアプリケーションの設定を変更するものであった。とりわけ、これらの識別情報は、オペレーティングシステム101が保持している情報であった。しかし、個別の設定を切り替えるために、他の識別情報が使用されてもよい。
図14は、キャプチャアプリケーション210が起動したときに表示されるユーザインターフェースの一例を示した図である。ここでは、個別設定を識別するための識別情報(個別設定名)を、ユーザがキーボードを使用して入力した任意の文字列(例:私の設定α)としている。よって、設定ファイル212には、ComputerNameやUserNameに代えて、UserSettingNameが採用されることになる。
個別設定名を表すUserSettingNameには、ユーザがキーボードを使用して入力した任意の文字列(例:私の設定α)が記述されることになる。個別設定名が設定ファイル212内に複数存在すれば、プルダウンメニューによって、個別設定を切り替えることができる。個別設定を新規に作成する場合は、ユーザは、プルダウンメニューから、「私の設定α」に代えて「新規設定」を選択し、新しい個別設定名をダイアローグから入力する。CPU121は、ダイアローグを通じて入力された新しい個別設定名と、対応する各種設定内容を設定ファイルに追加する。以上説明した各実施形態の任意の構成要素を他の実施形態に追加してもよく、これもまた本発明に含まれる。例えば、設定ファイルにComputerNameにより識別される設定情報と、UserNameにより識別される設定情報とを混在させてもよい。また、本発明の構成の一部又は全てを1個又は複数個のCPUで実行されるソフトウエアで実現してもよい。