(57)【要約】【課題】ダイレクトプリントにおいて、プリンタに対するオペレーションの実行命令の重複発行を防止すること。【解決手段】情報処理装置が記憶する画像データに基づく画像を情報処理装置に接続されたプリンタからプリント出力するプリンタ制御プログラムであって、プリンタが実行可能な複数のオペレーションを識別する識別情報の中から、プリンタにおけるオペレーションの実行状態を識別する識別情報を検出し、検出された識別情報がプリンタがオペレーションの受付可能状態であることを識別する識別情報に一致するか否かを判断し、一致すると判断された場合にのみ、上位アプリケーション層から実行指示を受け付けた任意のオペレーションの実行命令をプリンタに出力するようにした。【選択図】図６
2008090705.tif 000002
【特許請求の範囲】
【請求項１】
電子機器が記憶する画像データに基づく画像を前記電子機器に接続されたプリンタからプリント出力するプリンタ制御プログラムであって、
前記プリンタが実行可能な複数のオペレーションを識別する識別情報の中から、前記プリンタにおけるオペレーションの実行状態を識別する識別情報を検出する検出工程と、
前記検出工程において検出された識別情報が前記プリンタがオペレーションの受付可能状態であることを識別する識別情報に一致するか否かを判断する判断工程と、
前記判断工程において一致すると判断された場合にのみ、上位アプリケーション層から実行指示を受け付けた任意のオペレーションの実行命令を前記プリンタに出力する出力工程と、
を含んだことを特徴とするプリンタ制御プログラム。
【請求項２】
前記上位アプリケーション層から実行を指示された特定のオペレーションを識別する識別情報を取得する取得工程と、
前記判断工程において一致すると判断された場合に、前記プリンタにおけるオペレーションの実行状態を識別する識別情報を、前記取得工程において取得された識別情報に更新し、さらにプリンタからオペレーション完了をあらわす応答があった場合に、前記オペレーションの実行状態を識別する識別情報を前記プリンタがオペレーションの受付可能状態をあらわす識別情報に更新する更新工程と、
を含んだことを特徴とする請求項１に記載のプリンタ制御プログラム。
【請求項３】
前記出力工程は、前記判断工程において一致しないと判断された場合に、前記プリンタに出力せずに、前記上位アプリケーション層から実行指示を受け付けた任意のオペレーションの実行命令に応じた応答を前記上位アプリケーション層に対して出力することを特徴とする請求項１に記載のプリンタ制御プログラム。
【請求項４】
請求項１〜３のいずれか一つに記載のプリンタ制御プログラムを、コンピュータによって読み取り可能に記録したことを特徴とする記録媒体。
【請求項５】
電気的に接続されたプリンタから画像データに基づく画像をプリント出力させるプリンタ制御プログラムを記録した電子機器であって、
前記プリンタが実行可能な複数のオペレーションを識別する識別情報の中から、前記プリンタにおけるオペレーションの実行状態を識別する識別情報を検出する検出手段と、
前記検出手段によって検出された識別情報が前記プリンタがオペレーションの受付可能状態であることを識別する識別情報に一致するか否かを判断する判断手段と、
前記判断手段によって一致すると判断された場合にのみ、上位アプリケーション層から実行指示を受け付けた任意のオペレーションの実行命令を前記プリンタに出力する出力手段と、
を備えることを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プリンタ制御プログラム、記録媒体、および電子機器に関する。
【背景技術】
【０００２】
従来、たとえば、デジタルカメラなどの画像データを記憶する電子機器とプリンタとをＵＳＢケーブルなどを介して接続し、パーソナルコンピュータなどを介さずに、電子機器が記憶する画像データに基づく画像を紙などの記録媒体にプリント出力させる、いわゆるダイレクトプリントに関する技術があった。
【０００３】
このようなダイレクトプリントに際しては、電子機器におけるプリンタドライバとプリンタとの間で、たとえば、ＰｉｃｔＢｒｉｄｇｅなどのプリント規格にしたがった通信がおこなわれる。プリンタドライバは、上位アプリケーション層から送信されたオペレーションの開始指示に応じて、該当するオペレーションの実行命令をプリンタに送信する。プリンタは、プリンタドライバから送信された実行命令に応じた処理を実行し、当該処理が完了すると処理が完了した旨の応答をプリンタドライバに対して送信する。
【０００４】
ＰｉｃｔＢｒｉｄｇｅなどのプリント規格では、各オペレーションの実行命令は、当該オペレーションより先に発行されたオペレーションが完了してから発行することが策定されている。このように、たとえば、プリント規格によっては、あるオペレーションの実行中に別のオペレーションを発行したり、実行中の或るオペレーションと同じオペレーションを複数回発行したりすることはできないように策定されているものがある。これは、プリンタがオペレーションを貯めておく、いわゆるキューの機能を備えておらず、多重にオペレーションが発行された場合にはプリンタからの処理不能の応答があるまで処理が停止してしまう問題などによるものである。
【０００５】
このため、ＰｉｃｔＢｒｉｄｇｅなどのプリント規格にしたがったダイレクトプリントにおいては、プリンタドライバに対する各オペレーションの発行順序や、発行したオペレーションがプリンタドライバにおいて実行中であるか否かなど、プリンタドライバにおけるオペレーションの実行状態を認識する必要がある。従来、プリンタドライバにおけるオペレーションの実行状態は、上位アプリケーション層が認識していた。
【０００６】
また、従来、カメラとプリンタとを備え、夫々がＵＳＢケーブルで接続されたＵＳＢ接続システムにおいて、プリンタによりカメラに印刷コマンドが発行された場合にカメラが即時に印刷データの送信をすることができないとき、印刷データを送ることができないＢＵＳＹ状態である旨の情報を含む代替データを印刷データの代わりにプリンタに送信するようにした技術があった（たとえば、下記特許文献１を参照。）。
【０００７】
【特許文献１】特開２００６−１５５２４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来の技術のように、プリンタドライバにおけるオペレーションの実行状態を上位アプリケーション層が認識する場合、設計上あるいは実装上の問題などによっては、プリンタドライバにおけるすべてのオペレーションの実行状態を認識できないおそれがあった。
【０００９】
上位アプリケーション層が、プリンタドライバにおけるオペレーションの実行状態を認識することができない場合、たとえば、プリントスタートキーの２度押しなどに応じて、１回目に送信したオペレーションの実行指示に対する処理の完了前に、２回目のオペレーションの実行指示を送信することが想定される。
【００１０】
また、上述したように、プリンタドライバは、或るオペレーションの実行中に別のオペレーションの実行命令を発行したり、実行中の或るオペレーションと同じオペレーションの実行命令を複数回発行したりすることができないので、２回目の実行指示に対する実行命令をプリンタに発行することができない。
【００１１】
仮に多重にオペレーションが発行された場合には、プリンタからの処理不可能の旨の応答を待って、その応答を受け取ってはじめてドライバは上位アプリケーション層に状態を通知し、その通知によって上位アプリケーション層が状態を認識するので、従来は、このような場合に、上位アプリケーション層は２回目の実行指示に対するプリンタドライバからの応答待ち状態、プリンタドライバは上位アプリケーション層からの実行指示待ち状態となって、処理が中断してしまうという問題があった。
【００１２】
ＵＳＢプロトコル上ではＢＵＳＹ状態の送信を行うことができるように規格化されているものもあるが、ＰｉｃｔＢｒｉｄｇｅなどのプリント規格によってはＢＵＳＹ状態の送信をおこなう手続きが規格化されていないものがあり、上述した問題は、ＢＵＳＹ状態の送信をおこなう手続きが規格化されていないＰｉｃｔＢｒｉｄｇｅなどのプリント規格を用いる場合に発生する。
【００１３】
また、ＰｉｃｔＢｒｉｄｇｅなどのプリント規格ではプリンタ側でオペレーションを貯めておく、いわゆるキューの機能を備えておらず、多重オペレーションが発行された場合にはプリンタからの処理不能の応答を待つしかなく、処理が中断してしまう問題が起こっていた。
【課題を解決するための手段】
【００１４】
この発明にかかるプリンタ制御プログラムは、電子機器が記憶する画像データに基づく画像を前記電子機器に接続されたプリンタからプリント出力するプリンタ制御プログラムであって、前記プリンタが実行可能な複数のオペレーションを識別する識別情報の中から、前記プリンタにおけるオペレーションの実行状態を識別する識別情報を検出する検出工程と、前記検出工程において検出された識別情報が前記プリンタがオペレーションの受付可能状態であることを識別する識別情報に一致するか否かを判断する判断工程と、前記判断工程において一致すると判断された場合にのみ、上位アプリケーション層から実行指示を受け付けた任意のオペレーションの実行命令を前記プリンタに出力する出力工程と、を含んだことを特徴とする。
【００１５】
この発明によれば、プリンタがオペレーションの受付可能状態である場合に限って、上位アプリケーション層から実行指示を受け付けた任意のオペレーションの実行命令が、プリンタに出力されるので、ダイレクトプリントをおこなう際に、プリンタに対するオペレーションの実行命令が重複して発行されることを防止できる。
【００１６】
これによって、プリンタ制御プログラムは、プリンタ制御プログラムの上位アプリケーション層の仕様に拘わらず、プリンタに対するオペレーションの実行命令の重複発行を防止することができる。そして、これによってプリンタ制御プログラムを搭載する電子機器の利用者（以下、「電子機器の利用者」という）は、格別複雑な操作をおこなうことなく、ダイレクトプリントをおこなわせることができる。
【００１７】
また、この発明にかかるプリンタ制御プログラムは、前記上位アプリケーション層から実行を指示された特定のオペレーションを識別する識別情報を取得する取得工程と、前記判断工程において一致すると判断された場合に、前記プリンタにおけるオペレーションの実行状態を識別する識別情報を、前記取得工程において取得された識別情報に更新し、さらにプリンタからオペレーション完了をあらわす応答があった場合に、前記オペレーションの実行状態を識別する識別情報を前記プリンタがオペレーションの受付可能状態をあらわす識別情報に更新する更新工程と、を含んだことを特徴とする。
【００１８】
この発明によれば、プリンタが実行しているオペレーションの内容を認識することができる。これによってプリンタ制御プログラムは、たとえば、プリンタがオペレーションを実行している最中に上位アプリケーション層から新たなオペレーションの実行が指示された場合に、プリンタが実行中のオペレーションに応じた応答を上位アプリケーション層に通知することができる。そして、これによって電子機器の利用者は、指示したオペレーションが実行されない理由を認識することができ、電子機器を快適に利用することができる。
【００１９】
また、この発明にかかるプリンタ制御プログラムにおける前記出力工程は、前記判断工程において一致しないと判断された場合に、前記プリンタに出力せずに、前記上位アプリケーション層から実行指示を受け付けた任意のオペレーションの実行命令に応じた応答を前記上位アプリケーション層に対して出力することを特徴とする。
【００２０】
この発明によれば、プリンタがオペレーションの実行中であることを上位アプリケーション層に認識させることができる。これによってプリンタ制御プログラムは、たとえば、プリンタが実行中のオペレーションが完了するまでの時間を利用して、上位アプリケーション層に別の処理を実行させることが可能となる。そして、これによって電子機器の利用者は、電子機器における限られたリソースを有効に利用することができる。
【００２１】
また、この発明にかかる記録媒体は、上述したプリンタ制御プログラムを、コンピュータによって読み取り可能に記録したことを特徴とする。
【００２２】
この発明によれば、プリンタ制御プログラムを読み取ったコンピュータが当該プリンタ制御プログラムを実行することによって、プリンタがオペレーションの受付可能状態である場合に限って、上位アプリケーション層から実行指示を受け付けた任意のオペレーションの実行命令を、プリンタに出力させることができるので、ダイレクトプリントをおこなう際に、プリンタに対するオペレーションの実行命令が重複して発行されることを防止できる。
【００２３】
これによって、プリンタ制御プログラムを読み取ったコンピュータは、プリンタ制御プログラムの上位アプリケーション層の仕様に拘わらず、プリンタに対するオペレーションの実行命令の重複発行を防止することができる。そして、これによってプリンタ制御プログラムを読み取ったコンピュータの利用者は、格別複雑な操作をおこなうことなく、ダイレクトプリントをおこなわせることができる。
【００２４】
また、この発明にかかる電子機器は、電気的に接続されたプリンタから画像データに基づく画像をプリント出力させるプリンタ制御プログラムを記録した電子機器であって、前記プリンタが実行可能な複数のオペレーションを識別する識別情報の中から、前記プリンタにおけるオペレーションの実行状態を識別する識別情報を検出する検出手段と、前記検出手段によって検出された識別情報が前記プリンタがオペレーションの受付可能状態であることを識別する識別情報に一致するか否かを判断する判断手段と、前記判断手段によって一致すると判断された場合に、上位アプリケーション層から実行指示を受け付けた任意のオペレーションの実行命令を前記プリンタに出力する出力手段と、を備えることを特徴とする。
【００２５】
この発明によれば、プリンタがオペレーションの受付可能状態である場合に限って、上位アプリケーション層から実行指示を受け付けた任意のオペレーションの実行命令が、プリンタに出力されるので、ダイレクトプリントをおこなう際に、プリンタに対するオペレーションの実行命令が重複して発行されることを防止できる。
【００２６】
これによって、電子機器は、プリンタ制御プログラムの上位アプリケーション層の仕様に拘わらず、プリンタに対するオペレーションの実行命令の重複発行を防止することができる。そして、これによって電子機器の利用者は、格別複雑な操作をおこなうことなく、ダイレクトプリントをおこなわせることができる。
【発明を実施するための最良の形態】
【００２７】
以下に添付図面を参照して、この発明にかかる電子機器の好適な実施の形態を詳細に説明する。この実施の形態では、この発明にかかる電子機器を情報処理装置に適用した例である。
【００２８】
（情報処理装置の外観）
図１−１および図１−２は、この発明の実施の形態にかかる情報処理装置の外観を示す説明図である。図１−１は情報処理装置の上面図を示しており、図１−２は情報処理装置の正面図を示している。図１−１に示したように、情報処理装置１００は、ＳＤメモリーカード（登録商標）スロット１０１、ＣＦカードスロット１０２、およびＣＦカードイジェクトボタン１０３を備えている。ＳＤメモリーカード（登録商標）スロット１０１には、ＳＤメモリーカード（登録商標）・ＭＭＣ（マルチメディアカード）などが挿入される。
【００２９】
ＣＦカードスロット１０２には、ＣＦカード・マイクロドライブが挿入される。ＣＦカードイジェクトボタン１０３は、ＣＦカードスロット１０２に挿入されたＣＦカードを取り出すときに押下される。ＣＦカードイジェクトボタン１０３が押下された場合には、ＣＦカードスロット１０２に挿入されたＣＦカードが、情報処理装置１００の外部へ排出される。図１−１中図示を省略するが、情報処理装置１００は、ＵＳＢコネクタを備えている。ＵＳＢコネクタには、たとえば、ＵＳＢケーブルを介してプリンタが接続される。
【００３０】
図１−２に示したように、情報処理装置１００は、高精細液晶ディスプレイ１０４、および各種操作キー１０５〜１１１を備えている。高精細液晶ディスプレイ１０４は、操作画面や画像データを表示する。高精細液晶ディスプレイ１０４としては、具体的には、たとえば４．１型の高精細液晶ディスプレイを使用することができる。各種操作キー１０５〜１１１のうち、図１−２中符号１０５は、「Ｐｒｉｎｔ」ボタンを示している。「Ｐｒｉｎｔ」ボタン１０５が印刷可能な画面で押下された場合、高精細液晶ディスプレイ１０４には印刷設定画面が表示される。
【００３１】
各種操作キー１０５〜１１１のうち、図１−２中符号１０６は、「Ｍｅｎｕ」ボタンを示している。「Ｍｅｎｕ」ボタン１０６が押下された場合、高精細液晶ディスプレイ１０４には、「Ｍｅｎｕ」ボタン１０６が押下された時点で実行可能な操作項目が、ポップアップメニューなどで表示される。各種操作キー１０５〜１１１のうち、図１−２中符号１０７は、「↑↓←→」キー（４−Ｗａｙリング）を示している。４−Ｗａｙリング１０７の押下によって任意の項目を選択させることができる。
【００３２】
各種操作キー１０５〜１１１のうち、図１−２中符号１０８は「ＯＫ」ボタンを示している。４−Ｗａｙリング１０７の押下によって選択された項目は、「ＯＫ」ボタン１０８の押下によって確定される。図示を省略するが、たとえば、「Ｐｒｉｎｔ」ボタンが選択された状態で「ＯＫ」ボタン１０８が押下された場合、プリント出力処理に関する処理が開始される。各種操作キー１０５〜１１１のうち、図１−２中符号１０９は「Ｃａｎｃｅｌ」ボタンを示している。「Ｃａｎｃｅｌ」ボタン１０９が押下された場合、「Ｃａｎｃｅｌ」ボタン１０９が押下された時点で実行中の操作が中止され、一つ前の画面が表示される。
【００３３】
各種操作キー１０５〜１１１のうち、図１−２中符号１１０は「Ｄｉｓｐｌａｙ」ボタンを示している。「Ｄｉｓｐｌａｙ」ボタン１１０が押下された場合、高精細液晶ディスプレイ１０４には、操作説明や画面の情報が表示される。各種操作キー１０５〜１１１のうち、図１−２中符号１１１は「Ｈｏｍｅ」ボタンを示している。「Ｈｏｍｅ」ボタン１１１が押下された場合、「Ｈｏｍｅ」ボタン１１１が押下された時点で実行中の操作が中止され、「ホーム画面（初期メニュー画面）」が表示される。
【００３４】
（情報処理装置のハードウエア構成）
図２は、この発明の実施の形態にかかる情報処理装置のハードウエア構成を示す説明図である。図２において、情報処理装置１００は、ＣＰＵ２０１と、メモリ２０２と、メモリコントローラ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＡＴＡ  Ｉ／Ｆ（インターフェース）２０５と、入力デバイス２０６と、汎用入出力制御ユニット２０７と、ビデオＩ／Ｆ（インターフェース）２０８と、ビデオデコーダ２０９と、ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｍｇ  Ｄｉｏｄｅ）２１０と、上述した高精細液晶ディスプレイ１０４と、オーディオＩ／Ｆ（インターフェース）２１１と、オーディオデコーダ２１２と、スピーカ２１３と、ヘッドフォン２１４と、電源制御ユニット２１５と、バッテリ２１６と、を備えている。情報処理装置１００が備える各部２０１〜２１６は、それぞれバス２１７によって接続される。
【００３５】
ＣＰＵ２０１は、メモリ２０２、ＨＤＤ２０４などに記憶されたプログラムを実行することによって、情報処理装置１００全体を制御する。メモリ２０２は、情報処理装置１００の基本処理プログラムなどを記憶している。メモリ２０２としては、たとえばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が用いられる。また、メモリコントローラ２０３は、ＣＰＵ２０１の制御にしたがって、メモリ２０２に対するデータの読み取り／書き込みを制御する。
【００３６】
ＨＤＤ２０４は、画像データや、制御プログラムなどの各種情報を記憶する。ＨＤＤ２０４の代わりにあるいはＨＤＤ２０４に加えて、ＤＶＤ、コンパクトディスク（ＣＤ）などの着脱可能な記憶媒体による記憶装置であってもよい。また、ＨＤＤ２０４はＡＴＡ  Ｉ／Ｆ２０５によって、ＣＰＵ２０１と接続されており、このＡＴＡ  Ｉ／Ｆ２０５により、ＨＤＤ２０４に格納されているデータの読み出しおよび書き込みをおこなう。
【００３７】
入力デバイス２０６は、文字、数値、各種指示などの入力のための、たとえば図１−２に示すような各種ボタンによって構成されている。また、汎用入出力制御ユニット２０７は、入力デバイス２０６からの入出力を制御する。
【００３８】
ビデオＩ／Ｆ２０８は、ビデオデコーダ２０９を介して、上述した高精細液晶ディスプレイ１０４と接続される。このビデオＩ／Ｆ２０８は、たとえば、高精細液晶ディスプレイ１０４の全体の制御をおこなうグラフィックコントローラと、即時表示可能な画像情報を一時的に記録するＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）などのバッファメモリと、高精細液晶ディスプレイ１０４を表示制御する制御ＩＣなどによって構成される。
【００３９】
具体的には、ビデオＩ／Ｆ２０８は、グラフィックコントローラから出力された画像データをビデオデコーダ２０９によって復号化し、その復号化した画像データに基づいて、高精細液晶ディスプレイ１０４を表示制御する。ＬＥＤ２１０は、点灯または点滅することによって、利用者に情報処理装置１００の状態あるいは利用者へ所定の情報（たとえば警告情報など）を告知する。
【００４０】
オーディオＩ／Ｆ２１１は、オーディオデコーダ２１２を介してスピーカ２１３およびヘッドフォン２１４に接続される。具体的には、オーディオＩ／Ｆ２１１から出力された音声データをオーディオデコーダ２１２によって復号化し、スピーカ２１３およびヘッドフォン２１４から音声出力する。
【００４１】
電源制御ユニット２１５は、利用者によって情報処理装置１００の電源がＯＮにされた際に、バッテリ２１６からの電力を各構成部に供給する。また、利用者によって情報処理装置１００の電源がＯＦＦにされた際には、各構成部に対する電力の供給を終了する。加えて、図示を省略するが、情報処理装置１００は、ＵＳＢコネクタに接続されたプリンタとの間で通信をおこなう通信Ｉ／Ｆを備えている。
【００４２】
（情報処理装置の機能的構成）
図３は、この発明の実施の形態にかかる情報処理装置１００の機能的構成を示すブロック図である。図３に示したように、情報処理装置１００は、第１の階層（上位アプリケーション層）３１０と、第１の階層（上位アプリケーション層）３１０の下位階層である第２の階層３２０と、によって構成される階層構造を有している。第２の階層３２０はプリンタ制御プログラムを実行し、第１の階層（上位アプリケーション層）３１０は第２の階層３２０にプリンタ制御プログラムを実行させる。
【００４３】
プリンタ制御プログラムは、情報処理装置１００が記憶する画像データに基づく画像を情報処理装置１００に接続されたプリンタ３３０からプリント出力させる。第２の階層３２０は、受付部３２１と、検出部３２２と、判断部３２３と、出力部３２４と、取得部３２５と、更新部３２６と、記憶部３２７と、を備えている。
【００４４】
受付部３２１は、第１の階層（上位アプリケーション層）３１０から出力されたプリンタ制御プログラムの実行指示を受け付ける。検出部３２２は、受付部３２１によってプリンタ制御プログラムの実行指示が受け付けられた場合に、上述したＵＳＢコネクタに接続されたプリンタ３３０が実行可能な複数のオペレーションを識別する識別情報の中から、プリンタ３３０におけるオペレーションの実行状態を識別する識別情報を検出する。
【００４５】
識別情報は、プリンタ３３０において実行可能なオペレーションごとに設定された変数である。実施の形態においては、Ｎであらわされる整数が、識別情報として設定されている。具体的には、たとえば、第１の階層（上位アプリケーション層）３１０から出力された各種指示に応じたオペレーションの実行命令をプリンタ３３０に対して発行することが可能な状態（初期状態）であることを示す識別情報Ｎが、「Ｎ＝０（初期値）」として設定されている。
【００４６】
また、具体的には、プリンタ３３０に対してプリント出力処理の開始させるオペレーションの実行命令（以下、「ＤＰＳ＿ＣｏｎｆｉｇｕｒＰｒｉｎｔＳｅｒｖｉｓｅ」という）を示す識別情報Ｎは「Ｎ＝１」に設定されており、プリンタ３３０のプリント出力能力を取得させるオペレーションの実行命令（以下、「ＤＰＳ＿ＧｅｔＣａｐａｂｉｌｉｔｙ」という）を示す識別情報Ｎは「Ｎ＝２」に設定されており、プリンタ３３０に対してプリント出力処理の開始させるオペレーションの実行命令（以下、「ＤＰＳ＿ＳｔａｒｔＪｏｂ」という）を示す識別情報Ｎは「Ｎ＝３」に設定されている。
【００４７】
判断部３２３は、検出部３２２において検出された識別情報が、プリンタ３３０がオペレーションの実行指示の受付可能状態であることを識別する識別情報である「Ｎ＝０」に一致するか否かを判断する。出力部３２４は、判断部３２３において一致すると判断された場合に、第１の階層（上位アプリケーション層）３１０から実行指示を受け付けた任意のオペレーションの実行命令（たとえば、「ＤＰＳ＿ＳｔａｒｔＪｏｂ」など）をプリンタ３３０に出力する。
【００４８】
また、出力部３２４は、判断部３２３において一致しないと判断された場合に、プリンタ３３０に出力せずに、第１の階層（上位アプリケーション層）３１０から実行指示を受け付けた任意のオペレーションの実行命令に応じた応答を第１の階層（上位アプリケーション層）３１０に対して出力するようにしてもよい。
【００４９】
取得部３２５は、第１の階層（上位アプリケーション層）３１０から実行を指示された特定のオペレーションを識別する識別情報を取得する。具体的に、取得部３２５は、初期状態であることを示す識別情報「Ｎ＝０」以外の識別情報を取得する。
【００５０】
更新部３２６は、判断部３２３において一致すると判断された場合に、プリンタ３３０におけるオペレーションの実行状態を識別する識別情報を、取得部３２５において取得された識別情報に更新し、さらにプリンタ３３０からオペレーション完了をあらわす応答があった場合に、オペレーションの実行状態を識別する識別情報をプリンタ３３０がオペレーションの受付可能状態をあらわす識別情報に更新する。これによって、情報処理装置１００は、プリンタ３３０が実行中のオペレーションを、プリンタ３３０に問い合わせることなく把握することができる。
【００５１】
取得部３２５によって取得された、プリンタ３３０におけるオペレーションの実行状態を識別する識別情報は、記憶部３２７によって記憶される。上述した検出部３２２は、記憶部３２７に記憶された識別情報を用いて、検出部３２２において検出された識別情報が、プリンタ３３０がオペレーションの受付可能状態であることを識別する識別情報である「Ｎ＝０」に一致するか否かを判断する。
【００５２】
（情報処理装置の処理手順）
図４は、この発明の実施の形態にかかる情報処理装置１００の処理手順を示すフローチャートである。つぎに、図４を用いて、この発明の実施の形態にかかる情報処理装置１００の処理手順について説明する。図４のフローチャートにおいて、まず、第１の階層（上位アプリケーション層）３１０から第２の階層３２０へ出力された、オペレーションの実行指示を受付部３２１によって受け付けるまで待つ（ステップＳ４０１：Ｎｏ）。
【００５３】
ステップＳ４０１において、オペレーションの実行指示を受け付けた場合（ステップＳ４０１：Ｙｅｓ）には、記憶部３２７によって記憶された識別情報を検出部３２２によって検出する（ステップＳ４０２）。そして、検出された識別情報が、初期状態であることを示す識別情報「Ｎ＝０」に一致するか否かを判断する（ステップＳ４０３）。
【００５４】
ステップＳ４０３において、検出部３２２によって検出された識別情報が初期状態であることを示す識別情報「Ｎ＝０」に一致する場合（ステップＳ４０３：Ｙｅｓ）には、プリンタ３３０に対して、第１の階層（上位アプリケーション層）３１０から出力された実行指示に応じた実行命令を出力する（ステップＳ４０４）。そして、記憶部３２７に記憶されている識別情報を、ステップＳ４０２において検出された識別情報に更新して（ステップＳ４０５）、一連の処理を終了する。
【００５５】
一方、ステップＳ４０３において、検出部３２２によって検出された識別情報が初期状態であることを示す識別情報「Ｎ＝０」に一致しない場合（ステップＳ４０３：Ｎｏ）には、第１の階層（上位アプリケーション層）３１０に対して応答を出力して（ステップＳ４０６）、一連の処理を終了する。
【００５６】
ステップＳ４０６においては、たとえば、プリンタ３３０に対してあらたなオペレーションの実行命令を発行できない旨の通知を、第１の階層（上位アプリケーション層）３１０に対して出力する。また、ステップＳ４０６においては、記憶部３２７に記憶されている識別情報Ｎの値からプリンタ３３０の状態を認識できるため、記憶部３２７に記憶されている識別情報Ｎの値に応じて、たとえば、プリンタ３３０においてプリント出力処理を実行中であるために、プリンタ３３０に対してあらたなオペレーションの実行命令を発行できない旨の通知を、第１の階層（上位アプリケーション層）３１０に対して出力するようにしてもよい。
【００５７】
（情報処理装置の各部とプリンタとの関係を示すシーケンス図）
図５および図６は、情報処理装置１００の各部とプリンタとの関係を示すシーケンス図（（その１）および（その２））である。つぎに、図５および図６を用いて、実施の形態における第２の階層３２０の役割について説明する。図５および図６においては、第１の階層（上位アプリケーション層）３１０から第２の階層３２０に対して、プリント出力の実行命令がオペレーションとして出力された場合について説明する。
【００５８】
図５は、第１の階層（上位アプリケーション層）３１０から第２の階層３２０に出力したオペレーションが正常に実行された場合のシーケンスを示している。図５に示したように、初期状態「Ｎ＝０」にある第２の階層３２０に対して、第１の階層（上位アプリケーション層）３１０から「プリント出力開始命令」が出力されると（図５中符号５０１で示した矢印を参照。）、第２の階層３２０は記憶部３２７が記憶する識別情報Ｎを「Ｎ＝３」に更新する（図５中符号５０２で示したブロックを参照。）。これにより、以降、第２の階層３２０は、プリンタ３３０がプリント出力の実行状態にあると認識するようになる。
【００５９】
そして、第１の階層（上位アプリケーション層）３１０から指示された「プリント出力開始命令」に対する「ＤＰＳ＿ＳｔａｒｔＪｏｂ」の実行がプリンタ３３０において可能である旨の通知（図５中、「実行可能通知」と記載）を、第１の階層（上位アプリケーション層）３１０に出力する（図５中符号５０３で示した矢印を参照。）とともに、第１の階層（上位アプリケーション層）３１０から指示された「プリント出力開始命令」に対する「ＤＰＳ＿ＳｔａｒｔＪｏｂ」命令をプリンタ３３０に対して発行する（図５中符号５０４で示した矢印を参照。）。
【００６０】
プリンタ３３０は、「ＤＰＳ＿ＳｔａｒｔＪｏｂ」命令に応じた「ＤＰＳ＿ＳｔａｒｔＪｏｂ」の実行が完了すると、「ＤＰＳ＿ＳｔａｒｔＪｏｂ」応答を第２の階層３２０に対して出力する（図５中符号５０５で示した矢印を参照。）。第２の階層３２０は、プリンタ３３０から出力された「ＤＰＳ＿ＳｔａｒｔＪｏｂ」応答があった場合、記憶部３２７が記憶する識別情報Ｎを「Ｎ＝０」に更新する（図５中符号５０６で示したブロックを参照。）。これにより、以降、第２の階層３２０は、プリンタ３３０が初期状態にあると認識するようになる。
【００６１】
そして、第２の階層３２０は、第１の階層（上位アプリケーション層）３１０に対して、「初期化完了通知」を出力して（図５中符号５０７で示した矢印を参照。）、プリンタ３３０においてプリント出力が完了した旨を通知する。
【００６２】
図６は、第１の階層（上位アプリケーション層）３１０から第２の階層３２０に出力したオペレーションがプリンタ３３０において完了する前に、第１の階層（上位アプリケーション層）３１０から第２の階層３２０に対して再度プリント出力の実行指示が出力された場合のシーケンスを示している。
【００６３】
図６に示したように、初期状態「Ｎ＝０」にある第２の階層３２０に対して、第１の階層（上位アプリケーション層）３１０から「プリント出力開始命令」が出力されると（図６中符号６０１で示した矢印を参照。）、第２の階層３２０は記憶部３２７が記憶する識別情報Ｎを「Ｎ＝３」に更新する（図６中符号６０２で示したブロックを参照。）。
【００６４】
そして、「実行可能通知」を第１の階層（上位アプリケーション層）３１０に出力する（図６中符号６０３で示した矢印を参照。）とともに、第１の階層（上位アプリケーション層）３１０から指示された「プリント出力開始命令」に対する「ＤＰＳ＿ＳｔａｒｔＪｏｂ」命令をプリンタ３３０に対して発行する（図６中符号６０４で示した矢印を参照。）。
【００６５】
ここで、「ＤＰＳ＿ＳｔａｒｔＪｏｂ」応答を待機している状態の第２の階層３２０に対して、第１の階層（上位アプリケーション層）３１０から２回目の「プリント出力開始命令」が出力されると（図６中符号６０５で示した矢印を参照。）、第２の階層３２０は記憶部３２７が記憶する識別情報Ｎを確認し、識別情報Ｎが「Ｎ＝３」であるために（図６中符号６０６で示したブロックを参照。）、プリンタ３３０に対して新たな「ＤＰＳ＿ＳｔａｒｔＪｏｂ」命令の発行が不可能である旨の通知（図６中、「実行不可能通知」と記載）を第１の階層（上位アプリケーション層）３１０に対して出力し（図６中符号６０７で示した矢印を参照。）、第２の階層３２０は、プリンタ３３０から出力された「ＤＰＳ＿ＳｔａｒｔＪｏｂ」応答を待つ。
【００６６】
そして、第２の階層３２０は、プリンタ３３０から出力された「ＤＰＳ＿ＳｔａｒｔＪｏｂ」応答があった場合（図６中符号６０８で示した矢印を参照。）には、記憶部３２７が記憶する識別情報Ｎを「Ｎ＝０」に更新する（図６中符号６０９で示したブロックを参照。）とともに、第１の階層（上位アプリケーション層）３１０に対して、「初期化完了通知」を出力して（図６中符号６１０で示した矢印を参照。）、プリンタ３３０においてプリント出力が完了した旨を通知する。
【００６７】
上述したように、実施の形態の情報処理装置１００によれば、プリンタ３３０がオペレーションの実行指示の受付可能状態である場合（識別情報Ｎが「Ｎ＝０」である状態）に限って、第１の階層（上位アプリケーション層）３１０から実行指示を受け付けた任意のオペレーションの実行命令が、プリンタ３３０に出力されるので、ダイレクトプリントをおこなう際に、プリンタ３３０に対するオペレーションの実行命令が重複して発行されることを防止できる。
【００６８】
これによって、情報処理装置１００は、第１の階層（上位アプリケーション層）３１０の仕様に拘わらず、プリンタ３３０に対するオペレーションの実行命令の重複発行を防止することができる。そして、これによって情報処理装置１００の利用者は、格別複雑な操作をおこなうことなく、ダイレクトプリントをおこなわせることができる。
【００６９】
また、実施の形態の情報処理装置１００は、記憶部３２７によって記憶された識別情報Ｎの値によって、プリンタ３３０が実行しているオペレーションの内容を認識することができる。これによって情報処理装置１００は、たとえば、プリンタ３３０がオペレーションを実行している最中に第１の階層（上位アプリケーション層）３１０から新たなオペレーションの実行が指示された場合に、プリンタ３３０が実行中のオペレーションに応じた応答を第１の階層（上位アプリケーション層）３１０に通知することが可能になる。
【００７０】
このように、プリンタ３３０が実行中のオペレーションに応じた応答を第１の階層（上位アプリケーション層）３１０に通知する場合、利用者は、指示操作が受け付けられない理由を認識することができ、情報処理装置１００を快適に利用することができる。
【００７１】
また、実施の形態の情報処理装置１００によれば、検出部３２２によって検出された識別情報が初期状態であることを示す識別情報「Ｎ＝０」に一致しない場合（図４中ステップＳ４０３を参照）に、たとえば、プリンタ３３０において現在プリント出力処理中であるために、あらたなオペレーションの実行命令をプリンタ３３０に対して出力できない旨の通知を第１の階層（上位アプリケーション層）３１０に対して出力するようにした場合、たとえば、プリンタ３３０が実行中のオペレーションが完了するまでの時間を利用して、第１の階層（上位アプリケーション層）３１０に別の処理を実行させることが可能となる。そして、これによって利用者は、情報処理装置１００における限られたリソースを有効に利用することができる。
【００７２】
即ち、仮に第１の階層（上位アプリケーション層）から多重にオペレーションが発行された場合であっても、第２の階層３２０からプリンタ３３０に多重のオペレーションを発行することがないので、プリンタから処理不能の応答を受け取る必要が無い。さらに、第２の階層３２０が直ちに第１の階層にあらたなオペレーションの実行命令をプリンタ３３０に対して出力できない旨の通知を出力するので、第１の階層（上位アプリケーション）はプリンタ３３０からの応答を待つことなく、次の処理を実行することができる。
【００７３】
以上説明したように、情報処理装置１００は、第１の階層（上位アプリケーション層）３１０の仕様に拘わらず、プリンタ３３０に対するオペレーションの実行命令の重複発行を防止することができる。そして、これによって情報処理装置１００の利用者は、格別複雑な操作をおこなうことなく、ダイレクトプリントをおこなわせることができる。
【図面の簡単な説明】
【００７４】
【図１−１】この実施の形態にかかる情報処理装置の外観図（その１）。
【図１−２】この実施の形態にかかる情報処理装置の外観図（その２）。
【図２】この実施の形態にかかる情報処理装置のハードウエア構成図。
【図３】この実施の形態にかかる情報処理装置の機能的構成を示すブロック図。
【図４】情報処理装置の処理手順を示すフローチャート。
【図５】情報処理装置の各部とプリンタとの関係を示すシーケンス図（その１）。
【図６】情報処理装置の各部とプリンタとの関係を示すシーケンス図（その２）。
【符号の説明】
【００７５】
１００  情報処理装置、３１０  第１の階層（上位アプリケーション層）、３２０  第２の階層、３２１  受付部、３２２  検出部、３２３  判断部、３２４  出力部、３２５  取得部、３２６  更新部、３２７  記憶部、３３０  プリンタ
【図１−１】
2008090705.tif 000003
【図１−２】
2008090705.tif 000004
【図２】
2008090705.tif 000005
【図３】
2008090705.tif 000006
【図４】
2008090705.tif 000007
【図５】
2008090705.tif 000008
【図６】
2008090705.tif 000009