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