(57)【要約】【課題】特別な設定や専用の装置を用いることなく、他機器のコマンドを自機器のコマンドと同様に使用できる電子機器を提供する。【解決手段】電子機器は、他機器と通信を行う通信部と、他機器が備えている機能の処理を実行するコマンドである第１コマンドを含む複数のコマンドを管理するコマンド管理部と、複数のコマンドのうち選択されたコマンドを、設定されたコマンドの実行手順で実行させる処理を制御する制御部と、選択されたコマンドのうちに第１コマンドが含まれる場合、コマンドの実行手順に従って、第１コマンドを通信部を介して他機器に送信するとともに、他機器が第１コマンドを実行することにより得られた実行結果である第１実行結果を取得するコマンド処理部と、を備え、制御部は、コマンド処理部が第１コマンドによる第１実行結果を取得できない場合、第１実行結果の取得を待たずに、コマンドの実行手順に従った処理を継続する。【選択図】図１２
2013206220.tif 000002
【特許請求の範囲】
【請求項１】
他機器と通信を行う通信部と、
他機器が備えている機能の処理を実行するコマンドである第１コマンドを含む複数のコマンドを管理するコマンド管理部と、
前記複数のコマンドのうち選択されたコマンドを、設定されたコマンドの実行手順で実行させる処理を制御する制御部と、
前記選択されたコマンドのうちに前記第１コマンドが含まれる場合、前記コマンドの実行手順に従って前記第１コマンドを前記通信部を介して他機器に送信するとともに、他機器が前記第１コマンドを実行することにより得られた実行結果である第１実行結果を取得するコマンド処理部と、
を備え、
前記制御部は、
前記コマンド処理部が前記第１コマンドによる第１実行結果を取得できない場合、前記第１実行結果の取得を待たずに、前記コマンドの実行手順に従った処理を継続する
ことを特徴とする電子機器。
【請求項２】
前記制御部は、
前記第１実行結果の取得を待たずに前記コマンドの実行手順に従った処理を継続した後に、前記コマンド処理部に前記第１実行結果を取得させる
ことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記制御部は、
他機器が前記第１コマンドを実行不可能なことにより前記コマンド処理部が前記第１実行結果を取得できない場合、他機器が備えている前記機能の処理が実行可能になった後、他機器に対して前記第１コマンドを前記コマンド処理部に再度送信させる
ことを特徴とする請求項１または２に記載の電子機器。
【請求項４】
前記制御部は、
前記コマンド処理部が前記第１実行結果を取得できない場合、前記第１コマンドを代替するコマンドを実行することにより得られた実行結果である第１代替実行結果を前記コマンド処理部に取得させる
ことを特徴とする請求項１から３の何れか一項に記載の電子機器。
【請求項５】
他機器が前記第１コマンドを実行したことによる処理が完了していない状態、および前記第１コマンドを実行することが不可能な状態の何れかであることによって、前記コマンド処理部が前記第１実行結果を取得できない場合、
前記制御部は、
前記コマンド処理部に、他機器において前記第１実行結果が得られるまでの予測所要時間を示す情報を他機器から取得させるとともに、取得した前記予測所要時間に基づいて、前記第１実行結果および前記第１代替実行結果のうちから取得させる実行結果を選択する
ことを特徴とする請求項４に記載の電子機器。
【請求項６】
前記制御部は、
前記コマンド処理部が前記第１代替実行結果を取得した後に前記第１実行結果を取得した場合、取得済みの前記第１代替実行結果を前記第１実行結果に変更する
ことを特徴とする請求項４または５に記載の電子機器。
【請求項７】
前記制御部は、
前記コマンド処理部が前記第１代替実行結果を取得したか否か、を判定し、前記第１代替実行結果を取得したと判定した場合、他機器に対して前記第１コマンドを前記コマンド処理部に再度送信させる
ことを特徴とする請求項４または５に記載の電子機器。
【請求項８】
前記制御部は、
前記コマンド処理部が第１実行結果を取得できない場合、前記コマンドの実行手順に従った処理を完了した後に、他機器により通信ネットワークを介して接続されたサーバに保存された前記第１実行結果を、前記コマンド処理部に取得させる
ことを特徴とする請求項１から７の何れか一項に記載の電子機器。
【請求項９】
前記コマンド処理部は、
他機器に対して前記第１コマンドを送信することに応じて、他機器が前記第１実行結果を格納するための前記サーバ内の格納場所を示す第１格納場所情報を、他機器から受信する
ことを特徴とする請求項８に記載の電子機器。
【請求項１０】
前記コマンド処理部は、
コマンドを実行してから実行結果が得られるまでの予測所要時間を算出する処理時間算出部、
を備え、
自機器が備えている機能の処理を実行する第２コマンドを、前記通信部を介して他機器から受信した場合、前記第２コマンドを実行することにより得られた第２実行結果、および前記第２実行結果が得られるまでの前記予測所要時間を示す情報の何れかを他機器に対して送信する
ことを特徴とする請求項１から９の何れか一項に記載の電子機器。
【請求項１１】
前記コマンド処理部は、
前記通信部を介して受信した前記第２コマンドによる処理を実行できない場合、前記第２コマンドによる処理が実行可能になった後に得られた前記第２実行結果を、他機器に送信する
ことを特徴とする請求項１０に記載の電子機器。
【請求項１２】
前記コマンド処理部は、
前記第２実行結果を取得できない場合、前記第２コマンドによる処理を実行した後に得られた前記第２実行結果を、通信ネットワークを介して接続されたサーバに格納するコマンドを送信する
ことを特徴とする請求項１０または１１に記載の電子機器。
【請求項１３】
他機器と通信を行う通信部を有する電子機器が備えるコンピュータに、
他機器が備えている機能の処理を実行するコマンドである第１コマンドを含む複数のコマンドを管理するコマンド管理ステップと、
前記第１コマンドを前記通信部を介して他機器に送信するとともに、他機器が前記第１コマンドを実行することにより得られた実行結果である第１実行結果を取得するコマンド処理ステップと、
前記複数のコマンドのうち選択されたコマンドを、設定されたコマンドの実行手順で前記コマンド処理ステップにおいて実行させる処理を制御するとともに、前記選択されたコマンドのうちに前記第１コマンドが含まれる場合であって、前記コマンド処理ステップにおいて前記第１コマンドによる第１実行結果を取得できない場合、前記第１実行結果の取得を待たずに、前記コマンドの実行手順に従った処理を継続する制御ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、およびプログラムに関する。
【背景技術】
【０００２】
近年、電子機器の多くはＣＰＵが搭載され、ＣＰＵで実行するプログラムによって様々な機能を実現している。ところが、様々な電子機器で同様の機能を実現するために機器毎に同じようなプログラムを搭載しなければならないという問題がある。このため、コントローラで一元的に処理を実行する技術などが考えられている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−０４４２９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、他機器と同じ機能を利用する場合、自機器に他機器と同じアプリケーションソフトなどをインストールしたり、コントローラで一元的に処理を実行する必要があった。
【０００５】
本発明は、このような事情に鑑みてなされたもので、その目的は、特別な設定や専用の装置を用いることなく、他機器のコマンドを自機器のコマンドと同様に使用できる電子機器、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
この発明は上述した課題を解決するためになされたもので、本発明は、他機器と通信を行う通信部と、他機器が備えている機能の処理を実行するコマンドである第１コマンドを含む複数のコマンドを管理するコマンド管理部と、前記複数のコマンドのうち選択されたコマンドを、設定されたコマンドの実行手順で実行させる処理を制御する制御部と、前記選択されたコマンドのうちに前記第１コマンドが含まれる場合、前記コマンドの実行手順に従って、前記第１コマンドを前記通信部を介して他機器に送信するとともに、他機器が前記第１コマンドを実行することにより得られた実行結果である第１実行結果を取得するコマンド処理部と、を備え、前記制御部は、前記コマンド処理部が前記第１コマンドによる第１実行結果を取得できない場合、前記第１実行結果の取得を待たずに、前記コマンドの実行手順に従った処理を継続することを特徴とする電子機器である。
【０００７】
また、本発明は、他機器と通信を行う通信部を有する電子機器が備えるコンピュータに、他機器が備えている機能の処理を実行するコマンドである第１コマンドを含む複数のコマンドを管理するコマンド管理ステップと、前記第１コマンドを前記通信部を介して他機器に送信するとともに、他機器が前記第１コマンドを実行することにより得られた実行結果である第１実行結果を取得するコマンド処理ステップと、前記複数のコマンドのうち選択されたコマンドを、設定されたコマンドの実行手順で前記コマンド処理ステップおいてに実行させる処理を制御するとともに、前記コマンド処理ステップにおいて前記第１コマンドによる第１実行結果を取得できない場合、前記第１実行結果の取得を待たずに、前記コマンドの実行手順に従った処理を継続する制御ステップと、を実行させるためのプログラムである。
【発明の効果】
【０００８】
この発明によれば、特別な設定や専用の装置を用いることなく、他機器のコマンドを自機器のコマンドと同様に使用できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る電子機器の構成例を示す図である。
【図２】本実施形態に係る電子機器連携システムの動作の一例を示す図である。
【図３】本実施形態に係る電子機器連携システムの初期動作を示すフローチャートである。
【図４】本実施形態に係る電子カメラにおいてコマンドを実行する処理を示す図である。
【図５】電子カメラの構成例を示す図である。
【図６】本実施形態に係る電子機器連携システムのコマンド表示例を示す図である。
【図７】本実施形態に係る電子機器連携システムのコマンド実行例を示す図である。
【図８】本実施形態に係る電子機器連携システムにおいて撮影処理を行う動作の一例を示す図である。
【図９】本実施形態に係る電子カメラの制御プログラムによる処理の実行手順の一例を示すフローチャートである。
【図１０】コマンド実行処理の動作の一例を示すフローチャートである。
【図１１】コマンドリストに登録されているコマンドの機能グループ毎の分類を示す図である。
【図１２】遅延実行処理を用いたコマンドの実行処理の第１例を示すフローチャートである。
【図１３】遅延実行処理を用いたコマンドの実行処理の第２例を示すフローチャートである。
【図１４】遅延実行処理を用いたコマンドの実行処理の第３例を示すフローチャートである。
【図１５】遅延実行処理を用いたコマンドの実行処理の第４例を示すフローチャートである。
【図１６】インターネットを介して接続されるサーバを含む電子機器連携システムの一例を示す図である。
【図１７】未完了処理を登録する処理の動作の一例を示すフローチャートである。
【図１８】遅延実行処理を用いたコマンドの実行処理の第５例を示すフローチャートである。
【図１９】電子カメラがサーバから実行結果を取得する処理の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の実施の形態について説明する。なお、本実施形態では、複数の様々な機能を有する電子機器（電子カメラ、携帯電話、プリンタなど）の間で互いの機能を利用するコマンド共有機能（以降、Ｃ機能と称する）が用いられる。
【００１１】
［電子機器１０の構成例］
図１は、本発明の一実施形態に係る電子機器１０の構成例を示す図である。図１において、電子機器１０は、ハードウェア１１と、ソフトウェア１２とで構成される。
【００１２】
ハードウェア１１は、電子機器１０本来の機能に対応するための電子機器用回路１３と、Ｃ機能に対応するための通信回路１４（通信部）とを有する。例えば、電子カメラの場合は、撮像回路、表示回路、記録回路などが電子機器用回路１３に対応する。なお、携帯電話などの場合は、携帯電話の通信網の基地局との間で通信するための電話機本来の通信回路とは別に、電子機器間で通信可能なＢｌｕｅｔｏｏｔｈ（登録商標）などの規格に対応する通信回路やその通信回路を使用して通信可能な範囲にある同じ機能に対応する電子機器を探索するソフトウェアを備えたものがあるので、このような携帯電話の場合は通信回路１４を新たに設ける必要がなく、電子機器用回路１３に含まれている。ここで、通信回路１４が行う通信は、無線通信であってもよいし、有線通信であってもよい。
【００１３】
ソフトウェア１２は、ハードウェア１１の各部を制御して電子機器１０の動作を実現するＯＳ（オペレーションシステム）を基本とし、ＯＳ上で実行される制御プログラム１５（制御部）およびＣ機能プラットホーム１６を有する。
【００１４】
制御プログラム１５は、電子機器１０の操作に対応する本来の機能を実現するためのプログラムだけでなく、本実施形態の特徴であるＣ機能により他機器に搭載された機能を利用するプログラムを有する。例えば、制御プログラム１５は、後述のコマンド共有部１８において管理されている複数のコマンドのうち選択されたコマンドを、設定されたコマンドの実行順序で実行させる処理を制御するプログラムを有する。なお、自機器の機能および他機器の機能或いは両方を組み合わせた機能のいずれの場合のプログラムであっても、Ｃ機能プラットホーム１６（コマンド処理部１７）に対してコマンド（或いはコマンド実行するタイミングを与えるイベント）を発行して実行結果を得る動作は同じであり、制御プログラム１５側で自機器の機能であるか他機器の機能であるかを意識する必要はない。
【００１５】
Ｃ機能プラットホーム１６は、コマンド処理部１７と、コマンド共有部１８（コマンド管理部）と、通信処理部１９とを有する。
【００１６】
コマンド処理部１７は、コマンド共有部１８のコマンドリスト２０を参照して、制御プログラム１５から送られるコマンドが内部コマンド（自機器で実行するコマンド）であるか外部コマンド（他機器で実行するコマンド）であるかを判別し、内部コマンドである場合は処理を実行して、その実行結果を制御プログラム１５側に返す処理を行う。また、コマンド処理部１７は、制御プログラム１５から送られるコマンドが外部コマンド（第１コマンド）である場合は、外部コマンド（第１コマンド）を通信処理部１９からハードウェア１１の通信回路１４を介して接続される他機器に送信する。そして、コマンド処理部１７は、通信回路１４および通信処理部１９を介して、他機器において外部コマンド（第１コマンド）を実行することにより得られた実行結果（第１実行結果）を受信し、これを制御プログラム１５側に返す処理を行う。例えば、コマンド処理部１７は、制御プログラム１５が制御するコマンドの実行順序に従って、外部コマンド（第１コマンド）を通信回路１４（および通信処理部１９）を介して他機器に送信するとともに、他機器が外部コマンド（第１コマンド）を実行することにより得られた実行結果である第１実行結果を取得する。
【００１７】
また、コマンド処理部１７は、他機器から外部コマンド（すなわち自機器で実行するコマンド、第２コマンド）を受信した場合、受信した外部コマンド（第２コマンド）を実行することにより得られた実行結果（第２実行結果）を、他機器に対して送信する。なお、コマンド処理部１７は、自機器で実行するコマンド（内部コマンドおよび他機器から受信した外部コマンド）を実行してから実行結果が得られるまでの予測所要時間を算出する処理時間算出部２１を備えていてもよい。そして、コマンド処理部１７は、この処理時間算出部２１が算出した予測所要時間を示す情報を、通信回路１４および通信処理部１９を介して他機器に送信してもよい。
【００１８】
コマンド共有部１８は、自機器または他機器で実行可能なコマンドをコマンドリスト２０として管理する。例えば、コマンド共有部１８は、他機器が備えている機能の処理を実行するコマンドである外部コマンド（第１コマンド）を含む複数のコマンドを管理する。なお、コマンドリスト２０に登録されるコマンドには、コマンド種別やコマンド機能名、パラメータなどコマンドに関係する様々な情報が含まれている。但し、コマンドリスト２０はコマンドのリストであって、コマンドを実行するプログラム自体はそれぞれの電子機器にある。また、コマンドリスト２０には、予め自機器で実行可能な内部コマンドのリストが登録されているが、通信処理部１９が通信回路１４で接続される他機器から取得する外部コマンドが適宜追加される。ここで、コマンドリスト２０に登録されている外部コマンドの実行先である他機器との通信が通信回路１４上で切断されたことを通信処理部１９で検出した場合は、コマンドリスト２０に登録されている当該機器のコマンドを削除する。なお、コマンド共有部１８が管理しているコマンドリスト２０は、内部コマンドと外部コマンドとが含まれている状態以外に、内部コマンドのみが含まれている状態、または外部コマンドのみが含まれている状態であってもよい。
【００１９】
通信処理部１９は、通信回路１４を介して予め決められた所定のプロトコルによる通信を確立し、機器情報、コマンドリスト、イベントなどの送受信、或いはコマンドの送信や実行結果の受信などを行う。
【００２０】
このように、本実施形態に係る電子機器１０は構成され、複数の電子機器１０がコマンドを共有して互いの機能を利用できるようになっている。
【００２１】
［電子機器連携システム１００の動作例］
次に、電子機器１０として、Ｃ機能に対応するハードウェア１１およびソフトウェア１２を備えた電子カメラ１０１および携帯電話１０２を用いる場合の電子機器連携システム１００の基本動作について説明する。
【００２２】
図２は、電子機器連携システム１００の動作の一例を示す図である。
図２において、電子カメラ１０１は撮影コマンド１５１を有し、携帯電話１０２は電子メールコマンド１６１と、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  ｓｙｓｔｅｍ）コマンド１６２とを有する。撮影コマンド１５１は、電子カメラ１０１の撮影を行うコマンドである。電子メールコマンド１６１は、電子メールを送受信するコマンドである。ＧＰＳコマンド１６２は、緯度、経度などの位置情報を取得するコマンドである。
【００２３】
そして、電子カメラ１０１と携帯電話１０２のそれぞれのコマンド共有部１８は、通信処理部１９による通信確立（Ｓ１０１）の後、互いの機器情報とコマンドリスト２０（図２では、コマンドリスト１３１ａ、コマンドリスト１３２ａに対応）を送受信する。例えば電子カメラ１０１は、機器情報として自機器がカメラであること、実行可能なコマンドリスト１３１ａとして撮影コマンド１５１を有すること、などを携帯電話１０２に送信する（Ｓ１０２）。逆に、携帯電話１０２は、機器情報として自機器が携帯電話であること、実行可能なコマンドリスト１３２ａとして電子メールコマンド１６１と、ＧＰＳコマンド１６２とを有すること、などを電子カメラ１０１に送信する（Ｓ１０３）。
【００２４】
これにより、電子カメラ１０１は、自機器の撮影コマンド１５１と、携帯電話１０２の電子メールコマンド１６１と、ＧＰＳコマンド１６２とを含むコマンドリスト１３１ｂを持つことができる。同様に、携帯電話１０２は、自機器の電子メールコマンド１６１およびＧＰＳコマンド１６２と、電子カメラ１０１の撮影コマンド１５１とを含むコマンドリスト１３１ｂを持つことができる。なお、送受信するのはコマンドリストであって、コマンドを実行するプログラム自体はそれぞれの電子機器にある。
【００２５】
電子カメラ１０１と携帯電話１０２のそれぞれのコマンド処理部１７は、コマンド共有部１８が保持するコマンドリスト２０の中のコマンドを実行する。例えば電子カメラ１０１はコマンドリスト１３１ａの撮影コマンド１５１を実行することができ、携帯電話１０２はコマンドリスト１３２ａの電子メールコマンド１６１やＧＰＳコマンド１６２を実行することができる。ここで、コマンドリスト１３１ａおよびコマンドリスト１３２ａは、電子カメラ１０１および携帯電話１０２のそれぞれが本来備えているコマンド（内部コマンド）である。さらに、本実施形態に係る電子機器連携システム１００では、通信確立後に送受信した他機器のコマンド（外部コマンド）を使用することができる。
【００２６】
例えば図２では、電子カメラ１０１が位置情報を取得したい場合、ＧＰＳコマンド１６２を携帯電話１０２に送信し（Ｓ１０４）、携帯電話１０２でＧＰＳコマンド１６２を実行して取得した位置情報（緯度経度など）を実行結果とするコマンド応答を電子カメラ１０１に送信する（Ｓ１０５）。
【００２７】
このようにして、電子カメラ１０１は、ＧＰＳ機能を搭載していなくてもＧＰＳによる位置情報を取得することができ、例えば撮影画像のヘッダ情報に位置情報を付加して保存するような新たな機能を容易に実現することができる。
【００２８】
図３は、本実施形態に係る電子機器連携システム１００において、電子機器の電源を投入してからコマンドリストを取得するまでの処理（初期動作）を示すフローチャートである。
【００２９】
（ステップＳ１５１）電子機器１０の電源が投入されると、Ｃ機能プラットホーム１６の通信処理部１９は通信回路１４を起動する。
【００３０】
（ステップＳ１５２）通信回路１４によって通信可能な範囲にある他の電子機器を探索する。なお、このような機能は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）などの規格で決められており、通信可能な範囲にある電子機器を見つけることができる。
【００３１】
（ステップＳ１５３）通信処理部１９は、検出した電子機器がＣ機能に対応する機器であるか否かの判別を行い、Ｃ機能に対応しない場合はステップＳ１５２に戻って電子機器の探索を継続する。そして、Ｃ機能に対応する場合はステップＳ１５４に進む。なお、Ｃ機能に対応しているか否かの判別は、例えば通信確立時に送受信する制御データにＣ機能対応有を示す独自の情報を付加することにより実現できる。
【００３２】
（ステップＳ１５４）機器探索で見つかったＣ機能に対応する他機器に自機器の機器情報を送信する。
【００３３】
（ステップＳ１５５）機器探索で見つかったＣ機能に対応する他機器から機器情報を受信する。
【００３４】
（ステップＳ１５６）自機器が保持するコマンドリストを他機器に送信する。
【００３５】
（ステップＳ１５７）他機器が保持するコマンドリストを他機器から受信する。
【００３６】
（ステップＳ１５８）他機器から受信したコマンドリストに登録されているコマンドを自機器が保持するコマンドリストに追加する。
【００３７】
このようにして、本実施形態に係る電子機器連携システム１００では、他機器との間で実行可能なコマンドリストを送受信することによって、他機器のコマンドを自機器のコマンドと同じように実行することができる。しかも、コマンドの実行自体は当該コマンドを有する機器上で行うので、従来のようにコマンドを実行するためのソフトウェアやドライバプログラムをインストールする必要がなく、ＯＳの種類にも依存しない。
【００３８】
図４は、本実施形態に係る電子機器連携システム１００に対応する電子カメラ１０１においてコマンドを実行する処理を示す図である。図４（ａ）は、電子カメラ１０１で撮影した画像に対して画像処理Ａを施してメモリカードなどに保存する処理例を示している。ここで、画像処理コマンドＡは電子カメラ１０１では実行できない外部コマンドなので、画像処理プログラムＡを有する画像処理サーバ１０４に画像処理コマンドＡと画像データを送信して画像処理サーバ１０４で画像処理Ａを施し、処理後の画像データを電子カメラ１０１に返信する。そして、電子カメラ１０１は、画像処理サーバ１０４から受信した画像処理Ａが施された画像データを撮影画像としてメモリカードなどに保存する。
【００３９】
さらに、図４（ｂ）は、電子カメラ１０１で撮影した画像に対して画像処理Ｂを施してメモリカードなどに保存する処理の流れを示している。ここで、画像処理コマンドＢは電子カメラ１０１で実行可能な内部コマンドなので、自機器内の制御プログラムに画像処理コマンドＢと画像データを送って画像処理Ｂを施し、処理後の画像データを受け取ってメモリカードなどに保存する。
【００４０】
このように、本実施形態に係る電子機器連携システム１００における電子カメラ１０１は、外部コマンドおよび内部コマンドの区別なく、同じようにコマンドを発行して処理を行うことができる。
【００４１】
［機器情報］
次に、機器情報について説明する。図２で説明したように、本実施形態に係る電子機器連携システム１００に対応する電子機器１０は、通信確立時に機器情報を送受信する。この機器情報には、例えば以下のような情報が含まれる。
・国ＩＤ：各国毎に決められた固有ＩＤ、或いは国名でもよい。例えばＪＡＰＡＮなど。・メーカＩＤ：メーカ毎に決められた固有ＩＤ、或いはメーカ名でもよい。例えばＡＢＣＤＥ会社など。
・機器カテゴリＩＤ：機器種別毎に決められたカテゴリを示す固有ＩＤ、或いは機器名でもよい。例えば電子カメラ、携帯電話、プリンタなど。
・機器ＩＤ：機器毎に決められた固有ＩＤで製造番号やシリアル番号など。
・所有者ＩＤ：機器の所有者毎に予め決められた固有ＩＤ、或いは所有者名や住所、電話番号などであってもよい。
【００４２】
このように、本実施形態に係る電子機器連携システム１００では、通信確立時に上記のような機器情報を送受信する。これにより、例えば特定国の機器、同一メーカの機器、同じカテゴリの機器、同じ所有者の機器などの特定機器でしかコマンドを利用できないようにすることができる。
【００４３】
［コマンド］
次に、コマンドに含まれる情報について説明する。図２で説明したように、コマンドには自機器で実行する内部コマンドと、他機器で実行する外部コマンドとがあり、いずれのコマンドにも以下のような情報が含まれる。
・コマンド種別：単体で実行するコマンド、バッチ処理コマンドなど。
・実行可能な機器：例えば電子カメラ、携帯電話などの機器種別や個別の機器ＩＤなど。
（なお、機器種別や機器ＩＤは、通信確立時に送受信される機器情報に含まれる）
・コマンド機能名：例えば撮影機能、位置情報取得機能、プリンタ機能、画像処理機能、超解像度画像処理機能、顔検出機能など。
・コマンドＩＤ：コマンド毎に予め決められた固有ＩＤ、或いはコマンド名。例えば撮影コマンド、印刷コマンドなど。
・パラメータ：コマンドで参照するパラメータ。例えば撮影コマンドであればシャッタ速度や絞り値或いは撮影モードの選択値（夜景モードなど）。なお、選択可能な数値範囲や全ての選択値の情報も含まれる。
・コマンド実行結果：コマンドの実行によって得られる結果で、数値や画像データなどの実行結果である。例えばＧＰＳコマンドであれば緯度経度などの数値、画像処理であれば処理後の画像データなど。
・アイコン：コマンドを画面に表示する場合に、コマンドを判別し易いようするための画像。例えば電子メールコマンドであれば封書画像のアイコンなど。
・チュートリアル：コマンドの使い方や機能説明。いわゆるＨＥＬＰ情報に相当する。
・コマンドで使用する別のコマンドの情報：バッチ処理などで別のコマンドの実行結果を利用するコマンドなど。例えば現在位置の住所を求める住所コマンドを設けた場合、住所コマンドの中でＧＰＳコマンドを実行して、ＧＰＳコマンドで得られる緯度経度の数値から地図上の位置を検索して住所を求める、など。
・作者情報：コマンド作成者のＩＤや名称など。
【００４４】
このように、本実施形態に係る電子機器連携システム１００では、通信確立時に上記のような情報を含むコマンドリストを送受信する。これにより、例えばコマンドのパラメータや使い方がわかるので、初めてのコマンドであっても動作設定を簡単に行うことができ、所望の実行結果を得ることができる。
【００４５】
ここで、様々な電子機器におけるコマンド例を以下に示す。
・電子機器が携帯電話の場合
「ＧＰＳコマンド」：ＧＰＳの測位データに基づく緯度経度などの位置情報の提供。
「簡易位置情報取得コマンド」：携帯電話通信網の最寄りの基地局の場所に基づく位置情報の提供。
「メール送信コマンド」：電子メールの送信。
「超解像画像処理コマンド」：高解像度化を行う画像処理。
「音声録音コマンド」：マイクロホンで音声を録音。
・電子機器が電子カメラの場合
「静止画ＡＵＴＯ撮影コマンド」：自動露出、自動焦点で静止画撮影。
「高速シャッタ撮影コマンド」：高速シャッタで画像を撮影。
「ボケ優先撮影コマンド」：ボケのある被写界深度の浅い画像を撮影。
「動画撮影コマンド」：動画を撮影。
「画像処理コマンド」：画質調整（ホワイトバランス調整、コントラスト調整、等）を行う画像処理。
「顔検出処理コマンド」：画像から顔を検出する処理。
「付加情報登録コマンド」：画像データにファイル名やヘッダ情報等の付加情報を登録。或いは、画像データに対応付けられた別のデータファイルに付加情報を登録。
「保存コマンド」：記憶媒体（メモリカード）への保存。
・電子機器が画像処理サーバの場合
「画像処理コマンド」：画質調整（ホワイトバランス調整、コントラスト調整、等）を行う画像処理（例えば電子カメラが備えている画像処理機能に対して高機能な処理）。
「顔認識処理コマンド」：画像から顔を検出する処理とともに、特定の個人の顔を認識して検出する処理。
・電子機器がプリンタの場合
「写真印刷Ｌ版」：Ｌ判で印刷。
「写真印刷Ａ４」：Ａ４で印刷。
・電子機器がＦＡＸの場合
「画像送信」：画像データを送信。
「データ受信」：画像データを受信。
・電子機器がテレビの場合
「画像表示」：画像データを画面に表示。
「チャネル選択」：放送受信するチャネル選択。
・電子機器がビデオの場合
「静止画録画」：静止画像を記録。
「動画録画」：動画像を記録。
このように、本実施形態に係る電子機器連携システム１００では、他機器のコマンドを自機器のコマンドと同じように実行することができ、自機器にはない他機器の機能を利用できる。
【００４６】
［イベント］
次に、イベントに含まれる情報について説明する。図２では、発行したコマンドを自機器または他機器で実行して実行結果を得る例を示したが、コマンドを実行するタイミングを与えることもできる。例えば図２において、携帯電話１０２側から電子カメラ１０１の撮影コマンド１５１を利用する場合、例えば電子カメラ１０１のシャッターボタンが押下された時に撮影を行うなど、撮影を行うタイミングを指示しなければならない。なお、携帯電話１０２側から撮影コマンド１５１を発行した時に直ぐに撮影を行うような使い方の場合は、シャッターボタンの押下時というイベントを指示する必要はない。
【００４７】
以下にイベントに含まれる情報の一例を示す。
・イベント種別：オペレーション、処理割り込みなどの制御情報。例えばシャッターボタン押下はオペレーション、電子メール受信や予め設定した時刻などは処理割り込み。
・イベントが発生した機器ＩＤ：機器情報で説明した機器ＩＤ。例えば、機器ＩＤ：カメラなど。
・イベント名：イベントの名称。例えばタイマー割り込みやシャッターボタン押下、顔認識、或いは電源オフなど。
・イベントＩＤ：イベント名に対応するＩＤ。例えばシャッターボタン押下の場合はＩＤ＝ＲＢ＿ＤＯＷＮなど。なお、実際にはこのイベントＩＤが送受信される。
・パラメータ：イベントで参照するパラメータ。例えばコマンドを実行する時刻など。なお、選択可能な数値範囲や全ての選択値の情報も含まれる。
・アイコン：コマンドリストを表示する場合のアイコン画像。
・チュートリアル：イベントの使い方や機能説明。いわゆるＨＥＬＰ情報に相当する。
・このイベントをトリガーとして実行するコマンド情報：例えばイベントがシャッターボタン押下であれば撮影コマンドなど。
・作者情報：イベント作成者のＩＤや名称など。
【００４８】
このように、本実施形態に係る電子機器連携システム１００では、通信確立時に先に説明したコマンドリストに含めて上記のようなイベントも送受信される。これにより、例えばコマンドを実行するためのイベントを知ることができ、イベントのパラメータや使い方なども確認できる。
【００４９】
ここで、様々な電子機器におけるイベント例を以下に示す。
・電子機器が携帯電話の場合
「電話着信」「メール受信」「キーボード操作」「十字キー操作」など。
・電子機器が電子カメラの場合
「シャッターボタン押下」「ダイヤル操作」「静止画撮影」「ＳＤカード挿入」など。
・電子機器がプリンタの場合
「パネル操作」「ＳＤカード挿入」「インク切れ」など。
・電子機器がテレビの場合
「チャンネル操作」「リモコン操作」など。
・電子機器がビデオの場合
「再生ボタン押下」「早送りボタン押下」など。
【００５０】
このように、本実施形態に係る電子機器連携システム１００では、他機器のコマンドや自機器のコマンドを実行するためのイベントも機器間で共有する。
【００５１】
［電子カメラ１０１の構成例］
図５は、本実施形態に係る電子機器１０が電子カメラ１０１である場合の構成例を示す図である。
【００５２】
電子カメラ１０１は、光学系２０１と、撮像部２０２と、バッファ２０３と、制御部２０４と、操作部２０５と、表示部２０６と、メモリカードＩＦ（インターフェース）２０７、メモリ２０８と、通信部２０９とを備えている。
【００５３】
図５において、光学系２０１は、被写体像を撮像部２０２の受光面に結像する。ここで、光学系２０１は、ズームレンズやフォーカスレンズなどの複数枚のレンズおよびレンズ駆動部や絞り機構などを有し、制御部２０４によって、ズームレンズ位置、フォーカスレンズ位置、絞り値などが制御される。
【００５４】
撮像部２０２は、例えばＣＭＯＳ型固体撮像素子およびＡ／Ｄ変換器などを有し、固体撮像素子の受光面に結像された被写体像を受光量に応じて電気信号に変換し、さらにＡ／Ｄ変換後の画像データをバッファ２０３に出力する。
【００５５】
バッファ２０３は、例えば揮発性の高速メモリで構成される。バッファ２０３は、撮像部２０２が出力する画像データを一時的に記憶するだけでなく、制御部２０４が画像処理を行う時のバッファメモリとしても使用される。或いは、表示部２０６に画像を表示する時の表示メモリとしても使用される。
【００５６】
制御部２０４は、例えば内部に記憶されたプログラム（例えば図１の制御プログラム１５）に従って動作するＣＰＵで構成される。制御部２０４は電子カメラ１０１全体の動作を制御し、例えば操作部２０５のモード選択ダイヤル２６３で電子カメラ１０１の撮影モードを選択したり、シャッターボタン２６２の押下時に光学系２０１のフォーカスレンズ制御や絞り制御を行って撮像部２０２のメカニカルシャッタまたは電子シャッタを制御して、被写体画像を撮影する。そして、制御部２０４は、撮像部２０２から画像データを読み出し、バッファ２０３に取り込む制御を行う。さらに、制御部２０４は、バッファ２０３に取り込まれた画像データに対して所定の画像処理（ホワイトバランス処理，色補間処理，ガンマ補正処理，彩度強調処理，輪郭強調処理、或いはＪＰＥＧ規格などに準拠した画像圧縮処理）を施し、画像処理後の画像データ（例えばＪＰＥＧデータ）に所定のファイル名やヘッダ情報を付加情報として登録（付加）してメモリカード２０７ａに保存する。或いは、バッファ２０３に取り込まれた画像データを表示部２０６に撮影画像として表示する。
なお、この制御部２０４は、例えば図１に示すＣ機能プラットホーム１６および制御プログラム１５を含んで構成されている。この後の電子カメラ１０１の構成を用いた処理に関する説明において、図１に示すＣ機能プラットホーム１６が備える各部および制御プログラム１５と、図５に示す制御部２０４とのそれぞれの名称を適宜使用する。
【００５７】
操作部２０５は、電源ボタン２６１、シャッターボタン２６２、モード選択ダイヤル２６３、メニューボタン２６４、十字キー２６５などで構成される。ユーザは、これらの操作ボタンを操作して電子カメラ１０１を使用する。なお、操作部２０５による操作情報は制御部２０４に出力され、制御部２０４は操作部２０５から入力する操作情報に応じて電子カメラ１０１の動作を制御する。例えばメニューボタン２６４を押下すると、制御部２０４は電子カメラ１０１の機能を選択するメニュー画面を表示部２０６に表示する。そして、十字キー２６５を操作してメニュー画面の操作を行う。特に、本実施形態に係る電子カメラ１０１では、メニューボタン２６４を押下すると図６に示すようなコマンドリストが表示され、十字キー２６５で選択することにより他機器の機能を利用することができる。或いは、これらのコマンドを組み合わせることによって新たなアプリケーション機能を実現できる。
【００５８】
図７は、電子機器連携システム１００のコマンド実行例を示す図である。
例えば、図７に示すように、機器２のコマンドリストには、自機器のコマンド（内部コマンド）として、機能１から機能３のコマンドが登録されており、他機器（機器２）のコマンド（外部コマンド）として、機能４および機能５のコマンドが登録されている。これにより、機器２は、機能１から機能５の５つのコマンドを使用することができる。そして、機器２は、これらのコマンドを組み合わせたアプリケーションプログラムを実行することができる。図７の例では、機器２は、コマンドの実行順序１６０として、機器２の機能１のコマンド、機器１の機能４のコマンド、機器１の機能５のコマンド、機器２の機能２のコマンド、機器２の機能３のコマンドの順に実行する。なお、これらのコマンドを組み合わせたアプリケーションプログラムは、内部コマンドと外部コマンドとを組み合わせたものに限られるものではなく、例えば、内部コマンドのみ、または外部コマンドのみを組み合わせたアプリケーションプログラムとしてもよい。
【００５９】
表示部２０６は、液晶モニタなどで構成される。そして、制御部２０４によって、撮影画像や設定メニューなどが表示される。
【００６０】
メモリカードＩＦ２０７は、電子カメラ１０１にメモリカード２０７ａを接続するためのインターフェースである。制御部２０４はメモリカードＩＦ２０７を介してメモリカード２０７ａに画像データを読み書きする。
【００６１】
メモリ２０８は、例えばフラッシュメモリなどの不揮発性の半導体メモリで構成される。メモリ２０８には、電子カメラ１０１に設定された撮影モードや露出情報、フォーカス情報などのパラメータが記憶される。特に本実施形態では、自機器や他機器のコマンドリスト、機器情報、イベントなどが記憶される。
【００６２】
通信部２０９は、図１の通信回路１４に対応し、電子機器間で通信可能なＢｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ、登録商標）などの規格に対応する。
【００６３】
以上が電子カメラ１０１の構成および基本動作である。
【００６４】
［電子機器連携システム１００の動作例］
次に、電子カメラ１０１を用いた電子機器連携システム１００の動作例について説明する。なお、動作の基本的な流れは以下の通りである。
（１）機器間で通信を確立する。
（２）自機器の情報を相手に送信する。
（３）現在の自機器にて実行可能なコマンドリストなどを相手機器に送信する。
（４）相手機器からも機器情報とコマンドリストを受け取る。
（５）相手機器からコマンドを受信した場合はそのコマンドを実行し、実行結果を返信する。
（６）必要であれば自機器から相手機器にコマンドを送信し、実行結果を受け取る。
【００６５】
図８は、Ｃ機能に対応する電子機器１０として、電子カメラ１０１、および携帯電話１０２を利用して撮影処理を行う場合の電子機器連携システム１００の動作の一例である。なお、図２と同符号のブロックおよび処理は同じものを示す。
【００６６】
図８において、電子カメラ１０１と、携帯電話１０２との間で通信確立（Ｓ１０１）後、図２を用いて説明したように、互いの機器情報や実行可能なコマンドを送受信（Ｓ１０２、Ｓ１０３）する。この図８に示すコマンドリストは図２のコマンドリスト１３１ａおよびコマンドリスト１３２ａに代えて、コマンドリスト１３１ｃおよびコマンドリスト１３２ｃである。
【００６７】
電子カメラ１０１は、撮影コマンド１５１と、画像処理コマンド１５２と、付加情報登録コマンド１５３と、保存コマンド１５４とを有する。また、携帯電話１０２は電子メールコマンド１６１と、ＧＰＳコマンド１６２と、簡易位置情報取得コマンド１６３とを有する。電子カメラ１０１と携帯電話１０２のそれぞれのコマンド共有部１８は、互いの機器情報とコマンドを送受信する。
【００６８】
これにより、電子カメラ１０１が有するコマンドリスト１３１ｃには、電子カメラ１０１が有するコマンドに加えて、電子メールコマンド１６１と、ＧＰＳコマンド１６２と、簡易位置情報取得コマンド１６３とが追加される。一方、携帯電話１０２が有するコマンドリスト１３２ｃには、携帯電話１０２が有するコマンドに加えて、撮影コマンド１５１と、画像処理コマンド１５２と、付加情報登録コマンド１５３と、保存コマンド１５４とが追加される。
【００６９】
すなわち、電子カメラ１０１のコマンドリスト１３１ｃおよび携帯電話１０２のコマンドリスト１３２ｃのそれぞれには、撮影コマンド１５１と、画像処理コマンド１５２と、付加情報登録コマンド１５３と、保存コマンド１５４と、電子メールコマンド１６１と、ＧＰＳコマンド１６２と、簡易位置情報取得コマンド１６３とが保持されている。
【００７０】
［コマンドの実行例］
次に、図８において、電子カメラ１０１がＧＰＳコマンド１６２を実行する場合は、ＧＰＳコマンド１６２を携帯電話１０２に送信する（Ｓ１０７）。携帯電話１０２は、ＧＰＳコマンド１６２を実行して緯度、経度などの位置情報を取得し、取得した位置情報を示すコマンド応答を電子カメラ１０１に送信する（Ｓ１０８）。そして、電子カメラ１０１は、携帯電話１０２から応答コマンドを受信することにより、位置情報を取得する。
【００７１】
このようにして、電子カメラ１０１は、携帯電話１０２から現在の位置情報を取得することができる。すなわち、例えばＧＰＳ機能をもたない電子カメラ１０１であっても、ＧＰＳ機能が自機能にあるかのように、ＧＰＳ機能を有する電子カメラと同様に位置情報を取得することができる。
【００７２】
[制御プログラムによる処理の実行手順の例]
次に、制御プログラム１５による処理の実行手順の一例について説明する。ここでは、図８に示す、電子カメラ１０１と、携帯電話１０２との２つの電子機器を連携して動作させる電子機器連携システム１００を例として、この電子機器連携システム１００において実行する処理の実行手順の一例について説明する。この例は、「観光地において電子カメラ１０１で撮影した画像に位置情報を付加してメモリカード２０７ａに保存する」という利用シーンを想定している。ここで、図８を用いて説明したように、電子カメラ１０１と、携帯電話１０２との２つの電子機器は機器情報やコマンドリストを互いに送受信して、同じコマンドリストを共有している状態にある。この場合の利用可能なコマンドは、例えば電子カメラ１０１の撮影コマンド１５１、画像処理コマンド１５２、付加情報登録コマンド１５３、および保存コマンド１５４と、携帯電話１０２の電子メールコマンド１６１、ＧＰＳコマンド１６２、簡易位置情報取得コマンド１６３とである。
【００７３】
図９は、制御プログラム１５による処理（アプリケーションプログラムＡとする）の実行手順の一例を示すフローチャートである。なお、アプリケーションプログラムＡの処理は、例えばコマンドリスト１３１ｃのコマンドを組み合わせてユーザが自由に作成することができる。例えば図６で説明したような各コマンドに対応するアイコンを処理順に並べることにより、様々なアプリケーション機能を実現できる。本実施形態では既に図９に示す処理順序のアプリケーションプログラムが作成されているものとして説明する。
以下、図９に示す制御プログラム１５に設定された実行手順の例を順に説明する。
【００７４】
（ステップＳ３０１：ＧＰＳコマンド１６２発行）制御部２０４は、コマンドリスト１３１ｃの中からＧＰＳコマンド１６２を、通信部２０９を介して携帯電話１０２に送信し、実行結果として位置情報を取得する。
【００７５】
（ステップＳ３０２：シャッターボタンイベント）制御部２０４は、シャッターボタン２６２が押下されたか否かを判別し、シャッターボタン２６２が押下されるまで待機する。そして、制御部２０４は、シャッターボタン２６２が押下されたことを検出した場合はステップＳ３０３に処理を進める。
【００７６】
（ステップＳ３０３：撮影コマンド発行）制御部２０４は、コマンドリスト１３１ｃの中から撮影コマンド１５１を発行し、実行結果として撮影画像を取得する。例えば、制御部２０４は、撮像部２０２に、光学系２０１を介して入射された被写体像による画像データを取得させ、バッファ２０３に出力させる。
【００７７】
（ステップＳ３０４：画像処理コマンド発行）制御部２０４は、コマンドリスト１３１ｃの中から画像処理コマンド１５２を発行し、取得した撮影画像に対して画像処理（例えば、ホワイトバランス調整、コントラスト調整、ＪＰＥＧ圧縮などの処理）を実行することにより画像データを生成する。
【００７８】
（ステップＳ３０５：付加情報登録コマンド発行）制御部２０４は、コマンドリスト１３１ｃの中から付加情報登録コマンド１５３を発行し、ステップＳ３０１において取得した位置情報（緯度経度情報、或いは地図データから住所情報に変換してもよい）を含む撮影時の設定情報や関連情報、またはファイル名を、ステップＳ３０４において生成した画像データに付加情報として登録する（付加する）。
【００７９】
（ステップＳ３０６；保存コマンド）制御部２０４は、保存コマンド１５４を発行して、ステップＳ３０５において付加情報を付加した画像データを、メモリカードＩＦ２０７を介してメモリカード２０７ａに保存する。
【００８０】
なお、発行される各コマンド（或いはイベント）は、自機器または他機器のＣ機能プラットホーム１６（電子カメラ１０１の場合はＣ機能プラットホーム２５１）のコマンド処理部１７に送られる。ここで、ＯＳは図６の制御部２０４に対応する。そして、コマンド処理部１７は、コマンド（内部コマンドまたは外部コマンド）を実行する機器にコマンドを発行し、実行結果を取得する。
【００８１】
なお、制御プログラム１５による処理は、図９に示すアプリケーションプログラムＡによる処理のような外部コマンドと内部コマンドとを組み合わせた処理に限られるものではなく、処理の内容に応じて、外部コマンドのみを組み合わせた処理としてもよいし、内部コマンドのみを組み合わせた処理としてもよい。
【００８２】
図１０は、コマンド実行処理の動作の一例を示すフローチャートである。この図１０を参照して、電子カメラ１０１と携帯電話１０２との２つの電子機器を連携して動作させる電子機器連携システム１００において、図９に示す制御プログラム１５による処理（アプリケーションプログラムＡ）の実行手順に従ってコマンドを実行した場合のコマンドの実行処理の一例について説明する。
【００８３】
まず、制御部２０４は、アプリケーションプログラムＡの実行手順に従ってＧＰＳコマンド１６２を実行する。具体的には、コマンド処理部１７は、コマンド共有部１８のコマンドリスト２０を参照して、制御プログラム１５から受け取ったＧＰＳコマンド１６２が携帯電話１０２（他機器）において実行する外部コマンドであることを判別して、ＧＰＳコマンド１６２を通信処理部１９から通信回路１４を介して接続される携帯電話１０２に送信する（ステップＳ４０１）。
【００８４】
制御部２０４は、ＧＰＳコマンド１６２を実行したことに応じて、実行結果である位置情報を取得する。例えば、コマンド処理部１７は、ＧＰＳコマンド１６２を携帯電話１０２に送信したことに応じて、携帯電話１０２においてＧＰＳコマンド１６２が実行されて取得された位置情報を、携帯電話１０２からのコマンド応答により受信する。そして、コマンド処理部１７は、受信した位置情報を制御プログラム１５側に返す（ステップＳ４０２）。
【００８５】
次に、制御部２０４は、ステップＳ４０２においてＧＰＳコマンド１６２の実行結果を取得したか否か（ＧＰＳコマンド１６２の実行処理が正常に終了したか否か）を判定する（ステップＳ４０３）。
【００８６】
ステップＳ４０３において、ＧＰＳコマンド１６２の実行結果を取得していないと判定された場合、制御部２０４は、例えば処理エラーを示す表示を行うなどのエラー処理を実行して処理を終了する。
なお、制御部２０４は、ステップＳ４０３の処理において経過時間を監視して、実行結果を取得できない時間が所定の時間以上経過したか否かを検出することによりタイムアウト処理をするか否かを判定してもよい。例えば、制御部２０４は、処理の経過時間が所定の時間以上経過していない場合には、タイムアウト処理をしないでステップＳ４０２に処理を戻し、タイムアウトするまで、ＧＰＳコマンド１６２の実行結果を受信（取得）する処理を継続してもよい。一方、制御部２０４は、処理の経過時間が所定の時間以上経過した場合には、タイムアウトにより処理を終了してもよい。例えば、制御部２０４は、タイムアウト処理として、処理エラーを示す表示を行うなどのエラー処理を実行して処理を終了してもよい。
【００８７】
一方、ステップＳ４０３において、ＧＰＳコマンド１６２の実行結果を取得したと判定した場合、制御部２０４は、アプリケーションプログラムＡの実行手順に従った次のコマンドを選択（次のコマンドに移動）する（ステップＳ４５０）。例えば、制御部２０４は、次にシャッターイベントの受付けを許可するとともに、シャッターイベントを受付けた場合に撮影コマンド１５１を選択する。
【００８８】
次に、制御部２０４は、ステップＳ４５０において次のコマンドを選択できたか否か、すなわちアプリケーションプログラムＡの実行手順に従って実行するコマンドが全て実行済み（コマンド終了）になったか否かを判定する（ステップＳ４５１）。この時点では、制御部２０４は、次のコマンドとして撮影コマンド１５１を選択するため、処理をステップＳ４０１に戻し、撮影コマンド１５１を制御プログラム１５からコマンド処理部１７に送信する。ステップＳ４０１において、コマンド処理部１７は、コマンド共有部１８のコマンドリスト２０を参照して、制御プログラム１５から受け取った撮影コマンド１５１が電子カメラ１０１（自機器）において実行する内部コマンドであることを判別して、撮影コマンド１５１を実行する。
【００８９】
そして、制御部２０４は、ステップＳ４０１からＳ４０６の処理を、アプリケーションプログラムＡの実行手順に従って、撮影コマンド１５１、画像処理コマンド１５２、付加情報登録コマンド１５３、保存コマンド１５４、の順番にそれぞれ実行する。また、ステップＳ４５１において、アプリケーションプログラムＡの実行手順に従って実行するコマンドが全て実行済み（コマンド終了）になったと判定された場合、制御部２０４は処理を終了する。
【００９０】
このように、本実施形態に係る電子機器連携システム１００では、電子カメラ１０１の制御部２０４が、制御プログラム１５に設定されたコマンドの実行手順に従って、外部コマンドを携帯電話１０２に送信することにより携帯電話１０２において実行するとともに、内部コマンドを電子カメラ１０１において実行することができる。そして、制御部２０４は、制御プログラム１５に設定されたコマンドの実行手順に従って実行された外部コマンドまたは内部コマンドの実行結果を取得した後に、次の手順のコマンドを実行することができる。
【００９１】
ところで、図１０を用いて説明した処理において、例えば、ステップＳ４０３において実行結果を取得できないと判定された場合、取得するまでの間は次のコマンドの実行が待たされる、または取得できないために処理が中断されて終了するといった問題がある。例えば、図９に示すアプリケーションプログラムＡの実行手順において、電子カメラ１０１は、携帯電話１０２からＧＰＳコマンド１６２の実行結果を取得できない場合、取得するまでの間はシャッターボタンのイベントを受け付けることができず撮影コマンド１５１の実行ができない。ここで、携帯電話１０２からＧＰＳコマンド１６２の実行結果を取得できない場合とは、例えば、携帯電話１０２において、動作状態などによってＧＰＳコマンド１６２を実行する準備ができていない場合、またはＧＰＳコマンド１６２による処理の実行結果の取得が遅延した場合、などである。この場合、電子カメラ１０１において撮影処理が行えないために、シャッタータイミングを逃してしまう場合がある。また、実行結果を取得できないことにより、アプリケーションプログラムＡの処理が中断されてしまう場合がある。
【００９２】
上述したように、制御プログラム１５に設定されたコマンドの実行手順（アプリケーションプログラムＡの実行手順）に従って、コマンドを実行した場合に、特に、他機器の動作状況によって、他機器で実行する外部コマンドの実行結果をすぐに取得できない場合がある。このように実行結果を取得できない場合、本実施形態に係る電子機器連携システム１００では、そのコマンドの実行結果の取得を後回しにすることによって、制御プログラム１５に設定されたコマンドの実行手順に従った処理を継続させるようにする。例えば、電子カメラ１０１は、携帯電話１０２からＧＰＳコマンド１６２の実行結果を取得できない場合にはその取得を待たずに、シャッターボタンのイベントを受け付け可能とし、撮影コマンド１５１の実行が可能なように制御する。そして、電子カメラ１０１は、取得できなかったＧＰＳコマンド１６２の実行結果を後から取得する。
以下に、コマンドの実行結果を取得できない場合に、そのコマンドの実行を後にして実行結果の取得を後から行う処理（遅延実行処理）について説明する。
【００９３】
[遅延実行処理を用いたコマンドの実行処理の説明]
（遅延実行処理を用いたコマンドの実行処理の第１例）
制御部２０４は、コマンド共有部１８に管理されている複数のコマンドのうち選択されたコマンドを、制御プログラム１５に設定されたコマンドの実行手順で実行させる処理を制御する。コマンド処理部１７は、このコマンドの実行手順に従って、外部コマンド（第１コマンド）を通信部を介して携帯電話１０２に送信するとともに、携帯電話１０２が外部コマンド（第１コマンド）を実行することにより得られた実行結果（第１実行結果）を取得する。制御部２０４（制御プログラム１５）は、コマンド処理部１７が外部コマンド（第１コマンド）による実行結果（第１実行結果）を取得できない場合、この実行結果（第１実行結果）の取得を待たずに、コマンドの実行手順に従った処理を継続する。
例えば、制御部２０４（制御プログラム１５）は、コマンド処理部１７が実行結果（第１実行結果）を取得できない場合、この実行結果（第１実行結果）を取得する前に実行可能な処理を、コマンドの実行手順に従って継続する。
【００９４】
図９に示すアプリケーションプログラムＡの実行手順を例に説明すると、まず、制御部２０４は、コマンドリスト１３１ｃの中からＧＰＳコマンド１６２を、通信部２０９を介して携帯電話１０２に送信する。ここで、携帯電話１０２は、例えば、ＧＰＳコマンド１６２を実行する準備ができていない場合、ＧＰＳコマンド１６２を実行することにより得られるはずの位置情報を取得できないため、そのコマンドＩＤと仮情報（例えばダミーデータ）を電子カメラ１０１に対して応答（送信）する。これにより、制御部２０４は、ＧＰＳコマンド１６２の実行結果として、仮情報を取得する（ステップＳ３０１）。なお、制御部２０４は、ＧＰＳコマンド１６２を実行することにより得られる位置情報を取得できない場合、携帯電話１０２から仮情報を受信しなくとも、自機器において仮情報を生成（設定）してもよい。
【００９５】
次に、制御部２０４は、シャッターボタンイベントの取得を可能に制御し、シャッターボタン２６２が押下されたことを検出した場合（ステップＳ３０２）、撮影コマンド１５１を発行（実行）し、実行結果として撮影画像を取得する（ステップＳ３０３）。そして、制御部２０４は、取得した撮影画像に対して画像処理を実行することにより画像データを生成する（ステップＳ３０４）。ここで、シャッターボタンイベント（ステップＳ３０２）、撮影コマンド発行（ステップＳ３０３）、および画像処理コマンド発行（ステップＳ３０４）の処理は、ＧＰＳコマンド１６２を実行することにより得られる位置情報とは関係なく実行が可能な処理である。
【００９６】
続いて、制御部２０４は、ステップＳ３０５の付加情報登録コマンド発行の処理を行う。この処理において、制御部２０４は、位置情報として上述の仮情報を画像データに登録（付加）する（ステップＳ３０５）。そして、制御部２０４は、保存コマンド１５４を発行して、上述の仮情報を付加した画像データをメモリカード２０７ａに保存する（ステップＳ３０６）。
なお、コマンドの実行結果の代わりの仮情報（例えばダミーデータ）は、その処理において必要に応じて用いればよく、必要がない場合は仮情報を用いることなく、実行手順に従って次のコマンドを実行してもよい。
【００９７】
このように、制御部２０４は、携帯電話１０２に送信した外部コマンドであるＧＰＳコマンド１６２の実行結果として位置情報を取得できない場合、このＧＰＳコマンド１６２の実行および位置情報の取得を後にして、制御プログラム１５（アプリケーションプログラムＡ）の実行手順に従って次のコマンドを実行する。これにより、制御部２０４は、制御プログラム１５の処理を中断させることなく継続して実行することができる。例えば、電子カメラ１０１は、携帯電話１０２のＧＰＳ機能による位置情報を取得できない場合であっても、撮影動作が可能となるように処理を継続することができる。
【００９８】
また、制御部２０４（制御プログラム１５）は、外部コマンド（第１コマンド）による実行結果（第１実行結果）の取得を待たずにコマンドの実行手順に従った処理を継続した後に、この実行結果（第１実行結果）をコマンド処理部１７に取得させる。例えば、制御部２０４（制御プログラム１５）は、この実行結果（第１実行結果）の取得を待たずにコマンドの実行手順に従った処理を継続した後に、携帯電話１０２に対して外部コマンド（第１コマンド）をコマンド処理部１７に再度送信させる。
【００９９】
例えば、制御部２０４は、制御プログラム１５（アプリケーションプログラムＡ）の実行手順に従った処理を継続した後（例えば処理が完了した後）に、再度ＧＰＳコマンド１６２を携帯電話１０２に送信する。携帯電話１０２は、例えば、ＧＰＳコマンド１６２が実行可能になった後に電子カメラ１０１から再度受信したＧＰＳコマンド１６２を実行することにより位置情報を取得する。すなわち、携帯電話１０２のコマンド処理部（図１に示す電子機器を携帯電話１０２とした場合のコマンド処理部１７）は、通信回路（図１に示す電子機器を携帯電話１０２とした場合の通信回路１４、通信部）により受信したＧＰＳコマンド１６２（第２コマンド）による処理を実行できない場合、ＧＰＳコマンド１６２による処理が実行可能になった後に得られた位置情報（実行結果、第２実行結果）を、電子カメラ１０１（他機器）に送信する。そして、制御部２０４は、携帯電話１０２から位置情報を取得した場合、上述の仮情報（例えばダミーデータ）を付加した画像データ（または実行結果が付加されていない画像データ）に対して、正規の位置情報（再度ＧＰＳコマンド１６２を送信することにより携帯電話１０２がＧＰＳコマンド１６２を実行して取得した位置情報）を書き込む。
【０１００】
これにより、制御部２０４は、制御プログラム１５（アプリケーションプログラムＡ）の実行手順に従って実行したコマンドの実行結果を取得できない場合であっても、実行手順に従った処理を継続することができるとともに、処理を継続した後に、取得できなかった実行結果を取得して処理に反映することができる。
【０１０１】
なお、制御部２０４は、コマンドの実行結果を取得できない場合、実行手順に従った処理を継続するために、上述の仮情報（例えばダミーデータ）を用いた仮の処理（仮処理）を実行することに代えて、実行結果を取得できなかったコマンドを代替する代替処理（仮処理）を実行してもよい。この場合の代替処理（仮処理）は、例えば、ＧＰＳコマンド１２６を実行する処理に代えて、ＧＰＳ機能以外の他の機能によって位置情報を同様に取得する処理である。
【０１０２】
例えば、制御部２０４は、コマンドの実行結果を取得できない場合、コマンドリスト２０に登録されているコマンドのうち、同様な機能を実行する代替コマンドを実行することにより得られた実行結果（代替実行結果）を取得する。
図１１は、コマンドリスト２０に登録されているコマンドの機能グループ毎の分類を示す図である。この図は、電子カメラ１０１と、携帯電話１０２と、画像処理サーバ１０４とがそれぞれ有するコマンドを共有した際の、それぞれのコマンドの機能グループ毎の分類を示している。この機能グループは、例えばコマンドに含まれるコマンド機能名（撮影機能、位置情報取得機能、プリンタ機能、画像処理機能、超解像度画像処理機能、顔検出機能など）に基づいて分類される。
【０１０３】
図１１では、撮影機能グループＧ１０１には、電子カメラ１０１が有する静止画撮影コマンドおよび動画撮影コマンドと、携帯電話１０２が有する静止画撮影コマンドおよび動画撮影コマンドとが含まれている。位置情報取得機能グループＧ１０２には、携帯電話１０２が有するＧＰＳコマンド１６２および簡易位置情報取得コマンド１６３が含まれている。画質調整機能グループには、電子カメラ１０１が有するホワイトバランス調整（ＷＢ調整）コマンドおよびコントラスト調整コマンドと、画像処理サーバ１０４が有するＷＢ調整コマンドおよびコントラスト調整コマンドとが含まれている。顔検出機能グループＧ１０４には、電子カメラ１０１が有する顔検出コマンドと、画像処理サーバ１０４が有する顔認識コマンドとが含まれている。
【０１０４】
それぞれの機能グループに含まれているコマンドは、機能の詳細が異なっても基本的な機能が同様であるため、互いに代替処理（仮処理）を行うことにより代替実行結果（仮実行結果、仮情報）を取得することができる。例えば、ＧＰＳコマンド１６２に代えて、簡易位置情報取得コマンド１６３を代替処理として実行することにより、ＧＰＳの測位データに基づく位置情報に比較すると位置精度が劣るが、携帯電話通信網の基地局の場所に基づく位置情報を代替実行結果（仮実行結果）として取得することができる。
【０１０５】
これにより、制御部２０４は、コマンド処理部１７がＧＰＳコマンド１６２を実行することにより得られる位置情報を取得できない場合、ＧＰＳコマンド１６２を代替する簡易位置情報取得コマンド１６３を実行することにより得られた位置情報を代替実行結果（仮実行結果）として取得することが可能である。
【０１０６】
例えば、制御部２０４は、コマンド処理部１７が外部コマンド（第１コマンド）を実行することにより得られる実行結果（第１実行結果）を取得できない場合、この外部コマンド（第１コマンド）を代替するコマンドを実行することにより得られた実行結果である代替実行結果（第１代替実行結果、仮実行結果）をコマンド処理部１７に取得させる。
【０１０７】
また、制御部２０４は、コマンド処理部１７が代替実行結果（第１代替実行結果、仮実行結果）を取得したか否か、を判定し、代替実行結果（第１代替実行結果、仮実行結果）を取得したと判定した場合、携帯電話１０２（他機器）に対して外部コマンド（第１コマンド）をコマンド処理部１７に再度送信させる。そして、制御部２０４は、コマンド処理部１７が代替実行結果（第１代替実行結果、仮実行結果）を取得した後に実行結果（第１実行結果）を取得した場合、代替実行結果（第１代替実行結果、仮実行結果）を取得した実行結果（第１実行結果）に変更する。
【０１０８】
図１２は、遅延実行処理を用いたコマンドの実行処理の第１例を示すフローチャートである。この図１２を参照して、電子カメラ１０１と携帯電話１０２との２つの電子機器を連携して動作させる電子機器連携システム１００において、図９に示す制御プログラム１５による処理（アプリケーションプログラムＡ）の実行手順に従ってコマンドを実行した場合を例として、遅延実行処理を用いたコマンドの実行処理の一例について説明する。
なお、図１１において図１０の各処理に対応する部分には同一の符号を付け、その説明を省略する。
【０１０９】
ステップＳ４０３において、ＧＰＳコマンド１６２の実行結果を取得していないと判定された場合、制御部２０４は、この実行結果を取得できなかったＧＰＳコマンド１６２を未取得コマンドとしてメモリ２０８に記憶させる（ステップＳ４１１）。例えば、制御部２０４は、この実行結果を取得できなかったＧＰＳコマンド１６２（未取得コマンド）に含まれる情報（コマンドＩＤ、コマンド機能名、実行可能な機器、等）をメモリ２０８に記憶させる。
【０１１０】
次に、制御部２０４は、ＧＰＳコマンド１６２を代替するコマンドとして、簡易位置情報取得コマンド１６３を携帯電話１０２に送信する。すなわち、制御部２０４は、ＧＰＳコマンド１６２の代替処理（仮処理）として、簡易位置情報取得コマンド１６３を実行する（ステップＳ４１２）。
【０１１１】
続いて、制御部２０４は、簡易位置情報取得コマンド１６３を実行することにより得られた位置情報（代替実行結果、仮実行結果）を、携帯電話１０２から取得する（ステップＳ４１３）。そして、制御部２０４は、ステップＳ４５０に処理を進め、図１０を用いて説明したように、ステップＳ４０１からＳ４０６の処理を、アプリケーションプログラムＡの実行手順に従って、撮影コマンド１５１、画像処理コマンド１５２、付加情報登録コマンド１５３、保存コマンド１５４、の順番にそれぞれ実行する。
【０１１２】
ステップＳ４５１において、アプリケーションプログラムＡの実行手順に従って実行するコマンドが全て実行済み（コマンド終了）になったと判定された場合、制御部２０４は、ステップＳ４０１〜Ｓ４５１の処理（実行手順に従った処理）において、代替処理が実行されたか否か（仮処理があったか否か）を判定する（ステップＳ４７０）。例えば、制御部２０４は、未取得コマンドがメモリ２０８に記憶されているか否かにより、代替処理が実行されたか否か（仮処理があったか否か）を判定する。
【０１１３】
ステップＳ４７０において、代替処理が実行された（仮処理有り）と判定された場合、制御部２０４は、メモリ２０８に記憶されている未取得コマンド、すなわちＧＰＳコマンド１６２を、再度携帯電話１０２に送信して実行する（ステップＳ４８０）。
【０１１４】
そして、制御部２０４は、ＧＰＳコマンド１６２を実行することにより得られた位置情報（正規の実行結果）を取得して、ステップＳ４１３において取得された代替実行結果の位置情報を、正規の実行結果の位置情報に変更する（正規結果代入、ステップＳ４８１）。
【０１１５】
なお、制御部２０４は、代替実行結果を正規の実行結果に書き換える場合、例えば、保存した画像データを一旦読み出し、読み出した画像データの付加情報を正規の実行結果に書き換えた後、再び保存してもよい。
【０１１６】
なお、図１２を用いて説明した処理において、代替実行結果（仮実行結果）を用いる処理に代えて、前述したような仮情報（例えばダミーデータ）を用いる処理としてもよい。
【０１１７】
このように、制御部２０４は、携帯電話１０２に送信した外部コマンドであるＧＰＳコマンド１６２の実行結果として位置情報を取得できない場合、このＧＰＳコマンド１６２を代替するコマンドを実行することにより代替実行結果の位置情報を取得する。また、制御部２０４は、制御プログラム１５（アプリケーションプログラムＡ）の実行手順に従った処理が終了した後に、再度ＧＰＳコマンド１６２を実行することにより、正規の位置情報（実行結果）を取得する。
【０１１８】
これにより、制御部２０４は、制御プログラム１５の処理を中断させることなく継続して実行することができる。例えば、電子カメラ１０１は、携帯電話１０２のＧＰＳ機能による位置情報を取得できない場合であっても、ＧＰＳ機能に代わる機能による位置情報を代替実行結果として取得することにより、撮影動作が可能となるように処理を継続することができる。また、制御部２０４は、制御プログラム１５の実行手順に従った処理を継続した後に、正規の位置情報（実行結果）を取得して、代替実行結果の位置情報を正規の位置情報に置き換えることができる。また、電子カメラ１０１は、仮に、携帯電話１０２のＧＰＳ機能による位置情報を後から取得できない場合であっても、ＧＰＳの測位データに基づく位置情報に比較すると位置精度が劣るが、携帯電話通信網の基地局の場所に基づく位置情報を概略の位置情報として利用することができる。
【０１１９】
（遅延実行処理を用いたコマンドの実行処理の第２例）
次に、電子カメラ１０１が携帯電話１０２に対して外部コマンドを送信した場合に、この外部コマンドによる実行結果が得られるまでの予測した所要時間（予測所要時間）を携帯電話１０２から取得して処理を行う場合について説明する。
【０１２０】
携帯電話１０２（他機器）が外部コマンド（第１コマンド）を実行したことによる処理が完了していない状態、および外部コマンド（第１コマンド）を実行することが不可能な状態の何れかであることによって、電子カメラ１０１（コマンド処理部１７）は、外部コマンド（第１コマンド）を実行することにより得られる実行結果（第１実行結果）を取得できない場合がある。この場合、制御部２０４は、コマンド処理部１７に、携帯電話１０２において実行結果（第１実行結果）が得られるまでの予測所要時間を示す情報を携帯電話１０２から取得させるとともに、取得した予測所要時間に基づいて、実行結果（第１実行結果）および代替実行結果（第１代替実行結果）のうちから取得させる実行結果を選択する。
【０１２１】
一方、携帯電話１０２側は、電子カメラ１０１から外部コマンド（第２コマンド）を受信した場合、受信した外部コマンド（第２コマンド）を実行することにより実行結果（第２実行結果）が得られるまでの予測所要時間を示す情報を、予測時間算出部（図１に示す電子機器を携帯電話１０２とした場合の処理時間算出部２１）において算出して電子カメラ１０１に送信する。
【０１２２】
すなわち、携帯電話１０２は、自機器が備えている機能の処理を実行する外部コマンド（第２コマンド）を、通信回路（図１に示す電子機器を携帯電話１０２とした場合の通信回路１４、通信部）を介して、電子カメラ１０１（他機器）から受信する。そして、携帯電話１０２は、外部コマンド（第２コマンド）を受信した場合、この外部コマンド（第２コマンド）を実行することにより得られた実行結果（第２実行結果）、および、この実行結果（第２実行結果）が得られるまでの予測所要時間を示す情報の何れかを電子カメラ１０１に対して送信する。
【０１２３】
例えば、制御部２０４は、取得した予測所要時間が所定の閾値以上であるか否かを判定する。そして、制御部２０４は、取得した予測所要時間が所定の閾値以上であると判定した場合、コマンド処理部１７に代替実行結果（第１代替実行結果）を取得させる。ここで所定の閾値とは、例えば外部コマンド（第１コマンド）を実行することにより得られる第１実行結果の取得が可能になるまで次の処理を行わずに待機するか否かを判定するために設定された閾値である。すなわち、制御部２０４は、取得した予測所要時間が所定の閾値未満であると判定した場合、第１実行結果を取得するまで次に処理移行しないで（実行手順に従った処理を係属しないで）待機する。
【０１２４】
図１３は、遅延実行処理を用いたコマンドの実行処理の第２例を示すフローチャートである。この図１３を参照して、予測所要時間に応じた遅延実行処理を用いたコマンドの実行処理の一例について説明する。
なお、図１３において図１２の各処理に対応する部分には同一の符号を付け、その説明を省略する。
【０１２５】
ステップＳ４０３において、ＧＰＳコマンド１６２の実行結果を取得していないと判定された場合、制御部２０４は、携帯電話１０２の状態（動作状態、コマンド実行状態）を取得する。例えば、制御部２０４は、携帯電話１０２においてＧＰＳコマンド１６２の実行結果が得られるまでの予測所要時間（Ｔ）を示す情報を、携帯電話１０２からコマンド処理部１７を介して取得する（ステップＳ４０５）。
【０１２６】
次に、制御部２０４は、取得した予測所要時間（Ｔ）が所定の閾値（ｎ）以上（Ｔ≧ｎ）であるか否かを判定する（ステップＳ４０６）。そして、ステップＳ４０６において、予測所要時間（Ｔ）が所定の閾値（ｎ）以上（Ｔ≧ｎ）であると判定された場合、制御部２０４は、図１２を用いて説明したステップＳ４１１、Ｓ４１２、Ｓ４１３の処理を実行する。これにより、制御部２０４は、簡易位置情報取得コマンド１６３を実行することにより得られた代替実行結果（第１代替実行結果）を携帯電話１０２から取得して、ステップＳ４５０に処理を進める。なお、所定の閾値（ｎ）とは、前述したように、例えば外部コマンド（第１コマンド）を実行することにより得られる第１実行結果の取得が可能になるまで次の処理を行わずに待機するか否かを判定するために設定された閾値（ｎ）である。
【０１２７】
一方、ステップＳ４０６において、予測所要時間（Ｔ）が所定の閾値（ｎ）未満（Ｔ＜ｎ）であると判定された場合、制御部２０４は、予測所要時間（Ｔ）待機した後に（ステップＳ４２１）、ＧＰＳコマンド１６２を携帯電話１０２に再度送信して実行させる（ステップＳ４２２）。これにより、携帯電話１０２においてＧＰＳコマンド１６２が実行されたことに応じて携帯電話１０２から送信される位置情報（ＧＰＳコマンド１６２の実行結果、正規の実行結果）を取得する（ステップＳ４２３）。
【０１２８】
このように、制御部２０４は、コマンド処理部１７に、携帯電話１０２においてＧＰＳコマンド１６２の実行結果が得られるまでの予測所要時間を示す情報を携帯電話１０２から取得させるとともに、取得した予測所要時間に基づいて、ＧＰＳコマンド１６２の実行結果および代替実行結果のうちから取得させる実行結果を選択する。つまり、電子カメラ１０１は、携帯電話１０２に実行させたＧＰＳコマンド１６２（外部コマンド）の実行結果が得られるまでの予測所要時間に基づいて、このＧＰＳコマンド１６２（外部コマンド）の実行結果を取得するまで待機するか、または待機せずに代替コマンドである簡易位置情報取得コマンド１６３を実行することにより得られる代替実行結果を取得するか、を選択する。
【０１２９】
これにより、電子カメラ１０１は、携帯電話１０２から外部コマンドを実行することにより得られる実行結果を取得できない場合に、この実行結果が得られるまでの予測所要時間に応じて、代替処理を行うか否かを選択することができる。すなわち、電子カメラ１０１は、処理の予測所要時間に応じて、実行したコマンドの実行結果を取得するまで待機するか、または待機せずに代替処理を実行することにより次に処理に進むか、を選択することができる。例えば、電子カメラ１０１は、上述したようなＧＰＳコマンド１６２の実行結果を取得するまでの予測所要時間が所定の閾値より長い場合、その実行結果の取得を待たずに代替処理を実行することにより、撮影ができなくなることを防止することができる。なお、予測所要時間が所定の閾値より長い場合に行う代替処理は、代替コマンドを実行することにより代替実行結果を取得するのに代えて、代替コマンドを実行せずに単に仮情報（ダミーデータ）を用いた処理としてもよい。
【０１３０】
（遅延実行処理を用いたコマンドの実行処理の第３例）
次に、遅延実行処理を用いたコマンドの実行処理において、コマンドの再実行により電子カメラ１０１（自機器）が実行結果（正規の実行結果）を取得する前に、電子カメラ１０１の電源がオフされた場合の処理を説明する。
例えば、アプリケーションプログラムＡの実行手順に従って実行するコマンドが全て実行済み（コマンド終了）になったことにより、ユーザが電源ボタン２６１を操作して電子カメラ１０１を電源オフさせる場合がある。この場合、未取得コマンドを再度実行することができないことにより、正規の実行結果を後から取得できない場合がある。このように、電子カメラ１０１（自機器）が遅延実行処理（未取得コマンドの再実行処理）の前に電源オフされた場合の処理について説明する。
【０１３１】
図１４は、遅延実行処理を用いたコマンドの実行処理の第３例を示すフローチャートである。この図１４は、図１２に示す処理において実行手順に従った処理を完了した後、且つ未取得コマンドを再度実行する前に、電子カメラ１０１の電源がオフされた場合の処理を示している。なお、図１４において図１２の各処理に対応する部分には同一の符号を付け、その説明を省略する。
【０１３２】
ステップＳ４５１において、アプリケーションプログラムＡの実行手順に従って実行するコマンドが全て実行済み（コマンド終了）になったと判定された場合、制御部２０４は、電源オフイベントを検出したか否かを判定する（ステップＳ４６０）。ステップＳ４５１において、電源オフイベントが検出されない場合、制御部２０４は、図２２を用いて説明したステップＳ４７０、Ｓ４８０、Ｓ４８１の処理を実行して、ステップＳ４１３において取得された代替実行結果の位置情報を、正規の実行結果の位置情報に変更する。
【０１３３】
一方、ステップＳ４５１において、電源オフイベントが検出された場合（例えば、電源ボタン２６１が電源オフに操作されたことが検出された場合）、制御部２０４は、処理が未完了であることを示す情報を表示部２０６に表示させる（ステップＳ４８５）。次に、制御部２０４は、未取得コマンドに含まれる情報（コマンドＩＤ、コマンド機能名、実行可能な機器、等）、および、この未取得コマンドによる実行結果を後から取得するために必要な情報等を、未完了処理として登録する（ステップＳ４８６）。
【０１３４】
このように、制御部２０４は、未取得コマンドを再度実行する前に、電子カメラ１０１の電源がオフされた場合、処理が未完了であることを示す情報を表示部２０６に表示させてから電源オフの状態に制御する。また、制御部２０４は、未取得コマンドを再度実行する前に、電子カメラ１０１の電源がオフされた場合、未取得コマンドに含まれる情報、および、この未取得コマンドによる実行結果を後から取得するために必要な情報等を、未完了処理として登録する。
【０１３５】
これにより、電子カメラ１０１は、未取得コマンドを再度実行する前に、電子カメラ１０１の電源がオフされた場合、処理が未完了であることを示す情報を表示部２０６に表示することができるため、ユーザに対して処理が未完了であることを報知することができる。また、電子カメラ１０１は、未取得コマンドを再度実行する前に、電子カメラ１０１の電源がオフされた場合、未取得コマンドに含まれる情報、および、この未取得コマンドによる実行結果を後から取得するために必要な情報等を、未完了処理として登録することができる。なお、この未完了処理の登録処理について、詳しくは後述する。
【０１３６】
（遅延実行処理を用いたコマンドの実行処理の第４例）
次に、遅延実行処理を用いたコマンドの実行処理において、携帯電話１０２（他機器）から実行結果を取得する前に、携帯電話１０２の電源がオフされた場合の処理を説明する。
【０１３７】
例えば、電子カメラ１０１が携帯電話１０２において実行するコマンドを送信した際、または送信した後に実行結果を取得する前に、携帯電話１０２との通信が遮断されている場合がある。この場合、アプリケーションプログラムＡの実行手順で実行するコマンドの実行結果、または未取得コマンドを再度実行することにより得られる実行結果を取得できない場合がある。このような、携帯電話１０２（他機器）との通信が、処理の途中で遮断された場合の電子カメラ１０１（自機器）における処理について説明する。なお、通信が遮断された場合とは、携帯電話１０２の電源がオフされた状態、携帯電話１０２において通信処理が不可能な動作状態、携帯電話１０２が通信可能な場所にない状態、などによって通信が遮断された場合である。
【０１３８】
図１５は、遅延実行処理を用いたコマンドの実行処理の第４例を示すフローチャートである。この図１５は、図１２に示す処理の途中で、携帯電話１０２との通信が遮断された場合の電子カメラ１０１の処理を示している。なお、図１５において図１２の各処理に対応する部分には同一の符号を付け、その説明を省略する。
【０１３９】
ステップＳ４０３において、ＧＰＳコマンド１６２の実行結果を取得していないと判定された場合、制御部２０４は、携帯電話１０２と通信が接続されている状態であるか否か（通信接続済みであるか否か）を判定する（ステップＳ４０７）。
【０１４０】
ステップＳ４０７において、携帯電話１０２と通信が接続されている状態であると判定された場合、制御部２０４は、図１２を用いて説明したステップＳ４１１、Ｓ４１２、Ｓ４１３の処理を実行する。これにより、制御部２０４は、簡易位置情報取得コマンド１６３により得られた位置情報（代替実行結果、仮実行結果）を、携帯電話１０２から取得する。
【０１４１】
一方、ステップＳ４０７において、携帯電話１０２と通信が接続されていない状態（遮断状態）であると判定された場合、制御部２０４は、処理を継続するか否かをユーザが選択可能な確認画面（選択メニュー画面など）を、表示部２０６に表示させる（ステップＳ４０８）。
【０１４２】
そして、制御部２０４は、ユーザにより処理を継続するか否かの何れが選択されたかを検出し、この検出結果に基づいて、処理を終了するか否かを判定する（ステップＳ４０９）。制御部２０４は、ステップＳ４０９において、処理を終了しない（処理を継続することが選択された）と判定した場合、図１２を用いて説明したステップＳ４１１、Ｓ４１２、Ｓ４１３の処理を実行する。この場合、携帯電話１０２との通信が遮断されているため、電子カメラ１０１は、例えば未取得コマンドを登録する（ステップＳ４１１）とともに、電子カメラ１０１内において、仮情報（ダミーデータ）を仮実行結果とする仮処理（ステップＳ４１２、Ｓ４１３）を行い、ステップＳ４５０に処理を進める。一方、制御部２０４は、ステップＳ４０９において、処理を終了する（処理を継続しないことが選択された）と判定した場合、アプリケーションプログラムＡの処理を終了する。
【０１４３】
また、ステップＳ４５１において、アプリケーションプログラムＡの実行手順に従って実行するコマンドが全て実行済み（コマンド終了）になったと判定された場合、制御部２０４は、ステップＳ４０１〜Ｓ４５１の処理（実行手順に従った処理）において、代替処理が実行されたか否か（仮処理があったか否か）を判定する（ステップＳ４７０）。そして、ステップＳ４７０において、代替処理が実行された（仮処理有り）と判定された場合、制御部２０４は、携帯電話１０２と通信が接続されている状態であるか否か（通信接続済みであるか否か）を判定する（ステップＳ４７１）。
【０１４４】
ステップＳ４７１において、携帯電話１０２と通信が接続されている状態であると判定された場合、制御部２０４は、図１２を用いて説明したステップＳ４８０、Ｓ４８１の処理を実行する。すなわち、制御部２０４は、ＧＰＳコマンド１６２を再度実行することにより得られた位置情報（正規の実行結果）を取得して、ステップＳ４１３において取得された代替実行結果（第１代替実行結果）の位置情報を、正規の実行結果の位置情報に変更する（正規結果代入）。
【０１４５】
一方、ステップＳ４７１において、携帯電話１０２と通信が接続されていない状態（遮断状態）であると判定された場合、制御部２０４は、図１４を用いて説明したステップＳ４８５、Ｓ４８６の処理を実行する。すなわち、制御部２０４は、処理が未完了であることを示す情報を表示部２０６に表示させるとともに、未取得コマンドに含まれる情報、および、この未取得コマンドによる実行結果を後から取得するために必要な情報等を、未完了処理として登録する。
【０１４６】
このように、制御部２０４は、携帯電話１０２において実行するコマンドを送信した際、または送信した後に実行結果を取得する前に、携帯電話１０２との通信が遮断されている場合、処理を継続するか否かをユーザが選択可能な確認画面（選択メニュー画面など）を、表示部２０６に表示させる。また、制御部２０４は、携帯電話１０２において実行するコマンドを送信した際、または送信した後に実行結果を取得する前に、携帯電話１０２との通信が遮断されている場合、処理が未完了であることを示す情報を表示部２０６に表示させるとともに、未取得コマンドに含まれる情報、および、この未取得コマンドによる実行結果を後から取得するために必要な情報等を、未完了処理として登録する。
【０１４７】
これにより、電子カメラ１０１は、携帯電話１０２との通信が遮断されていることにより、携帯電話１０２において実行する外部コマンドの実行結果を取得できない場合、処理を継続するか否かをユーザに選択させることができる。また、電子カメラ１０１は、処理が未完了であることを示す情報を表示部２０６に表示することができるため、ユーザに対して処理が未完了であることを報知することができる。さらに、電子カメラ１０１は、未取得コマンドに含まれる情報、および、この未取得コマンドによる実行結果を後から取得するために必要な情報等を、未完了処理として登録することができる。なお、この未完了処理の登録処理について、詳しくは後述する。
【０１４８】
（未完了処理の登録）
次に、図１３、１４に示すステップＳ４８６の未完了処理の登録の処理について、詳しく説明する。
図１３に示すように、電子カメラ１０１は、携帯電話１０２からＧＰＳコマンド１６２の位置情報（正規の実行結果）を取得できていない状態のまま電源がオフされた場合、その後に、所望の位置情報（撮影した場所の位置情報）を携帯電話１０２から取得することは困難である。例えば、次に電子カメラ１０１の電源をオンにしたタイミングで、電子カメラ１０１と携帯電話１０２との通信が接続できたとしても、そのタイミングまで携帯電話１０２の位置（携帯電話１０２を所有している人のいる場所）が、所望の位置情報（撮影した場所の位置情報）が得られる場所（位置）に留まっているとは限らない。
【０１４９】
また、図１４に示すよう、電子カメラ１０１は、携帯電話１０２からＧＰＳコマンド１６２の位置情報（正規の実行結果）を取得できていない状態のまま、携帯電話１０２との通信が遮断された場合も、その後に、所望の位置情報（撮影した場所の位置情報）を携帯電話１０２から取得することは同様に困難である。例えば、次に電子カメラ１０１と携帯電話１０２との通信が接続できたときに、携帯電話１０２の位置（携帯電話１０２を所有している人のいる場所）が、所望の位置情報（撮影した場所の位置情報）が得られる場所に留まっているとは限らない。特に、携帯電話１０２のユーザと電子カメラ１０１のユーザとが異なる場合には、次に通信が接続可能となることがあるか否かも不明であり、アプリケーションプログラムＡの処理により撮影した場所の位置情報を携帯電話１０２から取得することはより困難である。
【０１５０】
本実施形態の電子機器連携システム１００において、電子カメラ１０１は、携帯電話１０２からＧＰＳコマンド１６２の位置情報（正規の実行結果）を取得できていない状態のまま電源のオフや通信の遮断が生じた場合に、例えば通信ネットワーク（インターネット）を介して接続されるサーバ（例えばＷｅｂサーバ）を利用して、正規の実行結果（位置情報）を後から取得可能である。すなわち、図１３、１４に示すステップＳ４８６の未完了処理の登録の処理は、未取得コマンドが実行可能となった時点で取得した正規の実行結果を、通信ネットワーク（インターネット）を介して接続されるサーバを介して後から取得可能とするための処理である。
【０１５１】
図１６は、インターネットを介して接続されるＷｅｂサーバを含む電子機器連携システム１００の一例を示す図である。この図１６に示す電子機器連携システム１００は、電子カメラ１０１、携帯電話１０２、および画像処理サーバ１０４の３つの電子機器を連携して動作させるとともに、Ｗｅｂサーバ１０５、パーソナルコンピュータ１０６（以下、パソコン）、または携帯電話会社のサーバ１０７に対しても各電子機器がインターネットを介して接続可能な構成である。なお、基地局１０８は、携帯電話会社のサーバ１０７と携帯電話１０２との通信を接続する携帯電話通信網の基地局である。また、基地局１０９は、インターネットと電子機器間を無線で通信接続するための無線端末（基地局）である。
【０１５２】
ここで、図１６の３つの電子機器は機器情報やコマンドリストを互いに送受信して、同じコマンドリストを共有している状態にある。図２、および図８を用いて説明したように、電子カメラ１０１が有するコマンドと、携帯電話１０２が有するコマンドとは、互いに送受信して同じコマンドリストを共有している。
【０１５３】
なお、図４（ａ）を用いて説明したように、画像処理サーバ１０４は、電子カメラ１０１から外部コマンドとしての画像処理コマンドＡを送信することにより、電子カメラ１０１内部の画像処理とは異なる画像処理を実行することも可能である。この画像処理サーバ１０４が有する画像処理コマンドＡも、上述の３つの電子機器が共有している同じコマンドリストに含まれている構成としてもよい。
【０１５４】
また、電子カメラ１０１は、ユーザが持ち歩いている携帯電話１０２との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）やＷｉ−Ｆｉ（登録商標）などに対応する無線方式により制御情報を送受信する。携帯電話１０２は、基地局１０８（例えば、携帯電話通信網の基地局）を介して携帯電話会社のサーバ１０７からインターネットに接続される。また、電子カメラ１０１は、基地局１０９（例えば、Ｗｉ−Ｆｉ（登録商標）などの無線通信の基地局）を介してインターネットに接続される。これにより、電子カメラ１０１または携帯電話１０２は、インターネットを介して画像処理サーバ１０４、Ｗｅｂサーバ１０５、またはパソコン１０６（ユーザの自宅にあるパソコン）に接続される。なお、図１６の例では、説明がわかり易いように、パソコン１０６を直接インターネットに接続しているが、実際には光ファイバーやＡＤＳＬなどの有線、または無線通信の基地局などを介してユーザの自宅のパソコン１０６に接続される。また、Ｗｅｂサーバ１０５は、通信によりデータの書き込み（送信）および取得（受信）ができるものであればＷｅｂサーバに限られるものではなく、例えば、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバ、メールサーバなどであってもよい。本実施形態では、Ｗｅｂサーバを例として説明する。
【０１５５】
以下、図１６の動作について順番に説明する。なお、以下の（１）から（１０）は図１６の（１）から（１０）に対応する。
【０１５６】
（１）電子カメラ１０１は、携帯電話１０２にＧＰＳコマンド１６２を送信する。携帯電話１０２は、ＧＰＳコマンド１６２を受信したことに応じて、ＧＰＳコマンド１６２を実行してＧＰＳの測位データの受信を開始する。ここで、携帯電話１０２は、ＧＰＳの受信状況が悪く測位データを受信できなかったものとする。電子カメラ１０１は、ＧＰＳコマンド１６２を実行することにより得られる位置情報を取得できないため、このＧＰＳコマンド１６２の処理を後回しにして、アプリケーションプログラムＡの実行手順に従った次の処理に移行する。
【０１５７】
（２）電子カメラ１０１は、シャッターボタン２６２を押下することにより生じるシャッターイベントを受付可能にする。ユーザが電子カメラ１０１のシャッターボタン２６２を押下すると、電子カメラ１０１は、シャッターボタン２６２が押下されたことを検出し、次の撮影コマンド実行処理に移行する。
【０１５８】
（３）電子カメラ１０１は、撮影コマンド１５１を実行して、撮影画像をバッファ２０３に取り込む。
【０１５９】
（４）電子カメラ１０１は、画像処理コマンド１５２を実行し、上述の（３）の処理において取得した撮影画像に対して画像処理（例えば、ホワイトバランス調整、コントラスト調整、ＪＰＥＧ圧縮などの処理）を実行することにより画像データを生成する。なお、この例では、電子カメラ１０１で実行される内部コマンドの画像処理コマンド１５２が実行される。
【０１６０】
（５）電子カメラ１０１は、付加情報登録コマンド１５３を実行し、撮影時の設定情報や関連情報、またはファイル名などの付加情報を画像データに登録する（付加する）。ここで、電子カメラ１０１は、この付加情報として登録されるＧＰＳ機能による位置情報を、上述の（１）の処理において取得できていないため、仮情報（ダミーデータ）を付加する（書き込む）。
【０１６１】
（６）電子カメラ１０１は、保存コマンド１５４を実行し、上述の（５）の処理において付加情報を付加した画像データを、メモリカードＩＦ２０７を介してメモリカード２０７ａに保存する。
【０１６２】
（７）ここで、電子カメラ１０１の電源がオフされた場合、または携帯電話１０２との通信が遮断された場合、電子カメラ１０１は、インターネットを介してＷｅｂサーバ１０５に接続する。そして、電子カメラ１０１は、Ｗｅｂサーバ１０５のサーバ領域において、ＧＰＳコマンド１６２の実行結果を格納するための格納領域を確保する。そして、電子カメラ１０１は、この格納領域の場所を示すアドレス情報をバッファ２０３に保持する。
【０１６３】
（８）電子カメラ１０１は、上述の（７）の処理においてＷｅｂサーバ１０５内に確保した格納領域の場所を示すアドレス情報を、携帯電話１０２に送信する。ここで、電子カメラ１０１と携帯電話１０２との直接接続される通信（インターネットを介さない通信）が遮断されている場合、電子カメラ１０１は、インターネットを介して接続された携帯電話会社のサーバ１０７と、基地局１０８とを介して（例えば電子メール機能を用いて）、上述のアドレス情報と、コマンドＩＤ、機器ＩＤ、所有者ＩＤなどの関連情報と、を携帯電話１０２に送信する。また、電子カメラ１０１は、上述の（６）の処理において保存した画像データの付加情報に含まれる位置情報を、仮情報（ダミーデータ）から上述のアドレス情報に変更して再保存する。
【０１６４】
（９）携帯電話１０２は、上述の（８）の処理において受信した関連情報により該当する未取得コマンドとしてのＧＰＳコマンド１６２を実行することによりＧＰＳの測位データを受信した場合、この受信した測位データに基づく位置情報（正規の位置情報）を、上述の（８）の処理において受信したアドレス情報が示すＷｅｂサーバ上の格納領域に保存する。
【０１６５】
（１０）パソコン１０６は、インターネットを介して、画像データに付加されているアドレス情報が示すＷｅｂサーバ上の格納領域にアクセスすることにより、上述の（９）の処理において携帯電話１０２が保存した位置情報（正規の位置情報）を取得する。
【０１６６】
このように、電子カメラ１０１の制御部２０４は、コマンド処理部１７がＧＰＳコマンド１６２を実行することにより得られる正規の実行結果（第１実行結果）を取得できない場合、アプリケーションプログラムＡの実行手順に従った処理を完了した後に、携帯電話１０２（他機器）により通信ネットワークを介して接続されたＷｅｂサーバ１０５（サーバ）に保存された正規の実行結果（第１実行結果）を、コマンド処理部１７に取得させる。例えば、制御部２０４は、コマンド処理部１７が正規の実行結果（第１実行結果）を取得できない場合、携帯電話１０２が正規の実行結果（第１実行結果、未取得コマンドを後から実行することにより得られる実行結果）を格納するためのサーバ内の格納場所を示すアドレス情報（第１格納場所情報）を、携帯電話１０２に対して送信させる。
【０１６７】
また、携帯電話１０２のコマンド処理部は、通信回路が受信したＧＰＳコマンド１６２（外部コマンド、第２コマンド）による処理を実行できない場合、ＧＰＳコマンド１６２による処理が実行可能となった後に得られた正規の実行結果（第２実行結果、未取得コマンドを後から実行することにより得られる実行結果）を、通信ネットワークを介して接続されたＷｅｂサーバ１０５に格納するコマンドを送信する。なお、上述の携帯電話１０２のコマンド処理部と通信回路とのそれぞれは、図１に示す電子機器を携帯電話１０２とした場合のコマンド処理部１７と通信回路１４（通信部）とである。
例えば、携帯電話１０２の通信回路は、正規の実行結果（第２実行結果）を格納するためのＷｅｂサーバ１０５内の格納場所を示すアドレス情報（第２格納場所情報）を、電子カメラ１０１（他機器）から受信する（例えばインターネットを介して受信する）。また、携帯電話１０２のコマンド処理部は、携帯電話１０２の通信回路を介して受信したアドレス情報（第２格納場所情報）に基づくＷｅｂサーバ１０５内の格納場所に、上述の正規の実行結果を格納するコマンドを送信する。
【０１６８】
これにより、電子カメラ１０１は、携帯電話１０２からＧＰＳコマンド１６２の位置情報（正規の実行結果）を取得できていない状態のまま電源のオフや通信の遮断が生じた場合に、後から取得可能ように、インターネットを介して接続されるＷｅｂサーバ１０５内に実行結果を格納するための格納領域を確保するとともに、格納場所を示すアドレス情報を携帯電話１０２に対して送信することができる。これに対して、携帯電話１０２は、ＧＰＳコマンド１６２を実行することにより正規の実行結果が得られた後に、電子カメラ１０１から受信したアドレス情報が示すＷｅｂサーバ１０５内の格納場所に、この正規の実行結果を格納することができる。
【０１６９】
すなわち、電子機器連携システム１００の遅延実行処理を用いたコマンド実行処理の途中において、電子カメラ１０１が携帯電話１０２からＧＰＳコマンド１６２の位置情報（正規の実行結果）を取得できていない状態のまま、電子カメラ１０１の電源がオフされた場合、または電子カメラ１０１と携帯電話１０２との間の通信が遮断された場合であっても、その後、インターネットを介して接続されるＷｅｂサーバ１０５から、携帯電話１０２において実行したＧＰＳコマンド１６２の実行結果を取得することができる。
【０１７０】
図１７は、図１３、１４に示すステップＳ４８６の未完了処理を登録する処理の動作の一例を示すフローチャートである。
まず、電子カメラ１０１の制御部２０４は、通信部２０９により基地局１０９を介してインターネットに接続し、インターネットを介してＷｅｂサーバ１０５に接続する（ステップＳ５０１）。次に、制御部２０４は、Ｗｅｂサーバ１０５内に、ＧＰＳコマンド１６２の実行結果を格納するための格納領域（サーバ領域）を確保する（ステップＳ５０２）。
【０１７１】
そして、制御部２０４は、ステップＳ５０２において格納領域（サーバ領域）の確保に成功したか否かを判定する（ステップＳ５０３）。ステップＳ５０３において格納領域（サーバ領域）の確保に失敗したと判定された場合、制御部２０４は、表示部２０６にエラー情報を表示させて（ステップＳ５０６）、処理を終了する。
【０１７２】
一方、ステップＳ５０３において格納領域（サーバ領域）の確保に成功したと判定された場合、制御部２０４は、格納領域（サーバ領域）の場所を示すアドレス情報を電子カメラ１０１内のバッファ２０３に保持させる（登録する）。また、制御部２０４は、この格納領域（サーバ領域）の場所を示すアドレス情報を携帯電話１０２に対して送信する。例えば、制御部２０４は、通信部２０９により基地局１０９を介して接続したインターネットを介して携帯電話会社のサーバ１０７に接続し、さらに基地局１０８を介して携帯電話１０２に対してアドレス情報を送信する（ステップＳ５０４）。
【０１７３】
続いて、制御部２０４は、アプリケーションプログラムＡの処理により保存した画像データの付加情報に含まれている位置情報を、仮情報（仮実行結果）から格納領域（サーバ領域）の場所を示すアドレス情報に変更して再保存し（ステップＳ５０５）、処理を終了する。
【０１７４】
一方、携帯電話１０２は、未取得コマンド（ＧＰＳコマンド１６２）の実行待機中である。そして、ステップＳ５０４において電子カメラ１０１からインターネットを介して送信された格納領域（サーバ領域）の場所を示すアドレス情報を受信する（ステップＳ６０１）。
【０１７５】
次に、携帯電話１０２は、未取得コマンドであるＧＰＳコマンド１６２を実行（ステップＳ６０２）することにより、実行結果（正規の実行結果）を取得した場合、受信したアドレス情報が示すＷｅｂサーバ内の格納領域（サーバ領域）の場所に、取得した実行結果を保存するためのコマンドを送信して（ステップＳ６０３）処理を終了する。
【０１７６】
なお、携帯電話１０２は、ＧＰＳコマンド１６２をアプリケーションプログラムＡの実行手順に従って実行した際に実行結果を取得できなかったことに応じて、未取得コマンドとして記憶しておいてもよい。また、携帯電話１０２は、図１７のステップＳ５０４において、アドレス情報とともに、未取得コマンドのコマンドＩＤ、機器ＩＤ、所有者ＩＤなどの関連情報を、電子カメラ１０１から取得してもよい。
【０１７７】
このように、電子カメラ１０１は、Ｗｅｂサーバ１０５内に確保した格納領域の場所を示すアドレス情報を画像データに付加する。携帯電話１０２は、電子カメラ１０１から受信したアドレス情報が示すＷｅｂサーバ１０５内の格納場所に、未取得コマンドであるＧＰＳコマンド１６２が実行されることより得られた実行結果（正規の実行結果）を保存する。
【０１７８】
これにより、本実施形態によれば、電子カメラ１０１が処理中に取得できなかったコマンドの実行結果を、処理が完了した後に携帯電話１０２との通信が遮断された場合であっても、Ｗｅｂサーバ１０５から取得することができる。例えば、インターネットを介して接続されているユーザの自宅にあるパソコン１０６を用いて、画像データの付加情報に含まれるアドレス情報に基づいて、Ｗｅｂサーバ１０５から正規の実行結果を取得することができる。
【０１７９】
（遅延実行処理を用いたコマンドの実行処理の第５例）
次に、処理（例えばアプリケーションプログラムＡの処理）が完了した後、インターネットを介して接続されたＷｅｂサーバ１０５から正規の実行結果を取得可能とする処理について、図１５、図１６、および図１７を用いて説明した処理とは異なる処理の一例について説明する。
【０１８０】
図１５、図１６、および図１７を用いて説明した処理は、電子カメラ１０１がＷｅｂサーバ内の格納領域を確保して、その確保した格納領域の場所を示すアドレス情報を携帯電話１０２に送信する処理であるが、これに限られるものではない。例えば、携帯電話１０２が、Ｗｅｂサーバ内の格納領域を確保して、その確保した格納領域の場所を示すアドレス情報を電子カメラ１０１に送信する処理としてもよい。なお、携帯電話１０２がＷｅｂサーバ内の格納領域を確保する処理は、図１７のステップＳ５０１からＳ５０４に示す電子カメラ１０１の処理を、携帯電話１０２側で実行すればよい。
以下に、携帯電話１０２が、Ｗｅｂサーバ内の格納領域を確保して、その確保した格納領域の場所を示すアドレス情報を電子カメラ１０１に送信する処理について説明する。
【０１８１】
例えば、電子カメラ１０１の制御部２０４（コマンド処理部１７）は、携帯電話１０２（他機器）に対してＧＰＳコマンド１６２（外部コマンド、第１コマンド）を送信する。
携帯電話１０２（携帯電話１０２内のコマンド処理部）は、通信回路（携帯電話１０２内の通信回路）を介して受信したＧＰＳコマンド１６２（外部コマンド、第２コマンド）による処理を実行できない場合、または実行しても実行結果を取得できない場合、実行結果（第２実行結果）を格納するためのＷｅｂサーバ１０５内の格納場所を示すアドレス情報（第２格納場所情報）を電子カメラ１０１（他機器）に対して送信する。また、携帯電話１０２は、ＧＰＳコマンド１６２（外部コマンド、第２コマンド）による処理を実行した後に得られた実行結果（第２実行結果）を、アドレス情報に基づくＷｅｂサーバ１０５内の格納場所に格納するコマンドを送信する。
【０１８２】
また、電子カメラ１０１は、外部コマンド（第１コマンド、第２コマンド）を送信したことに応じて携帯電話１０２（他機器）が外部コマンド（第１コマンド、第２コマンド）を実行することにより得られる実行結果（第１実行結果、第２実行結果）を格納するためのＷｅｂサーバ１０５内の格納場所を示すアドレス情報（第１格納場所情報、第２格納場所情報）を、実行結果（第１実行結果、第２実行結果）の代わりの仮実行結果として、携帯電話１０２（他機器）から受信する。
【０１８３】
図１８は、遅延実行処理を用いたコマンドの実行処理の第５例を示すフローチャートである。この図１８は、図１５に示す処理と同様に、実行手順に従った処理中、または実行手順に従った処理の後に未取得コマンドを再送信する処理において、携帯電話１０２との通信が遮断された場合、後からインターネットを介して正規の実行結果を取得可能とする処理を示している。図１８は図１５に示す処理と一部が異なる。処理が異なる点は、ステップＳ４１０、Ｓ４３１、Ｓ４３２の処理が追加されていることと、図１５のステップＳ４８６の処理がないことである。なお、図１８において図１５の各処理に対応する部分には同一の符号を付け、その説明を省略する。なお、以下に説明する処理において、携帯電話１０２は、Ｗｅｂサーバ１０５内の格納領域を、事前に確保しているものとする。
【０１８４】
ステップＳ４０７において、携帯電話１０２と通信が接続されている状態であると判定された場合、制御部２０４は、携帯電話１０２からのコマンド応答により、格納領域の場所を示すアドレス情報（格納場所情報）を取得したか否かを判定する（ステップＳ４１０）。ステップＳ４１０において、アドレス情報（格納場所情報）を取得していない（未取得である）と判定された場合、制御部２０４は、図１２を用いて説明したステップＳ４１１、Ｓ４１２、Ｓ４１３の処理を実行する。これにより、制御部２０４は、簡易位置情報取得コマンド１６３を実行することにより得られた代替実行結果（第１代替実行結果）を携帯電話１０２から取得して、ステップＳ４５０に処理を進める。
【０１８５】
一方、ステップＳ４１０において、アドレス情報（格納場所情報）を取得したと判定された場合、制御部２０４は、未取得コマンドを記憶する（ステップＳ４３１）とともに、この未取得コマンドのコマンド応答により携帯電話１０２から取得したアドレス情報（格納場所情報）を、仮実行結果として取得する（ステップＳ４３２）。すなわち、制御部２０４は、この後の処理（付加情報登録コマンドの実行処理）において、位置情報の代わりにアドレス情報（格納場所情報）を画像データの付加情報として付加する。
【０１８６】
ステップＳ４５０以降の処理は、図１５に示す処理と同様の処理が実行される。但し、ステップＳ４７１において、携帯電話１０２と通信が接続されていない状態（遮断状態）であると判定された場合、制御部２０４は、処理が未完了であることを示す情報を表示部２０６に表示させる処理（ステップＳ４８５）のみを実行して処理を終了する。つまり、ステップＳ４３２において、制御部２０４は、携帯電話１０２からアドレス情報（格納場所情報）を取得済みであるため、ステップＳ４８５の後に図１５に示すステップＳ４８６の「未完了処理の登録」の処理は実行する必要がないため実行しない。
【０１８７】
このように、携帯電話１０２は、電子カメラ１０１から受信したＧＰＳコマンド１６２の実行結果を取得できない場合、実行結果を格納するためのＷｅｂサーバ１０５内に確保した格納領域の場所を示すアドレス情報を電子カメラ１０１に対して送信する。これに対して、電子カメラ１０１は、携帯電話１０２から受信したアドレス情報を、位置情報の代わりに画像データの付加情報として付加する。また、携帯電話１０２は、ＧＰＳコマンド１６２の実行結果を取得した後、アドレス情報が示すＷｅｂサーバ１０５内の格納場所に取得した実行結果（正規の実行結果、位置情報）を書き込む。
【０１８８】
これにより、本実施形態によれば、電子カメラ１０１が処理中に取得できなかったコマンドの実行結果を、処理が完了した後に携帯電話１０２との通信が遮断された場合であっても、Ｗｅｂサーバ１０５から取得することができる。例えば、インターネットを介して接続されているユーザの自宅にあるパソコン１０６を用いて、画像データの付加情報に含まれるアドレス情報に基づいて、Ｗｅｂサーバ１０５から正規の実行結果を取得することができる。
【０１８９】
（電子カメラ１０１がＷｅｂサーバ１０５から実行結果を取得する処理の例）
次に、電子カメラ１０１がＷｅｂサーバ１０５内の格納領域に保存された正規の実行結果を取得する処理について説明する。
図１６を用いて、Ｗｅｂサーバ１０５内の格納領域に保存された正規の実行結果をインターネットを介してパソコン１０６を用いて取得する例を説明したがこれに限られるものではない。例えば、電子カメラ１０１がインターネットを介して正規の実行結果を取得する構成としてもよい。
【０１９０】
例えば、制御部２０４は、コマンドの実行手順に従った処理を完了した後に、アドレス情報に基づいて正規の実行結果（第１実行結果）をコマンド処理部１７に取得させる。具体的には、コマンド処理部１７は、通信部２０９によりインターネットを介してＷｅｂサーバ１０５に接続し、画像データの付加情報に付加されているアドレス情報が示す格納領域に保存されている正規の実行結果を取得するコマンドを送信する。
【０１９１】
図１９は、電子カメラ１０１がＷｅｂサーバ１０５から実行結果を取得する処理の一例を示す図である。
【０１９２】
まず、電子カメラ１０１の制御部２０４は、通信部２０９により基地局１０９を介してインターネットに接続し、インターネットを介してＷｅｂサーバ１０５に接続する（ステップＳ７０１）。次に、制御部２０４は、接続したＷｅｂサーバ１０５内において、携帯電話１０２から受信したアドレス情報（格納場所情報）が示す格納領域にアクセスする。なお、このアドレス情報は、画像データの付加情報として位置情報の代わりに付加されている情報である。制御部２０４は、画像データを読み出してアドレス情報を取得する。そして、制御部２０４は、このアドレス情報（格納場所情報）が示す格納領域に保存されている正規の実行結果を取得するためのコマンドを送信する（ステップＳ７０２）。
【０１９３】
続いて、制御部２０４は、ステップＳ７０２において格納領域（サーバ領域）に保存されている正規の実行結果を取得したか否かを判定する（ステップＳ７０３）。ステップＳ７０３において取得できなかったと判定された場合、制御部２０４は、表示部２０６にエラー情報を表示させて（ステップＳ７０５）、処理を終了する。
【０１９４】
一方、ステップＳ７０３において取得したと判定された場合、制御部２０４は、画像データに付加されているアドレス情報を、取得した正規の実行結果に変更して再保存する（正規結果代入、ステップＳ７０４）。
【０１９５】
このように、電子カメラ１０１は、Ｗｅｂサーバ１０５内に格納された正規の実行結果を、インターネットを介して取得する。
これにより、電子カメラ１０１は、処理中に取得できなかったコマンドの実行結果を、処理が完了した後に携帯電話１０２との通信が遮断された場合であっても、Ｗｅｂサーバ１０５から取得することができる。
【０１９６】
以上説明してきたように、本実施形態によれば、電子機器１０は、他機器で実行する外部コマンドの実行結果を取得できない場合であっても、その取得を後にして実行手順に従った処理を継続することができるとともに、未取得のコマンドを後から再度実行することにより実行結果を取得することができる。また、電子機器１０は、他機器との通信が遮断された場合であっても、インターネットを介して接続されたサーバを介して他機器で実行された結果を後から取得することも可能である。
このように、本実施形態によれば、他機器の様々な機能を自機器の機能と同じように利用することができる。
【０１９７】
なお、図１５、または図１８を用いて説明したような、電子カメラ１０１が携帯電話１０２で実行される外部コマンドの実行結果を取得できない場合に、実行結果の代わりにＷｅｂサーバ１０５内のアドレス情報を代わりに用いる処理は、携帯電話１０２において外部コマンドを一時的に実行不可能な場合に実行する処理としてもよいし、携帯電話１０２において実行した外部コマンドの実行結果の取得に時間がかかることにより実行結果を取得できない場合に実行する処理としてもよい。
【０１９８】
また、上記実施形態において、ＧＰＳコマンド１６２の実行結果が取得できない場合を例とした遅延実行処理について説明したが、ＧＰＳコマンド１６２以外のコマンドについても同様に適用することができる。
例えば、プログラムＡにおける画像処理コマンド１５２に代えて、画像処理サーバ１０４で実行する外部コマンドである画像処理コマンドＡ（図４（ａ）参照）としたプログラム実行した際に、電子カメラ１０１は、画像処理サーバ１０４の動作状態などによって画像処理コマンドＡの実行結果を取得できない場合がある。この場合、電子カメラ１０１は、画像処理コマンドＡの実行結果（画像処理サーバ１０４において処理された画像データ）を取得する処理を後にして、仮の画像データ（ダミーデータ、例えば全黒の画像データ）を用いて、付加情報登録コマンド１５３、および保存コマンド１５４を実行してもよい。この場合、電子カメラ１０１は、画像処理サーバ１０４から画像処理された画像データを取得した後に、保存した画像データを読み出して、仮の画像データを取得した画像データに変更して再保存してもよい。
【０１９９】
また、上記実施形態では、電子機器１０として電子カメラ１０１、携帯電話１０２、画像処理サーバ１０４を主な例として説明したが、これらに限られるものではない。本発明の電子機器１０は、電子機器の例として上述しているようなプリンタ、ＦＡＸ、テレビ、ビデオ、等であってもよいし、また、コンピュータ、ゲーム機、電子辞書、電子玩具など、その他の電子機器であってもよい。
【０２００】
なお、上述のＣ機能プラットホーム１６（２５１）、または制御部２０４は専用のハードウェアにより実現されるものであってもよく、また、メモリおよびＣＰＵ（中央演算装置）により構成され、上述の各部の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
【０２０１】
また、上述のＣ機能プラットホーム１６（２５１）、または制御部２０４の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述の各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【０２０２】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【０２０３】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０２０４】
１０  電子機器、１４  通信回路（通信部）、１５  制御プログラム（制御部）、１７  コマンド処理部、１８  コマンド共有部（コマンド管理部）、１９  通信処理部、２１  処理時間算出部、１０１  電子カメラ、１０２  携帯電話、１０５  Ｗｅｂサーバ（サーバ）、２０４  制御部、２０９  通信部
【図１】
2013206220.tif 000003
【図２】
2013206220.tif 000004
【図３】
2013206220.tif 000005
【図４】
2013206220.tif 000006
【図５】
2013206220.tif 000007
【図６】
2013206220.tif 000008
【図７】
2013206220.tif 000009
【図８】
2013206220.tif 000010
【図９】
2013206220.tif 000011
【図１０】
2013206220.tif 000012
【図１１】
2013206220.tif 000013
【図１２】
2013206220.tif 000014
【図１３】
2013206220.tif 000015
【図１４】
2013206220.tif 000016
【図１５】
2013206220.tif 000017
【図１６】
2013206220.tif 000018
【図１７】
2013206220.tif 000019
【図１８】
2013206220.tif 000020
【図１９】
2013206220.tif 000021