以下、添付図面を参照して本発明の好適な実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
[実施形態1]
本実施形態における読取処理では、画像読取装置は、画像を読み取って生成した画像データをネットワーク上のストレージサーバに転送する。そして、情報処理装置は、ストレージサーバから画像データを取得し、その取得した画像データを連携するアプリケーションに引き渡す。
図1は、本実施形態における画像読取システムの構成を示す図である。システム1は、ストレージサーバ100と画像読取装置200と情報処理装置300とを含み、各装置は、ネットワーク400を介して相互に通信可能に接続されている。画像読取装置200は、画像を光学的に読み取って取得した画像データを、ストレージサーバ100に送信する。情報処理装置300は、画像データの所在を示すURLを用いて、ストレージサーバ100から画像データを取得する。
図2は、画像読取装置200の構成を示すブロック図である。画像読取装置200は、画像を読み取れるものであれば特に限定されないが、本実施形態では、複数の機能が一体化されたMFP(MultiFunctional Peripheral)とする。画像読取装置200は、プリンタ機能やスキャナ機能を含み、ネットワーク400を介して、外部装置に各機能に基づくサービスを提供することができる。画像読取装置200において、プリンタ機能はプリンタ部201により実現され、スキャナ機能はスキャナ部202により実現される。プリンタ部201は、外部から受信した画像データや、メモリカード装着部203に装着されたメモリカード204に記憶されている画像データ等を、インクジェット記録方式や電子写真記録方式等により記録媒体に記録する。スキャナ部202は、原稿台にセットされた原稿を光学的に読み取って取得した画像データを特定のファイル形式のデータに変換し、ネットワーク400を介してストレージサーバ100等の外部装置に送信する。
CPU205は、画像読取装置200全体を統括的に制御する。プログラムメモリ206は、CPU205が本実施形態の動作を実現するための制御プログラム等を記憶する。ワークメモリ207は、各サービス実行時に画像データ等を一時的に記憶したりバッファリングする。表示部208は、LCD等のディスプレイを備え、ユーザインタフェース画面により画像読取装置200の状態や設定画面等を表示する。操作部209は、ハードウェアキーを備え、ユーザからの指示を受け付ける。
ネットワーク通信部210は、画像読取装置200を、ネットワーク400に接続して外部装置との通信を可能とする。ネットワーク接続部211は、ネットワーク通信部210を、ネットワーク400を構成するケーブル等の媒体に接続する。ネットワーク接続部211は、有線LANや無線LANに対応可能である。有線LANに対応する場合には、ネットワーク接続部211は、有線LANのケーブルを画像読取装置200に接続するためのコネクタである。また、無線LANに対応する場合には、ネットワーク接続部211はアンテナである。
フラッシュメモリ212は、ネットワーク通信部210が外部装置から受信したパケットデータの送信元情報等を記憶する。USB通信部214は、画像読取装置200を、外部装置との間で、USB(Universal Serial Bus)インタフェースを介した通信を可能とする。USB接続部215は、外部装置と接続するためのUSBコネクタである。図2に示す、メモリカード204、ネットワーク接続部211、USB接続部215以外の各部は、システムバス213を介してそれぞれが相互に通信可能に接続される。
図3は、情報処理装置300の構成を示すブロック図である。情報処理装置300は、例えば、所定のアプリケーションが動作可能な情報処理装置であり、本実施形態では、一般的なPCとする。CPU301は、情報処理装置300全体を統括的に制御する。記憶部302は、例えばCD−ROMであり、以下の処理を実行するための各種アプリケーションプログラムやOS等を記憶する。記憶部読取部303は、記憶部302に記憶されたデータを読み出す。メモリ304は、CPU301がプログラムを実行する際に、画像データ等の各種データを一時的に記憶したりバッファリングする。
表示部305は、LCD等のディスプレイを備え、ユーザインタフェース画面により情報処理装置300の状態や設定画面等を表示する。表示部305の表示領域内には、フルスクリーンモードやシングルウィンドウモード等の複数種類の表示モードで表示可能である。操作部306は、キーボードやポインティングデバイスを備え、ユーザからの指示を受け付けることができる。
ネットワーク通信部307は、情報処理装置300をネットワーク400に接続し、外部装置との通信を可能とする。ネットワーク接続部308は、ネットワーク通信部307を、ネットワーク400を構成するケーブル等の媒体に接続する。図2で説明したネットワーク接続部211同様に、ネットワーク接続部308は、有線LANや無線LANに対応可能である。USB通信部310は、情報処理装置300を、外部装置との間で、USB(Universal Serial Bus)インタフェースを介した通信を可能とする。USB接続部311は、外部装置と接続するためのUSBコネクタである。図3に示す、ネットワーク接続部308、USB接続部311以外の各部は、システムバス309を介して相互に通信可能に接続される。
図4は、読取処理が実行された結果についてのユーザへの通知条件(表示条件)を設定するためのユーザインタフェース画面を示す図である。本実施形態では、ユーザは、読取処理の実行前に、図4に示す設定画面によりユーザへの通知条件を設定することができる。図4に示す画面は、画像読取装置200の表示部208に表示されるようにしても良いし、情報処理装置300の表示部305に表示されるようにしても良い。
本実施形態では、通知条件の設定画面は、非表示モードを検出する方法の設定UI401と、非表示モード中の通知方法の設定UI402と、エラー発生時の通知条件の設定UI403と、OKボタン404と、を備える。設定UI401(設定手段の一例)において、非表示モードを検出する方法を選択することにより、ユーザへの通知のタイミングの選択を受付けることができる。言い換えれば、画像読取装置200からの読取処理の結果を読取処理終了時に表示することを禁止するための制限条件の一例としてのモードの選択をユーザから受け付けることができる。例えば、ユーザが「シングルウィンドウモードの切り替えを検出する」のチェックボックスを選択すると、シングルウィンドウモード中は、非表示モードであると判定され、読取処理の結果はユーザに通知されない。そして、シングルウィンドウモードから他のモードに変化したタイミングで、例えば、マルチウィンドウモードに切り替わったタイミングで、読取処理の結果がユーザに通知される。つまり、シングルウィンドウモードで表示されている間に表示することを許可しない。ここで、読取処理の結果は、例えば、画像読取装置200における画像データの取得の成功や、エラーの発生等を含む。
また、ユーザが「フルスクリーンモードの切り替えを検出する」のチェックボックスを選択すると、フルスクリーンモード中は、非表示モードであると判定され、読取処理の結果はユーザに通知されない。そして、フルスクリーンモードから、他のモード、例えば、マルチウィンドウモードに切り替わったタイミングで、読取処理の結果がユーザに通知される。つまり、フルスクリーンモードで表示されている間に表示することを許可しない。
シングルウィンドウモード及びフルスクリーンモードは、いずれも表示対象の画面をディスプレイの表示領域に最大化して表示する表示モードである。設定UI401において、「シングルウィンドウモードの切り替えを検出する」又は「フルスクリーンモードの切り替えを検出する」のチェックボックスを選択することで、読取処理の結果を表示領域内へ表示させないことができる。すなわち、シングルウィンドウモードやフルスクリーンモードのように、ディスプレイの表示領域に最大化して表示する表示モードで表示されている間は、画像読取装置200から読取処理の結果を受信しても表示領域内への割込表示を許可しない設定とすることができる。
また、ユーザが「ログインユーザの切り替えを検出する」のチェックボックスを選択する(チェックを入れる)と、ログインユーザの切り替えが起きるまでは、非表示モードであると判定され、読取処理の結果はユーザに通知されない。そして、ログインユーザの切り替えを検出したタイミングで、読取処理の結果がユーザに通知される。具体的には、1つのOS上で複数のユーザアカウントがログインしている状態である場合に、読取処理を行うユーザのログインセッションがバックグランドからフォアグランドに切り替わったタイミングで、読取処理の結果がユーザに通知される。
また、「特定のプロセスの起動を検出する」のチェックボックスを選択すると、特定のプロセスの起動中は、非表示モードであると判定され、読取処理の結果はユーザに通知されない。例えば、アプリケーションのインストーラやOSのメンテナンスソフトウェアが実行中に、ユーザが誤って画像読取装置200の操作ボタンを押下して読取処理を実行したとする。その場合、読取処理の実行後、情報処理装置300でアプリケーションを起動すると、不具合を生じたり、インストーラやメンテナンスソフトウェアの実行が失敗するおそれがある。そのような失敗を防ぐために、特定のプロセスの起動を検出した場合には、読取処理の結果を読取処理が終了してもユーザに通知しない。本実施形態では、「特定のプロセスの起動を検出する」の表示の右側に選択ボタン405を表示し、特定のプロセスを選択可能である。選択ボタン405が押下されると、各インストーラやメンテナンスソフトウェアが表示され、ユーザによる選択を受け付けることができる。読取処理の結果は、特定のプロセスが終了したタイミングでユーザに通知される。
また、「特定のボタンの押下を検出する」のチェックボックスを選択すると、特定のボタンの押下が検出されるまで、非表示モードであると判定され、読取処理の結果はユーザに通知されない。例えば、画像読取装置200が複数の原稿を読み取る場合に、読取ボタンが押下され、読取処理が実行されても、ユーザが読み取りを所望する全ての原稿について読取処理が完了していない場合がある。ユーザが「特定のボタンの押下を検出する」のチェックボックスを選択すると、特定のボタンとして画像読取装置200の終了ボタンが設定されていた場合、特定のボタンが押下されるまでの状態では、読取処理の結果はユーザに通知されない。そして、画像読取装置200の終了ボタンが押下されたタイミングで、読取処理の完了がユーザに通知される。
本実施形態では、シングルウィンドウモード、フルスクリーンモード、読取処理を行うユーザがバックグランドユーザの状態、特定のプロセスが起動している状態、又は特定のボタンが押下されるまでの状態は、ユーザへの読取処理の結果の通知(割込表示)を許可しない状態である。その意味で、以下、各状態を総称して「非表示モード」と呼ぶ。また、非表示モードでない状態を「通常モード」と呼ぶ。なお、図4の設定UI401では、上述した5種類の項目を例に挙げて説明したが、これに限定されず、上記5種類の項目以外の項目を含むようにしても良く、また、これより少ない項目としてもよい。また、ユーザは、図4の設定UI401において、複数の項目を選択することができるようにしてもよい。
設定UI402により、通常モードに戻った際に読取処理の結果のユーザへの通知をどのような方法で行うかの選択を受付けることができる。例えば、ユーザが「通知アプリケーションで通常モード切り替え時に通知する」のラジオボタンを選択すると、読取処理の実行結果を通知するための通知アプリケーションにより、読取処理の結果がユーザに通知される。また、ユーザが「OSの通知機能で通常モード切り替え時に通知する」のラジオボタンを選択すると、OSの機能により、読取処理の結果がユーザに通知される。また、ユーザが「メールで通知する」のラジオボタンを選択すると、登録されたメールアドレスに対して電子メールにより、読取処理の結果がユーザに通知される。本実施形態では、「メールで通知する」の表示の右側に設定ボタン406を表示し、設定ボタン406が押下されると、不図示のメールアドレスの設定画面が表示され、ユーザがメールアドレスを登録することができる。
設定UI403により、エラー発生の通知を行う条件の選択を受付けることができる。例えば、ユーザが「全てのエラー発生時に通知する」のラジオボタンを選択すると、読取処理中に発生した全ての種類のエラーについてユーザに通知される。また、ユーザが「特定のエラー発生時のみ通知する」のラジオボタンを選択すると、読取処理中に発生した特定の種類のエラーについてのみユーザに通知される。本実施形態では、「特定のエラー発生時のみ通知する」の表示の右側に選択ボタン407を表示し、選択ボタン407が押下されると、不図示の通知可能なエラーの種類の一覧が表示され、ユーザがエラーの種類を選択することができる。ユーザに通知される特定のエラーとしては、例えば、ADFにおける紙詰まりの発生、ネットワークストレージの空き容量の不足、ユーザ操作を介して解決する必要があるエラーなどが挙げられる。なお、特定のエラーの選択方法は、これに限定されず、緊急度の高レベルのものを通知する、緊急度が中レベル以上のものを通知する等の選択肢から選択するようにしてもよい。この場合は、各エラーの種類に緊急度が予め設定されているようにすればよい。また、ユーザが「全てのエラーを通知しない」のラジオボタンを選択すると、読取処理中にエラーが発生しても、ユーザへの通知は行われない。以上の設定項目401〜403で各選択された内容は、OKボタン404が押下されることで確定する。
図5は、画像読取装置200における通知制御方法の処理を示すフローチャートである。図5に示す各処理は、例えば、CPU205により実行される。まず、S501において、ユーザが、画像読取装置200の操作部209を操作し、原稿台に載置あるいはADFにセットされた原稿の読取処理の実行を指示することで、原稿の画像の読取処理を実行する。そして、読取処理により生成した画像データをネットワーク上のストレージサーバに転送する。次に、S502において、エラーが発生したか否かを判定する。ここで、エラーとは、例えば、読取処理後に取得された画像データのストレージサーバ100への転送の失敗である。S502でエラーが発生したと判定された場合、S503において、画像読取装置200から情報処理装置300に対して、読取処理の結果としてエラー情報を通知する。一方、S502でエラーが発生していないと判定された場合、S504において、画像読取装置200から情報処理装置300に対して、読取処理の結果としてストレージサーバ100での画像データの格納先を示すURL情報を通知する。
図6は、情報処理装置300における、画像読取装置200からの通知情報に基づいて行う表示制御処理の手順を示すフローチャートである。図6に示す各処理は、例えば、CPU301により実行される。情報処理装置300では、例えばユーザのログイン時に自動的に起動するプログラムにより、画像読取装置200からの通知情報を随時受信することができる。
まず、S601において、画像読取装置200から通知情報を受信する。ここで、通知情報とは、例えば、画像読取装置200における読取処理の結果である。通知情報は、通知情報を受信した装置の表示部への表示を指示する表示指示情報を含んでいてもよい。S601の処理は、情報処理装置300から画像読取装置200に対して、通知情報の取得を定期的に要求するポーリング方式により行われても良い。若しくは、情報処理装置300の特定のポートをListen状態とし、画像読取装置200からの通知情報を特定のポートで受信するイベンティング方式により行われても良い。
S602において、エラーを受信したか判定する。具体的には、S601で受信した通知情報が図5のS503で通知されたエラー情報であるか否かを判定する。S602の処理は、例えば、XML形式の特定のフォーマットを認識することにより行われても良い。ここで、エラー情報であると判定された場合には、S603に進みエラー処理を行い、エラー情報でないと判定された場合には、S604に進む。
図7は、図6のS603のエラー処理の手順を示すフローチャートである。S701において、図4の設定項目401の設定内容に基づいて、情報処理装置300の現在のモードを取得する。例えば、情報処理装置300が、シングルウィンドウモードかフルスクリーンモードであるか、読取処理を行うユーザがバックグランドユーザであるか、特定のプロセスが起動されているか、画像読取装置200の特定のボタンが押下されたかについて取得される。
各モードの取得方法は、特に限定されないが、例えば、Windows8(登録商標)では、IMetroMode::GetMonitorMode()というAPIを使用することにより、シングルウィンドウモードを検出することができる。また、例えば、GetWindowRectというAPIを使用することにより、フルスクリーンモードを検出することができる。また、例えば、WTSQuerySessionInformation()というAPIを使用することにより、バックグランドユーザを検出することができる。また、例えば、CreateToolhelp32SnapshotというAPIを使用することにより、特定のプロセスの起動を検出することができる。また、例えば、画像読取装置200に対して、押下されたボタン情報の取得を要求することにより、画像読取装置200の特定のボタンの押下を検出することができる。また、S601で画像読取装置200から受信した通知情報により、上記各モードを検出するようにしても良い。
S702において、モードが非表示モードか通常モードかを判定する。ここでは、複数のモード判定を行った場合、一つでも非表示モードと判定されれば、非表示モードと判定し、S703へ進む。一方、複数のモード判定を行った場合、全てが通常モードと判定されれば、通常モードと判定し、S705へ進む。また、図4に示す設定UI401にチェックが入っていない場合、通常モードと判定し、S705へ進む。なお、S702において、必ずしも複数のモード判定を行う必要はない。例えば、S701では、現在のモードが、図4の設定UIで選択された非表示モードか否かのみを取得する。すなわち、例えば、非表示モードとしてシングルウィンドウモードが選択されていた場合、現在のモードがシングルウィンドウモードか否かのみを取得する。そして、S702では、S701で得られた結果に基づいて、現在のモードが非表示モードか否かを判定するようにすればよい。
S703において、通知条件を判定する。本実施形態では、図4の設定UI403でいずれの通知方法が選択されているかが判定される。ここで、「全てのエラー発生時に通知する」が選択されている場合、S705に進む。また、「特定のエラー発生時のみ通知する」が選択されている場合、S704に進む。また、「全てのエラーを通知しない」が選択されている場合、エラーが発生したにも関わらず、エラーをユーザに通知することなく、図7に示す処理を終了する。
S704において、図6のS602で取得したエラー情報の内容が特定のエラーに該当するか否かが判定される。ここで、特定のエラーに該当すると判定された場合、S705に進み、特定のエラーに該当しないと判定された場合、図7に示す処理を終了する。
S705において、情報処理装置300の表示部305にエラー情報が表示される。図10は、エラー表示画面の一例を示す図である。表示1001には、発生したエラー状況の説明が表示される。ユーザは、表示1001の説明を参照することで、エラーを解決することができる。ユーザが、表示1001の説明ではエラーを解決できない場合、表示1002のハイパーリンクをクリックすることで、連携している電子マニュアルや、Web上のマニュアルページのリンクをWebブラウザで開き、詳細な解決手順を確認することができる。ユーザは、表示1001又は1002によりエラー内容を確認すると、ボタン1003を押下することにより、本エラー表示画面を閉じることができる。
以上のエラー処理により、図4の設定内容と、情報処理装置300のモードとに応じて、ユーザへのエラー通知を制御することができる。例えば、図4の設定項目401で「シングルウィンドウモードの切り替えを検出する」が選択されていて、設定項目403で「特定のエラー発生時のみ通知する」が選択されているとする。その場合、ユーザがシングルウィンドウモードで作業中における画像読取の際に、特定のエラー以外のエラーが発生しても、その時点ではエラー情報は通知されない。その結果、ユーザは、シングルウィンドウモードの作業に集中することができる。また、シングルウィンドウモード又はフルスクリーンモードからマルチウィンドウモードに切り替わった場合や、ユーザがエラーを解決する必要があるエラーが発生した場合には、エラー情報が通知される。従って、画像の読取処理に対する対応も問題なく行うことができる。
再び、図6を参照する。図6のS603の処理後は、S601に戻る。S604において、S601で受信した通知情報が図5のS504で通知された読取情報(URL情報)であるか否かが判定される。ここで、S504で通知されたURL情報であると判定された場合、S605に進み、S504で通知されたURL情報でないと判定された場合、S606に進む。
図8は、図6のS605の画像転送処理の手順を示すフローチャートである。S801とS802の処理はそれぞれ、図7のS701とS702の処理と同じであるので説明を省略する。S802において、非表示モードと判定された場合は、S805へ進み、通常モードと判定された場合は、S803へ進む。S803において、画像読取装置200から通知されたURL情報を用いて、ストレージサーバ100から画像データをダウンロードする。S804において、ダウンロードした画像データは、本読取処理に連携するアプリケーションに転送され、図8の処理を終了する。ここで、アプリケーションとしては、例えば、ファイル管理ソフトウェアや帳票ソフトウェア等の読み取った画像データを管理/加工するアプリケーションが挙げられる。
S805において、URL情報を情報処理装置300内でユーザ通知するか、若しくは、情報処理装置300外に通知するかを判定する。ここで、情報処理装置300内でユーザ通知すると判定された場合、S807に進み、情報処理装置300外に通知すると判定された場合、S806に進む。S805の判定は、図4の設定UI402の設定内容に基づいて行われる。例えば、設定UI402において「通知アプリケーションで通常モード切り替え時に通知する」や「OSの通知機能で通常モード切り替え時に通知する」が選択されている場合、エラー情報の通知先は情報処理装置300自身である。従って、その場合には、情報処理装置300内でユーザ通知すると判定される。また、「メールで通知する」が選択されてメールアドレスが登録されている場合、エラー情報の通知先は情報処理装置300の外部装置であるメールサーバとなるので、情報処理装置300外に通知すると判定される。
S806において、URL情報を、図4のボタン405により登録したメールアドレスに送信して、図8の処理を終了する。例えば、ユーザは、スマートフォン等のメールアドレスを予め登録しておき、URL情報をスマートフォン等のメールアドレスで受信することができる。そして、URL情報に基づいて、スマートフォンで画像データをストレージサーバ100からダウンロードすることができる。一方、S807においては、PC内に通知し、URL情報をメモリ304に読取画像の画像履歴として保存して、図8の処理を終了する。
すなわち、図4の設定UI402で「OSの通知機能で通常モード切り替え時に通知する」が選択されていたとしても、情報処理装置300が非表示モードである場合には、読取処理終了の時点では読取処理の完了をユーザに通知しない。例えば、設定UI401で「シングルウィンドウモードの切り替えを検知する」が選択され、設定項目402で「メールに通知する」が選択されているとする。その場合、ユーザがシングルウィンドウモードで作業中であれば、読取処理が完了しても、電子メールは送信されない。従って、ユーザは、シングルウィンドウモードの作業に集中することができる。また、マルチウィンドウモードに切り替わると、後述する履歴通知処理において、読取処理の完了が通知され、画像データを取得し、連携するアプリケーションに渡すので、画像読取作業も問題なく行うことができる。
再び、図6を参照する。図6のS605の処理後は、S601に戻る。S606において、モードイベントを取得する。ここでは、OSのモードが切り替わったこと(イベント)を取得する。S606の処理は、S701やS801と同じ処理を行い、取得したモードが過去に取得したモードと異なるのであれば、モードの切り替えのイベントを取得したとしても良い。また、OSがモード切り替えイベントを所定のプロセスに送る構成とされているのであれば、そのモード切り替えイベントを取得するようにしても良い。例えば、シングルウィンドウモードであれば、IMonitorModeEvents::MonitorModeChanged()というAPIを使用することにより、モード切り替えイベントを取得することができる。また、フルスクリーンモードであれば、WM_SESSION_CHANGEというウィンドウメッセージを処理することにより、モード切り替えイベントを取得することができる。
S607において、606で取得したモード切り替えイベントに基づいて、通常モードに切り替わったか、若しくは、非通常モードに切り替わったか又はモードの切り替えが発生していないかが判定される。本実施形態では、通常モードに切り替えがあったか否かを判定する。ここで、通常モードに切り替わったと判定された場合、S608に進み、通常モードに切り替えがなかった場合、すなわち、非通常モード(非表示モード)に切り替わったか又はモードの切り替えが発生していない場合、S610に進む。なお、モード切り替えイベントに基づく判定は、特に限定されるものではない。例えば、フルスクリーンの切り替えについては、解像度の変更メッセージを受信することで検出することができる。また、ユーザ切り替えについては、ログアウト・ログイン時に通知されるメッセージを受信することで検出することができる。
S608において、メモリ304に画像履歴が格納されているか否かが判定される。ここで、例えば、図4の設定UI402で「メールで通知する」が選択されていた場合、図8のS807は実行されないので、画像履歴は格納されていない。また、非表示モードにおいて読取処理が行われていない場合も、図6のS605は実行されないので、画像履歴は格納されていない。S608で画像履歴が格納されていないと判定された場合、S610に進む。一方、画像履歴が格納されていると判定された場合、S609に進む。S609においては、履歴通知処理が行われる。図9は、S609の履歴通知処理の手順を示すフローチャートである。以下、図4の設定項目402で「通知アプリケーションで通常モード切換え時に通知する」が選択されていた場合について、図9に示す処理を説明する。なお、「OSの通知機能で通常モード切り替え時に通知する」が選択されていた場合には、ユーザ通知の文言を作成し、TTS_BALLOONスタイルのツールヘルプを作成して、以下の説明と同様に表示処理を行う。
まず、S901において、情報処理装置300の表示部305に画像履歴を表示する。画像履歴の表示方法は、特に限定されないが、例えば図11に示すような通知画面を表示部305に表示する。図11に示す画像履歴の表示画面は、表示1101、表示1102、表示1103、及びOKボタン1104を含む。図11の表示1101には、画像の読取処理の処理結果についての記載が表示される。表示1102には、画像を読み取って取得された画像データのサムネイル画像が表示される。ここで、サムネイル画像を表示するものとしたが、これに限定されるものではなく、S604で受信したURL情報を表示するようにしても良い。設定項目1103では、画像データの用途についての設定項目が表示される。例えば、ユーザは、「画像をアプリケーションに渡す」、「再度、履歴を通知する」、「履歴を破棄する」のいずれかを選択することができる。選択された設定内容は、OKボタン1104が押下されることで確定する。
図9のS902において、設定項目1103のいずれの項目が選択されたか判定される。「画像をアプリケーションに渡す」が選択された場合、S903に進む。「再度、履歴を通知する」が選択された場合、図9の処理を終了する。これは、ユーザが非表示モードでの作業中に、不注意や他のアプリケーションの動作により通常モードに切り替わってしまった場合、直ちに非表示モードに戻るようにするためである。「履歴を破棄する」が選択された場合、S904に進む。
S903において、図6のS604で受信したURL情報を用いて、ストレージサーバ100から情報処理装置300に画像データをダウンロードし、連携するアプリケーションに転送する。その後は、図9の処理を終了する。一方、S904においては、メモリ304に格納された画像履歴を削除して、図9の処理を終了する。
再び、図6を参照する。図6のS609の処理後は、S601に戻る。S610において、処理を終了するかを判定する。具体的には、図6の処理の終了がユーザ操作等により指示されているか否かを判定する。終了が指示されていると判定された場合、図6の処理を終了する。一方、終了が指示されていないと判定された場合、S60に戻って、1処理を繰り返す。
以上、本実施形態においては、画像読取装置200は、スキャナ機能を備えているものとして説明した。しかしながら、ディジタルカメラやディジタルビデオカメラ、又はUSBメモリなどの外部ストレージメモリ等と情報処理装置とを接続した構成でも、本実施形態の動作を実現することができる。
以上のように、画像読取装置で画像を読み取って生成された画像データを情報処理装置で連携アプリケーションに渡す読取処理において、所定の非表示モードの際には、読取処理の結果の通知、及びエラー通知を制限する。すなわち、情報処理装置でのエラー表示や連携アプリケーションへの画像データの転送を制限する。そして、非表示モード以外のモードに切り替わったタイミングでユーザへの通知処理を行うので、非表示モードにおけるユーザの作業効率の低下を防ぐことができる。
[実施形態2]
本実施形態においては、情報処理装置300が画像読取装置200の読取制御を行う点で、実施形態1と異なる。
図12は、本実施形態におけるシステム構成を示す図である。図12においては、図1と異なり、ネットワーク400にストレージサーバ100が接続されていない。情報処理装置300は、画像読取装置200に読取制御コマンドを送信して、画像読取装置200に保持されている画像データを受信することができる。画像読取装置200、情報処理装置300の構成は実施形態1と同じであるので説明を省略する。
また、本実施形態でも実施形態1と同様に、ユーザは、読取処理の前に、図4に示す設定画面上で、非表示モードについての各設定項目を設定する。本実施形態では、図4に示す設定画面を、情報処理装置300の表示部305に表示する場合について説明する。
図13は、本実施形態における画像読取装置200における処理の手順を示すフローチャートである。図13の処理は、例えば、画像読取装置200のCPU205により実現される。本実施形態において、画像読取装置200では、画像読取を行うだけの十分なメモリ領域が構成されていない場合により有効である。この場合は、情報処理装置300から画像読取装置200に対して送信される読取制御コマンドに応じて、読取処理が実現される。
まず、S1301において、情報処理装置300からコマンドを受信する。次に、S1302において、S1301で受信したコマンドがボタン情報取得の要求コマンドであるか否かが判定される。ここで、ボタン情報取得の要求コマンドであると判定された場合、S1303に進み、ボタン情報取得の要求コマンドでないと判定された場合、S1304に進む。
S1303において、情報処理装置300に対してボタン情報を送信して、図13に示す処理を終了する。ここで、ボタン情報とは、画像読取装置200の操作部209でユーザにより操作されたボタンについての情報である。操作部209が操作されていない状態で、S1301でボタン情報取得の要求コマンドを受信した場合には、S1303においてボタンが押下されていないことを示す情報を送信する。
S1304において、S1301で受信したコマンドが状態取得の要求コマンドであるか否かが判定される。ここで、状態取得の要求コマンドであると判定された場合、S1305に進み、状態取得の要求コマンドでないと判定された場合、S1306に進む。
S1305において、情報処理装置300に画像読取装置200の状態情報を送信して、図13に示す処理を終了する。ここで、状態情報とは、画像読取装置200のアイドル状態、画像読取中、画像読取完了、またはエラー発生などを示す。
S1306において、S1301で受信したコマンドが画像取得の要求コマンドであるか否かが判定される。ここで、画像取得の要求コマンドであると判定された場合、S1307に進み、画像取得の要求コマンドでないと判定された場合、S1308に進む。
S1307において、情報処理装置300に対して、読み取って取得された画像データを送信して、図13に示す処理を終了する。ここで、画像データとは、画像を読み取って取得され、ワークメモリ207に保存された画像データである。画像の読み取りが行われていない、又は画像の読み取りが行われていてもワークメモリ207が空の状態であれば、S1307では画像データを送信せずに図13に示す処理を終了する。
S1308において、S1301で受信したコマンドが読取設定コマンドであるか否かが判定される。ここで、読取設定コマンドであると判定された場合、S1309に進み、読取設定コマンドでないと判定された場合、S1310に進む。
S1309において、情報処理装置300から送信されたコマンドに記述された読取設定に基づいて画像の読取処理を行い、読み取って取得した画像データをワークメモリ207に格納する。なお、読取処理は、図13の処理とは独立して行われ、読取処理が完了するまで、ワークメモリ207に画像データの書き込みが継続される。また、読取処理の途中でエラーが発生した場合には、読取処理を終了する。
S1310において、S1301で受信したコマンドは、画像読取装置200では処理できない不明なコマンドであると判定し、情報処理装置300に対して、処理不可能を表わすエラー情報を送信して、図13の処理を終了する。
図14は、情報処理装置300から画像読取装置200を読取制御する処理の手順を示すフローチャートである。図14の処理は、例えば、情報処理装置300のCPU301により実現される。S1401〜S1404の処理は、図6のS606〜S609と同じであるので説明を省略する。
S1402で非通常モード(非表示モード)に切り替わったか又はモードの切り替えが発生していないと判定された場合、S1405において、画像読取装置200に対してボタン情報取得の要求コマンドを送信する。
S1406において、画像読取装置200の操作部209が操作されたか否かが判定される。S1405でボタン情報を取得できなかった場合には、画像読取装置200の操作部209が操作されていないと判定して、S1401からの処理を繰り返す。一方、S1405でボタン情報を取得できた場合には、画像読取装置200の操作部209が操作されたと判定して、S1407において、画像読取処理が実行される。
本実施形態では、図14に示すように、情報処理装置300で非表示モードに切り替わったか又はモードの切り替えが発生していない場合には、画像読取装置200のボタン情報の取得が繰り返される。
図15は、図14のS1407の画像読取処理の手順を示すフローチャートである。S1501において、画像読取装置200に対して読取設定コマンドが送信される。読取設定コマンドには、画像読取装置200が読取処理を行うための読取範囲、解像度、カラーモード設定等が含まれている。それらの読取設定は、情報処理装置300の操作部306でユーザにより予め設定されている。S1501で読取設定コマンドが送信されると、画像読取装置200では、図13のS1309の処理が行われる。
S1502において、図7のS701と同様に、情報処理装置300の現在のモードを取得する。S1503において、画像読取装置200に対して画像読取装置200の状態情報の要求コマンドを送信し、画像読取装置200の状態情報を受信する。S1503で状態情報要求コマンドが送信されると、画像読取装置200では、図13のS1305の処理が行われる。
S1504において、S1502で取得した情報処理装置300の現在のモードについて、非表示モードか、通常モードかの判定を行う。具体的には、複数のモード判定で1つでも非表示モードがあるか、若しくは、取得された全てのモードが非表示モードでないか(即ち、通常モード)が判定される。ここで、1つでも非表示モードがあると判定された場合、S1507に進み、取得された全てのモードが通常モードであると判定された場合、S1505に進む。
本実施形態では、画像読取開始前に情報処理装置300の現在のモードが取得されるのは、S1502の1回のみである。もし、画像読取装置200の画像読取中に非表示モードに切り替わった場合には、S1508やS1510でモード取得の処理が行われる。モード取得の処理の負荷が低く、情報処理装置300での処理上問題とならないのであれば、モード取得処理は、S1503の処理後などS1502以外のタイミングで実行されても良い。
S1505において、図16に示すような画像読取中を示すユーザインタフェース画面が表示部305に表示される。図16に示すように、表示1601では、初期化中や読取中等の読取状況が示され、表示1602では、読取処理の進捗状況がゲージにより示される。また、ユーザによりキャンセルボタン1603が押下されると、読取処理をキャンセルする。
S1506において、キャンセルが指示されたか判定する。本実施形態でゃ、図16に示すキャンセルボタン1603が押下されたか否かを判定する。キャンセルボタン1603が押下されたと判定された場合、画像読取装置200にキャンセルを指示するコマンドを送信して、図15に示す処理を終了する。キャンセルボタン1603が押下されていないと判定された場合、S1507に進む。
S1507において、エラーが発生したか判定する。具体的には、S1503で取得した状態情報がエラー情報を示しているか否かが判定される。ここで、エラー情報を示していると判定された場合、S1508に進み、エラー情報を示していないと判定された場合、S1509に進む。S1508において、図7に示すエラー処理と同様の処理が行われる。
S1509において、S1503で取得した状態情報が読取処理の完了を示しているか否かを判定する。ここで、読取処理の完了を示していると判定された場合、S1510に進み、読取処理の完了を示していないと判定された場合、S1503からの処理を繰り返す。S1510において、図8に示す画像転送処理と同様の処理が行われる。ただし、本実施形態においては、図8のS803では、画像読取装置200から画像データがダウンロードされる。そのダウンロードの際には、情報処理装置300から画像読取装置200に対して、画像データ取得の要求コマンドが送信される。また、図8のS807において画像履歴として保存されるURL情報は、画像読取装置200内の画像データの格納先を示す情報である。
再び、図14を参照する。S1407の処理後、S1408において、処理を終了するか判定する。具体的には、図14の処理の終了がユーザ操作等により指示されているか否かを判定する。終了が指示されていると判定された場合、図14の処理を終了する。一方、終了が指示されていないと判定された場合、S1401からの処理を繰り返す。
(他の実施形態)
本発明の基本的構成は上述したものに限定されるものではない。上述した実施形態は、本発明の効果を得るための一手段であり、類似の別手法を用いたり、異なるパラメータを用いたとしても、本発明と同等の効果が得られる場合は、本発明の範疇に含まれる。
上述した実施形態では、画像読取装置の読取処理の処理結果を例に挙げて説明したが、所定の条件が成立した場合に表示部に表示させる情報は、これに限定されるものではなく、表示部に既に表示中の表示内容とは異なるものであればよい。所定の条件が成立した場合に表示部に表示させる情報としては、例えば、情報処理装置とネットワーク等を介して接続される装置から受信する印刷処理の処理結果が挙げられる。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしてもよい。また、CPUも1つのCPUで全ての処理を行うものに限らず、複数のCPUが適宜連携をしながら処理を行うものとしてもよい。