(57)【特許請求の範囲】
【請求項１】
画像供給デバイスと記録装置とが汎用インターフェースを介して通信し、前記画像供給デバイスから前記記録装置に画像データを送信して記録する記録システムで使用される画像供給デバイスであって、
前記記録装置からのステータス情報を受信する受信手段と、
前記画像供給デバイスから前記記録装置に所定のコマンドを発行した後、前記受信手段により前記記録装置から所定時間内に所定のステータス情報を受信したかどうかを判定する判定手段と、
前記判定手段により前記所定のステータス情報を受信していないと判定すると、通常の処理で予測されるステータスと判断して処理を継続する処理手段と、
を有することを特徴とする画像供給デバイス。
【請求項２】
前記処理手段は、前記所定のコマンドを発行した後、前記判定手段により前記所定のステータス情報を受信していないと判定されると前記記録装置は次のコマンドを受信不能になると予測して処理を継続することを特徴とする請求項１に記載の画像供給デバイス。
【請求項３】
ユーザインターフェース用の画像を表示する表示手段と、
前記受信手段により受信したステータス情報に応じて前記表示手段に表示するＵＩ表示を変更するＵＩ変更手段とを更に有することを特徴とする請求項１又は２に記載の画像供給デバイス。
【請求項４】
前記記録装置に対してステータス情報を要求する要求手段を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の画像供給デバイス。
【請求項５】
前記汎用インターフェースはＵＳＢであることを特徴とする請求項１乃至４のいずれか１項に記載の画像供給デバイス。
【請求項６】
前記画像供給デバイスはデジタルカメラであることを特徴とする請求項１乃至５のいずれか１項に記載の画像供給デバイス。
【請求項７】
画像供給デバイスと記録装置とが汎用インターフェースを介して通信し、前記画像供給デバイスから前記記録装置に画像データを送信して記録する記録システムであって、
前記記録装置から前記画像供給デバイスへステータス情報を送信する送信手段と、
前記画像供給デバイスから前記記録装置に所定のコマンドを発行した後、前記画像供給デバイスで所定時間内に所定のステータス情報を受信したかどうかを判定する判定手段と、
前記判定手段により前記所定のステータス情報を受信していないと判定すると、通常の処理で予測されるステータスと判断して前記画像供給デバイスにおける処理を継続する処理手段と、
を有することを特徴とする記録システム。
【請求項８】
前記処理手段は、前記画像供給デバイスが前記所定のコマンドを発行した後、前記判定手段により前記所定のステータス情報を受信していないと判定されると前記記録装置は次のコマンドを受信不能になると予測して前記画像供給デバイスにおける処理を継続することを特徴とする請求項７に記載の記録システム。
【請求項９】
前記画像供給デバイスは、
ユーザインターフェース用の画像を表示する表示手段と、
前記受信手段により受信したステータス情報に応じて前記表示手段に表示するＵＩ表示を変更するＵＩ変更手段とを更に有することを特徴とする請求項７又は８に記載の記録システム。
【請求項１０】
前記画像供給デバイスから前記記録装置に対してステータス情報を要求する要求手段を更に有することを特徴とする請求項７乃至９のいずれか１項に記載の記録システム。
【請求項１１】
前記汎用インターフェースはＵＳＢであることを特徴とする請求項７乃至１０のいずれか１項に記載の記録システム。
【請求項１２】
画像供給デバイスと記録装置とが汎用インターフェースを介して通信し、前記画像供給デバイスから前記記録装置に画像データを送信して記録する記録システムにおける制御方法であって、
前記記録装置から前記画像供給デバイスへステータス情報を送信する送信工程と、
前記画像供給デバイスから前記記録装置に所定のコマンドを発行した後、前記画像供給デバイスで所定時間内に所定のステータス情報を受信したかどうかを判定する判定工程と、
前記判定工程で前記所定のステータス情報を受信していないと判定すると、通常の処理で予測されるステータスと判断して前記画像供給デバイスにおける処理を継続する処理工程と、
を有することを特徴とする記録システムの制御方法。
【請求項１３】
ユーザインターフェース用のＵＩ画像を表示する表示工程と、
前記受信工程で受信したステータス情報に応じて前記表示工程で表示するＵＩ画像を変更するＵＩ変更工程とを更に有することを特徴とする請求項１２に記載の制御方法。
【請求項１４】
画像供給デバイスと記録装置とが汎用インターフェースを介して通信し、前記画像供給デバイスから前記記録装置に画像データを送信して記録する記録システムで使用される画像供給デバイスであって、
前記記録装置に所定コマンドを発行するコマンド発行手段と、
前記コマンド発行手段によって前記所定コマンドを発行した後、前記記録装置からの信号を受信する受信手段と、
前記受信手段により受信した信号が前記所定コマンドに対応する応答かどうかを判定する判定手段と、
前記判定手段により前記所定コマンドに対応する応答でないと判定すると、前記記録装置に対する次のコマンドの発行タイミングを制御する制御手段と、
を有することを特徴とする画像供給デバイス。
【請求項１５】
前記制御手段は、前記次のコマンドの発行タイミングを所定時間遅らせることを特徴とする請求項１４に記載の画像供給デバイス。
【請求項１６】
前記所定時間はランダムに変更されることを特徴とする請求項１５に記載の画像供給デバイス。
【請求項１７】
前記所定時間は、前記判定手段により前記所定コマンドに対応する応答でないと判定される度に更新されることを特徴とする請求項１５又は１６に記載の画像供給デバイス。
【請求項１８】
画像供給デバイスと記録装置とが汎用インターフェースを介して通信し、前記画像供給デバイスから前記記録装置に画像データを送信して記録する記録システムで使用される記録装置であって、
前記画像供給デバイスに所定コマンドを発行するコマンド発行手段と、
前記コマンド発行手段によって前記所定コマンドをした後、前記画像供給デバイスからの信号を受信する受信手段と、
前記受信手段により受信した信号が前記所定コマンドに対応する応答かどうかを判定する判定手段と、
前記判定手段により前記所定コマンドに対応する応答でないと判定すると、前記記録装置に対する次のコマンドの発行タイミングを制御する制御手段と、
を有することを特徴とする記録装置。
【請求項１９】
前記制御手段は、前記次のコマンドの発行タイミングを所定時間遅らせることを特徴とする請求項１８に記載の記録装置。
【請求項２０】
前記所定時間はランダムに変更されることを特徴とする請求項１８に記載の記録装置。
【請求項２１】
前記所定時間は、前記判定手段により前記所定コマンドに対応する応答でないと判定される度に更新されることを特徴とする請求項１９又は２０に記載の記録装置。
【請求項２２】
画像供給デバイスと記録装置とが汎用インターフェースを介して通信し、前記画像供給デバイスから前記記録装置に画像データを送信して記録する記録システムで使用される画像供給デバイスであって、
前記記録装置に所定コマンドを発行するコマンド発行手段と、
前記コマンド発行手段により前記所定コマンドを発行した後、前記記録装置からの信号を受信する受信手段と、
前記受信手段により受信した前記信号が前記所定コマンドに対応する応答かどうかを判定する判定手段と、
前記判定手段により前記所定コマンドに対応する応答であると判定すると処理を継続する処理手段と、
を有することを特徴とする画像供給デバイス。
【請求項２３】
前記判定手段により前記所定コマンドに対応する応答でないと判定すると、前記記録装置に対してステータス情報を要求する要求手段を更に有することを特徴とする請求項２２に記載の画像供給デバイス。
【請求項２４】
画像供給デバイスと記録装置とが汎用インターフェースを介して通信し、前記画像供給デバイスから前記記録装置に画像データを送信して記録する記録システムの制御方法であって、
前記画像供給デバイスと前記記録装置との間で所定コマンドを発行するコマンド発行工程と、
前記コマンド発行工程で前記所定コマンドを発行した後、相手側から受信した信号が前記所定コマンドに対応する応答かどうかを判定する判定工程と、
前記判定工程で前記所定コマンドに対応する応答でないと判定すると、前記画像供給デバイス或は記録装置の少なくともいずれかにおいて次のコマンドの発行タイミングを変更する変更工程と、
を有することを特徴とする記録システムの制御方法。
【請求項２５】
前記変更工程では、前記次のコマンドの発行タイミングを所定時間遅らせることを特徴とする請求項２４に記載の制御方法。
【請求項２６】
前記所定時間はランダムに変更されることを特徴とする請求項２５に記載の制御方法。
【請求項２７】
前記所定時間は、前記判定手段により前記所定コマンドに対応する応答でないと判定される度に更新されることを特徴とする請求項２５又は２６に記載の制御方法。
【請求項２８】
画像供給デバイスと記録装置とが汎用インターフェースを介して通信し、前記画像供給デバイスから前記記録装置に画像データを送信して記録する記録システムの制御方法であって、
前記画像供給デバイスと前記記録装置との間で所定コマンドを発行するコマンド発行工程と、
前記コマンド発行工程で前記所定コマンドを発行した後、相手側から受信した信号が前記所定コマンドに対応する応答かどうかを判定する判定工程と、
前記判定工程で前記所定コマンドに対応する応答であると判定すると処理を継続する処理工程と、
を有することを特徴とする記録システムの制御方法。
【請求項２９】
前記判定工程で前記所定コマンドに対応する応答でないと判定すると、前記相手側に対してステータス情報を要求する要求工程を更に有することを特徴とする請求項２８に記載の制御方法。
【請求項３０】
請求項２４乃至２９のいずれか１項に記載の記録システムの制御方法を実行するプログラムを記憶したことを特徴とする、コンピュータにより読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルカメラなどの画像供給デバイスと、記録装置及び記録システムとその制御方法に関するものである。
【背景技術】
【０００２】
近年、簡単な操作で画像を撮影してデジタル画像データに変換できるデジタルカメラ（撮像装置）、所謂、デジカメが広く使用されるようになってきている。このようなカメラで撮影した画像を印刷して写真として使用する場合には、通常、一旦、その撮影されたデジタル画像データを、デジタルカメラからＰＣ（コンピュータ）に取り込み、そのＰＣで画像処理を行った後、そのＰＣからカラープリンタに出力して印刷するのが一般的である。
【０００３】
これに対して最近は、ＰＣを介することなく、直接、デジタルカメラからカラープリンタにデジタル画像データを伝送して印刷することができるカラープリントシステムや、デジタルカメラに搭載され、撮像した画像を記憶しているメモリカードを、直接、カラープリンタに装着し、そのメモリカードに記憶されている、撮影された画像を印刷できる、所謂フォトダイレクト（ＰＤ）プリンタ等も開発されている。
【特許文献１】特開平１１−７７０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特に、デジタルカメラから直接プリンタに画像データを伝送して印刷するために、各メーカのデジタルカメラとプリンタ装置とのインターフェース仕様や操作方法などの標準化が望まれている。このような標準化のための一提案としてＤＰＳ（Direct Print System）実現のためのガイドラインが提唱されている。
【０００５】
しかしながら、例えばこのようなデジタルカメラから直接画像データを受取って印刷するプリンタ装置は、このようなカメラ以外にもＰＣ等のからの印刷データを受信して印刷することができるように構成されている。従って、デジタルカメラとの間で画像データを受信するための前手順を実行している時に、ＰＣから印刷要求が発行されたため、デジタルカメラからのコマンドに対する応答が遅れることが考えられる。例えばカメラから印刷開始要求が発行されてプリンタ装置で受理されると、次のコマンドを受付け可能であることを示すステータスが「真」から「偽」に変更されて、それがカメラに通知される。しかし上述したような事態が発生すると、プリンタ装置は直ちにカメラ側にステータスの変更を通知できなくなり、その間、カメラは次のコマンドも送信可能と判断してコマンドを発行してしまう虞がある。
【０００６】
本発明は上記従来例に鑑みてなされたもので、画像供給デバイスと記録装置との間で予め定められた手順に従った応答が記録装置から受信されない場合には、その記録装置のステータスが通常の手順から見て予測されるステータスであると判断して、それ以降の処理手順を決定する画像供給デバイスと記録装置及び記録システムとその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明の画像供給デバイスは以下のような構成を備える。即ち、
画像供給デバイスと記録装置とが汎用インターフェースを介して通信し、前記画像供給デバイスから前記記録装置に画像データを送信して記録する記録システムで使用される画像供給デバイスであって、
前記記録装置からのステータス情報を受信する受信手段と、
前記画像供給デバイスから前記記録装置に所定のコマンドを発行した後、前記受信手段により前記記録装置から所定時間内に所定のステータス情報を受信したかどうかを判定する判定手段と、
前記判定手段により前記所定のステータス情報を受信していないと判定すると、通常の処理で予測されるステータスと判断して処理を継続する処理手段と、
を有することを特徴とする。
【０００８】
上記目的を達成するために本発明の記録システムは以下のような構成を備える。即ち、
画像供給デバイスと記録装置とが汎用インターフェースを介して通信し、前記画像供給デバイスから前記記録装置に画像データを送信して記録する記録システムであって、
前記記録装置から前記画像供給デバイスへステータス情報を送信する送信手段と、
前記画像供給デバイスから前記記録装置に所定のコマンドを発行した後、前記画像供給デバイスで所定時間内に所定のステータス情報を受信したかどうかを判定する判定手段と、
前記判定手段により前記所定のステータス情報を受信していないと判定すると、通常の処理で予測されるステータスと判断して前記画像供給デバイスにおける処理を継続する処理手段とを有することを特徴とする。
【０００９】
上記目的を達成するために本発明の記録システムの制御方法は以下のような工程を備える。即ち、
画像供給デバイスと記録装置とが汎用インターフェースを介して通信し、前記画像供給デバイスから前記記録装置に画像データを送信して記録する記録システムにおける制御方法であって、
前記記録装置から前記画像供給デバイスへステータス情報を送信する送信工程と、
前記画像供給デバイスから前記記録装置に所定のコマンドを発行した後、前記画像供給デバイスで所定時間内に所定のステータス情報を受信したかどうかを判定する判定工程と、
前記判定工程で前記所定のステータス情報を受信していないと判定すると、通常の処理で予測されるステータスと判断して前記画像供給デバイスにおける処理を継続する処理工程とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、画像供給デバイスと記録装置との間で予め定められた手順に従った応答が相手側から受信されない場合には、その相手側のステータスが通常の手順からみて予測されるステータスであると判断して、それ以降の処理手順を決定することができる。
【発明を実施するための最良の形態】
【００１１】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００１２】
図１は、本発明の実施の形態に係るフォトダイレクトプリンタ装置（以下、ＰＤプリンタ装置）１０００の概観斜視図である。このＰＤプリンタ装置１０００は、ホストコンピュータ（ＰＣ）からデータを受信して印刷する通常のＰＣプリンタとしての機能と、メモリカードなどの記憶媒体に記憶されている画像データを直接読取って印刷したり、或いはデジタルカメラからの画像データを受信して印刷する機能を備えている。
【００１３】
図１において、本実施の形態に係るＰＤプリンタ装置１０００の外殻をなす本体は、下ケース１００１、上ケース１００２、アクセスカバー１００３及び排出トレイ１００４の外装部材を有している。また、下ケース１００１は、ＰＤプリンタ装置１０００の略下半部を、上ケース１００２は本体の略上半部をそれぞれ形成しており、両ケースの組合せによって内部に後述の各機構を収納する収納空間を有する中空体構造をなし、その上面部及び前面部にはそれぞれ開口部が形成されている。さらに、排出トレイ１００４は、その一端部が下ケース１００１に回転自在に保持され、その回転によって下ケース１００１の前面部に形成される開口部を開閉させ得るようになっている。このため、記録動作を実行させる際には、排出トレイ１００４を前面側へと回転させて開口部を開成させることにより、ここから記録シートが排出可能となると共に、排出された記録シートを順次積載し得るようになっている。また、排紙トレイ１００４には、２枚の補助トレイ１００４ａ，１００４ｂが収納されており、必要に応じて各トレイを手前に引き出すことにより、用紙の支持面積を３段階に拡大、縮小させ得るようになっている。
【００１４】
アクセスカバー１００３は、その一端部が上ケース１００２に回転自在に保持され、上面に形成される開口部を開閉し得るようになっており、このアクセスカバー１００３を開くことによって本体内部に収納されている記録ヘッドカートリッジ（不図示）あるいはインクタンク（不図示）等の交換が可能となる。なお、ここでは特に図示しないが、アクセスカバー１００３を開閉させると、その裏面に形成された突起がカバー開閉レバーを回転させるようになっており、そのレバーの回転位置をマイクロスイッチなどで検出することにより、アクセスカバー１００３の開閉状態を検出し得るようになっている。
【００１５】
また、上ケース１００２の上面には、電源キー１００５が設けられている。また、上ケース１００２の右側には、液晶表示部１００６や各種キースイッチ等を備える操作パネル１０１０が設けられている。この操作パネル１０１０の構造は、図２を参照して詳しく後述する。１００７は自動給送部で、記録シートを装置本体内へと自動的に給送する。１００８は紙間選択レバーで、プリントヘッドと記録シートとの間隔を調整するためのレバーである。１００９はカードスロットで、ここにメモリカードを装着可能なアダプタが挿入され、このアダプタを介してメモリカードに記憶されている画像データを直接取り込んで印刷することができる。このメモリカード（ＰＣ）としては、例えばコンパクトフラッシュ(登録商標)メモリ、スマートメディア、メモリスティック等がある。１０１１はビューワ（液晶表示部）で、このＰＤプリンタ装置１０００の本体に着脱可能であり、ＰＣカードに記憶されている画像の中からプリントしたい画像を検索する場合などに、１コマ毎の画像やインデックス画像などを表示するのに使用される。１０１２は後述するデジタルカメラを接続するためのＵＳＢ端子である。また、このＰＤ装置１０００の後面には、パーソナルコンピュータ（ＰＣ）を接続するためのＵＳＢコネクタが設けられている。
【００１６】
図２は、本実施の形態に係るＰＤプリンタ装置１０００の操作パネル１０１０の概観図である。
【００１７】
図において、液晶表示部１００６には、その左右に印刷されている項目に関するデータを各種設定するためのメニュー項目が表示される。ここに表示される項目としては、例えば、印刷したい写真の先頭番号、指定コマ番号（開始コマ指定／印刷コマ指定）、印刷を終了したい最後の写真番号（終了）、印刷部数（部数）、印刷に使用する用紙（記録シート）の種類（用紙種類）、１枚の用紙に印刷する写真の枚数設定（レイアウト）、印刷の品位の指定（品位）、撮影した日付を印刷するかどうかの指定（日付印刷）、写真を補正して印刷するかどうかの指定（画像補正）、印刷に必要な用紙枚数の表示（用紙枚数）等がある。これら各項目は、カーソルキー２００１を用いて選択、或いは指定される。２００２はモードキーで、このキーを押下する毎に、印刷の種類（インデックス印刷、全コマ印刷、１コマ印刷等）を切り替えることができ、これに応じてＬＥＤ２００３の対応するＬＥＤが点灯される。２００４はメンテナンスキーで、プリントヘッドのクリーニング等、プリンタのメンテナンスを行わせるためのキーである。２００５は印刷開始キーで、印刷の開始を指示する時、或いはメンテナンスの設定を確立する際に押下される。２００６は印刷中止キーで、印刷を中止させる時や、メンテナンスの中止を指示する際に押下される。
【００１８】
次に図３を参照して、本実施の形態に係るＰＤプリンタ装置１０００の制御に係る主要部の構成を説明する。尚、この図３において、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００１９】
図３において、３０００は制御部（制御基板）を示している。３００１はＡＳＩＣ（専用カスタムＬＳＩ）を示している。３００２はＤＳＰ（デジタル信号処理プロセッサ）で、内部にＣＰＵを有し、後述する各種制御処理及び、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理等を担当している。３００３はメモリで、ＤＳＰ３００２のＣＰＵの制御プログラムを記憶するプログラムメモリ３００３ａ、及び実行時のプログラムを記憶するＲＡＭエリア、画像データなどを記憶するワークメモリとして機能するメモリエリアを有している。３００４はプリンタエンジンで、ここでは、複数色のカラーインクを用いてカラー画像を印刷するインクジェットプリンタのプリンタエンジンが搭載されている。３００５はデジタルカメラ（ＤＳＣ）３０１２を接続するためのポートとしてのＵＳＢコネクタである。３００６はビューワ１０１１を接続するためのコネクタである。３００８はＵＳＢハブ(USB HUB)で、このＰＤプリンタ装置１０００がＰＣ３０１０からの画像データに基づいて印刷を行う際には、ＰＣ３０１０からのデータをそのままスルーし、ＵＳＢ３０２１を介してプリンタエンジン３００４に出力する。これにより、接続されているＰＣ３０１０は、プリンタエンジン３００４と直接、データや信号のやり取りを行って印刷を実行することができる（一般的なＰＣプリンタとして機能する）。３００９は電源コネクタで、電源３０１９により、商用ＡＣから変換された直流電圧を入力している。ＰＣ３０１０は一般的なパーソナルコンピュータ、３０１１は前述したメモリカード（ＰＣカード）、３０１２はデジタルカメラ（ＤＳＣ：Digital Still Camera)である。
【００２０】
尚、この制御部３０００とプリンタエンジン３００４との間の信号のやり取りは、前述したＵＳＢ３０２１又はＩＥＥＥ１２８４バス３０２２を介して行われる。
【００２１】
図４は、本実施の形態に係るＤＳＣ（デジタルカメラ）３０１２の構成を示すブロック図である。
【００２２】
同図において、３１００はＤＳＣ３０１２全体の制御を司るＣＰＵであり、３１０１はＣＰＵ３１００による処理手順を記憶しているＲＯＭである。３１０２はＣＰＵ３１００のワークエリアとして使用されるＲＡＭであり、３１０３は各種操作を行うスイッチ群で、各種スイッチやカーソルキー等が含まれている。２７００は液晶表示部であり、現時点で撮影している映像や、撮像されて記憶されている画像を表示したり、各種設定を行う際のメニューを表示するために使用される。３１０５は光学ユニットであり、主としてレンズ及びその駆動系で構成される。３１０６はＣＣＤ素子であり、３１０７はＣＰＵ３１００の制御下において光学ユニット３１０５を駆動制御するドライバである。３１０８は記憶媒体３１０９（コンパクトフラッシュ(登録商標)メモリカード、スマートメディア等）を接続するためのコネクタであり、３１１０はＰＣ或いは実施形態におけるＰＤプリンタ１０００と接続するためのＵＳＢインターフェース（ＵＳＢのスレーブ側）である。
【００２３】
図５は、本実施の形態に係るＰＤプリンタ装置１０００とＤＳＣ３０１２との接続を説明する図で、前述の図面において共通している部分は同じ記号で示し、その説明を省略している。
【００２４】
図において、ケーブル５０００は、ＰＤプリンタ装置１０００のコネクタ１０１２と接続されるコネクタ５００１と、デジタルカメラ３０１２の接続用コネクタ５００３と接続するためのコネクタ５００２とを備えており、また、デジタルカメラ３０１２は、内部のメモリに保存している画像データを、接続用コネクタ５００３を介して出力可能に構成されている。なお、デジタルカメラ３０１２の構成としては、内部に記憶手段としてのメモリを備えるものや、取外し可能なメモリを装着するためのスロットを備えたものなど、種々の構成を採用することができる。このように、図５に示すケーブル５０００を介してＰＤプリンタ装置１０００とデジタルカメラ３０１２とを接続することにより、デジタルカメラ３０１２からの画像データを直接ＰＤプリンタ装置１０００で印刷することができる。
【００２５】
以下、以上の構成に基づく本実施の形態に係る印刷システムの動作例を実施例として説明する。
【００２６】
［実施の形態１］
以上の構成に基づくＤＳＣ３０１２とＰＤプリンタ装置１０００とを含む印刷システムにおける動作概要を以下に説明する。尚、この実施の形態に係る印刷システムでは、ＤＳＣ３０１２とＰＤプリンタ装置１０００とはそれぞれＤＰＳ（Direct Print System）の仕様に従った動作が可能であるものとする。
【００２７】
図６は、本実施の形態に係る印刷システムにおいて、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対してプリント要求を発行して印刷を行う場合の手順を説明する図である。
【００２８】
この処理手順は、ＰＤプリンタ装置１０００とＤＳＣ３０１２とがＵＳＢケーブル５０００を介して接続された後、互いにＤＰＳ仕様に準拠していることを確認した後に実行される。まずＤＳＣ３０１２は「CofigurePrintService」をＰＤプリンタ装置１０００に送信して、ＰＤプリンタ装置１０００の状態をチェックする（６００）。これに対してＰＤプリンタ装置１０００から、その時点でのＰＤプリンタ装置１０００の状態（ここでは「アイドル」状態）が通知される（６０１）。そしてＤＳＣ３０１２は、ＰＤプリンタ装置１０００のcapabilityを問合せ（６０２）、そのcapabilityに応じたプリント開始要求（StartJob）を発行する（６０３）。尚、このプリント開始要求は、６０１で、後述するＰＤプリンタ装置１０００からのステータス情報の中の「newJobOK」（図８）が「True（真）」になっていることを条件に発行される。
【００２９】
このプリント開始要求に対してＰＤプリンタ装置１０００は、印刷が指示された画像データのファイルＩＤに基づいてファイル情報をＤＳＣ３０１２に要求する（６０４）。これに応答してＤＳＣ３０１２からはファイル情報が送信される。このファイル情報にはファイル容量（ファイルサイズ）、サムネイル画像の有無、ファイルの属性等の情報が含まれる。そしてＰＤプリンタ装置１０００がそのファイル情報を受信して、
そのファイルを処理可能であると判断すると、そのファイルをＤＳＣ３０１２に要求する（６０５）。これによりその要求されたファイルの画像データがＤＳＣ３０１２からＰＤプリンタ装置１０００に送られる。これによりＰＤプリンタ装置１０００がプリント処理を開始すると、６０６で「印刷中（Printing）」を示すステータス情報が、ＰＤプリンタ装置１０００からＤＳＣ３０１２に「NotifyDeviceStatus」によって送られる。そして１頁のプリント処理が終了すると、次のページの処理開始時にＰＤプリンタ装置１０００から「NotifyJobStatus」６０７により、それが通知される。そして１頁だけの印刷であれば、プリント要求した１頁の印刷が終了すると、次に「NotifyDviceStatus」６０８によりＰＤプリンタ装置１０００が「アイドル」状態になったことが通知される。尚、例えば、１頁に複数（Ｎ）の画像をレイアウトして印刷するＮ−ｕｐ印刷の場合には、Ｎ枚の画像を印刷する度に、「NotifyJobStatus」６０７がＰＤプリンタ装置１０００からＤＳＣ３０１２に送られることになる。本実施の形態での「NotifyJobStatus」及び「NotifyDeviceStatus」の発行タイミングと画像データの取得の順番は一例であり、製品の実装によっては様々なケースが起こりうる。
【００３０】
尚、このプリント処理において、ＤＳＣ３０１２からのプリント開始要求（StartJob）に、印刷すべき画像データのファイルＩＤを一括して含めて送信して印刷する場合と、一般の写真現像で使用されるＤＰＯＦファイルのファイルＩＤのみをＤＳＣ３０１２からのプリント開始要求（StartJob）に含めてＰＤプリンタ装置１０００に送信し、ＰＤプリンタ装置１０００がそのＤＰＯＦファイルを解釈し、必要な画像データのファイルＩＤを取得してプリントする場合も含まれる。
【００３１】
図７は、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して発行されるプリント開始要求の具体例を説明する図である。
【００３２】
図において、７２０は、この印刷ジョブのコンフィグレーション（jobConfig）を示し、７２１はプリント情報（printInfo）を示している。
【００３３】
まずコンフィグレーション７２０について説明する。７００は印刷する画質を示し、これには例えば「標準」、「高画質」などがある。７０１は用紙サイズ、７０２は用紙タイプで、例えば「普通紙」、「写真用紙」、「インクジェット専用紙」等がある。７０３は印刷する画像ファイルのタイプを指定するもので、例えばＤＰＯＦを使用する場合は、これで指定される。７０４は日付印刷の有無、７０５はファイル名の印刷の有無、７０６は画像最適化を行うかどうか、７０７は固定サイズの印刷、７０８は画像の指定された範囲の印刷を行うかどうかの有無をそれぞれ指定する。
【００３４】
またプリント情報７２１は、ファイルＩＤ７０９と、日付情報７１０を含んでいる。
【００３５】
図８は、前述のJobStatusとDeviceStatusに含まれる情報を説明する図である。ここで図８（Ａ）のJobStatus及び図８（Ｂ）のDeviceStatusはＰＤプリンタ装置１０００からＤＳＣ３０１２に送信される。また、ＤＳＣ３０１２は任意のタイミングで、それらの情報をＰＤプリンタ１０００に対して送信するように要求することが出来る。
【００３６】
図８（Ａ）において、「prtPID」、「ImagePath」及び「copyID」はＤＰＯＦファイルの印刷が指示された場合に有効になる。「prtPID」はＤＰＯＦファイルで指定された印刷セクションの識別情報（ＩＤ）、「ImagePath」はＤＰＯＦファイルで指定された画像ファイルを特定するためのパスの情報、そして「copyID」は複数枚印刷指定時に実際に何枚目を印刷しているかを意味している。ＤＰＯＦファイルによる印刷の場合は、ＤＳＣ３０１２は、プリント開始要求（StartJob）中にＤＰＯＦファイルの「fileID」を記載してＰＤプリンタ装置１０００に送信する。これによりＰＤプリンタ装置１０００は、そのＤＰＯＦファイルの印刷を開始できる。そしてＰＤプリンタ装置１０００は、そのＤＰＯＦファイルの「fileID」を基にＤＰＯＦファイルを取得し、「GetFileID」を実行して、ＤＰＯＦファイル中に指定された画像ファイルの「fileID」を特定し、その画像ファイルをＤＳＣ３０１２に要求して、その画像データを取得する。こうしてＤＰＯＦファイルで指定された画像を印刷することができる。そして、ＤＰＯＦファイルによる印刷実行中に、印刷の進行状況を示す上記「prtPID」、「ImagePath」及び「copyID」がＰＤプリンタ装置１０００から「NotifyJobStatus」によりＤＳＣ３０１２に通知される。
【００３７】
尚、このＤＰＯＦファイルの印刷中に何らかの理由で印刷が中断された後、印刷が再開された時は、印刷が中止されたページの先頭から、その印刷処理が再開される。
【００３８】
「progress」は、印刷予定枚数の内、現在何枚目を印刷しているか（Ｎ／Ｔ）を示す。ここでＮは現在の印刷ページ、Ｔはトータルの印刷枚数を示す。「imagePrinted」は印刷済みの画像枚数を示す。
【００３９】
次に、図８（Ｂ）のDeviceStatusについて説明する。
【００４０】
「dosPrintServiceStatus」は、ＰＤプリンタ装置１０００の状態を意味し、ＤＳＣ３０１２に通知される。これにはアイドル、プリント、ポーズ状態が含まれる。「jobEndReason」は、プリント処理の終了状況を意味し、最終ページの印刷が完了するとＤＳＣ３０１２に通知される。「errorStatus」はそのエラーの状態を意味し、エラーが発生した場合に通知される。。「errorReason」は、そのエラーの発生理由を意味し、「errorStatus」と共に通知される。「disconnectEnable」は、ＵＳＢケーブル５０００が外されても印刷可能であることを意味し、ＰＤプリンタ装置１０００からＤＳＣ３０１２に通知される。「capabilityChanged」は、ＰＤプリンタ装置１０００におけるcapabilityが変更されたことを意味し、ＤＳＣ３０１２に通知される。「newJobOK」は、ＰＤプリンタ装置１０００が印刷要求を受付け可能であることを意味し、ＤＳＣ３０１２に通知される。
【００４１】
図９は、本実施の形態のＤＳＣ３０１２における印刷再開処理を示すフローチャートである。尚、この処理を実行するプログラムはＲＯＭ３１０１に記憶されており、このプログラムに従ってＣＰＵ３１００が制御処理を実行することにより、この処理が実現される。
【００４２】
この処理はプリントジョブの実行中に、例えばケーブル５０００が外れることによりプリント動作が中止され、その後、ＤＰＳの再接続が確立されて、ＤＳＣ３０１２の印刷ボタンが指示されて、ＰＤプリンタ装置１０００に対してプリント動作の再開が指示されることにより、ＰＤプリンタ装置１０００において印刷が再開される処理を示したものである。
【００４３】
この前提としては、ＰＤプリンタ装置１０００においてプリント処理が中断されており、ＤＳＣ３０１２においても、プリント処理が中断していることを認識していることが必要である。
【００４４】
まずステップＳ１で、ケーブル５０００が接続される等により、ＤＳＣ３０１２とＰＤプリンタ装置１０００とが物理的に接続されて、ＤＰＳの再接続が確立されたか否かが判定され、接続が確立されるとステップＳ２に進み、ＤＳＣ３０１２において印刷再開が指示されると、プリントの中断中であるか否かを判断する。そうでない時はステップＳ３に進み、通常の処理、即ち、印刷指示に応じて新規に印刷を開始する等の処理に移行する。
【００４５】
プリントの中断中である時はステップＳ４に進み、新たに接続が確立したＰＤプリンタ装置１０００は、前回のプリント処理が中断した時のＰＤプリンタ装置１０００と同じ機種（＜dpsVersion＞と＜productName＞が同じ）或いは同じメーカの機種（＜productName＞）、或いは同じベンダーの機種（＜vendorName＞）かどうかを判定する。この手順は、ＤＳＣ３０１２から発行される「ConfigurePrintService」に対してＰＤプリンタ装置１０００から応答される内容に基づいて判断する。これは同じＰＤプリンタ装置が再接続された場合は問題ないが、それ以外の機種でも同じメーカやベンダーの機種であれば、各メーカやベンダの設計に基づいて本実施の形態に係る再印刷処理が可能である場合には再開可能と判断して、これ以降の処理に進むものである。ステップＳ４で「Ｎｏ」と判定されるとステップＳ５に進み、プリントの継続が実行できないと判断して、その旨を表示部２７００に表示する。また、この時必要に応じて、表示部２７００に表示するＵＩ（ユーザメニュー画面）を変更しても良い。
【００４６】
ステップＳ４で、対応機種であると判定するとステップＳ６に進み、ＤＰＯＦファイルの印刷中であったかどうかを調べる。そうであればステップＳ７に進み、ＤＰＯＦファイルのファイルＩＤをＰＤプリンタ装置１０００に送信する。この場合、既に印刷済みのページの画像ファイルを印刷しないように、前述の「prtPID」、「imagePath」や「copyID」をＤＰＯＦファイルのファイルＩＤと共に送信することにより、ＤＰＯＦファイル中の印刷再開を行うファイルを指定する。
【００４７】
また一方ステップＳ６で、ＤＰＯＦファイルの印刷でない時、即ち、各画像ファイルを指定して印刷を行う場合には、当所印刷予定の画像ファイルのファイルＩＤ中から既に印刷済みの画像ファイルを除いた画像ファイルのファイルＩＤを一括してＰＤプリンタ装置１０００に送信して印刷を実行する。尚、ここで印刷再開指示は、ＤＳＣ３０１２の操作ボタンの中の印刷ボタンが指示されることにより、ＤＳＣ３０１２からＰＤプリンタ装置１０００に「StartJob」が送られて印刷が再開される。
【００４８】
尚、各ページのプリント終了は、ＰＤプリンタ装置１０００からの次のページの先頭で送られる「jobStatus」（次ページのプリント開始を意味する）、或いは最終ページの場合は「deviceStatus」に含まれる「jobEndReason」によりＰＤプリンタ装置１０００からＤＳＣ３０１２に報知される。従って、ＤＳＣ３０１２は印刷済みの画像枚数を確認することができ、各画像を一枚ずつ印刷する場合は、印刷命令で指定した枚数の画像の印刷が終了しているかどうかにより、或いはＤＰＯＦファイルによる印刷の場合には、そのＤＰＯＦファイル中の進捗状況（「prtPID」、「ImagePath」及び「copyID」）または印刷が完了したかどうかにより印刷の中断かどうかを判定できる。
【００４９】
また、１ページに一枚の画像を印刷する場合には、印刷する用紙枚数と画像の数とは一致するが、１枚の用紙に複数（Ｎ）の画像をレイアウト印刷する場合には、印刷する画像の数と印刷枚数とは一致しない。このためＤＳＣ３０１２では、印刷モードに応じて、印刷する用紙枚数と画像データの数との整合を採る必要がある。
【００５０】
［実施の形態２］
前述の図７において、＜jobConfig＞７２０の７０４で日付印刷＜datePrint＞が指定されている場合は、＜printInfo＞７２１に含まれている日付データ＜date＞７１０が印刷される。また、＜jobConfig＞７２０の７０４で日付印刷＜datePrint＞が指定されていない場合には、＜printInfo＞７２１に日付データ＜date＞７１０が含まれていても、その日付データは無視され印刷されることはない。
【００５１】
これにより、＜printInfo＞７２１に含むデータの自由度が増すため、例えば他で使用している画像データと日付リストをそのまま＜printInfo＞７２１に貼付けることにより、startJobコマンドを作成することが出来る。
【００５２】
［実施の形態３］
図１０は、本発明の実施の形態３に係る印刷システムにおける処理を説明するフローチャートである。
【００５３】
この実施の形態３では、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して何らかのコマンドを発行した場合、それに伴ってＰＤプリンタ装置１０００のステータスが変更されると、それが前述の「NotifyDeviceStatus」によりＰＤプリンタ装置１０００からＤＳＣ３０１２に通知される。しかしながら、そのＰＤプリンタ装置１０００で状態変化が発生しなかった場合、或いはその応答が遅れた場合には、ＤＳＣ３０１２では、前回発行したコマンドによりＰＤプリンタ装置１０００において、当然に予測されるステータスの変化が発生しているものと判断（推測）して、それに応じた処理を実行する。また、ＰＤプリンタ装置１０００の状態を確認したい場合には、ＰＤプリンタ装置１０００に対して「GetDeviceStatus」を発行することにより、そのＰＤプリンタ装置１０００の状態を取得し、その取得したステータスに応じた処理を実行する。
【００５４】
以下、図１０のフローチャートを参照してその一例を説明する。
【００５５】
まずステップＳ１０で、ＰＤプリンタ装置１０００に対して印刷開始要求「StartJob」を発行する。次にステップＳ１１に進み、所定時間内にＰＤプリンタ装置１０００から所定のステータス応答「NotifyDeviceStatus」が送られてくるかをみる。仮にＰＤプリンタ装置１０００が１つの印刷ジョブのみ受け付け可能な製品であった場合には、印刷開始要求「StartJob」を発行すると、ＰＤプリンタ装置１０００が次の印刷ジョブの受け付けが不可能な状態であることを示すNotifyDeviceStatusのnewJobOKが「False」の状態になっているはずである。こうしてステップＳ１１で正常な応答が受信されるとステップＳ１２に進み、次に「newJobOK」が「True」になるのを待って次のコマンド発行を行ったり、ＰＤプリンタ装置１０００からの要求に応じて画像データ等を出力する、通常の印刷処理を実行する。
【００５６】
ステップＳ１３で、「StartJob」が実行できなかったことを示す「NotExecuted」を受信したかを調べる。「NotExecuted」を受信したときはステップＳ２０に進み、ＰＤプリンタ装置１０００に対して「GetDeviceStatus」を発行し、ＰＤプリンタ装置１０００のステータスを取得する。そのステータスにより命令が実行されなかった理由が判明して、「StartJob」が再発行可能であれば表示部２７００のＵＩにその旨を表示する。ここでユーザにより命令の再発行が指示されるとステップＳ２１からＳ２２に進み、前回実行されなかった「StartJob」命令を再度ＰＤプリンタ装置１０００に再発行する。再発行の指示が入力されない時はステップＳ２２からステップＳ１９に進む。
【００５７】
またステップＳ１３で、「NotExecuted」を受信していないときはステップＳ１４に進み、「NotSupported」を受信したかどうかをみる。「NotSupported」を受信したときはステップＳ１５に進み、この場合は前回発行した「StartJob」命令はＰＤプリンタ装置１０００によりサポートされていないので、表示部２７００のＵＩに、その命令がＰＤプリンタ装置１０００においてサポートされないことを示すように、例えば選択不能として表示する。
【００５８】
ここで「StartJob」命令がサポートされていないという意味は、ＰＤプリンタ装置１０００が「StartJob」命令自体をサポートしていないという場合だけではなく、例えばＰＤプリンタ装置１０００が「StartJob」命令自体はサポートしているが、サポートしていない用紙サイズや用紙種類の指定がされていたために、今回発行された「StartJob」命令がサポートされない、という場合も含む。この場合は上述の例と同様に、例えば不適切な用紙サイズや用紙種類を選択不能としてＵＩを再構築すれば、再び「StartJob」命令を実行した時に再び「NotSupported」を受信する可能性を低減できる。その際にＰＤプリンタ装置１０００がサポートしている用紙サイズや用紙種類を確認する等の処理を行っても良い。
【００５９】
ステップＳ１４で「NotSupported」を受信していない時はステップＳ１１’に進む。これは実質的に応答内容が「OK」だった場合を想定している。ステップＳ１１’で所定のステータス応答を受信した場合にはステップＳ１２に進み、通常の動作を継続する。ステップＳ１１’で所定のステータス情報を受信しない時にはステップ１６に進み、通常の動作として動作を継続するかどうかを判定する。これは前述のＵＩを用いて表示し、ユーザにより選択可能にしても良い。通常の動作に進む時はステップＳ１２に進むが、ユーザによる指示などが無くて通常の動作に移行しない時はステップＳ１７に進み、ＰＤプリンタ装置１０００に対してステータスを要求する。次にステップＳ１８に進み、その取得したステータスが正常なステータスであれば、通常予測されるステータスであるとしてステップＳ１２に進む。それ以外のステータスが取得された時はステップＳ１９に進み、その取得したステータスに応じた処理を実行する。
【００６０】
尚、前述のステップＳ１３で、予期しない「NotExecuted」が応答された場合の理由としては、例えばＰＣ３０１０が接続されていて、ＤＳＣ３０１２からの印刷開始要求と略同時にＰＣ３０１０からの印刷指示を受信して、ＰＣ３０１０からの印刷データによる印刷処理を実行し始めた場合等が考えられる。つまり、まず事前にＰＤプリンタ装置１０００から発行されたNotifyDeviceStatusに基づいて「newJobOK」＝「True」だと認識しているのでＤＳＣ３０１２は「StartJob」コマンドを発行したのだが、丁度その瞬間に「newJobOK」＝「False」となってしまったのでＰＤプリンタ１０００は「NotExecuted」を応答することとなり、ＤＳＣ３０１２からみると「newJobOK」＝「True」なのに、「NotExecuted」が応答されるという予期しない応答となる。また、ステップＳ１１で所定のステータス情報を受信しない場合の理由としては、例えばＰＤプリンタ装置１０００が複数の印刷ジョブを受け付け可能な製品であり、印刷要求「StartJob」を受け付けた後でも「DeviceStatus」の「newJobOK」が「True」のまま変化せず、その為に「NotifyDeviceStatus」がＰＤプリンタ装置１０００から発行されない場合等が考えられる。この場合においてもＤＳＣ３０１２側としては「GetDeviceStatus」でＰＤプリンタ装置１０００の状態を確認するまではＰＤプリンタ装置１０００の状態を仮に「newJobOK」が「False」と推測して動作する方が安全である。（何らかの理由で「newJobOK」が「False」という状態を通知する「NotifyDeviceStatus」の発行が遅れている可能性が有るため）
上記説明では、ＤＳＣ３０１２からのコマンド発行とＰＤプリンタ装置１０００からのコマンド発行とがほぼ同時に行われても両方のコマンドを有効とする場合を想定して説明したが、例えば、「ほぼ同時に行われた両方のコマンドの内、ＤＳＣ３０１２からのコマンドが優先的に処理され、ＰＤプリンタ装置１０００からのコマンド発行は無視され廃棄される」というダイレクトプリント仕様の場合もあり得る。その場合にはステップＳ１１でのチェック内容は「ＰＤプリンタ装置１０００からのコマンド発行を受信したか？」となり、Ｙｅｓの場合には該ＰＤプリンタ装置１０００からのコマンドを無視するステップ（不図示）を経由してステップＳ１３へと進み、Ｎｏの場合には直接ステップＳ１３へと進む、という実施形態となる。
【００６１】
上述したダイレクトプリント仕様の場合には、廃棄される側のＰＤプリンタ装置１０００のコマンドはＰＤプリンタ装置１０００によって再発行される可能性が高い。例としてＤＳＣ３０１２からの「StartJob」と略同時にＰＣ３０１０からの印刷指示を受信して、ＰＣ３０１０からの印刷データによる印刷処理を実行し始めた場合を説明する。まず事前にＰＤプリンタ装置１０００から発行されたNotifyDeviceStatusによって「newJobOK」＝「True」だと認識しているＤＳＣ３０１２から「StartJob」命令が発行される。それと略同時にＰＣ３０１０からの印刷データによる印刷処理を開始したＰＤプリンタ装置１０００は「newJobOK」＝「False」に変化する。ＰＤプリンタ装置１０００はこの事をＤＳＣ３０１２に通知するために「NotifyDeviceStatus」命令を発行する。しかし、ＰＤプリンタ装置１０００から発行されたこの「NotifyDeviceStatus」命令は破棄され、ＤＳＣ３０１２から発行された「StartJob」命令が優先的に処理される。ところがＰＤプリンタ１０００は既に「newJobOK」＝「False」なので「StartJob」命令に対して「NotExecuted」を応答することとなる。この時、ＰＤプリンタ装置１０００としては、依然として「newJobOK」＝「False」を通知するために、「NotifyDeviceStatus」命令を再発行する必要があるが、ここでＤＳＣ３０１２が次のコマンドを発行してしまうと、再び両機器から略同時に命令（コマンド）が発行されることとなる。
【００６２】
基本的に両機器から略同時にコマンドが発行され一方が破棄されるという状況は、両機器がコマンド発行する際に根拠とするステータスが異なっている場合が予想されるので、非常にダイレクトプリントの処理進行上不安定かつ危険な瞬間と言える。そこで、両機器から略同時にコマンドが発行される状況は可能な限り避ける事が好ましい。そこで例えば、ＤＳＣ３０１２がステップＳ１１で「ＰＤプリンタ装置１０００からのコマンド発行」を検知した場合には、所定の時間、ステップＳ２０やステップＳ１７での「GetDeviceStatus」命令の発行を禁止し、ＰＤプリンタ装置１０００からのコマンド待ちの状態を設けても良い。
【００６３】
更には、接続相手のＰＤプリンタ装置１０００においても同様に、所定の時間ＰＤプリンタ装置１０００からのコマンドの発行禁止及びＤＳＣ３０１２のコマンド待ちの状態を設定しておく。この際、その所定の禁止時間が全く同じである場合には、その所定の時間後に再び両機器から略同時にコマンドが発行されることになってしまう。その可能性をも考慮して、上記所定の時間は固定では無く、動的に不連続或は不規則に変化させても良いし、またはステップＳ１１で「ＰＤプリンタ装置１０００からのコマンド発行を検知しなかった場合」に用いた禁止時間を、それ以降ステップＳ１１で「ＰＤプリンタ装置１０００からのコマンド発行を検知する」まで用い、ステップＳ１１で「ＰＤプリンタ装置１０００からのコマンド発行を検知した場合」に禁止時間を更新する、という様にしても良い。またタイミングの異ならせ方としては、発行タイミングを早めたりしてもよい。更に、両者が同じようなタイミング変更を行なうといけないので、所定のルールでタイミングの異ならせ方を工夫しても良い。これには例えば、ＵＳＢのホストかスレーブかによって、タイミングの変え方を設定しておくのも良い。また或は、ＤＳＣ３０１２とＰＤプリンタ装置１０００の両方でランダムなタイミング信号を発生する手段を備え、そのタイミング信号に応じてコマンドの発行タイミングを決定するようにしても良い。また、上述したように、ＰＤプリンタ装置１０００も同様に、所定時間ＰＤプリンタ装置１０００からのコマンドの発行を禁止の状態を設定することで、再び両機器から略同時にコマンドが発行される可能性を低減できる。更に上述した種々の変形例もそれぞれ応用可能である。
【００６４】
［実施の形態４］
次に、本実施の形態４に係る印刷システムのＤＳＣ３０１２からプリントの継続及びプリント中断の場合の処理を説明する。この場合も、印刷システムの構成及びＤＳＣ３０１２、ＰＤプリンタ装置１０００の構成は前述の構成と同様であるため、その説明を省略する。
【００６５】
図１１は、本実施の形態４に係るＤＳＣ３０１２におけるプリント処理が中断されていて、プリント開始を指示する印刷ボタンが指示されることにより実行されるプリント継続処理を説明するフローチャートである。
【００６６】
まずステップＳ１１０で、ＤＳＣ３０１２の操作ボタン３１０３の印刷ボタンが指示されたかを調べ、そうでない時はステップＳ１１１に進み、指示されたボタン或いはボタンによる指示待ちの等の他の処理を実行する。印刷ボタンが指示された時はステップＳ１１２に進み、ＰＤプリンタ装置１０００に対して「GetDeviceStatus」を発行して、ＰＤプリンタ装置１０００のステータス情報を要求し、それに応答してＰＤプリンタ装置１０００から送られてくるステータス情報を取得する。次にステップＳ１１３に進み、その取得したステータス情報に基づいて、ＰＤプリンタ装置１０００のステータスが「ポーズ」であるかをみる。そうであればステップＳ１１４に進み、過去にエラーが発生していて「Warning」になっている（例えばケーブルの脱着等）か、或いはエラーが発生していないかをみる。そうであれば印刷処理の再開が可能（ＰＤプリンタ装置１０００よりのステータスを受信しているため）と判断してステップＳ１１５に進み、ＰＤプリンタ装置１０００に対してプリント処理の再開を指示する（「ContinueJob」の送信）。
【００６７】
またステップＳ１１３で、ポーズ状態でない時、或いはステップＳ１１４で、別のエラーが発生している時は印刷再開が不可能と判断して、表示部２７００のＵＩにその旨を表示する。この場合は、例えば表示部２７００にメッセージを表示してユーザに印刷再開ができない旨を通知したり、及び／或いは印刷ボタンの選択を不可能にすることなどが考えられる。また、ステップＳ１１０の印刷ボタンの押下を判定する前にＰＤプリンタ装置のステータスを取得しておき、印刷ボタンのオン／オフが有効かをユーザに通知することにより、ユーザに無用な印刷ボタンの押下を行わせるのを避けることができる。
【００６８】
図１２は、本実施の形態４に係るＤＳＣ３０１２におけるプリント処理の中止を指示する印刷中止ボタンが指示されることにより実行されるプリント中止処理を説明するフローチャートである。
【００６９】
まずステップＳ１２１で、ＤＳＣ３０１２の操作ボタン３１０３の中止ボタンが指示されたかを調べ、そうでない時はステップＳ１２２に進み、指示されたボタン或いはボタンによる指示待ちの等の他の処理を実行する。中止ボタンが指示された時はステップＳ１２３に進み、ＰＤプリンタ装置１０００に対して「GetDeviceStatus」を発行して、ＰＤプリンタ装置１０００のステータス情報を要求し、それに応答してＰＤプリンタ装置１０００から送られてくるステータス情報を取得する。次にステップＳ１２４に進み、その取得したステータス情報に基づいて、ＰＤプリンタ装置１０００のステータスが「ポーズ」であるかをみる。そうであればステップＳ１２６に進むが、そうでない時はステップＳ１２５に進み、プリント中であるかをみる。そうであれば印刷処理の中止が可能と判断してステップＳ１２６に進み、ＰＤプリンタ装置１０００に対してプリント処理の中止を指示する（「AbortJob」の送信）。
【００７０】
またステップＳ１２５で印刷中でない時は、印刷処理の中止は不可能であると判断して、表示部２７００のＵＩにその旨を表示する。この場合は、例えば表示部２７００にメッセージを表示してユーザに印刷中止ができない旨を通知したり、及び／或いは中止ボタンの選択を不可能にすることなどが考えられる。また、ステップＳ１２１の中止ボタンの押下を判定する前にＰＤプリンタのステータスを取得しておき、中止ボタンの押下が有効かどうかをユーザに通知することにより、ユーザに無用な中止ボタンの押下を行わせる事を避ける事が出来る。
【００７１】
［実施の形態５］
図１３は、本発明の実施の形態５に係る印刷システムにおける処理を説明するフローチャートで、この処理を実行するプログラムはＲＯＭ３１０１に記憶されている。尚、この実施の形態５においても、ＤＳＣ３０１２及びＰＤプリンタ装置１０００の構成は前述の実施の形態と同様であるため、その説明を省略する。
【００７２】
この実施の形態５では、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して何らかのコマンドを発行した場合、そのコマンドに対してＰＤプリンタ装置１０００からの応答がＤＳＣ３０１２に通知される。もし、その応答が予想外の内容だった場合には、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して「GetDeviceStatus」を発行することにより、そのＰＤプリンタ装置１０００の状態を取得する。その場合、その取得したステータスが直前に発行されたコマンド及びその応答内容から予想されるステータスであった場合には通常の処理を、予想とは異なるステータスであった場合には、そのステータスに応じた処理を実行するものである。
【００７３】
まずステップＳ５０で、ＰＤプリンタ装置１０００に対して印刷開始要求である「StartJob」命令を発行する。次にステップＳ５１に進み、その印刷開始要求に対する応答をＰＤプリンタ装置１０００から受信すると、その内容を判定する。もし内容が、「StartJob」命令が実行できなかったことを示す「NotExecuted」だったときはステップＳ５２に進み、ＰＤプリンタ装置１０００に対して「GetDeviceStatus」命令を発行する。ステップＳ５３では、これに応答してＰＤプリンタ装置１０００から送信される応答を待ち、ＰＤプリンタ装置１０００のステータスを取得する。そしてステップＳ５４で、印刷開始命令が実行されなかった理由を解析する。こうして理由が判明するとステップＳ５５に進み、ＵＩ表示の変更及び操作ボタン３１０３を使用したユーザからの指示入力を待つ。そしてステップＳ５６で、印刷開始要求が入力されるとステップＳ５０に進んで、前述の処理を実行する。尚、ここで印刷要求以外のコマンドが指示されたときは、その処理に移行するが、図１３ではその処理を省略して示している。
【００７４】
またステップＳ５１で、その応答の内容が「NotExecuted」でなかったときはステップＳ５７に進み、その内容が「NotSupported」であったかどうかをみる。「NotSupported」であればステップＳ５８に進み、前回発行した「StartJob」命令がＰＤプリンタ装置１０００によりサポートされていないため、表示部２７００のＵＩに、そのコマンドがＰＤプリンタ装置１０００においてサポートされないことを示すように、例えば選択不能として表示する。尚、ここで「StartJob」命令がサポートされていない、という意味は、ＰＤプリンタ装置１０００が「StartJob」命令自体をサポートしていない場合だけではなく、例えばＰＤプリンタ装置１０００が「StartJob」命令自体をサポートしているが、サポートしていない用紙サイズや用紙種類の指定がされていたために、今回発行された「StartJob」命令が実行できないため、コマンドがサポートされないと判定された場合も含む。この場合は上述の例と同様に、例えば不適切な用紙サイズや用紙種類を選択不能としてＵＩを再構築することにより、サポートされていない印刷条件を排除できるため、再び「StartJob」命令が発行された時に、再びＰＤプリンタ装置１０００から「NotSupported」を受信する可能性を低減できる。その際にＰＤプリンタ装置１０００がサポートしている用紙サイズや用紙種類を確認する等の処理を行っても良い。こうしてＵＩを変更するとステップＳ５５に進んで次の指示入力を待ち、それに応じた処理に移行する。
【００７５】
またステップＳ５７で、その応答の内容が「NotSupported」でなかった場合はステップＳ５９に進む。これは実質的に応答が「OK」だった場合を想定している。ステップＳ５９では、所定時間内にＰＤプリンタ装置１０００から所定のステータス通知「NotifyDeviceStatus」が送られてくるかをみる。仮にＰＤプリンタ装置１０００が１つの印刷ジョブのみを受け付ける場合には、印刷開始要求である「StartJob」命令を発行すると、ＰＤプリンタ装置１０００が次の印刷ジョブの受け付けが不可能な状態であることを示す「NotifyDeviceStatus」の「newJobOK」が「False」の状態になっているはずである。よって、ステップＳ５９で、印刷開始要求に対応する所定のステータス応答を受信した場合にはステップＳ６３に進み、通常の動作を継続して終了する。
【００７６】
またステップＳ５９で、所定時間内に所定のステータス情報を受信しない時にはステップＳ６０に進み、ＰＤプリンタ装置１０００に対して「GetDeviceStatus」を発行し、ＰＤプリンタ装置１０００のステータスを取得する。そしてステップＳ６１でＰＤプリンタ装置１０００からの応答を受信するとステップＳ６２に進み、その取得したステータスが直前に発行されたコマンド及びその応答に対応する、予想されるステータスであるかどうかを判定する。そうであればステップＳ６３に進んで通常の処理を行い、異なるステータスの場合はステップＳ６４に進み、そのステータスに応じた処理を実行する。
【００７７】
尚、本実施の形態５における「その応答に対応する、予想されるステータス」の例としては、ステップＳ５０で印刷開始要求を発行して「OK」が応答されたにも関わらず一定期間「NotifyDeviceStatus」が送られてこなかった場合に「GetDeviceStatus」を発行し、その結果「印刷中」を意味するステータスが応答された場合がある。この場合には何らかの理由（画像ファイルの転送等に時間が掛かっていた等）で「NotifyDeviceStatus」の発行が遅れているのだとみなして通常処理を継続出来る。逆に、本実施の形態５における異なるステータスの例としては、上記「GetDeviceStatus」の発行に対して「印刷中」を意味しないステータスが応答される場合が考えられる。この場合には何らかの理由で印刷開始要求が正常に処理されなかったか、印刷開始要求から極めて短い経過時間中にＰＤプリンタ装置１０００側の都合で印刷がキャンセルされた、等の様々なケースが考えられる。それらの理由は他のステータス情報（例えばエラー情報等）との組み合わせによってその後の処理が決定されるべきである。また、前述の実施の形態３の構成と併用することにより、より安定なダイレクトプリント処理を実現出来る。
【００７８】
本実施の形態５は、画像データ供給側の処理によって、要求発行タイミングを異ならしめる説明を行なった。つまり、画像供給デバイスから記録装置に所定のコマンドを発行し、所定のコマンドを発行した後、記録装置から受信した信号が所定のコマンド応答であるかどうかを判定し、所定のコマンド応答でないと判定すると、画像供給デバイスが次のコマンドを発行させる時の発行タイミングを異ならしめていた。
【００７９】
しかし、これは画像データを受信する装置や記録装置にも、本発明を適用できる。つまり、画像データを受信する装置や記録装置から、画像供給デバイスに所定のコマンドを発行し、所定のコマンドをした後、画像供給デバイスから受信した信号が所定のコマンド応答であるかどうかを判定し、所定のコマンド応答でないと判定すると、画像データを受信する装置や記録装置が、次のコマンドを発行させる時の発行タイミングを異ならしめるように構成しても良い。
【００８０】
［実施の形態６］
上述した実施の形態では、ＤＳＣ３０１２における処理を中心に説明したが、この実施の形態６では、ＰＤプリンタ装置１０００においてＤＳＣ３０１２から画像データを取得する場合の処理について説明する。尚、この実施の形態６におけるハードウェア構成は前述の実施の形態１の場合と同様であるので、その説明を省略する。
【００８１】
図１４は、本発明の実施の形態６に係るＰＤプリンタ装置１０００における画像データの取得処理を説明するフローチャートで、この処理を実行するプログラムはプログラムメモリ３００３ａに記憶されており、ＤＳＰ３００２の制御の下に実行される。
【００８２】
この処理は、ＤＳＣ３０１２から印刷要求（「StartJob」）が送られてきて、印刷処理の開始が指示されることにより開始され、まずステップＳ３１で、「GetFileInfo」をＤＳＣ３０１２に送って、ＤＳＣ３０１２が印刷したい画像ファイルに関する情報を要求する。これによりステップＳ３２で、ＤＳＣ３０１２から、その画像ファイルに関する情報（ファイルサイズや属性等）が送られてくると、それに含まれているファイル容量を示す情報を取得してステップＳ３３に進み、その画像ファイルを一度に全て受信して処理可能かどうかを判定する。これはＰＤプリンタ装置１０００が有しているメモリ３００３の空エリアのメモリ容量等に基づいて判定される。ここで全画像データを一度に全て受信できないと判断するとステップＳ３４に進み、その画像ファイルの読み出し開始アドレス及び読み出し量を指定して、その画像ファイルの部分画像データを要求する。これは「GetPartialFile」を使用して行われる。これによりＤＳＣ３０１２は、その指定された部分画像データを、その画像ファイルから読み出してＰＤプリンタ装置１０００に送信する。ステップＳ３５で、この部分画像データを受信したＰＤプリンタ装置１０００は、ステップＳ３６で、その部分画像データを処理して印刷を行う。次にステップＳ３７に進み、その画像ファイルの全画像データをプリントしたかを調べ、していない時はステップＳ３４に戻って、次の部分画像データを要求する。こうして、その画像ファイルの全てを受信して印刷するまで、上述の処理が繰り返し実行される。
【００８３】
またステップＳ３３で、その画像ファイルの画像データを一度に受信して処理可能であると判断した時はステップＳ３８に進み、ＤＳＣ３０１２に対してその画像ファイルの全データを要求し、ステップＳ３９では、この要求に基づいてＤＳＣ３０１２から送られてくる、その画像ファイルの全画像データを受信して印刷する。
【００８４】
図１５は、本発明の実施の形態６に係るＰＤプリンタ装置１０００における画像データの取得処理の他の例を説明するフローチャートで、この処理を実行するプログラムはプログラムメモリ３００３ａに記憶されており、ＤＳＰ３００２の制御の下に実行される。
【００８５】
この処理は、ＤＳＣ３０１２から印刷要求（「StartJob」）が送られてきて、印刷処理の開始が指示されることにより開始され、まずステップＳ４１で、「GetFileInfo」をＤＳＣ３０１２に送って、ＤＳＣ３０１２が印刷したい画像ファイルに関する情報を要求する。これによりステップＳ４２で、ＤＳＣ３０１２から、その画像ファイルに関する情報が送られてくるとステップＳ４３に進み、その画像ファイルがサムネイル画像を含んでいるかどうかを判定する。含んでいる時はステップＳ４４に進み、操作部１０１でインデックスプリントが指示されているかどうかを判定する。インデックスプリントが指示されている時はステップＳ４５に進み、そのサムネイル画像データをＤＳＣ３０１２に要求して（「GetThumb」を発行する）、取得する。そしてステップＳ４６に進み、その取得したサムネイル画像を基にインデックスプリントを実行する。
【００８６】
尚、ステップＳ４３でサムネイル画像を含んでいない時、或いはステップＳ４４でインデックスプリントが指定されていない時はステップＳ３３（図１４）に進み、前述した画像印刷処理を実行する。
【００８７】
このように本実施の形態６によれば、ＰＤプリンタ装置１０００のメモリ容量や処理能力などに応じて、ＤＳＣ３０１２から一度に取得する画像データの量を変更してＤＳＣ３０１２から入力することができる。
【００８８】
また、ＤＳＣ３０１２の画像ファイルに、既にサムネイル画像が記憶されていることを予め知ることができるため、ＰＤプリンタ装置１０００においてインデックスプリントが指示されている場合に、ＰＤプリンタ装置１０００におけるサムネイル画像の作成処理を省略することができる。これにより、サムネイル画像の印刷を迅速にできる。
【００８９】
なお本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００９０】
また、本発明の目的は、前述した実施形態の機能(カメラ側で行われる処理、プリンタ側で行われる各種印刷処理)を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９２】
以上説明したように本実施の形態によれば、ＤＳＣとＰＤプリンタ装置とを接続しているケーブルが外されることによりプリンタ装置における印刷処理が中断され、再度ケーブルが接続される等して印刷が再開可能になった場合に、確実に印刷処理を再開して印刷できるという効果がある。
【００９３】
また、ＤＰＯＦファイルに基づいて印刷している場合と、各画像データを順次ＤＳＣからプリンタ装置に送信して印刷を行っている場合とで、印刷再開の際にＤＳＣからプリンタ装置に再送する画像データを変えることにより、いずれの場合においても確実に印刷を再開できる。
【００９４】
また、本実施の形態に係るＤＳＣによれば、StartJob或いはAbortJob等のコマンドをプリンタ装置に発行した場合、プリンタ装置からの応答が無くても、所定の状態になっていると推定して、次の動作を決定することができ、更に、ステータスを確認するためのコマンドをプリンタ装置に発行して、その時点でのプリンタ装置の状態（ステータス）を識別することができる。
【００９５】
更にまた、ＰＤプリンタ装置からＤＳＣに対して特定のステータスが応答された場合は、それに応じた処理に移行する。例えば「NotExecuted」や「NotSupported」の場合は、前者の場合はプリンタ装置の状態を問い合わせるコマンドを発行し、その応答に基づいて、次に発行するコマンドを決定する。また後者の場合は、前回発行したコマンドはそのプリンタ装置でサポートされていないので、それ以降そのコマンドを発行しないように、例えば表示部に表示するＵＩを変更する等の処理を実行する。これにより、無駄なコマンドがプリンタ装置に再送されるのを防止できる。
【００９６】
また、ＰＤプリンタ装置及びＤＳＣから略同時にコマンドが発行された場合においても、両機器それぞれ、もしくは少なくとも一方が、コマンドの発行を所定時間禁止することによって、それ以降に再び両機器から略同時にコマンドが発行される可能性を低減することができる。
【００９７】
また本実施の形態によれば、プリンタ装置の有しているメモリ容量或いは処理能力等に応じて、ＤＳＣから一度に取得する画像データの量を調整して画像データを取り込み、その画像データを処理して印刷できる。
【図面の簡単な説明】
【００９８】
【図１】本発明の実施の形態に係るＰＤプリンタ装置の概観斜視図である。
【図２】本実施の形態に係るＰＤプリンタ装置の操作パネルの概観図である。
【図３】本実施の形態に係るＰＤプリンタ装置の制御に係る主要部の構成を示すブロック図である。
【図４】本実施の形態に係るＤＳＣの構成を示すブロック図である。
【図５】本実施の形態に係るＰＤプリンタ装置とデジタルカメラとの接続を説明する図である。
【図６】本実施の形態に係る印刷システムにおけるＰＤプリンタ装置とＤＳＣとの間のコマンドのやり取りを説明する図である。
【図７】本実施の形態に係るＤＳＣから発行されるプリント開始コマンドの具体例を説明する図である。
【図８】本実施の形態に係るJobStatusとDeviceStatusを説明する図である。
【図９】本実施の形態１に係るＤＳＣによる印刷再開処理を説明するフローチャートである。
【図１０】本実施の形態３に係るＤＳＣによる処理を説明するフローチャートである。
【図１１】本実施の形態４に係るＤＳＣにおける印刷継続のためのボタン操作に伴う処理を説明するフローチャートである。
【図１２】本実施の形態４に係るＤＳＣにおける印刷中止のためのボタン操作に伴う処理を説明するフローチャートである。
【図１３】本実施の形態５に係るＤＳＣによる処理を説明するフローチャートである。
【図１４】本実施の形態６に係るＰＤプリンタ装置による処理を説明するフローチャートである。
【図１５】本実施の形態６に係るＰＤプリンタ装置による処理を説明するフローチャートである。
【図１】
0003606465.tif 000002
【図２】
0003606465.tif 000003
【図３】
0003606465.tif 000004
【図４】
0003606465.tif 000005
【図５】
0003606465.tif 000006
【図６】
0003606465.tif 000007
【図７】
0003606465.tif 000008
【図８】
0003606465.tif 000009
【図９】
0003606465.tif 000010
【図１０】
0003606465.tif 000011
【図１１】
0003606465.tif 000012
【図１２】
0003606465.tif 000013
【図１３】
0003606465.tif 000014
【図１４】
0003606465.tif 000015
【図１５】
0003606465.tif 000016