JP2013206222A - 電子機器、およびプログラム - Google Patents
電子機器、およびプログラム Download PDFInfo
- Publication number
- JP2013206222A JP2013206222A JP2012075501A JP2012075501A JP2013206222A JP 2013206222 A JP2013206222 A JP 2013206222A JP 2012075501 A JP2012075501 A JP 2012075501A JP 2012075501 A JP2012075501 A JP 2012075501A JP 2013206222 A JP2013206222 A JP 2013206222A
- Authority
- JP
- Japan
- Prior art keywords
- command
- commands
- function
- processing
- executed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Studio Devices (AREA)
Abstract
【課題】特別な設定や専用の装置を用いることなく、他機器のコマンドを自機器のコマンドと同様に使用できる電子機器を提供する。
【解決手段】電子機器は、他機器と通信を行う通信部と、通信部を介して接続される他機器が備えている機能の処理を実行するコマンドを含む、複数のコマンドを管理するコマンド管理部と、複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、複数のコマンドのうち実行するコマンドを選択するコマンド選択部と、を備える。
【選択図】図14
【解決手段】電子機器は、他機器と通信を行う通信部と、通信部を介して接続される他機器が備えている機能の処理を実行するコマンドを含む、複数のコマンドを管理するコマンド管理部と、複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、複数のコマンドのうち実行するコマンドを選択するコマンド選択部と、を備える。
【選択図】図14
Description
本発明は、電子機器、およびプログラムに関する。
近年、電子機器の多くはCPUが搭載され、CPUで実行するプログラムによって様々な機能を実現している。ところが、様々な電子機器で同様の機能を実現するために機器毎に同じようなプログラムを搭載しなければならないという問題がある。このため、コントローラで一元的に処理を実行する技術などが考えられている(例えば特許文献1参照)。
従来、他機器と同じ機能を利用する場合、自機器に他機器と同じアプリケーションソフトなどをインストールしたり、コントローラで一元的に処理を実行する必要があった。
本発明は、このような事情に鑑みてなされたもので、その目的は、特別な設定や専用の装置を用いることなく、他機器のコマンドを自機器のコマンドと同様に使用できる電子機器、およびプログラムを提供することにある。
この発明は上述した課題を解決するためになされたもので、本発明は、他機器と通信を行う通信部と、前記通信部を介して接続される他機器が備えている機能の処理を実行するコマンドを含む、複数のコマンドを管理するコマンド管理部と、前記複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、前記複数のコマンドのうち実行するコマンドを選択するコマンド選択部と、を備えることを特徴とする電子機器である。
また、本発明は、コンピュータに、通信部を介して他機器と通信を行う通信ステップと、前記通信部を介して接続される他機器が備えている機能の処理を実行するコマンドを含む、複数のコマンドを管理するコマンド管理ステップと、前記複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、前記複数のコマンドのうち実行するコマンドを選択するコマンド選択ステップと、を実行させるためのプログラムである。
この発明によれば、特別な設定や専用の装置を用いることなく、他機器のコマンドを自機器のコマンドと同様に使用できる。
以下、図面を参照して、本発明の実施の形態について説明する。なお、本実施形態では、複数の様々な機能を有する電子機器(電子カメラ、携帯電話、プリンタなど)の間で互いの機能を利用するコマンド共有機能(以降、C機能と称する)が用いられる。
[電子機器10の構成例]
図1は、本発明の一実施形態に係る電子機器10の構成例を示す図である。図1において、電子機器10は、ハードウェア11と、ソフトウェア12とで構成される。
図1は、本発明の一実施形態に係る電子機器10の構成例を示す図である。図1において、電子機器10は、ハードウェア11と、ソフトウェア12とで構成される。
ハードウェア11は、電子機器10本来の機能に対応するための電子機器用回路13と、C機能に対応するための通信回路14(通信部)とを有する。例えば、電子カメラの場合は、撮像回路、表示回路、記録回路などが電子機器用回路13に対応する。なお、携帯電話などの場合は、携帯電話の通信網の基地局との間で通信するための電話機本来の通信回路とは別に、電子機器間で通信可能なBluetooth(登録商標)、Wi−Fi(Wireless Fidelity、登録商標)などの規格に対応する通信回路やその通信回路を使用して通信可能な範囲にある同じ機能に対応する電子機器を探索するソフトウェアを備えたものがあるので、このような携帯電話の場合は通信回路14を新たに設ける必要がなく、電子機器用回路13に含まれている。ここで、通信回路14が行う通信は、無線通信であってもよいし、有線通信であってもよい。
ソフトウェア12は、ハードウェア11の各部を制御して電子機器10の動作を実現するOS(オペレーションシステム)を基本とし、OS上で実行される制御プログラム15(制御部)およびC機能プラットホーム16を有する。
制御プログラム15は、電子機器10の操作に対応する本来の機能を実現するためのプログラムだけでなく、本実施形態の特徴であるC機能により他機器に搭載された機能を利用するプログラムを有する。例えば、制御プログラム15は、後述のコマンド共有部18において管理されている複数のコマンドのうち選択されたコマンドを、設定されたコマンドの実行順序で実行させる処理を制御するプログラムを有する。なお、自機器の機能および他機器の機能或いは両方を組み合わせた機能のいずれの場合のプログラムであっても、C機能プラットホーム16(コマンド処理部30)に対してコマンド(或いはコマンド実行するタイミングを与えるイベント)を発行して実行結果を得る動作は同じであり、制御プログラム15側で自機器の機能であるか他機器の機能であるかを意識する必要はない。
C機能プラットホーム16は、コマンド共有部18(コマンド管理部)と、通信処理部19、コマンド処理部30と、とを有する。
コマンド共有部18は、自機器または他機器で実行可能なコマンドをコマンドリスト20として管理する。例えば、コマンド共有部18は、他機器が備えている機能の処理を実行するコマンドである外部コマンドを含む複数のコマンドを管理する。なお、コマンドリスト20に登録されるコマンドには、コマンド種別やコマンド機能名、パラメータなどコマンドに関係する様々な情報が含まれている。但し、コマンドリスト20はコマンドのリストであって、コマンドを実行するプログラム自体はそれぞれの電子機器にある。また、コマンドリスト20には、予め自機器で実行可能な内部コマンドのリストが登録されているが、通信処理部19が通信回路14で接続される他機器から取得する外部コマンドが適宜追加される。ここで、コマンドリスト20に登録されている外部コマンドの実行先である他機器との通信が通信回路14上で切断されたことを通信処理部19で検出した場合は、コマンドリスト20に登録されている当該機器のコマンドを削除する。なお、コマンド共有部18が管理しているコマンドリスト20は、内部コマンドと外部コマンドとが含まれている状態以外に、内部コマンドのみが含まれている状態、または外部コマンドのみが含まれている状態であってもよい。また、コマンド共有部18が管理しているコマンドリスト20は、少なくとも1つのコマンドが含まれている状態であってもよい。
通信処理部19は、通信回路14を介して予め決められた所定のプロトコルによる通信を確立し、機器情報、コマンドリスト、イベントなどの送受信、或いはコマンドの送信や実行結果の受信などを行う。
コマンド処理部30は、コマンド共有部18が管理するコマンドを実行するとともに、実行することにより得られた実行結果を取得する。具体的には、コマンド処理部30は、コマンド共有部18のコマンドリスト20を参照して、制御プログラム15から送られるコマンドが内部コマンド(自機器で実行するコマンド)であるか外部コマンド(他機器で実行するコマンド)であるかを判別する。そして、コマンド処理部30は、制御プログラム15から送られるコマンドが内部コマンドである場合には、自機器において内部コマンドに対応する機能の処理を実行して、その実行結果を制御プログラム15側に返す処理を行う。
また、コマンド処理部30は、制御プログラム15から送られるコマンドが外部コマンドである場合には、外部コマンドを通信処理部19からハードウェア11の通信回路14を介して接続される他機器に送信する。そして、コマンド処理部30は、通信回路14および通信処理部19を介して、他機器において外部コマンドを実行することにより得られた実行結果を受信し、これを制御プログラム15側に返す処理を行う。
例えば、コマンド処理部30は、制御プログラム15が制御するコマンドの実行順序に従って、外部コマンドを通信回路14(および通信処理部19)を介して他機器に送信するとともに、他機器が外部コマンドを実行することにより得られた実行結果である実行結果を取得する。なお、コマンド処理部30は、他機器から外部コマンド(すなわち自機器で実行するコマンド)を受信した場合、受信した外部コマンドを自機器において実行するとともに、実行することにより得られた実行結果を、他機器に対して送信する。
また、コマンド処理部30は、情報取得部31と、コマンド選択部32(選択部)と、条件設定部33と、を備えている。
情報取得部31は、自機器または他機器の性能を示す情報を取得する。なお、情報取得部31は、他機器の性能を示す情報を、通信回路14を介して接続される他機器と通信することにより取得する。例えば、情報取得部31は、性能を示す情報を要求するコマンドを他機器に対して送信するとともに、他機器が応答する性能を示す情報を受信することにより、他機器の性能を示す情報を取得する。
情報取得部31は、自機器または他機器の性能を示す情報を取得する。なお、情報取得部31は、他機器の性能を示す情報を、通信回路14を介して接続される他機器と通信することにより取得する。例えば、情報取得部31は、性能を示す情報を要求するコマンドを他機器に対して送信するとともに、他機器が応答する性能を示す情報を受信することにより、他機器の性能を示す情報を取得する。
ここで、性能を示す情報とは、例えば、時間の経過にともなって変化する性能を示す情報(リソース状態(例えばCPU使用率、実行タスク数、バッテリ残容量等)を示す情報)である。また、性能を示す情報とは、例えば、各機器が備えている機能に応じて予め設定されている性能を示す情報(機能毎に予め設定されている処理速度、処理の正確さや精密さ、等の性能を示す情報)である。なお、性能を示す情報は、要求性能を満たすか否かを示す情報であってもよい。例えば、性能を示す情報は、自機器または他機器が実行する処理が要求性能を満たすか否か(処理時間500msec以内の性能を満たすか否か、バッテリ持続時間60分以上の性能を満たすか否か、等)を示す情報であってもよい。
コマンド選択部32は、コマンド共有部18が管理している複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、この複数のコマンドのうち実行するコマンドを選択する。例えば、コマンド選択部32は、制御プログラム15の制御により実行されるコマンドの機能と同じような機能を実行させる複数のコマンドがコマンド共有部18に管理されている場合、複数のコマンドそれぞれの処理が実行される機器の性能を示す情報に基づいて、この同じ機能を実行させる複数のコマンドから、実行するコマンドを選択する。
条件設定部33は、自機器または他機器における複数の性能を示す情報の優先条件を設定する。例えば、条件設定部33は、複数の機器の性能を示す情報(処理速度、処理の正確さや精密さ、等)の優先条件として、「処理速度を優先」または「処理の正確さや精密さを優先」等の優先条件を設定する。ここで、条件設定部33は、ユーザによって入力された条件、予め設定されている条件、または処理条件(例えば、電子機器10が電子カメラの場合の撮影被写体条件等)に基づいて、上述の優先条件を設定する。そして、コマンド選択部32は、例えば、条件設定部33により設定された優先条件と、各機器の性能を示す情報とに基づいて、上述の同じ機能を実行させる複数のコマンドから、実行するコマンドを選択する。なお、このような、コマンドの選択処理について詳しくは後述する。
このように、本実施形態に係る電子機器10は構成され、複数の電子機器10がコマンドを共有して互いの機能を利用できるようになっている。
[電子機器連携システム100の動作例]
次に、電子機器10として、C機能に対応するハードウェア11およびソフトウェア12を備えた電子カメラ101および携帯電話102を用いる場合の電子機器連携システム100の基本動作について説明する。
次に、電子機器10として、C機能に対応するハードウェア11およびソフトウェア12を備えた電子カメラ101および携帯電話102を用いる場合の電子機器連携システム100の基本動作について説明する。
図2は、電子機器連携システム100の動作の一例を示す図である。
図2において、電子カメラ101は撮影コマンド151を有し、携帯電話102は電子メールコマンド161と、GPS(Global Positioning system)コマンド162とを有する。撮影コマンド151は、電子カメラ101の撮影を行うコマンドである。電子メールコマンド161は、電子メールを送受信するコマンドである。GPSコマンド162は、緯度、経度などの位置情報を取得するコマンドである。
図2において、電子カメラ101は撮影コマンド151を有し、携帯電話102は電子メールコマンド161と、GPS(Global Positioning system)コマンド162とを有する。撮影コマンド151は、電子カメラ101の撮影を行うコマンドである。電子メールコマンド161は、電子メールを送受信するコマンドである。GPSコマンド162は、緯度、経度などの位置情報を取得するコマンドである。
そして、電子カメラ101と携帯電話102のそれぞれのコマンド共有部18は、通信処理部19による通信確立(S101)の後、互いの機器情報とコマンドリスト20(図2では、コマンドリスト131a、コマンドリスト132aに対応)を送受信する。例えば電子カメラ101は、機器情報として自機器がカメラであること、実行可能なコマンドリスト131aとして撮影コマンド151を有すること、などを携帯電話102に送信する(S102)。逆に、携帯電話102は、機器情報として自機器が携帯電話であること、実行可能なコマンドリスト132aとして電子メールコマンド161と、GPSコマンド162とを有すること、などを電子カメラ101に送信する(S103)。
これにより、電子カメラ101は、自機器の撮影コマンド151と、携帯電話102の電子メールコマンド161と、GPSコマンド162とを含むコマンドリスト131bを持つことができる。同様に、携帯電話102は、自機器の電子メールコマンド161およびGPSコマンド162と、電子カメラ101の撮影コマンド151とを含むコマンドリスト131bを持つことができる。なお、送受信するのはコマンドリストであって、コマンドを実行するプログラム自体はそれぞれの電子機器にある。
電子カメラ101と携帯電話102のそれぞれのコマンド処理部30は、コマンド共有部18が保持するコマンドリスト20の中のコマンドを実行する。例えば電子カメラ101はコマンドリスト131aの撮影コマンド151を実行することができ、携帯電話102はコマンドリスト132aの電子メールコマンド161やGPSコマンド162を実行することができる。ここで、コマンドリスト131aおよびコマンドリスト132aは、電子カメラ101および携帯電話102のそれぞれが本来備えているコマンド(内部コマンド)である。さらに、本実施形態に係る電子機器連携システム100では、通信確立後に送受信した他機器のコマンド(外部コマンド)を使用することができる。
例えば図2では、電子カメラ101が位置情報を取得したい場合、GPSコマンド162を携帯電話102に送信し(S104)、携帯電話102でGPSコマンド162を実行して取得した位置情報(緯度経度など)を実行結果とするコマンド応答を電子カメラ101に送信する(S105)。
このようにして、電子カメラ101は、GPS機能を搭載していなくてもGPSによる位置情報を取得することができ、例えば撮影画像のヘッダ情報に位置情報を付加して保存するような新たな機能を容易に実現することができる。
図3は、本実施形態に係る電子機器連携システム100において、電子機器の電源を投入してからコマンドリストを取得するまでの処理(初期動作)を示すフローチャートである。
(ステップS151)電子機器10の電源が投入されると、C機能プラットホーム16の通信処理部19は通信回路14を起動する。
(ステップS152)通信回路14によって通信可能な範囲にある他の電子機器を探索する。なお、このような機能は、例えばBluetooth(登録商標)などの規格で決められており、通信可能な範囲にある電子機器を見つけることができる。
(ステップS153)通信処理部19は、検出した電子機器がC機能に対応する機器であるか否かの判別を行い、C機能に対応しない場合はステップS152に戻って電子機器の探索を継続する。そして、C機能に対応する場合はステップS154に進む。なお、C機能に対応しているか否かの判別は、例えば通信確立時に送受信する制御データにC機能対応有を示す独自の情報を付加することにより実現できる。
(ステップS154)機器探索で見つかったC機能に対応する他機器に自機器の機器情報を送信する。
(ステップS155)機器探索で見つかったC機能に対応する他機器から機器情報を受信する。
(ステップS156)自機器が保持するコマンドリストを他機器に送信する。
(ステップS157)他機器が保持するコマンドリストを他機器から受信する。
(ステップS158)他機器から受信したコマンドリストに登録されているコマンドを自機器が保持するコマンドリストに追加する。
このようにして、本実施形態に係る電子機器連携システム100では、他機器との間で実行可能なコマンドリストを送受信することによって、他機器のコマンドを自機器のコマンドと同じように実行することができる。しかも、コマンドの実行自体は当該コマンドを有する機器上で行うので、従来のようにコマンドを実行するためのソフトウェアやドライバプログラムをインストールする必要がなく、OSの種類にも依存しない。
図4は、本実施形態に係る電子機器連携システム100に対応する電子カメラ101においてコマンドを実行する処理を示す図である。図4(a)は、電子カメラ101で撮影した画像に対して画像処理Aを施してメモリカードなどに保存する処理例を示している。ここで、画像処理コマンドAは電子カメラ101では実行できない外部コマンドなので、画像処理プログラムAを有する画像処理サーバ104に画像処理コマンドAと画像データを送信して画像処理サーバ104で画像処理Aを施し、処理後の画像データを電子カメラ101に返信する。そして、電子カメラ101は、画像処理サーバ104から受信した画像処理Aが施された画像データを撮影画像としてメモリカードなどに保存する。
さらに、図4(b)は、電子カメラ101で撮影した画像に対して画像処理Bを施してメモリカードなどに保存する処理の流れを示している。ここで、画像処理コマンドBは電子カメラ101で実行可能な内部コマンドなので、自機器内の制御プログラムに画像処理コマンドBと画像データを送って画像処理Bを施し、処理後の画像データを受け取ってメモリカードなどに保存する。
このように、本実施形態に係る電子機器連携システム100における電子カメラ101は、外部コマンドおよび内部コマンドの区別なく、同じようにコマンドを発行して処理を行うことができる。
[機器情報]
次に、機器情報について説明する。図2で説明したように、本実施形態に係る電子機器連携システム100に対応する電子機器10は、通信確立時に機器情報を送受信する。この機器情報には、例えば以下のような情報が含まれる。
・国ID:各国毎に決められた固有ID、或いは国名でもよい。例えばJAPANなど。・メーカID:メーカ毎に決められた固有ID、或いはメーカ名でもよい。例えばABCDE会社など。
・機器カテゴリID:機器種別毎に決められたカテゴリを示す固有ID、或いは機器名でもよい。例えば電子カメラ、携帯電話、プリンタなど。
・機器ID:機器毎に決められた固有IDで製造番号やシリアル番号など。
・所有者ID:機器の所有者毎に予め決められた固有ID、或いは所有者名や住所、電話番号などであってもよい。
次に、機器情報について説明する。図2で説明したように、本実施形態に係る電子機器連携システム100に対応する電子機器10は、通信確立時に機器情報を送受信する。この機器情報には、例えば以下のような情報が含まれる。
・国ID:各国毎に決められた固有ID、或いは国名でもよい。例えばJAPANなど。・メーカID:メーカ毎に決められた固有ID、或いはメーカ名でもよい。例えばABCDE会社など。
・機器カテゴリID:機器種別毎に決められたカテゴリを示す固有ID、或いは機器名でもよい。例えば電子カメラ、携帯電話、プリンタなど。
・機器ID:機器毎に決められた固有IDで製造番号やシリアル番号など。
・所有者ID:機器の所有者毎に予め決められた固有ID、或いは所有者名や住所、電話番号などであってもよい。
このように、本実施形態に係る電子機器連携システム100では、通信確立時に上記のような機器情報を送受信する。これにより、例えば特定国の機器、同一メーカの機器、同じカテゴリの機器、同じ所有者の機器などの特定機器でしかコマンドを利用できないようにすることができる。
[コマンド]
次に、コマンドに含まれる情報について説明する。図2で説明したように、コマンドには自機器で実行する内部コマンドと、他機器で実行する外部コマンドとがあり、いずれのコマンドにも以下のような情報が含まれる。
・コマンド種別:単体で実行するコマンド、バッチ処理コマンドなど。
・実行可能な機器:例えば電子カメラ、携帯電話などの機器種別や個別の機器IDなど。
(なお、機器種別や機器IDは、通信確立時に送受信される機器情報に含まれる)
・コマンド機能名:例えば撮影機能、位置情報取得機能、プリンタ機能、画像処理機能、超解像度画像処理機能、顔検出機能など。
・コマンドID:コマンド毎に予め決められた固有ID、或いはコマンド名。例えば撮影コマンド、印刷コマンドなど。
・パラメータ:コマンドで参照するパラメータ。例えば撮影コマンドであればシャッタ速度や絞り値或いは撮影モードの選択値(夜景モードなど)。なお、選択可能な数値範囲や全ての選択値の情報も含まれる。
・コマンド実行結果:コマンドの実行によって得られる結果で、数値や画像データなどの実行結果である。例えばGPSコマンドであれば緯度経度などの数値、画像処理であれば処理後の画像データなど。
・アイコン:コマンドを画面に表示する場合に、コマンドを判別し易いようするための画像。例えば電子メールコマンドであれば封書画像のアイコンなど。
・チュートリアル:コマンドの使い方や機能説明。いわゆるHELP情報に相当する。
・コマンドで使用する別のコマンドの情報:バッチ処理などで別のコマンドの実行結果を利用するコマンドなど。例えば現在位置の住所を求める住所コマンドを設けた場合、住所コマンドの中でGPSコマンドを実行して、GPSコマンドで得られる緯度経度の数値から地図上の位置を検索して住所を求める、など。
・コマンドの性能情報:処理速度、処理の正確さや精密さ、等の性能を示す情報。
・作者情報:コマンド作成者のIDや名称など。
次に、コマンドに含まれる情報について説明する。図2で説明したように、コマンドには自機器で実行する内部コマンドと、他機器で実行する外部コマンドとがあり、いずれのコマンドにも以下のような情報が含まれる。
・コマンド種別:単体で実行するコマンド、バッチ処理コマンドなど。
・実行可能な機器:例えば電子カメラ、携帯電話などの機器種別や個別の機器IDなど。
(なお、機器種別や機器IDは、通信確立時に送受信される機器情報に含まれる)
・コマンド機能名:例えば撮影機能、位置情報取得機能、プリンタ機能、画像処理機能、超解像度画像処理機能、顔検出機能など。
・コマンドID:コマンド毎に予め決められた固有ID、或いはコマンド名。例えば撮影コマンド、印刷コマンドなど。
・パラメータ:コマンドで参照するパラメータ。例えば撮影コマンドであればシャッタ速度や絞り値或いは撮影モードの選択値(夜景モードなど)。なお、選択可能な数値範囲や全ての選択値の情報も含まれる。
・コマンド実行結果:コマンドの実行によって得られる結果で、数値や画像データなどの実行結果である。例えばGPSコマンドであれば緯度経度などの数値、画像処理であれば処理後の画像データなど。
・アイコン:コマンドを画面に表示する場合に、コマンドを判別し易いようするための画像。例えば電子メールコマンドであれば封書画像のアイコンなど。
・チュートリアル:コマンドの使い方や機能説明。いわゆるHELP情報に相当する。
・コマンドで使用する別のコマンドの情報:バッチ処理などで別のコマンドの実行結果を利用するコマンドなど。例えば現在位置の住所を求める住所コマンドを設けた場合、住所コマンドの中でGPSコマンドを実行して、GPSコマンドで得られる緯度経度の数値から地図上の位置を検索して住所を求める、など。
・コマンドの性能情報:処理速度、処理の正確さや精密さ、等の性能を示す情報。
・作者情報:コマンド作成者のIDや名称など。
このように、本実施形態に係る電子機器連携システム100では、通信確立時に上記のような情報を含むコマンドリストを送受信する。これにより、例えばコマンドのパラメータや使い方がわかるので、初めてのコマンドであっても動作設定を簡単に行うことができ、所望の実行結果を得ることができる。
ここで、様々な電子機器におけるコマンド例を以下に示す。
・電子機器が携帯電話の場合
「GPSコマンド」:GPSの測位データに基づく緯度経度などの位置情報の提供。
「簡易位置情報取得コマンド」:携帯電話通信網の最寄りの基地局の場所に基づく位置情報の提供。
「メール送信コマンド」:電子メールの送信。
「超解像画像処理コマンド」:高解像度化を行う画像処理。
「音声録音コマンド」:マイクロホンで音声を録音。
・電子機器が電子カメラの場合
「静止画AUTO撮影コマンド」:自動露出、自動焦点で静止画撮影。
「高速シャッタ撮影コマンド」:高速シャッタで画像を撮影。
「ボケ優先撮影コマンド」:ボケのある被写界深度の浅い画像を撮影。
「動画撮影コマンド」:動画を撮影。
「画像処理コマンド」:画質調整(ホワイトバランス調整、コントラスト調整、等)を行う画像処理。
「顔検出処理コマンド」:画像から顔を検出する処理。
「付加情報登録コマンド」:画像データにファイル名やヘッダ情報等の付加情報を登録。或いは、画像データに対応付けられた別のデータファイルに付加情報を登録。
「保存コマンド」:記憶媒体(メモリカード)への保存。
・電子機器が画像処理サーバの場合
「画像処理コマンド」:画質調整(ホワイトバランス調整、コントラスト調整、等)を行う画像処理(例えば電子カメラが備えている画像処理機能に対して高機能な処理)。
「顔認識処理コマンド」:画像から顔を検出する処理とともに、特定の個人の顔を認識して検出する処理。
・電子機器がプリンタの場合
「写真印刷L版」:L判で印刷。
「写真印刷A4」:A4で印刷。
・電子機器がFAXの場合
「画像送信」:画像データを送信。
「データ受信」:画像データを受信。
・電子機器がテレビの場合
「画像表示」:画像データを画面に表示。
「チャネル選択」:放送受信するチャネル選択。
・電子機器がビデオの場合
「静止画録画」:静止画像を記録。
「動画録画」:動画像を記録。
このように、本実施形態に係る電子機器連携システム100では、他機器のコマンドを自機器のコマンドと同じように実行することができ、自機器にはない他機器の機能を利用できる。
・電子機器が携帯電話の場合
「GPSコマンド」:GPSの測位データに基づく緯度経度などの位置情報の提供。
「簡易位置情報取得コマンド」:携帯電話通信網の最寄りの基地局の場所に基づく位置情報の提供。
「メール送信コマンド」:電子メールの送信。
「超解像画像処理コマンド」:高解像度化を行う画像処理。
「音声録音コマンド」:マイクロホンで音声を録音。
・電子機器が電子カメラの場合
「静止画AUTO撮影コマンド」:自動露出、自動焦点で静止画撮影。
「高速シャッタ撮影コマンド」:高速シャッタで画像を撮影。
「ボケ優先撮影コマンド」:ボケのある被写界深度の浅い画像を撮影。
「動画撮影コマンド」:動画を撮影。
「画像処理コマンド」:画質調整(ホワイトバランス調整、コントラスト調整、等)を行う画像処理。
「顔検出処理コマンド」:画像から顔を検出する処理。
「付加情報登録コマンド」:画像データにファイル名やヘッダ情報等の付加情報を登録。或いは、画像データに対応付けられた別のデータファイルに付加情報を登録。
「保存コマンド」:記憶媒体(メモリカード)への保存。
・電子機器が画像処理サーバの場合
「画像処理コマンド」:画質調整(ホワイトバランス調整、コントラスト調整、等)を行う画像処理(例えば電子カメラが備えている画像処理機能に対して高機能な処理)。
「顔認識処理コマンド」:画像から顔を検出する処理とともに、特定の個人の顔を認識して検出する処理。
・電子機器がプリンタの場合
「写真印刷L版」:L判で印刷。
「写真印刷A4」:A4で印刷。
・電子機器がFAXの場合
「画像送信」:画像データを送信。
「データ受信」:画像データを受信。
・電子機器がテレビの場合
「画像表示」:画像データを画面に表示。
「チャネル選択」:放送受信するチャネル選択。
・電子機器がビデオの場合
「静止画録画」:静止画像を記録。
「動画録画」:動画像を記録。
このように、本実施形態に係る電子機器連携システム100では、他機器のコマンドを自機器のコマンドと同じように実行することができ、自機器にはない他機器の機能を利用できる。
[イベント]
次に、イベントに含まれる情報について説明する。図2では、発行したコマンドを自機器または他機器で実行して実行結果を得る例を示したが、コマンドを実行するタイミングを与えることもできる。例えば図2において、携帯電話102側から電子カメラ101の撮影コマンド151を利用する場合、例えば電子カメラ101のシャッターボタンが押下された時に撮影を行うなど、撮影を行うタイミングを指示しなければならない。なお、携帯電話102側から撮影コマンド151を発行した時に直ぐに撮影を行うような使い方の場合は、シャッターボタンの押下時というイベントを指示する必要はない。
次に、イベントに含まれる情報について説明する。図2では、発行したコマンドを自機器または他機器で実行して実行結果を得る例を示したが、コマンドを実行するタイミングを与えることもできる。例えば図2において、携帯電話102側から電子カメラ101の撮影コマンド151を利用する場合、例えば電子カメラ101のシャッターボタンが押下された時に撮影を行うなど、撮影を行うタイミングを指示しなければならない。なお、携帯電話102側から撮影コマンド151を発行した時に直ぐに撮影を行うような使い方の場合は、シャッターボタンの押下時というイベントを指示する必要はない。
以下にイベントに含まれる情報の一例を示す。
・イベント種別:オペレーション、処理割り込みなどの制御情報。例えばシャッターボタン押下はオペレーション、電子メール受信や予め設定した時刻などは処理割り込み。
・イベントが発生した機器ID:機器情報で説明した機器ID。例えば、機器ID:カメラなど。
・イベント名:イベントの名称。例えばタイマー割り込みやシャッターボタン押下、顔認識、或いは電源オフなど。
・イベントID:イベント名に対応するID。例えばシャッターボタン押下の場合はID=RB_DOWNなど。なお、実際にはこのイベントIDが送受信される。
・パラメータ:イベントで参照するパラメータ。例えばコマンドを実行する時刻など。なお、選択可能な数値範囲や全ての選択値の情報も含まれる。
・アイコン:コマンドリストを表示する場合のアイコン画像。
・チュートリアル:イベントの使い方や機能説明。いわゆるHELP情報に相当する。
・このイベントをトリガーとして実行するコマンド情報:例えばイベントがシャッターボタン押下であれば撮影コマンドなど。
・作者情報:イベント作成者のIDや名称など。
・イベント種別:オペレーション、処理割り込みなどの制御情報。例えばシャッターボタン押下はオペレーション、電子メール受信や予め設定した時刻などは処理割り込み。
・イベントが発生した機器ID:機器情報で説明した機器ID。例えば、機器ID:カメラなど。
・イベント名:イベントの名称。例えばタイマー割り込みやシャッターボタン押下、顔認識、或いは電源オフなど。
・イベントID:イベント名に対応するID。例えばシャッターボタン押下の場合はID=RB_DOWNなど。なお、実際にはこのイベントIDが送受信される。
・パラメータ:イベントで参照するパラメータ。例えばコマンドを実行する時刻など。なお、選択可能な数値範囲や全ての選択値の情報も含まれる。
・アイコン:コマンドリストを表示する場合のアイコン画像。
・チュートリアル:イベントの使い方や機能説明。いわゆるHELP情報に相当する。
・このイベントをトリガーとして実行するコマンド情報:例えばイベントがシャッターボタン押下であれば撮影コマンドなど。
・作者情報:イベント作成者のIDや名称など。
このように、本実施形態に係る電子機器連携システム100では、通信確立時に先に説明したコマンドリストに含めて上記のようなイベントも送受信される。これにより、例えばコマンドを実行するためのイベントを知ることができ、イベントのパラメータや使い方なども確認できる。
ここで、様々な電子機器におけるイベント例を以下に示す。
・電子機器が携帯電話の場合
「電話着信」「メール受信」「キーボード操作」「十字キー操作」など。
・電子機器が電子カメラの場合
「シャッターボタン押下」「ダイヤル操作」「静止画撮影」「SDカード挿入」など。
・電子機器がプリンタの場合
「パネル操作」「SDカード挿入」「インク切れ」など。
・電子機器がテレビの場合
「チャンネル操作」「リモコン操作」など。
・電子機器がビデオの場合
「再生ボタン押下」「早送りボタン押下」など。
・電子機器が携帯電話の場合
「電話着信」「メール受信」「キーボード操作」「十字キー操作」など。
・電子機器が電子カメラの場合
「シャッターボタン押下」「ダイヤル操作」「静止画撮影」「SDカード挿入」など。
・電子機器がプリンタの場合
「パネル操作」「SDカード挿入」「インク切れ」など。
・電子機器がテレビの場合
「チャンネル操作」「リモコン操作」など。
・電子機器がビデオの場合
「再生ボタン押下」「早送りボタン押下」など。
このように、本実施形態に係る電子機器連携システム100では、他機器のコマンドや自機器のコマンドを実行するためのイベントも機器間で共有する。
[電子カメラ101の構成例]
図5は、本実施形態に係る電子機器10が電子カメラ101である場合の構成例を示す図である。
図5は、本実施形態に係る電子機器10が電子カメラ101である場合の構成例を示す図である。
電子カメラ101は、光学系201と、撮像部202と、バッファ203と、制御部204と、操作部205と、表示部206と、メモリカードIF(インターフェース)207、メモリ208と、通信部209とを備えている。
図5において、光学系201は、被写体像を撮像部202の受光面に結像する。ここで、光学系201は、ズームレンズやフォーカスレンズなどの複数枚のレンズおよびレンズ駆動部や絞り機構などを有し、制御部204によって、ズームレンズ位置、フォーカスレンズ位置、絞り値などが制御される。
撮像部202は、例えばCMOS型固体撮像素子およびA/D変換器などを有し、固体撮像素子の受光面に結像された被写体像を受光量に応じて電気信号に変換し、さらにA/D変換後の画像データをバッファ203に出力する。
バッファ203は、例えば揮発性の高速メモリで構成される。バッファ203は、撮像部202が出力する画像データを一時的に記憶するだけでなく、制御部204が画像処理を行う時のバッファメモリとしても使用される。或いは、表示部206に画像を表示する時の表示メモリとしても使用される。
制御部204は、例えば内部に記憶されたプログラム(例えば図1の制御プログラム15)の制御に従って動作するCPUで構成される。制御部204は電子カメラ101全体の動作を制御し、例えば操作部205のモード選択ダイヤル263で電子カメラ101の撮影モードを選択したり、シャッターボタン262の押下時に光学系201のフォーカスレンズ制御や絞り制御を行って撮像部202のメカニカルシャッタまたは電子シャッタを制御して、被写体画像を撮影する。そして、制御部204は、撮像部202から画像データを読み出し、バッファ203に取り込む制御を行う。さらに、制御部204は、バッファ203に取り込まれた画像データに対して所定の画像処理(ホワイトバランス処理,色補間処理,ガンマ補正処理,彩度強調処理,輪郭強調処理、或いはJPEG規格などに準拠した画像圧縮処理)を施し、画像処理後の画像データ(例えばJPEGデータ)に所定のファイル名やヘッダ情報を付加情報として登録(付加)してメモリカード207aに保存する。或いは、バッファ203に取り込まれた画像データを表示部206に撮影画像として表示する。
なお、この制御部204は、例えば図1に示すC機能プラットホーム16および制御プログラム15を含んで構成されている。この後の電子カメラ101の構成を用いた処理に関する説明において、図1に示すC機能プラットホーム16が備える各部および制御プログラム15と、図5に示す制御部204とのそれぞれの名称を適宜使用する。
なお、この制御部204は、例えば図1に示すC機能プラットホーム16および制御プログラム15を含んで構成されている。この後の電子カメラ101の構成を用いた処理に関する説明において、図1に示すC機能プラットホーム16が備える各部および制御プログラム15と、図5に示す制御部204とのそれぞれの名称を適宜使用する。
操作部205は、電源ボタン261、シャッターボタン262、モード選択ダイヤル263、メニューボタン264、十字キー265などで構成される。ユーザは、これらの操作ボタンを操作して電子カメラ101を使用する。なお、操作部205による操作情報は制御部204に出力され、制御部204は操作部205から入力する操作情報に応じて電子カメラ101の動作を制御する。例えばメニューボタン264を押下すると、制御部204は電子カメラ101の機能を選択するメニュー画面を表示部206に表示する。そして、十字キー265を操作してメニュー画面の操作を行う。特に、本実施形態に係る電子カメラ101では、メニューボタン264を押下すると図6に示すようなコマンドリストが表示され、十字キー265で選択することにより他機器の機能を利用することができる。或いは、これらのコマンドを組み合わせることによって新たなアプリケーション機能を実現できる。
図7は、電子機器連携システム100のコマンド実行例を示す図である。
例えば、図7に示すように、機器2のコマンドリストには、自機器のコマンド(内部コマンド)として、機能1から機能3のコマンドが登録されており、他機器(機器2)のコマンド(外部コマンド)として、機能4および機能5のコマンドが登録されている。これにより、機器2は、機能1から機能5の5つのコマンドを使用することができる。そして、機器2は、これらのコマンドを組み合わせたアプリケーションプログラムを実行することができる。図7の例では、機器2は、コマンドの実行順序160として、機器2の機能1のコマンド、機器1の機能4のコマンド、機器1の機能5のコマンド、機器2の機能2のコマンド、機器2の機能3のコマンドの順に実行する。なお、これらのコマンドを組み合わせたアプリケーションプログラムは、内部コマンドと外部コマンドとを組み合わせたものに限られるものではなく、例えば、内部コマンドのみ、または外部コマンドのみを組み合わせたアプリケーションプログラムとしてもよい。
例えば、図7に示すように、機器2のコマンドリストには、自機器のコマンド(内部コマンド)として、機能1から機能3のコマンドが登録されており、他機器(機器2)のコマンド(外部コマンド)として、機能4および機能5のコマンドが登録されている。これにより、機器2は、機能1から機能5の5つのコマンドを使用することができる。そして、機器2は、これらのコマンドを組み合わせたアプリケーションプログラムを実行することができる。図7の例では、機器2は、コマンドの実行順序160として、機器2の機能1のコマンド、機器1の機能4のコマンド、機器1の機能5のコマンド、機器2の機能2のコマンド、機器2の機能3のコマンドの順に実行する。なお、これらのコマンドを組み合わせたアプリケーションプログラムは、内部コマンドと外部コマンドとを組み合わせたものに限られるものではなく、例えば、内部コマンドのみ、または外部コマンドのみを組み合わせたアプリケーションプログラムとしてもよい。
表示部206は、液晶モニタなどで構成される。そして、制御部204によって、撮影画像や設定メニューなどが表示される。
メモリカードIF207は、電子カメラ101にメモリカード207aを接続するためのインターフェースである。制御部204はメモリカードIF207を介してメモリカード207aに画像データを読み書きする。
メモリ208は、例えばフラッシュメモリなどの不揮発性の半導体メモリで構成される。メモリ208には、電子カメラ101に設定された撮影モードや露出情報、フォーカス情報などのパラメータが記憶される。特に本実施形態では、自機器や他機器のコマンドリスト、機器情報、イベントなどが記憶される。
通信部209は、図1の通信回路14に対応し、電子機器間で通信可能なBluetooth(登録商標)、Wi−Fi(登録商標)などの規格に対応する。
以上が電子カメラ101の構成および基本動作である。
[電子機器連携システム100の動作例]
次に、電子カメラ101を用いた電子機器連携システム100の動作例について説明する。なお、動作の基本的な流れは以下の通りである。
(1)機器間で通信を確立する。
(2)自機器の情報を相手に送信する。
(3)現在の自機器にて実行可能なコマンドリストなどを相手機器に送信する。
(4)相手機器からも機器情報とコマンドリストを受け取る。
(5)相手機器からコマンドを受信した場合はそのコマンドを実行し、実行結果を返信する。
(6)必要であれば自機器から相手機器にコマンドを送信し、実行結果を受け取る。
次に、電子カメラ101を用いた電子機器連携システム100の動作例について説明する。なお、動作の基本的な流れは以下の通りである。
(1)機器間で通信を確立する。
(2)自機器の情報を相手に送信する。
(3)現在の自機器にて実行可能なコマンドリストなどを相手機器に送信する。
(4)相手機器からも機器情報とコマンドリストを受け取る。
(5)相手機器からコマンドを受信した場合はそのコマンドを実行し、実行結果を返信する。
(6)必要であれば自機器から相手機器にコマンドを送信し、実行結果を受け取る。
図8は、C機能に対応する電子機器10として、電子カメラ101、および携帯電話102を利用して撮影処理を行う場合の電子機器連携システム100の動作の一例である。なお、図2と同符号のブロックおよび処理は同じものを示す。
図8において、電子カメラ101と、携帯電話102との間で通信確立(S101)後、図2を用いて説明したように、互いの機器情報や実行可能なコマンドを送受信(S102、S103)する。この図8に示すコマンドリストは図2のコマンドリスト131aおよびコマンドリスト132aに代えて、コマンドリスト131cおよびコマンドリスト132cである。
電子カメラ101は、撮影コマンド151と、画像処理コマンド152と、付加情報登録コマンド153と、保存コマンド154とを有する。また、携帯電話102は電子メールコマンド161と、GPSコマンド162と、簡易位置情報取得コマンド163とを有する。電子カメラ101と携帯電話102のそれぞれのコマンド共有部18は、互いの機器情報とコマンドを送受信する。
これにより、電子カメラ101が有するコマンドリスト131cには、電子カメラ101が有するコマンドに加えて、電子メールコマンド161と、GPSコマンド162と、簡易位置情報取得コマンド163とが追加される。一方、携帯電話102が有するコマンドリスト132cには、携帯電話102が有するコマンドに加えて、撮影コマンド151と、画像処理コマンド152と、付加情報登録コマンド153と、保存コマンド154とが追加される。
すなわち、電子カメラ101のコマンドリスト131cおよび携帯電話102のコマンドリスト132cのそれぞれには、撮影コマンド151と、画像処理コマンド152と、付加情報登録コマンド153と、保存コマンド154と、電子メールコマンド161と、GPSコマンド162と、簡易位置情報取得コマンド163とが保持されている。
[コマンドの実行例]
次に、図8において、電子カメラ101がGPSコマンド162を実行する場合は、GPSコマンド162を携帯電話102に送信する(S107)。携帯電話102は、GPSコマンド162を実行して緯度、経度などの位置情報を取得し、取得した位置情報を示すコマンド応答を電子カメラ101に送信する(S108)。そして、電子カメラ101は、携帯電話102から応答コマンドを受信することにより、位置情報を取得する。
次に、図8において、電子カメラ101がGPSコマンド162を実行する場合は、GPSコマンド162を携帯電話102に送信する(S107)。携帯電話102は、GPSコマンド162を実行して緯度、経度などの位置情報を取得し、取得した位置情報を示すコマンド応答を電子カメラ101に送信する(S108)。そして、電子カメラ101は、携帯電話102から応答コマンドを受信することにより、位置情報を取得する。
このようにして、電子カメラ101は、携帯電話102から現在の位置情報を取得することができる。すなわち、例えばGPS機能をもたない電子カメラ101であっても、GPS機能が自機能にあるかのように、GPS機能を有する電子カメラと同様に位置情報を取得することができる。
[制御プログラムによる処理の実行手順の例]
次に、制御プログラム15による処理の実行手順の一例について説明する。ここでは、図8に示す、電子カメラ101と、携帯電話102との2つの電子機器を連携して動作させる電子機器連携システム100を例として、この電子機器連携システム100において実行する処理の実行手順の一例について説明する。この例は、「観光地において電子カメラ101で撮影した画像に位置情報を付加してメモリカード207aに保存する」という利用シーンを想定している。ここで、図8を用いて説明したように、電子カメラ101と、携帯電話102との2つの電子機器は機器情報やコマンドリストを互いに送受信して、同じコマンドリストを共有している状態にある。この場合の利用可能なコマンドは、例えば電子カメラ101の撮影コマンド151、画像処理コマンド152、付加情報登録コマンド153、および保存コマンド154と、携帯電話102の電子メールコマンド161、GPSコマンド162、簡易位置情報取得コマンド163とである。
次に、制御プログラム15による処理の実行手順の一例について説明する。ここでは、図8に示す、電子カメラ101と、携帯電話102との2つの電子機器を連携して動作させる電子機器連携システム100を例として、この電子機器連携システム100において実行する処理の実行手順の一例について説明する。この例は、「観光地において電子カメラ101で撮影した画像に位置情報を付加してメモリカード207aに保存する」という利用シーンを想定している。ここで、図8を用いて説明したように、電子カメラ101と、携帯電話102との2つの電子機器は機器情報やコマンドリストを互いに送受信して、同じコマンドリストを共有している状態にある。この場合の利用可能なコマンドは、例えば電子カメラ101の撮影コマンド151、画像処理コマンド152、付加情報登録コマンド153、および保存コマンド154と、携帯電話102の電子メールコマンド161、GPSコマンド162、簡易位置情報取得コマンド163とである。
図9は、制御プログラム15による処理(アプリケーションプログラムAとする)の実行手順の一例を示すフローチャートである。なお、アプリケーションプログラムAの処理は、例えばコマンドリスト131cのコマンドを組み合わせてユーザが自由に作成することができる。例えば図6で説明したような各コマンドに対応するアイコンを処理順に並べることにより、様々なアプリケーション機能を実現できる。本実施形態では既に図9に示す処理順序のアプリケーションプログラムが作成されているものとして説明する。
以下、図9に示す制御プログラム15に設定された実行手順の例を順に説明する。
以下、図9に示す制御プログラム15に設定された実行手順の例を順に説明する。
(ステップS301:GPSコマンド162発行)制御部204は、コマンドリスト131cの中からGPSコマンド162を、通信部209を介して携帯電話102に送信し、実行結果として位置情報を取得する。
(ステップS302:シャッターボタンイベント)制御部204は、シャッターボタン262が押下されたか否かを判別し、シャッターボタン262が押下されるまで待機する。そして、制御部204は、シャッターボタン262が押下されたことを検出した場合はステップS303に処理を進める。
(ステップS303:撮影コマンド発行)制御部204は、コマンドリスト131cの中から撮影コマンド151を発行し、実行結果として撮影画像を取得する。例えば、制御部204は、撮像部202に、光学系201を介して入射された被写体像による画像データを取得させ、バッファ203に出力させる。
(ステップS304:画像処理コマンド発行)制御部204は、コマンドリスト131cの中から画像処理コマンド152を発行し、取得した撮影画像に対して画像処理(例えば、ホワイトバランス調整、コントラスト調整、JPEG圧縮などの処理)を実行することにより画像データを生成する。
(ステップS305:付加情報登録コマンド発行)制御部204は、コマンドリスト131cの中から付加情報登録コマンド153を発行し、ステップS301において取得した位置情報(緯度経度情報、或いは地図データから住所情報に変換してもよい)を含む撮影時の設定情報や関連情報、またはファイル名を、ステップS304において生成した画像データに付加情報として登録する(付加する)。
(ステップS306;保存コマンド)制御部204は、保存コマンド154を発行して、ステップS305において付加情報を付加した画像データを、メモリカードIF207を介してメモリカード207aに保存する。
なお、発行される各コマンド(或いはイベント)は、自機器または他機器のC機能プラットホーム16(電子カメラ101の場合はC機能プラットホーム251)のコマンド処理部30に送られる。ここで、OSは図6の制御部204に対応する。そして、コマンド処理部30は、コマンド(内部コマンドまたは外部コマンド)を実行する機器にコマンドを発行し、実行結果を取得する。
なお、制御プログラム15による処理は、図9に示すアプリケーションプログラムAによる処理のような外部コマンドと内部コマンドとを組み合わせた処理に限られるものではなく、処理の内容に応じて、外部コマンドのみを組み合わせた処理としてもよいし、内部コマンドのみを組み合わせた処理としてもよい。
図10は、コマンド実行処理の動作の一例を示すフローチャートである。この図10を参照して、電子カメラ101と携帯電話102との2つの電子機器を連携して動作させる電子機器連携システム100において、図9に示す制御プログラム15による処理(アプリケーションプログラムA)の実行手順に従ってコマンドを実行した場合のコマンドの実行処理の一例について説明する。
まず、制御部204は、アプリケーションプログラムAの実行手順に従ってGPSコマンド162を実行する。具体的には、コマンド処理部30は、コマンド共有部18のコマンドリスト20を参照して、制御プログラム15から受け取ったGPSコマンド162が携帯電話102(他機器)において実行する外部コマンドであることを判別して、GPSコマンド162を通信処理部19から通信回路14を介して接続される携帯電話102に送信する(ステップS21)。
制御部204は、GPSコマンド162を実行したことに応じて、実行結果である位置情報を取得する。例えば、コマンド処理部30は、GPSコマンド162を携帯電話102に送信したことに応じて、携帯電話102においてGPSコマンド162が実行されて取得された位置情報を、携帯電話102からのコマンド応答により受信する。そして、コマンド処理部30は、受信した位置情報を制御プログラム15側に返す(ステップS22)。
次に、制御部204は、ステップS22においてGPSコマンド162の実行結果を取得したか否か(GPSコマンド162の実行処理が正常に終了したか否か)を判定する(ステップS23)。
ステップS23において、GPSコマンド162の実行結果を取得していないと判定された場合、制御部204は、例えば処理エラーを示す表示を行うなどのエラー処理を実行して処理を終了する。
なお、制御部204は、ステップS23の処理において経過時間を監視して、実行結果を取得できない時間が所定の時間以上経過したか否かを検出することによりタイムアウト処理をするか否かを判定してもよい。例えば、制御部204は、処理の経過時間が所定の時間以上経過していない場合には、タイムアウト処理をしないでステップS22に処理を戻し、タイムアウトするまで、GPSコマンド162の実行結果を受信(取得)する処理を継続してもよい。一方、制御部204は、処理の経過時間が所定の時間以上経過した場合には、タイムアウトにより処理を終了してもよい。例えば、制御部204は、タイムアウト処理として、処理エラーを示す表示を行うなどのエラー処理を実行して処理を終了してもよい。
なお、制御部204は、ステップS23の処理において経過時間を監視して、実行結果を取得できない時間が所定の時間以上経過したか否かを検出することによりタイムアウト処理をするか否かを判定してもよい。例えば、制御部204は、処理の経過時間が所定の時間以上経過していない場合には、タイムアウト処理をしないでステップS22に処理を戻し、タイムアウトするまで、GPSコマンド162の実行結果を受信(取得)する処理を継続してもよい。一方、制御部204は、処理の経過時間が所定の時間以上経過した場合には、タイムアウトにより処理を終了してもよい。例えば、制御部204は、タイムアウト処理として、処理エラーを示す表示を行うなどのエラー処理を実行して処理を終了してもよい。
一方、ステップS23において、GPSコマンド162の実行結果を取得したと判定した場合、制御部204は、アプリケーションプログラムAの実行手順に従った次のコマンドを選択(次のコマンドに移動)する(ステップS24)。例えば、制御部204は、次にシャッターイベントの受付けを許可するとともに、シャッターイベントを受付けた場合に撮影コマンド151を選択する。
次に、制御部204は、ステップS24において次のコマンドを選択できたか否か、すなわちアプリケーションプログラムAの実行手順に従って実行するコマンドが全て実行済み(コマンド終了)になったか否かを判定する(ステップS25)。この時点では、制御部204は、次のコマンドとして撮影コマンド151を選択するため、処理をステップS21に戻し、撮影コマンド151を制御プログラム15からコマンド処理部30に送信する。ステップS21において、コマンド処理部30は、コマンド共有部18のコマンドリスト20を参照して、制御プログラム15から受け取った撮影コマンド151が電子カメラ101(自機器)において実行する内部コマンドであることを判別して、撮影コマンド151を実行する。
そして、制御部204は、ステップS21からS406の処理を、アプリケーションプログラムAの実行手順に従って、撮影コマンド151、画像処理コマンド152、付加情報登録コマンド153、保存コマンド154、の順番にそれぞれ実行する。また、ステップS25において、アプリケーションプログラムAの実行手順に従って実行するコマンドが全て実行済み(コマンド終了)になったと判定された場合、制御部204は処理を終了する。
このように、本実施形態に係る電子機器連携システム100では、電子カメラ101の制御部204が、制御プログラム15に設定されたコマンドの実行手順に従って、外部コマンドを携帯電話102に送信することにより携帯電話102において実行するとともに、内部コマンドを電子カメラ101において実行することができる。そして、制御部204は、制御プログラム15に設定されたコマンドの実行手順に従って実行された外部コマンドまたは内部コマンドの実行結果を取得した後に、次の手順のコマンドを実行することができる。
ところで、本実施形態に係る電子機器連携システム100では、複数の機器のコマンドを共有して実行可能とする構成であるため、同じような機能の処理を実行するコマンドが複数共有されている場合がある。例えば、電子機器連携システム100において、複数の携帯電話102を連携した場合、複数のGPSコマンド162を実行可能なコマンドとして共有される。そして、電子機器連携システム100において、共有したコマンドを他機器で実行する場合、その機能を実行する機器の状態が適切でない場合や、他の機器で同じような機能をより適した状態で実行可能な場合がある。
このように同じような機能の処理を実行する複数のコマンドが共有されている場合には、電子機器連携システム100において、より適した機器でコマンドが実行されることが望ましい。そのため、電子機器連携システム100において、同じような機能の処理を実行する複数のコマンドが共有されている場合、電子機器10は、これら複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、目的とする機能の処理が最も適した性能の機器で実行されるようにコマンドを選択する。以下、複数のコマンドからコマンドを選択する処理(コマンド選択処理)について説明する。
[コマンド選択処理の説明]
コマンド処理部30は、コマンド共有部18が管理している複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、これら複数のコマンドのうち実行するコマンドを選択する。
コマンド処理部30は、コマンド共有部18が管理している複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、これら複数のコマンドのうち実行するコマンドを選択する。
ここで、コマンド共有部18は、コマンドリスト20に登録されているコマンド(内部コマンドまたは外部コマンド)を、機能の種類毎に識別可能なように管理している。例えば、コマンド共有部18は、コマンドリスト20に登録されているコマンドを、機能グループ毎に分類して識別可能なように管理している。
図11は、コマンドリスト20に登録されているコマンドの機能グループ毎の分類を示す図である。この図は、電子カメラ101と、3台の携帯電話102(102A、102B、102C)とがそれぞれ互いのコマンドを共有した際の、それぞれのコマンドの機能グループ毎の分類の一例を示している。この機能グループは、例えばコマンドに含まれるコマンド機能名(撮影機能、位置情報取得機能、プリンタ機能、画像処理機能、超解像度画像処理機能、顔検出機能など)に基づいて識別(分類)される。
図11に示す例では、撮影機能グループG101、位置情報取得機能グループG102、画質調整機能グループG103、顔検出機能グループG104、付加情報登録機能グループG105、および保存機能グループG106の何れかに識別されるコマンドが登録(共有)されている。複数のコマンドが登録されている機能グループは、撮影機能グループG101と、位置情報取得機能グループG102とである。同じ機能グループに含まれている複数のコマンドは、それぞれ互いに同等の機能であるか、または、機能の詳細が異なっていたとしても基本的な機能が同様である。
撮影機能グループG101には、電子カメラ101が有する静止画撮影コマンドおよび動画撮影コマンドが含まれている。
位置情報取得機能グループG102には、携帯電話102AのGPS(A)機能の処理を実行するGPS(A)コマンド、および簡易位置情報取得(A)機能の処理を実行する簡易位置情報取得(A)コマンドが含まれている。また、位置情報取得機能グループG102には、携帯電話102BのGPS(B)機能の処理を実行するGPS(B)コマンド、および簡易位置情報取得(B)機能の処理を実行する簡易位置情報取得(B)コマンドが含まれている。さらに、位置情報取得機能グループG102には、携帯電話102CのGPS(C)機能の処理を実行するGPS(C)コマンド、および簡易位置情報取得(C)機能の処理を実行する簡易位置情報取得(C)コマンドが含まれている。
なお、機能グループは、コマンドに含まれるコマンドID(コマンド毎に予め決められた固有ID、或いはコマンド名)に基づいて、さらに詳細な機能毎に識別されてもよい。例えば、位置情報取得機能グループG102は、GPS機能グループG102aと簡易位置情報取得機能グループG102bとに分類(区別)されて識別されてもよい。また。撮影機能グループG101は、静止画撮影機能グループG101aと動画撮影機能グループG101bとに分類(区別)されて識別されてもよい。
図12は、コマンドの実行手順の一例を示す図である。例えば、電子カメラ101が、図9に示すアプリケーションプログラムAの実行手順に従ってコマンドを実行する場合、コマンド処理部30は、図12に示すような手順でコマンドを実行する。ここで、コマンド共有部18には、GPSを利用して位置情報を取得するコマンド(GPS機能グループG102aに含まれるコマンド)が3つ(GPS(A)コマンド、GPS(B)コマンド、GPS(C)コマンド)含まれている。コマンド処理部30のコマンド選択部32は、この3つのコマンドそれぞれに対応する機能の処理が実行される機器の性能を示す情報に基づいて、3つのコマンドのうち実行するコマンドを選択する。
ここで、機器の性能を示す情報とは、前述したように、例えば、機器のリソース状態を示す情報である。なお、機器の性能を示す情報は、機能に応じて予め設定されている性能を示す情報であってもよい。また、機器の性能を示す情報は、コマンドに対応する機能の処理が要求性能を満たすか否かを示す情報であってもよい。
(コマンド選択処理の具体例)
続いて、図12に示す処理において、コマンド選択部32が、機器のリソース状態に基づいてコマンドを選択する処理について具体的に説明する。コマンド処理部30がGPS機能により位置情報を取得するコマンド(GPSコマンド)を実行する場合、コマンド選択部32は、3つのGPSコマンド(GPS(A)コマンド、GPS(B)コマンド、GPS(C)コマンド)のうち実行するGPSコマンドを、これら3つのGPSコマンドがそれぞれ実行される機器のリソース状態に基づいて選択する。
続いて、図12に示す処理において、コマンド選択部32が、機器のリソース状態に基づいてコマンドを選択する処理について具体的に説明する。コマンド処理部30がGPS機能により位置情報を取得するコマンド(GPSコマンド)を実行する場合、コマンド選択部32は、3つのGPSコマンド(GPS(A)コマンド、GPS(B)コマンド、GPS(C)コマンド)のうち実行するGPSコマンドを、これら3つのGPSコマンドがそれぞれ実行される機器のリソース状態に基づいて選択する。
図13は、リソース状態に基づいて、実行するコマンドの優先順位を決める方法の一例を説明する図である。この図は、CPU使用率、実行タスク数、およびバッテリ残容量を機器のリソース状態として、実行するコマンドの優先順位を決める例である。
図13に示すように、GPS(A)コマンドを実行する携帯電話102A、GPS(B)コマンドを実行する携帯電話102B、およびGPS(C)コマンドを実行する携帯電話102C、それぞれのリソース状態は、以下のような状態である。
・携帯電話102A:CPU使用率「40%」、実行タスク数「6」、バッテリ残容量「80%」。
・携帯電話102B:CPU使用率「30%」、実行タスク数「2」、バッテリ残容量「60%」。
・携帯電話102C:CPU使用率「10%」、実行タスク数「1」、バッテリ残容量「40%」。
・携帯電話102A:CPU使用率「40%」、実行タスク数「6」、バッテリ残容量「80%」。
・携帯電話102B:CPU使用率「30%」、実行タスク数「2」、バッテリ残容量「60%」。
・携帯電話102C:CPU使用率「10%」、実行タスク数「1」、バッテリ残容量「40%」。
上述の各リソース状態をスコア(点数)化して合計することにより、機器毎のスコアの合計に応じて、実行するコマンド(選択するコマンド)の優先順位を算出する(決める)ことができる。また、各リソース状態(CPU使用率、実行タスク数、およびバッテリ残容量)に対する係数(重み付け)を変えることにより、何れのリソース状態を優先して、実行するコマンド(選択するコマンド)の優先順位を決めるかを変更することができる。
例えば、処理時間が短いことを優先(処理速度優先)してコマンドを選択する場合、CPU使用率および実行タスク数に対する係数を、バッテリ残容量に対する係数に対比して大きい係数とする。一方、長時間連続して使用可能なことを優先(バッテリ優先)してコマンドを選択する場合、バッテリ残容量に対する係数を、CPU使用率および実行タスク数に対する係数に対比して大きい係数とする。
図13には、係数を全て「1」にした場合(条件:デフォルト)、CPU使用率および実行タスク数に対する係数を「1.5」にし、且つバッテリ残容量に対する係数を「1」にした場合(条件:処理速度優先)、および、CPU使用率および実行タスク数に対する係数を「1」にし、且つバッテリ残容量に対する係数を「2」にした場合(条件:バッテリ優先)のそれぞれにおいて、実行するコマンド(選択するコマンド)の優先順位の例を示している。なお、上述の係数を決める条件は、例えば、条件設定部33により設定された優先条件である。
図13に示す例では、「条件:デフォルト」、「条件:処理速度優先」、および「条件:バッテリ優先」のそれぞれの優先条件において、各GPSコマンドに対応する機器のリソース状態のスコア、係数、スコア合計は、以下のようになる。
・「条件:デフォルト」(処理速度とバッテリ残容量とに対する係数が同じ)
GPS(A)コマンド:CPU使用率「スコア=4、係数=1」、実行タスク数「スコア=6、係数=1」、バッテリ残容量「スコア=2、係数=1」、スコア合計「4+6+2=12」。
GPS(B)コマンド:CPU使用率「スコア=3、係数=1」、実行タスク数「スコア=2、係数=1」、バッテリ残容量「スコア=4、係数=1」、スコア合計「3+2+4=9」。
GPS(C)コマンド:CPU使用率「スコア=1、係数=1」、実行タスク数「スコア=1、係数=1」、バッテリ残容量「スコア=6、係数=1」、スコア合計「1+1+6=8」。
よって、「条件:デフォルト」の場合の実行するコマンド(選択するコマンド)の優先順位は、スコア合計が低い順に、GPS(C)コマンド(1位)、GPS(B)コマンド(2位)、GPS(A)コマンド(3位)となる。すなわち、この優先条件では、携帯電話102Cで実行するGPS(C)コマンドが、実行するコマンド(選択するコマンド)として最も適している。これにより、コマンド選択部32は、GPS(C)コマンドを、実行するコマンドとして選択する。
GPS(A)コマンド:CPU使用率「スコア=4、係数=1」、実行タスク数「スコア=6、係数=1」、バッテリ残容量「スコア=2、係数=1」、スコア合計「4+6+2=12」。
GPS(B)コマンド:CPU使用率「スコア=3、係数=1」、実行タスク数「スコア=2、係数=1」、バッテリ残容量「スコア=4、係数=1」、スコア合計「3+2+4=9」。
GPS(C)コマンド:CPU使用率「スコア=1、係数=1」、実行タスク数「スコア=1、係数=1」、バッテリ残容量「スコア=6、係数=1」、スコア合計「1+1+6=8」。
よって、「条件:デフォルト」の場合の実行するコマンド(選択するコマンド)の優先順位は、スコア合計が低い順に、GPS(C)コマンド(1位)、GPS(B)コマンド(2位)、GPS(A)コマンド(3位)となる。すなわち、この優先条件では、携帯電話102Cで実行するGPS(C)コマンドが、実行するコマンド(選択するコマンド)として最も適している。これにより、コマンド選択部32は、GPS(C)コマンドを、実行するコマンドとして選択する。
・「条件:処理速度優先」
GPS(A)コマンド:CPU使用率「スコア=4、係数=1.5」、実行タスク数「スコア=6、係数=1.5」、バッテリ残容量「スコア=2、係数=1」、スコア合計「6+9+2=17」。
GPS(B)コマンド:CPU使用率「スコア=3、係数=1.5」、実行タスク数「スコア=2、係数=1.5」、バッテリ残容量「スコア=4、係数=1」、スコア合計「4.5+3+4=12(11,5)」。
GPS(C)コマンド:CPU使用率「スコア=1、係数=1.5」、実行タスク数「スコア=1、係数=1.5」、バッテリ残容量「スコア=6、係数=1」、スコア合計「1.5+1.5+6=9」。
よって、「条件:処理速度優先」の場合の実行するコマンド(選択するコマンド)の優先順位は、スコア合計が低い順に、GPS(C)コマンド(1位)、GPS(B)コマンド(2位)、GPS(A)コマンド(3位)となる。すなわち、この優先条件では、携帯電話102Cで実行するGPS(C)コマンドが、実行するコマンド(選択するコマンド)として最も適している。これにより、コマンド選択部32は、GPS(C)コマンドを、実行するコマンドとして選択する。
GPS(A)コマンド:CPU使用率「スコア=4、係数=1.5」、実行タスク数「スコア=6、係数=1.5」、バッテリ残容量「スコア=2、係数=1」、スコア合計「6+9+2=17」。
GPS(B)コマンド:CPU使用率「スコア=3、係数=1.5」、実行タスク数「スコア=2、係数=1.5」、バッテリ残容量「スコア=4、係数=1」、スコア合計「4.5+3+4=12(11,5)」。
GPS(C)コマンド:CPU使用率「スコア=1、係数=1.5」、実行タスク数「スコア=1、係数=1.5」、バッテリ残容量「スコア=6、係数=1」、スコア合計「1.5+1.5+6=9」。
よって、「条件:処理速度優先」の場合の実行するコマンド(選択するコマンド)の優先順位は、スコア合計が低い順に、GPS(C)コマンド(1位)、GPS(B)コマンド(2位)、GPS(A)コマンド(3位)となる。すなわち、この優先条件では、携帯電話102Cで実行するGPS(C)コマンドが、実行するコマンド(選択するコマンド)として最も適している。これにより、コマンド選択部32は、GPS(C)コマンドを、実行するコマンドとして選択する。
・「条件:バッテリ優先」
GPS(A)コマンド:CPU使用率「スコア=4、係数=1」、実行タスク数「スコア=6、係数=1」、バッテリ残容量「スコア=2、係数=2」、スコア合計「4+6+4=14」。
GPS(B)コマンド:CPU使用率「スコア=3、係数=1」、実行タスク数「スコア=2、係数=1」、バッテリ残容量「スコア=4、係数=2」、スコア合計「3+2+8=13」。
GPS(C)コマンド:CPU使用率「スコア=1、係数=1」、実行タスク数「スコア=1、係数=1」、バッテリ残容量「スコア=6、係数=2」、スコア合計「1+1+12=14」。
よって、「条件:バッテリ優先」の場合の実行するコマンド(選択するコマンド)の優先順位は、スコア合計が低い順に、GPS(B)コマンド(1位)、GPS(A)コマンド(2位)、GPS(C)コマンド(3位)となる。すなわち、この優先条件では、携帯電話102Bで実行するGPS(B)コマンドが、実行するコマンド(選択するコマンド)として最も適している。これにより、コマンド選択部32は、GPS(B)コマンドを、実行するコマンドとして選択する。
なお、GPS(A)コマンドとGPS(C)コマンドとはスコア合計が同点のため、係数の大きいリソースの状態(バッテリ残容量)のスコアに基づいてGPS(A)コマンドの優先順位を2位としている。すなわち、GPS(A)コマンドは、GPS(C)コマンドに比較すると、実行するコマンドとして適している。
GPS(A)コマンド:CPU使用率「スコア=4、係数=1」、実行タスク数「スコア=6、係数=1」、バッテリ残容量「スコア=2、係数=2」、スコア合計「4+6+4=14」。
GPS(B)コマンド:CPU使用率「スコア=3、係数=1」、実行タスク数「スコア=2、係数=1」、バッテリ残容量「スコア=4、係数=2」、スコア合計「3+2+8=13」。
GPS(C)コマンド:CPU使用率「スコア=1、係数=1」、実行タスク数「スコア=1、係数=1」、バッテリ残容量「スコア=6、係数=2」、スコア合計「1+1+12=14」。
よって、「条件:バッテリ優先」の場合の実行するコマンド(選択するコマンド)の優先順位は、スコア合計が低い順に、GPS(B)コマンド(1位)、GPS(A)コマンド(2位)、GPS(C)コマンド(3位)となる。すなわち、この優先条件では、携帯電話102Bで実行するGPS(B)コマンドが、実行するコマンド(選択するコマンド)として最も適している。これにより、コマンド選択部32は、GPS(B)コマンドを、実行するコマンドとして選択する。
なお、GPS(A)コマンドとGPS(C)コマンドとはスコア合計が同点のため、係数の大きいリソースの状態(バッテリ残容量)のスコアに基づいてGPS(A)コマンドの優先順位を2位としている。すなわち、GPS(A)コマンドは、GPS(C)コマンドに比較すると、実行するコマンドとして適している。
このように、電子カメラ101は、同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器のリソース状態を示す情報に基づいて、これら複数のコマンドの中から実行するコマンドを選択する。例えば、図13を用いて説明したように、電子カメラ101は、各機器(携帯電話102A、102B、102C)のCPUの使用率、実行タスク数、バッテリ残容量等のリソース状態を示す情報に基づいて、実行するGPSコマンドを選択する。また、電子カメラ101は、各機器のリソース状態を示す情報と、設定された優先条件(何れのリソース状態を優先するか)とに基づいて、実行するGPSコマンドを選択する。
これにより、電子カメラ101は、同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器のリソース状態を示す情報に基づいて、これら複数のコマンドのうち最も適した機器で処理が実行されるコマンドを選択することができる。
なお、図13では、CPUの使用率、実行タスク数、バッテリ残容量等のリソース状態のそれぞれをスコア化するとともに、それらのスコアを機器毎に合計した合計スコアに基づいて、選択するコマンドの優先順位を算出する処理の例を示したが、これに限られるものではない。例えば、選択するコマンドの優先順位を算出する処理として、CPUの使用率、実行タスク数、バッテリ残容量等のリソース状態のそれぞれをスコア化することなく、それぞれの数値に基づいて算出する処理としてもよい。
また、選択するコマンドの優先順位を算出する処理として、優先条件に応じて係数(重み付け)を変更して算出する処理の例を示したが、優先条件に応じて定まるリソース状態のみを機器毎に比較して算出する処理としてもよい。例えば、処理速度優先を条件とした場合、選択するコマンドの優先順位を算出する処理として、CPUの使用率または実行タスク数のみに基づいて算出する処理としてもよい。また、バッテリ優先を条件とした場合、選択するコマンドの優先順位を算出する処理として、バッテリ残容量のみに基づいて算出する処理としてもよい。
(コマンド選択処理を用いたコマンドの実行処理の動作)
次に、電子機器連携システム100におけるコマンド選択処理を用いたコマンドの実行処理の動作について説明する。
次に、電子機器連携システム100におけるコマンド選択処理を用いたコマンドの実行処理の動作について説明する。
図14は、コマンド選択処理を用いたコマンドの実行処理の第1例を示すフローチャートである。この図14は、図10を用いて説明したコマンドの実行処理において、各機器のリソース状態に基づいて、複数のコマンドから実行するコマンドを選択して実行する例である。
また、この図14では、図12に示すように、電子カメラ101が、携帯電話102AのGPS(A)コマンド、携帯電話102BのGPS(B)コマンド、および携帯電話102CのGPS(C)コマンドを、それぞれ実行可能なように共有している状態とする。ここで、図10を用いて説明したGPSコマンド162が、図12に示すGPS(A)コマンドに対応する。なお、図14において図10の各処理に対応する部分には同一の符号を付け、その説明を省略する。
まず、制御部204(コマンド処理部30)は、アプリケーションプログラムAの実行手順に従ってGPS(A)コマンドを実行する前に、リソース状態を示す情報を取得するコマンド(リソース状態取得コマンド)を実行する。例えば、コマンド処理部30は、GPS(A)コマンドを実行する携帯電話102Aと、GPS(A)コマンドと同じような機能(GPSを利用して位置を取得する機能)の処理を実行するコマンド(同じ機能の種類に識別されるコマンド、同じGPS機能グループG102aに含まれるコマンド)であるGPS(B)コマンドおよびGPS(C)コマンドをそれぞれ実行する携帯電話102Bおよび携帯電話102Cと、のリソース状態を示す情報を取得するコマンド(リソース状態取得コマンド)を実行する(ステップS11)。
具体的には、コマンド処理部30は、コマンド共有部18を参照して、GPSを利用して位置を取得するコマンド(GPS機能グループG102aに含まれるコマンド)が、GPS(A)コマンド、GPS(B)コマンド、およびGPS(C)コマンドの3つあることを検出(検索)する。情報取得部31は、コマンド処理部30が検出(検索)した結果に基づいて、GPS(A)コマンド、GPS(B)コマンド、およびGPS(C)コマンドそれぞれを実行する携帯電話102A、携帯電話102B、および携帯電話102Cに対して、リソース状態取得コマンドを、通信部209を介して送信する。
次に、制御部204(コマンド処理部30)は、リソース状態取得コマンドを実行することに応じて、携帯電話102A、携帯電話102B、および携帯電話102Cのそれぞれから、リソース状態を示す情報を取得する。例えば、情報取得部31は、リソース状態取得コマンドを送信することに応じて、携帯電話102A、携帯電話102B、および携帯電話102Cのそれぞれからリソース状態を示す情報を、通信部209を介して受信する(ステップS12)。
次に、コマンド選択部32は、条件設定部33により設定された優先条件と、ステップS12において取得したリソース状態を示す情報とに基づいて、GPS(A)コマンド、GPS(B)コマンド、およびGPS(C)コマンドのうち、実行するコマンドを選択する。例えば、コマンド選択部32は、図13に示すように、条件設定部33により設定された優先条件(「条件:デフォルト」、「条件:処理速度優先」、または「条件:バッテリ優先」)と、ステップS12において取得したリソース状態(CPU使用率、実行タスク数、バッテリ残容量)を示す情報とに基づいて、実行するコマンドを選択する(ステップS13)。
続いて、コマンド処理部30は、ステップS13においてコマンド選択部32が選択したコマンドを実行する(ステップS21)。そして、制御部204(コマンド処理部30)は、ステップS11からS25の処理を、アプリケーションプログラムAの実行手順に従って、撮影コマンド151、画像処理コマンド152、付加情報登録コマンド153、保存コマンド154、の順番にそれぞれ実行する。
このように、電子カメラ101は、同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器のリソース状態を示す情報に基づいて、これら複数のコマンドの中からコマンドを選択して実行する。例えば、図13を用いて説明したように、電子カメラ101は、各機器(携帯電話102A、102B、102C)のCPUの使用率、実行タスク数、バッテリ残容量等のリソース状態を示す情報に基づいて、GPS(A)コマンド、GPS(B)コマンド、およびGPS(C)コマンドのうちの何れかのGPSコマンドを選択して実行する。また、電子カメラ101は、各機器のリソース状態を示す情報と、設定された優先条件(何れのリソース状態を優先するか)とに基づいて、実行するGPSコマンドを選択して実行する。
これにより、電子カメラ101は、同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器のリソース状態を示す情報に基づいて、これら複数のコマンドのうち最も適した機器で処理が実行されるコマンドを選択して実行することができる。
(コマンド選択処理の別の例)
図12に示すコマンドの実行手順の一例は、GPS機能の処理を実行するコマンドに対してのみコマンド選択処理が行われる例であったが、その他の機能の処理を実行するコマンドそれぞれに対してもコマンド選択処理が行われてもよい。次に、GPS機能の処理を実行するコマンド、および、その他の機能の処理を実行するコマンドに対してコマンド選択処理が行われる例を説明する。
図12に示すコマンドの実行手順の一例は、GPS機能の処理を実行するコマンドに対してのみコマンド選択処理が行われる例であったが、その他の機能の処理を実行するコマンドそれぞれに対してもコマンド選択処理が行われてもよい。次に、GPS機能の処理を実行するコマンド、および、その他の機能の処理を実行するコマンドに対してコマンド選択処理が行われる例を説明する。
図15は、コマンドリスト20に登録されているコマンドの機能グループ毎の分類の別の例を示す図である。この図は、電子カメラ101と、2台の携帯電話102(102A、102B)と、ナビゲーション端末装置106と、画像処理サーバ104と、がそれぞれ互いのコマンドを共有した際の、それぞれのコマンドの機能グループ毎の分類の一例を示している。
図15に示す例では、撮影機能グループG101、位置情報取得機能グループG102、画質調整機能グループG103、顔検出機能グループG104、付加情報登録機能グループG105、および保存機能グループG106の何れかに識別されるコマンドが登録(共有)されている。複数のコマンドが登録されている機能グループは、撮影機能グループG101と、位置情報取得機能グループG102と、画質調整機能グループG103と、顔検出機能グループG104とである。
撮影機能グループG101には、電子カメラ101が有する静止画撮影コマンドおよび動画撮影コマンドが含まれている。
位置情報取得機能グループG102には、携帯電話102AのGPS(A)機能の処理を実行するGPS(A)コマンド、および簡易位置情報取得(A)機能の処理を実行する簡易位置情報取得(A)コマンドが含まれている。また、位置情報取得機能グループG102には、携帯電話102BのGPS(B)機能の処理を実行するGPS(B)コマンド、および簡易位置情報取得(B)機能の処理を実行する簡易位置情報取得(B)コマンドが含まれている。さらに、位置情報取得機能グループG102には、ナビゲーション端末装置106のGPS(D)機能の処理を実行するGPS(D)コマンドが含まれている。
画質調整機能グループG103には、電子カメラ101の画像処理(A)コマンドと、ナビゲーション端末装置106の画像処理(B)コマンドと、画像処理サーバ104の画像処理(C)コマンドとが含まれている。
顔検出機能グループG104には、電子カメラ101の顔検出コマンドと、画像処理サーバ104の顔認識コマンドとが含まれている。
なお前述したように、機能グループは、コマンドに含まれるコマンドID(コマンド毎に予め決められた固有ID、或いはコマンド名)に基づいて、さらに詳細な機能毎に識別されてもよい。例えば、位置情報取得機能グループG102は、GPS機能グループG102aと簡易位置情報取得機能グループG102bとに分類(区別)されて識別されてもよい。また。撮影機能グループG101は、静止画撮影機能グループG101aと動画撮影機能グループG101bとに分類(区別)されて識別されてもよい。
図16は、コマンドの実行手順およびコマンド選択の一例を示す図である。例えば、電子カメラ101が、図9に示すアプリケーションプログラムAの実行手順に従ってコマンドを実行する場合、コマンド処理部30は、図16に示すような手順(例えば、GPSコマンド→静止画撮影コマンド→画像処理コマンド→顔検出コマンド→付加情報登録コマンド→保存コマンド)でコマンドを実行する。
ここで、コマンド共有部18には、図15に示すように、GPSを利用して位置情報を取得するコマンド(GPS機能グループG102のコマンド)が3つ、画質調整機能の処理を実行するコマンド(画質調整機能グループG103のコマンド)が3つ、および顔検出機能の処理を実行するコマンド(顔検出機能グループG104のコマンド)が2つ、含まれている。コマンド処理部30のコマンド選択部32は、これら複数のコマンドが含まれている機能の処理を実行する際に、それぞれの機能の処理を実行するコマンドを複数のコマンドの中から選択する。
この図に示す例では、コマンド選択部32は、それぞれの機能の処理が実行される機器のリソース状態に基づいてコマンドを選択する。表600は、同じ機能グループ内の複数のコマンドの中から実行するコマンドを選択する際の優先順位を示している。コマンド選択部32は、各優先条件(「条件:デフォルト」、「条件:処理速度優先」、「条件:バッテリ優先」)において、この表600に示す優先順位が「1」(1位)となるコマンドを、機能グループ毎にそれぞれ選択する。
すなわち、コマンド処理部30は、各優先条件において、コマンド選択部32が表600に示す優先順位に基づいてコマンドを選択することにより、以下に示す手順でコマンドを実行する。
・「条件:デフォルト」:GPS(B)コマンド→静止画撮影コマンド→画像処理(A)コマンド→顔検出コマンド→付加情報登録コマンド→保存コマンド。
・「条件:処理速度優先」:GPS(C)コマンド→静止画撮影コマンド→画像処理(A)コマンド→顔検出コマンド→付加情報登録コマンド→保存コマンド。
・「条件:バッテリ優先」:GPS(B)コマンド→静止画撮影コマンド→画像処理(C)コマンド→顔認識コマンド→付加情報登録コマンド→保存コマンド。
・「条件:デフォルト」:GPS(B)コマンド→静止画撮影コマンド→画像処理(A)コマンド→顔検出コマンド→付加情報登録コマンド→保存コマンド。
・「条件:処理速度優先」:GPS(C)コマンド→静止画撮影コマンド→画像処理(A)コマンド→顔検出コマンド→付加情報登録コマンド→保存コマンド。
・「条件:バッテリ優先」:GPS(B)コマンド→静止画撮影コマンド→画像処理(C)コマンド→顔認識コマンド→付加情報登録コマンド→保存コマンド。
このように、電子カメラ101は、アプリケーションプログラムAの実行手順に従って実行する複数のコマンドそれぞれを、各機器のリソース状態に基づいて、優先順位の高いコマンドを選択して実行する。例えば、電子カメラ101は、処理速度優先の場合、アプリケーションプログラムAのそれぞれのコマンドを、処理速度が速い機器のコマンドを優先して選択する。また、電子カメラ101は、バッテリ優先の場合、アプリケーションプログラムAのそれぞれのコマンドを、バッテリ残容量が多い機器のコマンドを優先して選択する。
これにより、電子カメラ101は、制御プログラム15(例えば、アプリケーションプログラムA)の実行手順に従って複数のコマンドを実行する際に、優先条件に応じたリソース状態の機器のコマンドを機能グループ毎にそれぞれ選択して実行することができる。よって、電子カメラ101は、アプリケーションプログラムAの実行手順に従って、優先条件に応じた性能が得られるように、内部コマンドまたは外部コマンドを選択して実行することができる。
なお、上述のコマンド選択処理は、アプリケーションプログラムAのような処理を、繰り返して実行する場合にも効果的である。例えば、電子カメラ101は、アプリケーションプログラムAの実行手順に従って、10秒間隔で撮影する処理を実行する場合、各コマンドの処理時間の合計が10秒以下となるようにコマンドを選択する必要がある。また、電子カメラ101は、アプリケーションプログラムAの実行手順に従って、撮影処理を500回繰り返して実行する場合、500回以上の繰り返し処理が可能なバッテリ残容量の機器において実行されるコマンドを選択する必要がある。このような場合、電子カメラ101は、各機器のリソース状態に基づいて、必要な条件を満足するようなコマンドを選択して実行することができる。
(制御プログラム15の実行手順に従って発行されるコマンドの別の例)
以上説明してきた実施形態では、制御プログラム15の制御による処理は、コマンド共有部18のコマンドリスト20内に含まれるコマンドを組み合わせて作成されたアプリケーションプログラムの実行手順に従った処理である。しかし、制御プログラム15の制御による処理は、各機能グループ内に含まれているコマンドのうちの何れかのコマンドを実行する機能グループ単位の実行コマンド(すなわち、目的とする機能の種類(意味)を示すコマンド、以下機能コマンドと称する)を組み合わせて作成されたアプリケーションプログラムの実行手順に従った処理としてもよい。
以上説明してきた実施形態では、制御プログラム15の制御による処理は、コマンド共有部18のコマンドリスト20内に含まれるコマンドを組み合わせて作成されたアプリケーションプログラムの実行手順に従った処理である。しかし、制御プログラム15の制御による処理は、各機能グループ内に含まれているコマンドのうちの何れかのコマンドを実行する機能グループ単位の実行コマンド(すなわち、目的とする機能の種類(意味)を示すコマンド、以下機能コマンドと称する)を組み合わせて作成されたアプリケーションプログラムの実行手順に従った処理としてもよい。
例えば、図15に示す機能グループの例において、各機能グループ内に含まれているコマンドの何れかを実行する機能グループ毎の機能コマンドを、それぞれ「撮影機能コマンド」、「位置情報取得機能コマンド」、「画質調整機能コマンド」、「顔検出機能コマンド」、「付加情報登録コマンド」、「保存機能コマンド」と称する。なお、「撮影機能コマンド」は、さらに、「静止画撮影機能コマンド」と「動画撮影機能コマンド」とに分けてもよい。また、「位置情報取得機能コマンド」は、さらに、「GPS機能コマンド」と「簡易位置情報取得機能コマンド」とに分けてもよい。
そして、アプリケーションプログラムAは、コマンドリスト20内に含まれるコマンドを組み合わせて作成されるのではなく、上述の機能コマンドを組み合わせて作成され、図17に示すように、それぞれの機能コマンドに対して、実行するコマンドが選択される処理としてもよい。
図17は、機能コマンドを用いたコマンドの実行手順の一例を示す図である。なお、コマンドリスト20内には、図15に示すコマンドが共有されている状態とする。アプリケーションプログラムAの実行手順に従って、電子カメラ101は、機能コマンドを、「位置情報取得機能コマンド」、「撮影機能コマンド」、「画質調整機能コマンド」、「顔検出機能コマンド」、「付加情報登録コマンド」、「保存機能コマンド」の順に実行する。
コマンド選択部32は、上述の機能コマンドそれぞれに対して、対応する機能グループ内に含まれているコマンドの中から実行するコマンドを選択する。例えば、コマンド選択部32は、「位置情報取得機能コマンド」に対して、対応する「位置情報取得機能グループG102」に含まれているコマンドの中から実行するコマンドを、各コマンドの処理が実行される各機器のリソース状態に基づいて選択する。
また、コマンド選択部32は、「撮影機能コマンド」に対して、対応する「撮影機能グループG101」に含まれているコマンドの中から実行するコマンドを、各機器のリソース状態に基づいて選択する。また、コマンド選択部32は、「画質調整機能コマンド」に対して、対応する「画質調整機能グループG103」に含まれているコマンドの中から実行するコマンドを、各機器のリソース状態に基づいて選択する。また、コマンド選択部32は、「顔検出機能コマンド」に対して、対応する「顔検出機能グループG104」に含まれているコマンドの中から実行するコマンドを、各機器のリソース状態に基づいて選択する。同様に、コマンド選択部32は、「付加情報登録機能コマンド」と「保存機能コマンド」とのそれぞれに対して、対応する「付加情報登録機能グループG103」と「保存機能コマンド」とのそれぞれに含まれているコマンドの中から実行するコマンドを、各機器のリソース状態に基づいて選択する。
これにより、電子カメラ101は、機能コマンドを組み合わせて作成されたアプリケーションプログラムの実行手順に従って、機能コマンドに対応する機能グループに含まれているコマンドの中から、適切なコマンドを選択して実行することができる。
次に、図18を参照して、上述の機能コマンドに対応するコマンドを選択して実行するコマンド実行処理の動作について説明する。図18は、コマンド選択処理を用いたコマンドの実行処理の第2例を示すフローチャートであって、機能コマンドに対応するコマンドを選択して実行するコマンド実行処理の一例を示すフローチャートである。
この図18に示す処理は、図14を用いて説明した処理を、機能コマンドを組み合わせて作成されたアプリケーションプログラムAによって制御された処理としたものであり、図14に示す処理に加えてステップS10の処理を実行することが、図14に示す処理と異なる。すなわち、この図18に示す処理においては、電子カメラ101が、アプリケーションプログラムAの実行手順に従って、「GPS機能コマンド」、「静止画撮影コマンド」、画質調整機能コマンド」、「顔検出機能コマンド」、「付加情報登録コマンド」、「保存機能コマンド」の順に機能コマンドを実行する。なお、図19において図14の各処理に対応する部分には同一の符号を付け、その説明を省略する。
まず、コマンド処理部30は、アプリケーションプログラムAの実行手順に従って発行されたGPS機能コマンドに応じて、GPS機能グループG102aに含まれているコマンドを検索する(ステップS10)。例えば、コマンド処理部30は、GPS(A)コマンド、GPS(B)コマンド、およびGPS(C)コマンドを示す情報を、検索結果(件検出結果)として、情報取得部31に供給する。以下の処理は、図14を用いて説明した処理と同様である。
このように、電子カメラ101は、機能コマンドを組み合わせて作成されたアプリケーションプログラム(例えば、アプリケーションプログラムA)の実行手順に従って、機能コマンドに対応する機能グループに含まれている複数のコマンドの中から、機器のリソース状態を示す情報に基づいてコマンドを選択して実行する。
これにより、電子カメラ101は、機能コマンドに対応する機能グループに含まれている複数のコマンド、すなわち同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器のリソース状態を示す情報に基づいて、これら複数のコマンドのうち、適した機器で処理が実行されるコマンドを選択して実行することができる。
なお、アプリケーションプログラムAは、上述したように、機能コマンドを組み合わせて作成されてもよいが、機能の種類を特定可能(識別可能)な情報が含まれていれば、さらに、あいまいな表現を用いて作成されてもよい。
例えば、「現在の位置情報を取って撮影して画像に貼り付けて保存」といったあいまいな表現を用いて作成されたアプリケーションプログラムから、「現在の位置情報」、「撮影」、「位置情報を画像に貼り付け」、および「保存」、といった機能を意味する部分(機能の種類を特定可能な部分)を、コマンド選択部32は抽出する。また、これらの機能を意味する部分の表現と、各機能グループ(各機能の種類を識別する情報)とが、予め対応付けられて、例えばコマンド共有部18に登録されているとする。そして、コマンド選択部32は、上述の機能を意味する部分の表現それぞれに対応付けられている各機能グループに含まれているコマンドの中から、機器のリソース状態を示す情報に基づいてコマンドを選択する。
例えば、「現在の位置情報を取って撮影して画像に貼り付けて保存」という表現から、コマンド選択部32が抽出した機能を意味する部分と、抽出した機能を意味する部分に対応付けられている機能グループの一例を、以下に示す。
・「現在の位置情報」:位置情報取得機能グループG102。
・「撮影」:撮影機能グループG101、および画質調整機能グループG103。
・「位置情報を画像に貼り付け」:付加情報登録機能グループG105。
・「保存」:保存機能グループG106。
コマンド選択部32は、抽出した機能を意味する部分に対応付けられている機能グループそれそれからコマンドを選択する。
・「現在の位置情報」:位置情報取得機能グループG102。
・「撮影」:撮影機能グループG101、および画質調整機能グループG103。
・「位置情報を画像に貼り付け」:付加情報登録機能グループG105。
・「保存」:保存機能グループG106。
コマンド選択部32は、抽出した機能を意味する部分に対応付けられている機能グループそれそれからコマンドを選択する。
これにより、電子カメラ101は、例えば、「現在の位置情報を取って撮影して画像に貼り付けて保存」といったあいまいな表現を用いて作成されたアプリケーションプログラムであっても、適切なコマンドを選択して実行することができる。また、例えば、電子カメラ101は、コマンドを共有していない機能や具体的なコマンド名が不明な機能等であっても、必要な機能の種類を意味する表現を用いて作成されたアプリケーションプログラムに基づいて、対応するコマンドを検索して実行することができる場合もある。
(機能に応じて予め設定されている性能を示す情報に基づいてコマンドを選択するコマンド選択処理の例)
以上、機器の性能を示す情報に基づいてコマンドを選択するコマンド選択処理について、機器のリソース状態を示す情報を、上述の機器の性能を示す情報とした場合の例について説明してきた。次に、機能に応じて予め設定されている性能を示す情報を、機器の性能を示す情報とした場合のコマンド選択処理について説明する。
以上、機器の性能を示す情報に基づいてコマンドを選択するコマンド選択処理について、機器のリソース状態を示す情報を、上述の機器の性能を示す情報とした場合の例について説明してきた。次に、機能に応じて予め設定されている性能を示す情報を、機器の性能を示す情報とした場合のコマンド選択処理について説明する。
以下に、機能に応じて予め設定されている性能の例を示す。
・処理速度:コマンドを実行してから実行結果を取得するまでに要する処理時間に影響する処理速度。
・処理の正確さ、精密さ:処理により得られる実行結果のレベル。例えば、GPS機能と簡易位置情報取得機能とを比較した場合、GPS機能の方が、より正確(精密)に位置情報を取得可能である。
・各機器の所在:コマンドを実行する他機器の自機器に対する所在。例えば、他機器のGPS機能を利用して自機器の所在位置を検出する場合、自機器に対する他機器の所在位置(距離)が検出位置の性能に影響する。
・周囲環境:処理結果の性能に影響する周囲の環境条件(温度、湿度等の条件)。
なお、上述の機能に応じて予め設定されている性能を示す情報は、例えば、コマンド機能名、またはコマンドID等と同様に、コマンドそれぞれが有する情報に含まれている。
・処理速度:コマンドを実行してから実行結果を取得するまでに要する処理時間に影響する処理速度。
・処理の正確さ、精密さ:処理により得られる実行結果のレベル。例えば、GPS機能と簡易位置情報取得機能とを比較した場合、GPS機能の方が、より正確(精密)に位置情報を取得可能である。
・各機器の所在:コマンドを実行する他機器の自機器に対する所在。例えば、他機器のGPS機能を利用して自機器の所在位置を検出する場合、自機器に対する他機器の所在位置(距離)が検出位置の性能に影響する。
・周囲環境:処理結果の性能に影響する周囲の環境条件(温度、湿度等の条件)。
なお、上述の機能に応じて予め設定されている性能を示す情報は、例えば、コマンド機能名、またはコマンドID等と同様に、コマンドそれぞれが有する情報に含まれている。
コマンド選択部32は、上述の例に示すような、機能に応じて予め設定されている性能を示す情報に基づいて、実行するコマンドを選択する。
なお、コマンド選択部32は、コマンド機能名、コマンドIDを、上述の性能を示す情報として利用してもよい。また、コマンド選択部32は、自機器に対して適した処理を行う他機器の機能の処理を実行するコマンドを選択するために、機器の情報(例えば、機器の種別情報、機器ID、メーカID、型番を示す情報等)を、上述の予め設定されている性能を示す情報として利用してもよい。また、コマンド選択部32は、各機器の所有者を特定する情報(所有者ID)、性別、年齢等を示す情報、または国別を示す情報(国ID)を、上述の予め設定されている性能を示す情報として利用してもよい。
続いて、上述の予め設定されている性能に基づいて、複数コマンドの中から実行するコマンドを選択する具体例を説明する。
例えば、図15に示すように、位置情報取得機能グループG102には、携帯電話102AのGPS(A)コマンドおよび簡易位置情報取得(A)コマンドと、携帯電話102BのGPS(B)コマンドおよび簡易位置情報取得(B)コマンドと、ナビゲーション端末装置106のGPS(D)コマンドとが含まれているとする。
例えば、図15に示すように、位置情報取得機能グループG102には、携帯電話102AのGPS(A)コマンドおよび簡易位置情報取得(A)コマンドと、携帯電話102BのGPS(B)コマンドおよび簡易位置情報取得(B)コマンドと、ナビゲーション端末装置106のGPS(D)コマンドとが含まれているとする。
電子カメラ101は、各機能の予め設定されている性能に基づいて、位置情報取得機能グループG102内の複数のコマンドの中からコマンドを選択した実行する。例えば、コマンド選択部32は、位置情報取得機能グループG102内のGPS(A)コマンド、簡易位置情報取得(A)コマンド、GPS(B)コマンド、簡易位置情報取得(B)コマンド、およびGPS(D)コマンドのうちから、それぞれのコマンドが実行される機能に応じて予め設定されている性能を示す情報に基づいて、実行するコマンドを選択する。
例えば、位置情報取得機能グループG102内の複数のコマンドのうち、簡易位置情報取得(B)コマンドにより実行される処理が最も速い処理速度の処理であって、GPS(D)コマンドにより実行される処理が最も正確な位置を取得可能な処理であるとする。この場合において、コマンド選択部32は、例えば、条件設定部33に設定された優先条件が、「処理速度を優先」であった場合、簡易位置情報取得(B)コマンドを選択する。これにより、電子カメラ101は、処理速度を優先した簡易位置情報取得(B)コマンドを実行することにより得られた位置情報を取得することができる。
また、コマンド選択部32は、例えば、条件設定部33に設定された優先条件が、「処理の正確さや精密さを優先」であった場合、GPS(D)コマンドを選択する。これにより、電子カメラ101は、処理の正確さや精密さを優先したGPS(D)コマンドを実行することにより得られた位置情報を取得することができる。
なお、仮に、位置情報取得機能グループG102内の複数のコマンドのうち、簡易位置情報取得(A)コマンドにより実行される処理と、簡易位置情報取得(B)コマンドにより実行される処理とが、共に最も速い処理速度の処理であったとする。この場合において、コマンド選択部32は、例えば、条件設定部33に設定された優先条件が、「処理速度を優先」であった場合、簡易位置情報取得(A)コマンドおよび簡易位置情報取得(B)コマンドの何れかを選択すればよいが、さらに、携帯電話102Aおよび携帯電話102Bのうち、電子カメラ101に対する距離が近い方の機器のコマンドを選択してもよい。
すなわち、コマンド選択部32は、まず「処理速度を優先」を優先条件として、位置情報取得機能グループG102内の複数のコマンドのうち、簡易位置情報取得(A)コマンドおよび簡易位置情報取得(B)コマンドを、実行するコマンドの候補として選択する。そして、コマンド選択部32は、次に「処理の正確さや精密さを優先」を優先条件として、簡易位置情報取得(A)コマンドおよび簡易位置情報取得(B)コマンドのうち、電子カメラ101に対する距離が近い方の機器のコマンドを、実行するコマンドとして選択してもよい。
なお、電子カメラ101に対する携帯電話102Aおよび携帯電話102Bの距離は、例えば、近距離通信(例えば、Bluetooth(登録商標)の規格に対応する通信)を用いて検出してもよい。
また、図15に示すように、画質調整機能グループG103には、電子カメラ101の画像処理(A)コマンドと、ナビゲーション端末装置106の画像処理(B)コマンドと、画像処理サーバ104の画像処理(C)コマンドとが含まれているとする。
電子カメラ101は、各機能の予め設定されている性能に基づいて、画質調整機能グループG103内の複数のコマンドから選択したコマンドを実行する。例えば、コマンド選択部32は、画質調整機能グループG103内の画像処理(A)コマンド、画像処理(B)コマンド、および画像処理(C)コマンドのうちから、それぞれのコマンドに対応する機能に応じて予め設定されている性能を示す情報に基づいて、実行するコマンドを選択する。
例えば、画質調整機能グループG103内の複数のコマンドのうち、画像処理(A)のコマンドにより実行される処理が最も速い処理速度の処理であって、画像処理(C)機能のコマンドにより実行される処理が最も正確な色再現処理や精密なノイズ低減処理が行われる画像処理(画像処理後の画質が最もよい画像処理)であるとする。この場合において、コマンド選択部32は、例えば、条件設定部33に設定された優先条件が、「処理速度を優先」であった場合、画像処理(A)コマンドを選択する。これにより、電子カメラ101は、処理速度を優先した画像処理(A)コマンドを実行することにより得られた画像を取得することができる。
また、コマンド選択部32は、例えば、条件設定部33に設定された優先条件が、「処理の正確さや精密さを優先」であった場合、画像処理(C)機能の処理を実行するコマンドを選択する。これにより、電子カメラ101は、処理の正確さや精密さを優先した画像処理(C)コマンドを実行することにより得られた画像を取得することができる。
なお、機能に応じて予め設定されている性能を示す情報は、それぞれのコマンドが有する情報に含まれていてもよいが、コマンドを実行する機器それぞれから取得してもよい。例えば、図14のステップS11、S12の処理において、機器のリソース状態を取得する代わりに、機能に応じて予め設定されている性能を示す情報を取得してもよい。
このように、電子カメラ101は、機能に応じて予め設定されている性能を示す情報に基づいて、同じような機能の処理を実行する複数のコマンドの中からコマンドを選択して実行する。例えば、電子カメラ101は、機能に応じて予め設定されている性能を示す情報に基づいて、位置情報取得機能グループG102内の複数のコマンドのうち、処理時間が最も短いコマンド(最も速い処理速度のコマンド)、または位置の検出精度が最も高いコマンド(最も正確な位置を取得可能なコマンド)を選択して実行する。また、電子カメラ101は、機能に応じて予め設定されている性能を示す情報に基づいて、画質調整機能グループG103内の複数のコマンドのうち、処理時間が最も短いコマンド(最も速い処理速度のコマンド)、または画像処理後の画質が最もよいコマンド(最も正確な色再現処理や精密なノイズ低減処理を実行するコマンド)を選択して実行する。
これにより、電子カメラ101は、機能に応じて予め設定されている性能を示す情報に基づいて、同じような機能の処理を実行する複数のコマンドのうち、適切な処理が実行されるコマンドを選択して実行することができる。
(要求性能を満たすか否かを示す情報に基づいてコマンドを選択するコマンド選択処理の例)
次に、機器に対して要求性能を通知することに応じて取得した要求性能を満たすか否かを示す情報を、機器の性能を示す情報とした場合のコマンド選択処理について説明する。
次に、機器に対して要求性能を通知することに応じて取得した要求性能を満たすか否かを示す情報を、機器の性能を示す情報とした場合のコマンド選択処理について説明する。
例えば、電子カメラ101が、機能毎に処理を実行する機器に対する要求性能(例えば、処理時間が500msec以内、バッテリ残容量20%以上等)を各機器に対して通知することにより、各機器においてその要求性能を満たすか否かが判定される。そして、電子カメラ101は、各機器において判定された要求性能を満たすか否かを示す情報を取得し、取得した情報に基づいて、要求性能を満たす機器において実行されるコマンドを選択する。なお、各機器において、要求性能を満たすか否かが判定される際には、機能に応じて予め設定されている性能または各機器のリソース状態に基づいて判定される。
図19は、コマンド選択処理を用いたコマンドの実行処理の第3例を示すフローチャートである。以下、図19を参照して、要求性能を満たすか否かを示す情報に基づいてコマンドを選択して実行するコマンドの実行処理の動作について説明する。この図19に示す処理は、図14に示すステップS11、S12、S13の処理に代えて、ステップS14、S15、S16の処理を実行することが、図14に示す処理と異なる。なお、図19において図14の各処理に対応する部分には同一の符号を付け、その説明を省略する。
なお、図11に示すように、GPS機能グループG102aには、携帯電話102AのGPS(A)コマンドと、携帯電話102BのGPS(B)コマンドと、携帯電話102CのGPS(C)コマンドとが含まれているものとする。そして、コマンド選択部32が、GPS(A)コマンドの実行手順において、GPS機能グループG102aに含まれているGPS(A)コマンド、GPS(B)コマンド、およびGPS(C)コマンドのうちの中から、実行するGPSコマンドを選択する処理として説明する。
まず、制御部204(コマンド処理部30)は、アプリケーションプログラムAの実行手順に従ってGPS(A)コマンドを実行する前に、GPS(A)コマンドを実行する携帯電話102A、GPS(B)コマンドを実行する携帯電話102B、およびGPS(C)コマンドを実行する携帯電話102Cに対して、要求性能を通知するコマンドを送信(要求性能通知コマンドを実行)する(ステップS14)。
具体的には、コマンド処理部30は、コマンド共有部18を参照して、GPS(A)コマンドと同様にGPSを利用して位置を取得する機能を実行するコマンドが、GPS(A)コマンド、GPS(B)コマンド、およびGPS(C)コマンドの3つあることを検出(検索)する。情報取得部31は、コマンド処理部30が検出(検索)した結果に基づいて、GPS(A)コマンド、GPS(B)コマンド、およびGPS(C)コマンドそれぞれを実行する携帯電話102A、携帯電話102B、および携帯電話102Cに対して、要求性能を通知するコマンド(要求性能通知コマンド)を、通信部209を介して送信する。
次に、制御部204(コマンド処理部30)は、要求性能通知コマンドを実行することに応じて、携帯電話102A、携帯電話102B、および携帯電話102Cのそれぞれから、要求性能を満たすか否かを示す情報を取得する(要求性能応答取得)。例えば、情報取得部31は、要求性能通知コマンドを送信することに応じて、携帯電話102A、携帯電話102B、および携帯電話102Cのそれぞれから要求性能を満たすか否かを示す情報を、通信部209を介して受信する(ステップS15)。
次に、コマンド選択部32は、ステップS15において取得した要求性能を満たすか否かを示す情報に基づいて、GPS(A)コマンド、GPS(B)コマンド、およびGPS(C)コマンドのうち要求性能(例えば、処理時間が500msec以内、バッテリ残容量20%以上等)を満たすコマンドを、実行するコマンドとして選択する(ステップS16)。
続いて、コマンド処理部30は、ステップS16においてコマンド選択部32が選択したコマンドを実行する(ステップS21)。そして、制御部204(コマンド処理部30)は、ステップS14からS25の処理を、アプリケーションプログラムAの実行手順に従って、撮影コマンド151、画像処理コマンド152、付加情報登録コマンド153、保存コマンド154、の順番にそれぞれ実行する。
このように、電子カメラ101は、同じような機能の処理を実行する複数のコマンドそれぞれが実行する処理が要求性能を満たすか否かを示す情報に基づいて、これら複数のコマンドの中からコマンドを選択して実行する。例えば、電子カメラ101は、各機器(携帯電話102A、102B、102C)のGPS機能の処理時間が要求性能(例えば、処理時間が500msec以内)を満たすか否かを示す情報に基づいて、GPS(A)コマンド、GPS(B)コマンド、およびGPS(C)コマンドのうち要求性能を満たす何れかのGPSコマンドを選択して実行する。
これにより、電子カメラ101は、同じような機能の処理を実行する複数のコマンドそれぞれが実行する処理が要求性能を満たすか否かを示す情報に基づいて、これら複数のコマンドのうち、適切な処理(要求性能を満たす処理)が実行されるコマンドを選択して実行することができる。
なお、要求性能を満たすか否かを示す情報に代えて、要求性能を満たすか否かを判定可能な情報としてもよい。例えば、電子カメラ101は、要求性能を満たすか否かを判定可能なような予測処理時間を示す情報または現在のバッテリ残容量を示す情報等を各機器(携帯電話102A、102B、102C)から取得してもよい。また、電子カメラ101は、例えば画像処理等のように、他機器に送信したデータに処理が実行されて、処理後のデータを取得するような場合、実処理時間に対して短い処理時間で実行可能な少量のデータ(例えば、実際に処理するデータの1000分の1のデータ)を送信することにより、そのデータに対する処理時間に基づいて予測処理時間を算出し、要求性能を満たすか否かを判定してもよい。
以上説明してきたように、上記実施形態の電子機器連携システム100によれば、電子機器10(例えば電子カメラ101)は、同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器の性能を示す情報に基づいて、これら複数のコマンドのうち適切なコマンドを選択して実行することができる。
例えば、電子機器10は、機器のリソース状態(時間の経過にともなって変化する性能)を示す情報に基づいて、同じような機能の処理を実行する複数のコマンドのうち適切なコマンドを選択して実行することができる。また、電子機器10は、機能に応じて予め設定されている性能を示す情報に基づいて、同じような機能の処理を実行する複数のコマンドのうち適切なコマンドを選択して実行することができる。また、電子機器10は、要求性能を満たすか否かを示す情報に基づいて、同じような機能の処理を実行する複数のコマンドのうち適切なコマンド(要求性能を満たすコマンド)を選択して実行することができる。
よって、上記実施形態の電子機器連携システム100によれば、電子機器10は、制御プログラム15の制御に従って、自機器または他機器において実行する複数のコマンドの中から、適切なコマンドを選択して実行することができる。
このように、本実施形態によれば、他機器の様々な機能を自機器の機能と同じように利用することができる。
なお、上記実施形態において、位置情報取得機能の処理、画質調整機能の処理、または顔検出機能の処理において、複数のコマンドから実行するコマンドを選択する処理について説明したが、その他の機能の処理についても同様に適用することができる。
また、上記実施形態において、電子カメラ101が、自機器の内部コマンドと他機器の外部コマンドとを共有して実行する際のコマンド選択処理を例に説明したが、電子カメラ101以外の電子機器10が、自機器の内部コマンドと他機器の外部コマンドとを共有して実行する際のコマンド選択処理としてもよい。
また、条件設定部33は、コマンド共有部18が管理(共有)している複数のコマンドそれぞれの実行実績を優先条件として設定してもよい。そして、コマンド選択部32は、条件設定部33により設定された優先条件と、機器の性能を示す情報とに基づいて、複数のコマンドのうち実行するコマンドを選択してもよい。例えば、コマンド選択部32は、同じような機能を実行する複数のコマンドのうち、実行実績があるコマンドまたは実行実績が多いコマンドを優先して、実行するコマンドとして選択してもよい。
このように、コマンド選択部32は、実行実績があるコマンドを優先して選択することにより、実行実績が無いコマンド(すなわち、実際の処理がどのような処理であるか不明なコマンド)を利用する場合に対比して、適切なコマンドを選択する確立を高くすることができる。なお、コマンド処理部30は、コマンドを実行する毎に実行回数の履歴を更新するようにして、コマンドの実行実績としてコマンドと関連付けてコマンド共有部18に登録する構成としてもよい。
このように、コマンド選択部32は、実行実績があるコマンドを優先して選択することにより、実行実績が無いコマンド(すなわち、実際の処理がどのような処理であるか不明なコマンド)を利用する場合に対比して、適切なコマンドを選択する確立を高くすることができる。なお、コマンド処理部30は、コマンドを実行する毎に実行回数の履歴を更新するようにして、コマンドの実行実績としてコマンドと関連付けてコマンド共有部18に登録する構成としてもよい。
また、上記実施形態では、電子機器10として電子カメラ101、携帯電話102、画像処理サーバ104、およびナビゲーション端末装置を主な例として説明したが、これらに限られるものではない。本発明の電子機器10は、電子機器の例として前述したようなプリンタ、FAX、テレビ、ビデオ、等であってもよいし、また、コンピュータ、ゲーム機、電子辞書、電子玩具など、その他の電子機器であってもよい。
なお、上述のC機能プラットホーム16(251)、または制御部204は専用のハードウェアにより実現されるものであってもよく、また、メモリおよびCPU(中央演算装置)により構成され、上述の各部の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
また、上述のC機能プラットホーム16(251)、または制御部204の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述の各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
10 電子機器、14 通信回路(通信部)、15 制御プログラム(制御部)、18 コマンド共有部(コマンド管理部)、30 コマンド処理部、32 コマンド選択部、33 条件設定部、101 電子カメラ、102 携帯電話、104 画像処理サーバ、204 制御部、209 通信部
Claims (9)
- 他機器と通信を行う通信部と、
前記通信部を介して接続される他機器が備えている機能の処理を実行するコマンドを含む、複数のコマンドを管理するコマンド管理部と、
前記複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、前記複数のコマンドのうち実行するコマンドを選択するコマンド選択部と、
を備えることを特徴とする電子機器。 - 前記性能を示す情報は、
時間の経過にともなって変化する性能を示す情報である
ことを特徴とする請求項1に記載の電子機器。 - 前記性能を示す情報は、
要求性能を満たすか否かを示す情報である
ことを特徴とする請求項1または2に記載の電子機器。 - 前記性能を示す情報は、
前記機能に応じて予め設定されている性能を示す情報である
ことを特徴とする請求項1から3の何れか一項に記載の電子機器。 - 複数の前記性能を示す情報の優先条件を設定する条件設定部、
を備え、
前記コマンド選択部は、
前記条件設定部により設定された前記優先条件と、前記性能を示す情報とに基づいて、前記複数のコマンドのうち実行するコマンドを選択する
ことを特徴とする請求項1から4の何れか一項に記載の電子機器。 - 前記条件設定部は、
前記複数のコマンドそれぞれの実行実績を前記優先条件として設定し、
前記コマンド選択部は、
前記条件設定部により設定された前記優先条件と、前記性能を示す情報とに基づいて、前記複数のコマンドのうち実行するコマンドを選択する
ことを特徴とする請求項5に記載の電子機器。 - 前記コマンド管理部は、
前記複数のコマンドを、前記機能の種類毎に識別可能なように管理し、
前記コマンド選択部は、
前記機能の種類毎に、前記性能を示す情報に基づいて、前記複数のコマンドのうち実行するコマンドを選択する
ことを特徴とする請求項1から6の何れか一項に記載の電子機器。 - 前記複数のコマンドから選択されたコマンドを実行させる処理を制御する制御部、
を備え、
前記コマンド選択部は、
前記性能を示す情報に基づいて、前記制御部の制御により実行されるコマンドと同じ前記機能の種類に識別されるコマンドから、実行するコマンドを選択する
ことを特徴とする請求項1から7の何れか一項に記載の電子機器。 - コンピュータに、
通信部を介して他機器と通信を行う通信ステップと、
前記通信部を介して接続される他機器が備えている機能の処理を実行するコマンドを含む、複数のコマンドを管理するコマンド管理ステップと、
前記複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、前記複数のコマンドのうち実行するコマンドを選択するコマンド選択ステップと、
を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012075501A JP2013206222A (ja) | 2012-03-29 | 2012-03-29 | 電子機器、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012075501A JP2013206222A (ja) | 2012-03-29 | 2012-03-29 | 電子機器、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013206222A true JP2013206222A (ja) | 2013-10-07 |
Family
ID=49525214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012075501A Pending JP2013206222A (ja) | 2012-03-29 | 2012-03-29 | 電子機器、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013206222A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016122094A (ja) * | 2014-12-25 | 2016-07-07 | ティアック株式会社 | 無線lan機能を備えた録音装置及び録音システム |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05342123A (ja) * | 1992-06-09 | 1993-12-24 | Nec Corp | ネットワークシステムのコマンド転送方式 |
JP2003052092A (ja) * | 2001-08-08 | 2003-02-21 | Matsushita Electric Ind Co Ltd | 機器制御装置および機器制御システム |
JP2004348748A (ja) * | 1997-01-10 | 2004-12-09 | Sharp Corp | 通信方法および通信システムならびに通信プログラムを記録したコンピュータで読取可能な記録媒体 |
JP2005123884A (ja) * | 2003-10-16 | 2005-05-12 | Sharp Corp | 通信装置、コンテンツ再生装置、サービス提供装置、サービス提供システム、コンピュータで実行可能なプログラム、及び記録媒体 |
JP2005267619A (ja) * | 2004-02-16 | 2005-09-29 | Matsushita Electric Ind Co Ltd | 機器管理システム、機器管理方法及び機器管理装置 |
JP2009188681A (ja) * | 2008-02-05 | 2009-08-20 | Canon Inc | 映像表示装置及びその制御方法、並びに映像出力装置及びその制御方法 |
JP2010232715A (ja) * | 2009-03-25 | 2010-10-14 | Nec Corp | サービス検索システム、サービス検索方法およびサービス検索用プログラム |
-
2012
- 2012-03-29 JP JP2012075501A patent/JP2013206222A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05342123A (ja) * | 1992-06-09 | 1993-12-24 | Nec Corp | ネットワークシステムのコマンド転送方式 |
JP2004348748A (ja) * | 1997-01-10 | 2004-12-09 | Sharp Corp | 通信方法および通信システムならびに通信プログラムを記録したコンピュータで読取可能な記録媒体 |
JP2003052092A (ja) * | 2001-08-08 | 2003-02-21 | Matsushita Electric Ind Co Ltd | 機器制御装置および機器制御システム |
JP2005123884A (ja) * | 2003-10-16 | 2005-05-12 | Sharp Corp | 通信装置、コンテンツ再生装置、サービス提供装置、サービス提供システム、コンピュータで実行可能なプログラム、及び記録媒体 |
JP2005267619A (ja) * | 2004-02-16 | 2005-09-29 | Matsushita Electric Ind Co Ltd | 機器管理システム、機器管理方法及び機器管理装置 |
JP2009188681A (ja) * | 2008-02-05 | 2009-08-20 | Canon Inc | 映像表示装置及びその制御方法、並びに映像出力装置及びその制御方法 |
JP2010232715A (ja) * | 2009-03-25 | 2010-10-14 | Nec Corp | サービス検索システム、サービス検索方法およびサービス検索用プログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016122094A (ja) * | 2014-12-25 | 2016-07-07 | ティアック株式会社 | 無線lan機能を備えた録音装置及び録音システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7844611B2 (en) | Time-shift image distribution system, time-shift image distribution method, time-shift image requesting apparatus, and image server | |
US11647132B2 (en) | Communication terminal, method for controlling communication terminal, communication system, and storage medium | |
US9876920B2 (en) | Information processing apparatus, image forming apparatus, non-transitory computer-readable recording medium encoded with remote operation program, and non-transitory computer-readable recording medium encoded with remote control program | |
JP5928455B2 (ja) | ディジタル画像共有化向けディジタルカメラ | |
CN103458189A (zh) | 一种配置拍摄参数的方法、装置及终端设备 | |
WO2016125352A1 (ja) | カメラ装置、撮像システム、制御方法及びプログラム | |
US20150077576A1 (en) | Information processing device, system, and storage medium | |
WO2016038977A1 (ja) | ライブビュー制御装置、ライブビュー制御方法、ライブビューシステム及びプログラム | |
US10567634B2 (en) | Image capturing apparatus, communication apparatus, and control methods thereof | |
JP2014059616A (ja) | 表示制御装置、方法及びプログラム | |
WO2021065406A1 (en) | Imaging apparatus, information processing method, and program | |
JP2009260599A (ja) | 画像表示装置、電子カメラ | |
JP2013206220A (ja) | 電子機器、およびプログラム | |
JP2013206222A (ja) | 電子機器、およびプログラム | |
JP2013206221A (ja) | 電子機器、およびプログラム | |
JP7363479B2 (ja) | プログラムおよび電子機器 | |
JP2019046145A (ja) | システム、撮像装置、情報処理装置、制御方法、及び、プログラム | |
JP2006236381A (ja) | 情報処理装置、情報処理方法および記録媒体 | |
JP2009118389A (ja) | 電子カメラ、画像表示装置 | |
JP2006311573A (ja) | 情報処理装置および画像表示方法 | |
US9247148B2 (en) | Variable-magnification image processing apparatus | |
JP7085651B2 (ja) | 撮像装置の制御装置、撮像装置、撮像装置の制御方法、撮像装置の制御プログラム | |
US11477367B2 (en) | Information processing apparatus, image processing apparatus, and method of controlling the same | |
JP2012155677A (ja) | 情報処理装置、およびカメラ | |
US10216477B2 (en) | Data processing apparatus, method for controlling the same, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160112 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160517 |