(57)【特許請求の範囲】
【請求項１】
通信装置であって、 
情報処理装置からリクエストを受信する受信手段と、 
前記リクエストに対するレスポンスを送信する送信手段と、 
前記情報処理装置から所定のリクエストを受信した場合、前記所定のリクエストに応答せず、前記所定のリクエストを保留リクエストとして管理する管理手段とを有し、 
前記通信装置のステータスが所定の条件を満たした場合、前記送信手段は前記通信装置のステータス情報を前記保留リクエストへのレスポンスとして送信し、 
前記管理手段は、保留リクエストに対するレスポンスを送信する前にもう１つの所定リクエストを受信した場合は、そのもう１つの所定リクエストを新たな保留リクエストとして管理し、その結果、複数の保留リクエストを管理可能であることを特徴とする通信装置。
【請求項２】
前記管理手段により管理可能な保留リクエストの数は、前記通信装置のモードに応じて異なることを特徴とする請求項１に記載の通信装置。
【請求項３】
第１のモードと第２のモードとを含むモードのいずれかに移行する移行手段と、
前記第２のモードで管理される保留リクエストの数は、前記第１のモードで管理される保留リクエストの数よりも多いことを特徴とする請求項１または２に記載の通信装置。
【請求項４】
撮像手段をさらに有し、
前記第１のモードは前記通信装置に記録された画像データを前記情報処理装置に送信するモードであり、前記第２のモードは前記撮像手段による撮像を前記情報処理装置から制御するモードであることを特徴とする請求項３に記載の通信装置。
【請求項５】
前記第２のモードで送信される前記通信装置のステータス情報は、撮影可能枚数を示す情報を含むことを特徴とする請求項４に記載の通信装置。
【請求項６】
前記第２のモードで送信される前記通信装置のステータス情報は、前記通信装置の撮像パラメータを示す情報を含むことを特徴とする請求項４または５に記載の通信装置。
【請求項７】
前記第２のモードに移行した場合、前記受信手段は前記情報処理装置から新たな所定のリクエストを受信し、前記管理手段は前記新たな所定のリクエストを新たな保留リクエストとして管理することを特徴とする請求項３乃至６のいずれか１項に記載の通信装置。
【請求項８】
前記管理手段は、前記第１のモードで受信された所定のリクエストに基づく保留リクエストと、前記第２のモードで受信された所定のリクエストに基づく保留リクエストとを区別して管理する請求項３乃至７のいずれか１項に記載の通信装置。
【請求項９】
前記第１のモードにおいて送信される前記通信装置のステータス情報に含まれるステータスと、前記第２のモードにおいて送信される前記通信装置のステータス情報に含まれるステータスは異なることを特徴とする請求項３乃至８のいずれか１項に記載の通信装置。
【請求項１０】
前記送信手段により前記通信装置のステータス情報を前記保留リクエストへのレスポンスとして送信したことに応じて、前記受信手段は前記情報処理装置から新たな所定のリクエストを受信し、前記管理手段は前記新たな所定のリクエストを新たな保留リクエストとして管理する請求項１乃至９のいずれか１項に記載の通信装置。
【請求項１１】
前記送信手段により前記保留リクエストに対し所定のレスポンスを送信した場合、前記受信手段は前記情報処理装置から新たな所定のリクエストを受信しないことを特徴とする請求項１乃至１０のいずれか１項に記載の通信装置。
【請求項１２】
前記通信装置のステータス情報は、前記通信装置のバッテリ情報を含むことを特徴とする請求項１乃至１１のいずれか１項に記載の通信装置。
【請求項１３】
前記通信装置のステータス情報は、前記通信装置がパワーセーブモードに移行することを示す情報を含むことを特徴とする請求項１乃至１２のいずれか１項に記載の通信装置。
【請求項１４】
前記通信装置のステータス情報は、前記通信装置が前記情報処理装置との通信を終了することを示す情報を含むことを特徴とする請求項１乃至１３のいずれか１項に記載の通信装置。
【請求項１５】
情報処理装置であって、 
通信装置にリクエストを送信する送信手段と、 
前記リクエストに対するレスポンスを前記通信装置から受信する受信手段とを有し、 
前記送信手段は、所定のリクエストを前記通信装置に送信する、
ここで前記所定のリクエストに対するレスポンスは前記通信装置により保留され、前記通信装置のステータス情報を前記通信装置から前記情報処理装置に送信するために用いられる、 
前記送信手段は、既に送信した所定のリクエストに対するレスポンスの受信前に新たな所定のリクエストを送信可能である
ことを特徴とする情報処理装置。
【請求項１６】
前記保留されるレスポンスの数は、前記情報処理装置のモードに応じて異なることを特徴とする請求項１５に記載の情報処理装置。 
【請求項１７】
第１のモードと第２のモードとを含むモードのいずれかに移行する移行手段と、
前記第２のモードで保留されるレスポンスの数は、前記第１のモードで保留されるレスポンスの数よりも多いことを特徴とする請求項１５または１６に記載の情報処理装置。
【請求項１８】
前記通信装置は撮像手段を有し、
前記第１のモードは前記通信装置に記録された画像データを受信するモードであり、前記第２のモードは前記撮像手段による撮像を前記情報処理装置から制御するモードであることを特徴とする請求項１７に記載の情報処理装置。
【請求項１９】
前記第２のモードで送信されるステータス情報は、前記通信装置の撮像可能枚数を示す情報を含むことを特徴とする請求項１８に記載の情報処理装置。
【請求項２０】
前記第２のモードで送信されるステータス情報は、前記通信装置の撮像パラメータを示す情報を含むことを特徴とする請求項１８に記載の情報処理装置。
【請求項２１】
前記第２のモードに移行した場合、前記送信手段は前記通信装置に前記新たな所定のリクエストを送信することを特徴とする請求項１７乃至２０のいずれか１項に記載の情報処理装置。
【請求項２２】
前記第１のモードにおいて受信される前記通信装置のステータス情報に含まれるステータスと、前記第２のモードにおいて受信される前記通信装置のステータス情報に含まれるステータスは異なることを特徴とする請求項１７乃至２１のいずれか１項に記載の情報処理装置。
【請求項２３】
前記受信手段により前記所定のリクエストに対するレスポンスとして前記通信装置のステータス情報を受信した場合、前記送信手段は前記通信装置に新たな前記所定のリクエストを送信することを特徴とする請求項１５乃至２２のいずれか１項に記載の情報処理装置。
【請求項２４】
前記受信手段により前記所定のリクエストに対するレスポンスとして所定のレスポンスを受信した場合、前記送信手段は前記通信装置に新たな所定のリクエストを受信しないことを特徴とする請求項１５乃至２３のいずれか１項に記載の情報処理装置。
【請求項２５】
前記通信装置のステータス情報は、前記通信装置のバッテリ情報を含むことを特徴とする請求項１５乃至２４のいずれか１項に記載の情報処理装置。
【請求項２６】
前記通信装置のステータス情報は、前記通信装置がパワーセーブモードに移行することを示す情報を含むことを特徴とする請求項１５乃至２５のいずれか１項に記載の情報処理装置。
【請求項２７】
前記通信装置のステータス情報は、前記通信装置が前記情報処理装置との通信を終了することを示す情報を含むことを特徴とする請求項１５乃至２６のいずれか１項に記載の情報処理装置。
【請求項２８】
通信装置の制御方法であって、 
情報処理装置からリクエストを受信する受信工程と、 
前記リクエストに対するレスポンスを送信する送信工程と、 
前記情報処理装置から所定のリクエストを受信した場合、前記所定のリクエストに応答せず、前記所定のリクエストを保留リクエストとして管理する管理工程とを有し、 
前記通信装置のステータスが所定の条件を満たした場合、前記送信工程では前記通信装置のステータス情報を前記保留リクエストへのレスポンスとして送信し、
前記管理工程は、保留リクエストに対するレスポンスを送信する前にもう１つの所定リクエストを受信した場合は、そのもう１つの所定リクエストを新たな保留リクエストとして管理し、その結果、複数の保留リクエストを管理可能である
ことを特徴とする通信装置の制御方法。
【請求項２９】
情報処理装置の制御方法であって、 
通信装置にリクエストを送信する送信工程と、 
前記リクエストに対するレスポンスを前記通信装置から受信する受信工程とを有し、 
前記送信工程では、所定のリクエストを前記通信装置に送信する、
ここで前記所定のリクエストに対するレスポンスは前記通信装置により保留され、前記通信装置のステータス情報を前記通信装置から前記情報処理装置に送信するために用いられる、
前記送信工程では、既に送信した所定のリクエストに対するレスポンスの受信前に新たな所定のリクエストを送信可能である
ことを特徴とする情報処理装置の制御方法。
【請求項３０】
コンピュータが読み込み実行することで、前記コンピュータを、請求項１乃至１４のいずれか１項に記載の通信装置が有する手段として機能させるためのプログラムを格納したコンピュータが読み込み可能な記憶媒体。
【請求項３１】
コンピュータが読み込み実行することで、前記コンピュータを、請求項１５乃至２７のいずれか１項に記載の情報処理装置が有する手段として機能させるためのプログラムを格納したコンピュータが読み込み可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信装置及び情報処理装置及びそれらの制御方法、並びに記憶媒体に関するものである。
【背景技術】
【０００２】
デジタルカメラなどの画像処理装置（もしくは撮像装置）の通信機能の進歩に伴い、例えばデジタルカメラとＰＣ、携帯電話などが通信を行い、コンテンツを送受信することができるようになっている。
【０００３】
そして現在では、ＨＴＴＰのようなサーバ・クライアントのシステムを用いて、カメラがサーバ側となってリモート撮影を実現することも可能である（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2013-073506号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
サーバ・クライアントシステムのようなシステムにおいては、サーバから自発的にクライアントに何らかの通知を行うことについては一定の制限があることが多い。この点については、まずクライアントからリクエストを送信し、サーバがその応答の保留状態を維持することにより、必要なタイミングでサーバが自発的にクライアントに通知を行うことが考えられる。
【０００６】
しかしながらリモート撮影などの特定のケースにおいては、通知したい情報の種類やタイミングが種々存在するので、適切な通知の方法を考える必要がある。
【課題を解決するための手段】
【０００７】
この課題を解決するため、例えば本発明の通信装置は以下の構成を備える。すなわち、
通信装置であって、 
情報処理装置からリクエストを受信する受信手段と、 
前記リクエストに対するレスポンスを送信する送信手段と、 
前記情報処理装置から所定のリクエストを受信した場合、前記所定のリクエストに応答せず、前記所定のリクエストを保留リクエストとして管理する管理手段とを有し、 
前記通信装置のステータスが所定の条件を満たした場合、前記送信手段は前記通信装置のステータス情報を前記保留リクエストへのレスポンスとして送信し、 
前記管理手段は、保留リクエストに対するレスポンスを送信する前にもう１つの所定リクエストを受信した場合は、そのもう１つの所定リクエストを新たな保留リクエストとして管理し、その結果、複数の保留リクエストを管理可能であることを特徴とする。
【発明の効果】
【０００８】
本発明の装置によれば、外部装置への自発的な状態通知を適切に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態におけるデジタルカメラのブロック構成、正面、背面を示す図。
【図２】実施形態におけるスマートデバイスの構成を示すブロック図である。
【図３】実施形態におけるデジタルカメラが用意したＡＰＩの一覧を示す図。
【図４】第１の実施形態におけるデジタルカメラとスマートデバイス間の通信シーケンスの一例を示す図。
【図５】実施形態におけるスマートデバイスのユーザインターフェースの画面の推移を示す図。
【図６】実施形態におけるデジタルカメラの処理手順を示すフローチャート。
【図７】実施形態におけるスマートデバイスの処理手順を示すフローチャート。
【図８】第２の実施形態における状態通知要求のＡＰＩを示す図である。
【図９】第２の実施形態におけるデジタルカメラとスマートデバイス間の通信シーケンスの一例を示す図。
【発明を実施するための形態】
【００１０】
以下、添付図面に従って本発明の実施形態を詳細に説明する。なお、以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態を適宜組み合せることも可能である。
【００１１】
［第１の実施形態］
＜デジタルカメラ１００の構成＞
図１（ａ）は、本実施形態が適用する通信装置の一例であるデジタルカメラ１００の構成例を示すブロック図である。なお、ここでは通信装置の一例としてデジタルカメラについて述べるが、通信装置はこれに限られない。例えば通信装置は携帯型のメディアプレーヤや、いわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
【００１２】
制御部１０１は、入力された信号や、後述のプログラムに従ってデジタルカメラ１００の各部を制御する。なお、制御部１０１が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
【００１３】
撮像部１０２は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光（映像）を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）や、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）が利用される。撮像部１０２は、制御部１０１に制御されることにより、撮像部１０２に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行い、デジタルデータとしての画像データを出力する。本実施形態のデジタルカメラ１００の制御部１０１は、画像データを符号化し、ＤＣＦ（Ｄｅｓｉｇｎ  Ｒｕｌｅ  ｆｏｒ  Ｃａｍｅｒａ  Ｆｉｌｅ  ｓｙｓｔｅｍ）の規格に従って、記録媒体１１０にファイルとして記録する。
【００１４】
不揮発メモリ１０３は、電気的に消去・記録可能な不揮発性のメモリであり、制御部１０１で実行される後述のプログラム等が格納される。作業用メモリ１０４は、撮像部１０２で撮像された画像データを一時的に保持するバッファメモリや、表示部１０６の画像表示用メモリ、制御部１０１の作業領域等として使用される。
【００１５】
操作部１０５は、ユーザがデジタルカメラ１００に対する指示をユーザから受け付けるために用いられる。操作部１０５は例えば、ユーザがデジタルカメラ１００の電源のＯＮ／ＯＦＦを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、後述の通信部１１１を介して外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、後述する表示部１０６に形成されるタッチパネルも操作部１０５に含まれる。なお、レリーズスイッチは、押下状態を２段階で検出するために２つのスイッチＳＷ１およびＳＷ２を有する。レリーズスイッチが、いわゆる半押し状態となることにより、ＳＷ１がＯＮとなる。これにより、ＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＡＷＢ（オートホワイトバランス）処理、ＥＦ（フラッシュプリ発光）処理等の撮影準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、ＳＷ２がＯＮとなる。これにより、撮影を行うための指示を受け付ける。
【００１６】
表示部１０６は、撮影の際のビューファインダー画像の表示、撮影した画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部１０６は必ずしもデジタルカメラ１００が内蔵する必要はない。デジタルカメラ１００は内部又は外部の表示部１０６と接続することができ、表示部１０６の表示を制御する表示制御機能を少なくとも有していればよい。なお、操作部１０５及び表示部１０６で、デジタルカメラのユーザインターフェースを構成することになる。
【００１７】
記録媒体１１０は、撮像部１０２から出力された画像データのファイルを記録することができる。記録媒体１１０は、デジタルカメラ１００に着脱可能なよう構成してもよいし、デジタルカメラ１００に内蔵されていてもよい。すなわち、デジタルカメラ１００は少なくとも記録媒体１１０にアクセスする手段を有していればよい。
【００１８】
通信部１１１は、外部装置と接続するためのインターフェイスである。本実施形態のデジタルカメラ１００は、通信部１１１を介して、外部装置とデータのやりとりを行うことができる。例えば、撮像部１０２で生成した画像データを、通信部１１１を介して外部装置に送信することができる。なお、本実施形態では、通信部１１１は外部装置とＩＥＥＥ８０２．１１の規格に従った、いわゆる無線ＬＡＮで通信するためのインターフェイスを含む。制御部１０１は、通信部１１１を制御することで外部装置との無線通信を実現する。なお、通信方式は無線ＬＡＮに限定されるものではなく、例えば赤外線通信方式、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信方式、ＷｉｒｅｌｅｓｓＵＳＢ等の無線通信方式などを含むことができる。さらには、ＵＳＢケーブルやＨＤＭＩ（登録商標）、ＩＥＥＥ１３９４、Ｅｔｈｅｒｎｅｔ（登録商標）など、有線接続を採用してもよい。通信部１１１は第１の無線通信手段の一例である。
【００１９】
近距離通信部１１２は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近距離通信部１１２は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することでＩＳＯ／ＩＥＣ  １８０９２の規格（いわゆるＮＦＣ：Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）に従った近距離通信を実現する。またその他、赤外線通信方式、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信方式、ＷｉｒｅｌｅｓｓＵＳＢ等の無線通信方式などに従った短距離無線通信を実現する。本実施形態の近距離通信部１１２は、デジタルカメラ１００の側部に配され、第２の無線通信手段の一例である。
【００２０】
本実施形態において、デジタルカメラ１００は、後述するスマートデバイス２００と通信部１１１より通信を開始して接続される。また、本実施形態におけるデジタルカメラ１００の通信部１１１は、インフラストラクチャモードにおけるアクセスポイントとして動作するＡＰモードと、インフラストラクチャモードにおけるクライアントとして動作するＣＬモードとを有している。そして、通信部１１１をＣＬモードで動作させることにより、本実施形態におけるデジタルカメラ１００は、インフラストラクチャモードにおけるＣＬ機器として動作することが可能である。デジタルカメラ１００がＣＬ機器として動作する場合、周辺のＡＰ機器に接続することで、ＡＰ機器が形成するネットワークに参加することが可能である。また、通信部１１１をＡＰモードで動作させることにより、本実施形態におけるデジタルカメラ１００は、ＡＰの一種ではあるが、より機能が限定された簡易的なＡＰ（以下、簡易ＡＰ）として動作することも可能である。デジタルカメラ１００が簡易ＡＰとして動作すると、デジタルカメラ１００は自身でネットワークを形成する。デジタルカメラ１００の周辺の装置は、デジタルカメラ１００をＡＰ機器と認識し、デジタルカメラ１００が形成したネットワークに参加することが可能となる。上記のようにデジタルカメラ１００を動作させるためのプログラムは不揮発性メモリ１０３に保持されているものであり、ＡＰモード、ＣＬモードのいずれかをユーザが操作部１０５を操作して選択することになる。
【００２１】
なお、本実施形態におけるデジタルカメラ１００はＡＰの一種であるものの、ＣＬ機器から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない簡易ＡＰである。したがって、自機が形成したネットワークに参加している他の装置からデータを受信しても、それをインターネットなどのネットワークに転送することはできない。
【００２２】
次に、デジタルカメラ１００の外観について説明する。図１（ｂ）、図１（ｃ）はデジタルカメラ１００の外観正面、背面の一例を示す図である。レリーズスイッチ１０５ａや再生ボタン１０５ｂ、方向キー１０５ｃ、タッチパネル１０５ｄは、前述の操作部１０５に含まれる操作部材である。また、表示部１０６には、撮像部１０２による撮像の結果得られた画像や各種メニューが表示される。以上、実施形態におけるデジタルカメラ１００の構成を説明した。
【００２３】
＜スマートデバイス２００の内部構成について＞
図２は、本実施形態のデジタルカメラ１００と通信する情報処理装置の一例であるスマートデバイス２００の構成例を示すブロック図である。なお、スマートデバイスとはスマートフォンやタブレットデバイス等の携帯端末を意味する。また、ここでは情報処理装置の一例としてスマートデバイスについて述べるが、情報処理装置はこれに限られない。例えば情報処理装置は、無線機能付きのデジタルカメラやプリンタ、テレビ、あるいはパーソナルコンピュータなどであってもよい。
【００２４】
制御部２０１は、入力された信号や、後述のプログラムに従ってスマートデバイス２００の各部を制御する。なお、制御部２０１が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
【００２５】
撮像部２０２は、撮像部２０２に含まれるレンズで結像された被写体光を電気信号に変換し、ノイズ低減処理などを行い、デジタルデータを画像データとして出力する。撮像した画像データはバッファメモリに蓄えられた後、制御部２０１にて所定の演算や符号化処理が施され、記録媒体２１０にファイルとして記録される。
【００２６】
不揮発メモリ２０３は、電気的に消去・記録可能な不揮発性のメモリである。不揮発性メモリ２０３には、制御部２０１が実行する基本的なソフトウェアであるＯＳ（オペレーティングシステム）や、このＯＳと協働して応用的な機能を実現するアプリケーションが記録されている。また、本実施形態では、不揮発性メモリ２０３には、デジタルカメラ１００と通信するためのアプリケーション（以下アプリ）が格納されている。
【００２７】
作業用メモリ２０４は、表示部２０６の画像表示用メモリや、制御部２０１の作業領域等として使用される。操作部２０５は、スマートデバイス２００に対する指示をユーザから受け付けるために用いられる。操作部２０５は例えば、ユーザがスマートデバイス２００の電源のＯＮ／ＯＦＦを指示するための電源ボタンや、表示部２０６に形成されるタッチパネルなどの操作部材を含む。表示部２０６は、画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部２０６は必ずしもスマートデバイス２００が備える必要はない。スマートデバイス２００は表示部２０６と接続することができ、表示部２０６の表示を制御する表示制御機能を少なくとも有していればよい。なお、操作部２０５及び表示部２０６で、スマートデバイス２００のユーザインターフェースを構成することになる。
【００２８】
記録媒体２１０は、撮像部２０２から出力された画像データを記録することができる。記録媒体２１０は、スマートデバイス２００に着脱可能なよう構成してもよいし、スマートデバイス２００に内蔵されていてもよい。すなわち、スマートデバイス２００は少なくとも記録媒体２１０にアクセスする手段を有していればよい。
【００２９】
通信部２１１は、外部装置と接続するためのインターフェースである。本実施形態のスマートデバイス２００は、通信部２１１を介して、デジタルカメラ１００とデータのやりとりを行うことができる。本実施形態では、通信部２１１はアンテナであり、制御部２０１は、アンテナを介して、デジタルカメラ１００と接続することができる。なお、デジタルカメラ１００との接続では、直接接続してもよいしアクセスポイントを介して接続してもよい。データを通信するためのプロトコルとしては、例えばＨＴＴＰ（Ｈｙｐｅｒ Ｔｅｘｔ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ）である。その他、無線ＬＡＮを通じたＰＴＰ／ＩＰ（Ｐｉｃｔｕｒｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を用いることもできる。なお、デジタルカメラ１００との通信はこれに限られるものではない。例えば、通信部２１１は、赤外線通信モジュール、Ｂｌｕｅｗｔｏｏｔｈ（登録商標）通信モジュール、ＷｉｒｅｌｅｓｓＵＳＢ等の無線通信モジュールを含むことができる。さらには、ＵＳＢケーブルやＨＤＭＩ（登録商標）、ＩＥＥＥ１３９４、Ｅｔｈｅｒｎｅｔ（登録商標）など、有線接続を採用してもよい。
【００３０】
近距離無線通信部２１２は、他機との非接触近距離通信を実現するための通信ユニットである。近距離無線通信部２１２は、無線通信のためのアンテナと無線信号を処理するための変復調回路や通信コントローラから構成される。近距離無線通信部２１２は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することにより非接触近距離通信を実現する。ここでは、ＩＳＯ／ＩＥＣ  １８０９２の規格（いわゆるＮＦＣ）に従った非接触通信を実現する。近距離線通信部２１２は、他のデバイスからデータ読み出し要求を受けると、不揮発性メモリ２０３に格納されているデータに基づき、応答データを出力する。
【００３１】
公衆網通信部２１３は、公衆無線通信を行う際に用いられるインターフェイスである。スマートデバイス２００は、公衆網通信部２１３を介して、他の機器と通話することができる。この際、制御部２０１はマイク２１４およびスピーカ２１５を介して音声信号の入力と出力を行うことで、通話を実現する。本実施形態では、公衆網通信部２１３はアンテナであり、制御部１０１は、アンテナを介して、公衆網に接続することができる。なお、通信部２１１および公衆網通信部２１３は、一つのアンテナで兼用することも可能である。以上、実施形態におけるスマートデバイス２００を説明した。
【００３２】
＜デジタルカメラを外部装置から制御するＡＰＩの構成について＞
図３は、外部機器からデジタルカメラ１００を制御するためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ Ｐｒｏｇｒａｍｍｉｎｇ Ｉｎｔｅｒｆａｃｅ）を示す図である。このＡＰＩは、実施形態のデジタルカメラ１００を先に説明したＡＰモードとして機能させた場合である。
【００３３】
本実施形態のデジタルカメラ１００は、スマートデバイス２００などの外部機器から制御可能なＡＰＩを公開しているものとする。外部装置の設計者は、公開されたＡＰＩを用いてデジタルカメラ１００に要求を送信するよう実装することにより、デジタルカメラ１００の動作制御や、デジタルカメラ１００からのデバイス情報やコンテンツデータファイルの取得を実現できる。このＡＰＩを通して、実施形態のデジタルカメラ１００は、デジタルカメラ１００の不揮発メモリ１０３に記録されたデバイス情報や、デジタルカメラ１００の記録媒体１１０などに保存されたコンテンツファイルを外部機器へ提供する。コンテンツファイルとは、デジタルカメラ１００が生成して記録媒体１１０や不揮発メモリ１０３に保存するファイルのことであり、本実施形態では、撮像した静止画ファイルや動画ファイルのことを指す。
【００３４】
このＡＰＩは、予め不揮発メモリ１０３に保存されている。制御部１０１は、通信部１１１を介して外部機器との通信が確立すると、ＡＰＩを実行するためのプログラムを作業用メモリ１０４に展開し、外部装置からＡＰＩがリクエストされるのを待つ。制御部１０１が外部機器からＡＰＩがリクエストされたことを検知すると、ＡＰＩの種類に応じて処理を実行し、その結果をレスポンスとして外部機器に返却する。なお、ＡＰＩはデジタルカメラ１００が規定した通信プロトコル上で実行され、外部機器は規定された通信プロトコルを用いてデジタルカメラ１００と通信を行い、ＡＰＩをリクエストする。なお、本実施形態では、ＨＴＴＰ（Ｈｙｐｅｒ Ｔｅｘｔ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ）上で本ＡＰＩが実行されることを想定して説明する。すなわち、デジタルカメラ１０１はＨＴＴＰサーバとして機能する。なお、通信プロトコルは、ＨＴＴＰに限るものではなく、他のプロトコルであっても構わない。また、ＨＴＴＰプロトコル自体は広く利用されているものであるので、ここでの説明は割愛する。ＨＴＴＰにおけるＡＰＩの実行方法については、外部機器がＨＴＴＰリクエストボディにＡＰＩ名と必要な引数をテキストで記述しＧＥＴメソッドもしくはＰＯＳＴメソッドを用いてデジタルカメラ１００に送信すると、ＨＴＴＰレスポンスボディにその結果を付加して外部機器に返却することで実現される。
【００３５】
図３のＡＰＩリスト３００は、前述した仕組みで動作する、実施形態のデジタルカメラ１００が提供するＡＰＩセットを表にしたものである。以下、各ＡＰＩを説明する。
【００３６】
ＡＰＩ３０１は、デジタルカメラ１００の製品情報を取得するためのＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＲｅｑｕｅｓｔＰｒｏｄｕｃｔＩｎｆｏ」のリクエストを引数なしで受信した場合、不揮発性メモリ１０３に格納された、デジタルカメラ１００の製品名、製造者名、ファームウェアバージョン、シリアルナンバーをレスポンスとして構成する。そしてデジタルカメラ１００は、その構成した情報を要求元の外部機器に送信する。なお、製品名とは、デジタルカメラ１００の製品名称である。製造者名とはデジタルカメラ１００のメーカー名称である。ファームウェアバージョンとは、不揮発メモリ１０３に保存されたデジタルカメラ１００を制御するためのプログラムのバージョン番号である。シリアルナンバーとは、デジタルカメラ１００の個体識別が可能な一意の番号である。
【００３７】
ＡＰＩ３０２は、デジタルカメラ１００の保存領域の情報を取得するＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＲｅｑｕｅｓｔＭｅｍｏｒｙＩｎｆｏ」のリクエストを引数なしで受信した場合、デジタルカメラ１００の保存領域ＩＤ、保存可能容量、空き容量、保存済みのコンテンツファイル数をレスポンスとして構成する。そして、デジタルカメラ１００は、その構成したレスポンスを要求元の外部機器に送信する。複数のメモリカードが装着されている場合など、保存領域が複数存在する場合は、保存領域毎に上記の各項目が送信される。なお、保存領域ＩＤとは、デジタルカメラ１００で生成されるコンテンツファイルが保存可能な領域にそれぞれ割り振られたＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）である。例えば、デジタルカメラ１００の記録媒体１１０に割り振られる。保存可能容量とは、コンテンツファイルが保存できる保存領域の保存可能上限サイズである。空き容量とは、保存領域のうち、コンテンツファイルが保存されていない領域のサイズである。保存済みのコンテンツ数とは、保存領域に保存されているコンテンツファイルの総数のことである。
【００３８】
ＡＰＩ３０３は、デジタルカメラ１００の保存領域に保存されているコンテンツＩＤとコンテンツファイルの基本情報を取得するＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＲｅｑｕｅｓｔＣｏｎｔｅｎｔＩｎｆｏ」のリクエストと共に、引数として、ＡＰＩ３０２で取得した保存領域ＩＤ、コンテンツフォーマットの種類、取得要求数を受信した場合、デジタルカメラ１００の保存領域に保存されているコンテンツファイル毎のコンテンツＩＤ、ファイル名、ファイルサイズ、ファイル生成日時を取得し、要求元の外部機器に送信する。なお、コンテンツＩＤとは、コンテンツファイルを個々に識別するために割り振られたＩＤである。また、本実施形態における本ＡＰＩは、作業用メモリ１０４のサイズによっては一度に取得できるコンテンツファイルの情報に上限値が設定されている。よって、記録媒体１１０などに保存されているコンテンツファイルの数が本ＡＰＩの上限値を超える場合には、繰り返しＡＰＩをリクエストする必要がある。
【００３９】
ＡＰＩ３０４は、デジタルカメラ１００の保存領域に保存されているコンテンツファイルを取得するＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＲｅｑｕｅｓｔＣｏｎｅｎｔ」のリクエストと共に、引数としてコンテンツＩＤとコンテンツサイズを受信すると、該当するコンテンツファイルを要求元の外部機器に送信する。なお、コンテンツサイズでは、コンテンツファイルをオリジナルのサイズで取得するのか、もしくは縮小したサイズで取得するのかを選択することができる。デジタルカメラ１００は指定されたサイズに従ったコンテンツファイルを生成し外部装置へレスポンスとして送信することになる。本実施形態では、例えば静止画ファイルをオリジナルのサイズで取得するのか、サムネイルサイズで取得するのかが指定できる。従って、サイズとしては、数値ではなく、オリジナル、サムネイルを識別する文字列も利用できる。
【００４０】
ＡＰＩ３０５は、スマートデバイス２００からデジタルカメラ１００を遠隔操作して撮影を行うリモート撮影モードにデジタルカメラ１００を遷移させるＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＳｔａｒｔＣａｐｔｕｒｅＭｏｄｅ」のリクエストを引数なしで受信した場合、デジタルカメラ１００を撮影行為が可能な状態に遷移し、状態遷移の成功の是非を表すレスポンスを、要求元の外部装置へ送信する。
【００４１】
ＡＰＩ３０６は、デジタルカメラ１００の状態や撮影設定値の情報を取得するＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＲｅｑｕｅｓｔＣａｐｔｕｒｅＶａｌｕｅ」のリクエストを引数なしで受信した場合、デジタルカメラ１００のバッテリー状態（バッテリ情報）、撮像可能枚数、ズーム位置、撮影パラメータ（（Ａｖ値、Ｔｖ値、ＩＳＯ値など撮像パラメータ）をレスポンスとして、要求元の外部装置へ送信する。なお、上記の送信する情報は一例であり、必要に応じてデジタルカメラ１００の様々な情報を送信しても構わない。
【００４２】
ＡＰＩ３０７は、撮影時に表示部１０６に表示するスルー画を取得するＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＲｅｑｕｅｓｔＴｈｒｏｕｇｈＣｏｎｔｅｎｔ」のリクエストと共に、引数としてスルー画サイズを引数として指定することで、スルー画を取得し、要求元の外部機器に送信する。スルー画サイズでは、スルー画データをどのサイズで取得するのかを指定することができ、デジタルカメラ１００は指定されたサイズに従ったスルー画データを生成し外部装置へレスポンスとして送信する。
【００４３】
ＡＰＩ３０８は、撮影を行うＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＥｘｅｃｕｔｅＣａｐｔｕｒｅ」のリクエストを引数なしで受信した場合、撮像部１０２を制御して撮影処理を実行する。そして、デジタルカメラ１００は、その撮影が完了し、画像ファイルが記録媒体１１０に保存された後、撮影によって生成されたコンテンツＩＤ、コンテンツファイル名、コンテンツファイルサイズ、コンテンツファイル生成日時をレスポンスとして、要求元の外部機器に送信する。従って、要求元は、受信したコンテンツＩＤを含む、RequestContentのＡＰＩを利用することで、デジタルカメラ１００に撮影要求した結果の画像を取得できる。
【００４４】
ＡＰＩ３０９は、スマートデバイス２００からデジタルカメラ１００を遠隔操作して撮影を行うリモート撮影モードを終了するＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＥｎｄＣａｐｔｕｒｅＭｏｄｅ」を引数なしで受信した場合、リモート撮影モードを終了し、状態遷移の成功の是非をレスポンスとして要求元の外部機器に送信する。
【００４５】
ＡＰＩ３１０は、デジタルカメラ１００にて状態が変化した際に、その変化した情報を取得する状態通知要求のＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＲｅｑｕｅｓｔＥｖｅｎｔ」を引数なしで受信した場合、ＡＰＩ３０６で取得可能な情報の一部もしくはすべてを取得し、要求元の外部機器に送信する。ただし、実施形態におけるデジタルカメラ１００は、このＡＰＩ３１０のリクエストに対しては、すぐさまレスポンスせず、デジタルカメラ１００の一部の状態が変化するまで待ち、変化したことを検知した場合に、変化した情報のみをレスポンスとして要求元の外部機器に送信する。
【００４６】
以上、実施形態におけるＡＰＩを説明した。上記は、主要なＡＰＩの一例であり、上記以外の様々なデジタルカメラ１００の制御方法のＡＰＩを提供しても構わない。また、デジタルカメラ１００は、上記ＡＰＩリクエストに対する応答を送信するとき、要求されたリクエストを特定すると共に、その返値（もしあれば）を要求元に送信するものとする。応答形式は、『Ｒｅｓｐｏｎｓｅ（ＡＰＩリクエスト名、返値）』とする。例えば、デジタルカメラ１００が、外部装置から、ＲｅｑｕｅｓｔＰｒｏｄｕｃｔＩｎｆｏのリクエストを受信し、それに対して応答する場合は、『Ｒｅｓｐｏｎｓｅ（ＲｅｑｕｅｓｔＰｒｏｄｕｃｔＩｎｆｏ，返値）』として、要求元に応答する。なお、どのＡＰＩに対する応答であるかを、要求元に通知できれば良いので、上記例で発明が限定されるものではない。
【００４７】
＜スマートデバイスがデジタルカメラの状態情報を取得するシーケンスについて＞
実施形態では、スマートデバイス２００とデジタルカメラ１００とがネットワーク（実施形態では無線ＬＡＮ）を介して画像処理システムを構成する。以下、その画像処理システムにおける、スマートデバイス２００が、コンテンツ一覧表示やリモート撮影してコンテンツファイルを取得する手順、更には、デジタルカメラ１００の状態情報を取得する方法について図４、図５を用いて説明する。
【００４８】
なお、デジタルカメラ１００の制御部１０１は、操作部１０５から簡易ＡＰモード（初期状態ではＨＴＴＰプロトコルを利用するファイルサーバモード）に移行済みであるものとする。
【００４９】
図４はスマートデバイス２００とデジタルカメラ１００の通信シーケンスの例を示している。具体的には、スマートデバイス２００がデジタルカメラ１００の記録媒体１１０に保存されたコンテンツファイルを取得し、その一覧をスマートデバイスの表示部２０６に表示し、その後、リモート撮影モードに遷移し、リモート撮影するまでの処理シーケンスである。図５は、スマートデバイス２００上で動作するプログラムが表示部２０６に表示するユーザインターフェイス（ＵＩ）を示す図である。
【００５０】
なお、本実施形態におけるコンテンツファイルは、画像ファイルを例に説明する。また、以下の説明では、例えば、『スマートデバイス２００がデジタルカメラ１００に対し、ＡＰＩ３０１の「ＲｅｑｕｅｓｔＰｒｏｄｕｃｔＩｎｆｏ」を送信する』ことを、簡易にするため、『スマートデバイス２００がＲｅｑｕｅｓｔＰｒｏｄｕｃｔＩｎｆｏ３０１をデジタルカメラにリクエストする』と表現する。
【００５１】
まず、Ｓ４０１において、デジタルカメラ１００とスマートデバイス２００は無線ローカルエリアネットワーク（ＬＡＮ）接続を確立する。ここでは、デジタルカメラ１００が、ユーザの操作によって、簡易ＡＰを起動してコネクションを確立する場合の処理を説明する。
【００５２】
デジタルカメラ１００の制御部１０１は、無線ＬＡＮ接続するために必要なＳＳＩＤ（Ｓｅｒｖｉｃｅ  Ｓｅｔ  Ｉｄｅｎｔｉｆｉｅｒ）と暗号化キーを生成した後、ＳＳＩＤと暗号化キーを用いて簡易ＡＰを起動し、通信部１１１により無線ＬＡＮネットワークを生成する。このとき、デジタルカメラ１００は、表示部１０６に、ＳＳＩＤ、暗号キー等のデジタルカメラ１００が提供している簡易ＡＰに接続するための情報を表示する。なお、ＳＳＩＤとは、ＩＥＥＥ８０２．１１シリーズの無線ＬＡＮにおけるアクセスポイントの識別子であり、混信を避けるために付けられる名前である。暗号化キーとは、ＳＳＩＤに不正アクセスされないよう無線ＬＡＮの暗号化を行うためのキーである。次に、制御部１０１は、ＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）サーバを起動し、簡易ＡＰが生成するネットワークに参加した機器に対してＩＰアドレスが割り振れるよう準備する。
【００５３】
一方、スマートデバイス２００の制御部２０１は、ユーザ操作によって、通信部２１１を介して、無線ＬＡＮネットワークに接続する処理を開始すると、周囲のＡＰをサーチする処理を行い、その結果、得られたＳＳＩＤの一覧を表示部２０６に表示される。ユーザは、操作部２０５を操作して、表示部２０６に表示されたＳＳＩＤ一覧中の、デジタルカメラ１００の表示部１０６に表示された簡易ＡＰのＳＳＩＤと一致するものを選択し、暗号化キーを入力する。この結果、スマートデバイス２００の制御部２０１は、デジタルカメラ１００が生成した簡易ＡＰのネットワークへの参加を開始する。なお、スマートデバイス２００は、過去に接続した経験のあるＳＳＩＤと暗号化キーを記憶しておき、ユーザが選択したＳＳＩＤが、記憶された中にある場合には、対応して記憶された暗号化キーを、暗号キー入力欄にデフォルトとして表示するようにし、ユーザがＯＫボタンを押下（もしくはタッチ）するだけで良いようにしても構わない。上記の結果、デジタルカメラ１００からスマートデバイス２００にＩＰアドレスが割り振られ、スマートデバイス２００の無線ＬＡＮへの接続が完了する。なお、ここではデジタルカメラ１００はＤＨＣＰサーバも兼ねる例を説明したが、ルータが構築するローカルネットワークにデジタルカメラ１００とスマートデバイス２００がそれぞれ接続する形態も考えられる。
【００５４】
次に、Ｓ４０２において、スマートデバイス２００がディスカバリ処理を行う。そして、デジタルカメラ１００とスマートデバイス２００が互いの存在や提供するサービスを認識する。また、スマートデバイス２００は、無線ＬＡＮを介してデジタルカメラ１００が提供するＡＰＩを使用して通信するための準備を行う。なお、ディスカバリで用いられるプロトコルは、例えば、ＳＳＤＰ（Ｓｉｎｇｌｅ Ｓｅｒｖｉｃｅ Ｄｉｓｃｏｖｅｒｙ Ｐｒｏｔｏｃｏｌ）やＭａｌｔｉｃａｓｔ ＤＮＳなどがある。またＳＳＤＰやＭａｌｔｉｃａｓｔ ＤＮＳについては公知のプロトコルであるため説明は割愛する。
【００５５】
ディスカバリ処理の一例を説明すると、デジタルカメラ１００の制御部１０１は、自らが生成したネットワークに対してアドバタイズ通知を送信し、自身の存在をスマートデバイス２００に通知する。スマートデバイス２００の制御部２０１は、デジタルカメラ１００からのアドバタイズ通知を受信すると、デジタルカメラ１００の機器情報が記載されたデバイスディスクリプションをデジタルカメラ１００から取得し、ＡＰＩサービスを提供しているか否かを判定する。制御部２０１は、デジタルカメラ１００がＡＰＩサービスを提供していると判断した場合、不揮発メモリ２０３よりＡＰＩを使用してデジタルカメラ１００から画像ファイルを取得するためのプログラムを作業用メモリ２０４に展開し、実行する。
【００５６】
次に、Ｓ４０３において、制御部２０１は、通信部２１１を介してＲｅｑｕｅｓｔＥｖｅｎｔ３１０をデジタルカメラ１００にリクエストする。制御部１０１は、デジタルカメラ１００がスマートデバイス２００との通信を開始してから、このＲｅｑｕｅｓｔＥｖｅｎｔ３１０を最初に受信した場合には、このリクエストに対して未応答の回数として初期値１を、作業用メモリ１０４に格納する。そして、デジタルカメラ１００の状態が変更された場合に、それを検知する処理（スレッド）を開始する。なお、詳細は後述する説明から明らかになるが、受信したＲｅｑｕｅｓｔＥｖｅｎｔ３１０が２回目以降の場合、制御部１０１は、状態の変更検知処理を既に開始しているので、未応答の回数を１増やす処理を行う。また、状態の変更が検知した場合に、その変更内容をスマートデバイス２００に通知した場合、未応答回数を１減じる処理を行う。つまり、未応答回数が１以上である限り、制御部１０１は状態変更を検知した場合に、その通知処理を行う。このように未応答回数を保持することにより、デジタルカメラ１００は保留している応答（保留リクエスト）を管理することができる。同様にスマートデバイス２００でも、応答を受信していないリクエストの数を保持することにより、保留されている応答を管理可能になる。
【００５７】
次に、Ｓ４０４において、制御部２０１は、通信部２１１を介してＲｅｑｕｅｓｔＰｒｏｄｕｃｔＩｎｆｏ３０１のリクエストをデジタルカメラ１００に送信する。Ｓ４０５にて、制御部１０１が通信部１１１を介して、このリクエストを受信したことを検知すると、製品名、製造者名、ファームウェアバージョン、シリアルナンバーを不揮発メモリ１０３より取得し、レスポンス用データセットを成形する。そして、制御部１０１は形成したデータセットを、通信部１１１を介してスマートデバイス２００に送信する。
【００５８】
次に、Ｓ４０６において、制御部２０１は、通信部２１１を介してＲｅｑｕｅｓｔＭｅｍｏｒｙＩｎｆｏ３０２のリクエストをデジタルカメラ１００に送信する。Ｓ４０７において、制御部１０１は、通信部１１１を介してこのリクエストを受信したことを検知すると、保存領域ＩＤ、保存可能容量、空き容量、保存済みコンテンツ数を作業用メモリ１０４や記録媒体１１０より取得してレスポンス用データセットを成形する。そして、制御部１０１は形成したデータセットを通信部１１１を介してスマートデバイス２００に送信する。
【００５９】
次に、Ｓ４０８において、制御部２０１は、デジタルカメラ１００の基本的な情報を取得すると、図５（ａ）の画面を表示部２０６に表示する。画面では、「カメラ内の画像を見る」、「リモート撮影する」、「カメラの設定をする」といった機能ボタン５０１乃至５０３が用意されており、操作部２０５を介してユーザ指示により前記機能が選択されることで、個々の機能が実施される。また、この画面によれば、この段階で、デジタルカメラ１００のバッテリー残量は７５％、記録媒体１１０の空き容量が１．５ＧＢであることも表示される。ここでは、「カメラ内の画像を見る」のボタン５０１が選択された場合のシーケンスについて説明する。また、デジタルカメラ１００の記録媒体１１０には既に１００枚の画像ファイルが保存されているものとする。
【００６０】
次に、Ｓ４０９において、ユーザ操作により操作部２０５を介して「カメラ内の画像を見る」を示すボタン５０１が選択されるとする。この場合、Ｓ４０９において、制御部２０１は、通信部２１１を介して、保存領域ＩＤとコンテンツフォーマットの種類と取得要求枚数を指定してＲｅｑｕｅｓｔＣｏｎｔｅｎｔＩｎｆｏ３０３のリクエストをデジタルカメラ１００に送信する。本実施形態では、本領域ＩＤには記録媒体１１０を示すＩＤ、コンテンツフォーマットの種類には画像の種類（ＪＰＥＧ、ＭＯＶ、ＭＰ４など）を設定する。また、取得要求枚数には、ＲｅｑｕｅｓｔＭｅｍｏｒｙＩｎｆｏ３０２で取得した保存済みコンテンツ数である１００枚を引数として指定する。なお、スマートデバイス２００が要求する取得要求枚数として、記録媒体１１０に保存されたすべての画像を指定してもよいし、スマートデバイス２００が表示部２０６に一度に表示できる画像数のみを指定してもよい。
【００６１】
Ｓ４１０において、制御部１０１は、通信部１１１を介して、このリクエストを受信したことを検知すると、リクエストの引数を確認し、指定された保存領域ＩＤに保存されている画像の種類を指定された数分の画像情報を取得する。ここで制御部１０１は、作業用メモリ１０４に一時保存された画像ファイルの管理情報、または記録媒体１１０に保存された画像ファイルの管理情報を記録したファイル、または記憶媒体１１０のファイルシステムに従って画像ファイルのファイルエントリの情報を参照する。そして、制御部１０１は、画像ファイルの画像ＩＤ、画像ファイル名、画像ファイルサイズ、画像ファイルの生成日時を取得する。そして、制御部１０１は、取得したこれらの情報を、作業用メモリ１０４に一時保存する。また、制御部１０１は、要求数である１００枚の画像情報をリストにして作業用メモリ１０４に保存し終えた後、画像ファイルの生成日時を参照し、画像ファイルの生成日時が新しい方から古い方へ降順になるよう作業用メモリ１０４に一時保存した画像情報を並べ替える。そして、制御部１０１は、この作業用メモリ１０４に一時保存した画像情報リストを示すリスポンス用データセットを成形し、その形成したデータセットを通信部１１１を介してスマートデバイス２００に送信する。
【００６２】
制御部２０１は、Ｓ４１１のレスポンスによって取得した画像情報リストを参照し、ＲｅｑｕｅｓｔＣｏｎｔｅｎｔ３０４のリクエストを送信する。このとき、制御部２０１は、コンテンツＩＤに取得した画像情報リストの画像ＩＤ、コンテンツサイズとしてサムネイル画像を取得するためのパラメータを引数として指定する。
【００６３】
制御部１０１は、通信部１１１を介して、このリクエストを受信したことを検知すると、その引数を参照し、該当する画像ＩＤに対応した画像ファイルを記録媒体１１０より取得する。指定された画像サイズが画像ファイルに内包されている場合はその部分のみを抽出して作業用メモリ１０４に保存し、もしない場合には指定された画像サイズに加工して作業用メモリ１０４に保存する。そして、制御部１０１は、保存された画像ファイルからレスポンス用データセットを成形して、通信部１１１を介してスマートデバイス２００に送信する。
【００６４】
なお、スマートデバイス２００は、上記処理を画像枚数分である１００回繰り返すことで、すべての表示用サムネイル画像を取得する。この時、前記画像情報リストの順番に従ってＲｅｑｕｅｓｔＣｏｎｔｅｎｔ３０４のリクエストを送信することで、スマートデバイス２００内で所望の表示順に並べ替えることなく生成日時が新しい順に画像ファイルを取得できる。なお、本実施形態では、記録媒体１１０に保存されたすべての画像ファイルのサムネイルを取得したが、スマートデバイス２００が表示部２０６に一度に表示できるサムネイル数分のみ上記の処理を繰り返してもよい。この場合、次画面の表示指示入力があった場合、上記処理に後続する表示用サムネイル画像の取得処理を行うことになる。
【００６５】
さて、制御部２０１は、デジタルカメラ１００からサムネイル画像を取得すると、図５（ｂ）に示す画面のように、表示部２０６に画像（サムネイル）を並べて表示する。なお、５０３はデジタルカメラ１００の状態を示す情報であり、５０４は画像ファイルのサムネイル表示領域である。以上でコンテンツ一覧表示が実行される。
【００６６】
Ｓ４１１において、制御部２０１は、トップ画面表示指示を検知すると、Ｓ４１２において、図５（ａ）の画面を表示部２０６に表示する。
【００６７】
Ｓ４１３において、制御部２０１はユーザ操作によってリモート撮影モードの開始指示を検知すると、Ｓ４１４において、ＳｔａｒｔＣａｐｔｕｒｅＭｏｄｅ３０５のリクエストをデジタルカメラ１００に送信する。Ｓ４１５において、制御部１０１は、通信部１１１を介して、このリクエストを受信したことを検知すると、デジタルカメラ１００を撮影が実行できる状態に遷移させる。具体的には、光学レンズユニットや撮像素子を含む撮像部１０２などの制御を行い、いわゆるライブビュー画像の撮影を開始する。デジタルカメラ１００の設定によっては、この段階で露出制御なども行う。処理が正常に完了すると、その結果からレスポンス用データセットを成形して、通信部１１１を介してスマートデバイス２００に送信する。
【００６８】
Ｓ４１６において、制御部２０１は、ＲｅｑｕｅｓｔＣａｐｔｕｒｅＶａｌｕｅ３０６のリクエストをデジタルカメラ１００に送信する。Ｓ４１７において、制御部１０１は、通信部１１１を介して、このリクエストを受信したことを検知したとする。この場合、制御部１０１は、デジタルカメラ１００のバッテリー状態、撮影可能枚数、ズーム位置、撮影パラメータ（Ａｖ値、Ｔｖ値、ＩＳＯ値など）をレスポンス用データセットとして形成する。なお、レスポンス用データセットに含める情報は一例であり、必要に応じてデジタルカメラ１００の様々な情報を含めても良い。制御部１０１は、形成したレスポンス用データセットを、通信部１１１を介してスマートデバイス２００に送信する。
【００６９】
Ｓ４１８において、制御部２０１は、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストをデジタルカメラ１００に送信する。すなわち、制御部２０１は、Ｓ４０３に要求したＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストに対する応答の有無とは無関係に、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストをデジタルカメラ１００に送信する。これは、リモート撮影モードにおける撮影設定に関わる情報（撮影可能枚数、ズーム位置、撮影パラメータ（Ａｖ値、Ｔｖ値、ＩＳＯ値など））が変化に備えたものである。Ｓ４０３に要求したＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストとは別に、Ｓ４１８でＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストを送信するのは以下の理由による。本実施形態では、後述するようにＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストに対する応答があると、制御部２０１は、再度ＲｅｑｕｅｓｔＥｖｅｎｔ３１０を送信し、イベントの応答待ち状態（保留セッション）を作り出すようにしている。しかしながら一度ＲｅｑｕｅｓｔＥｖｅｎｔ３１０に応答した後に再度保留セッションを作るためには一定の時間が必要となる。そのため、保留セッションが１つしかない場合には、例えばバッテリー状態を通知した直後に撮影設定に関わる情報が変化した場合、保留セッションの再生成まで撮影設定に関わる情報を通知することができない。そこで本実施形態では、リモート撮影モードではＳ４０３に要求したＲｅｑｕｅｓｔＥｖｅｎｔ３１０とは別にＲｅｑｕｅｓｔＥｖｅｎｔ３１０を送信することで、２つの保留セッションを維持し、リアルタイムに撮影設定に関わる情報を取得できるようにした。制御部１０１は通信部２１１を介して、このリクエストを受信したことを検知すると、このリクエストが２回目であるので、未応答の回数を“１”増加する。
【００７０】
Ｓ４１９において、制御部２０１は表示部２０６に図５（ｃ）の画面を表示する。この画面は、撮影して画像を表示する領域を有し、更に、以下に説明する符号５０５乃至５０８を有する。符号５０５は、デジタルカメラ１００のバッテリー残量を示すＵＩであり、符号５０６は、本モードで撮影が可能な残り撮影枚数を表示するＵＩであり、符号５０７はレリーズスイッチであり、符号５０８は撮影設定を変更するためのＵＩである。
【００７１】
Ｓ４２０において、制御部２０１は、ＲｅｑｕｅｓｔＴｈｒｏｕｇｈＣｏｎｔｅｎｔ３０７のリクエストをデジタルカメラ１００に送信する。Ｓ４２１において、制御部１０１は、通信部１１１を介して、このリクエストを受信したことを検知したとする。この場合、制御部１０１は、撮像部１０２より現在の映像データからスルー画像（撮像部１０２が本来有している解像度よりも低い画像）を生成し、レスポンス用データセットを成形する。そして、制御部１０１は、形成したデータセットを、通信部１１１を介してスマートデバイス２００に送信する。なお、Ｓ４２０、Ｓ４２１で示される処理は、リモート撮影モードが終了するまで繰り返し実行する。この結果、スマートデバイス２００の表示部２０６には、図５（ｃ）の画面のように、デジタルカメラ１００の撮像部１０２による撮像中の実質的にリアルタイムのスルー画像の表示が継続することになる。
【００７２】
Ｓ４２２において、制御部２０１は、ユーザからレリーズスイッチ５０７の操作を検出すると、ＥｘｅｃｕｔｅＣａｐｔｕｒｅ３０８のリクエストをデジタルカメラ１００に送信する。Ｓ４２３において、制御部１０１は、通信部１１１を介して、このリクエストを受信したことを検知したとする。この場合、制御部１０１は、撮像部１０２を制御し撮影を実行する。そして、制御部１０１は、撮影処理で得られた画像を符号化して画像ファイル（撮像部１０２が本来有している解像度もしくはそれに準じた高解像度の画像のファイル）を、記憶媒体１１０に保存する。そして、その保存処理を終えると、制御部１０１は、Ｓ４２４において、制御部１０１は、コンテンツＩＤ、コンテンツファイル名、コンテンツファイルサイズ、コンテンツファイルの生成日時からレスポンス用データセットを成形する。そして、制御部１０１は、形成したデータセットを、通信部１１１を介してスマートデバイス２００に送信する。
【００７３】
Ｓ４２５において、制御部１０１は、撮影が実行され撮影可能枚数が変化したことでデジタルカメラ１００の状態が変化したことを通知するため、Ｓ４０３のリクエストに対してレスポンスを返却する。この場合、残り撮影可能枚数をレスポンス用データセットに成形して、通信部１１１を介してスマートデバイス２００に送信する。また、この結果、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０に対する応答を行ったことになるので、未応答回数を“１”だけ減じる。この段階で未応答回数、つまり保留セッションは１となる。なお、リモート撮影モードで通知できるのは撮影可能枚数に限定されない。例えばＳ４１７で送信されたズーム位置や撮影パラメータが変化した場合に、Ｓ４０３のリクエストに対するレスポンスとして変化後の値を送信してもよい。
【００７４】
Ｓ４２６において、制御部２０１は、図５（ｃ）の画面の表示領域５０６の表示を更新する。Ｓ４２７において、制御部２０１は、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストをデジタルカメラ１００に送信する。これは、デジタルカメラ１００の状態通知用ＡＰＩの処理が１つ完了したため、再び状態監視を複数実行する状態にするために実行される。この段階で、未応答回数、すなわち、保留セッションは２に戻る。
【００７５】
Ｓ４２８において、制御部２０１は、ユーザ操作によってリモート撮影モードの終了を指示したことを検知すると、Ｓ４２９において、ＥｎｄＣａｐｔｕｒｅＭｏｄｅ３０９のリクエストをデジタルカメラ１００に送信する。Ｓ４３０において、制御部１０１は、通信部１１１を介して、このリクエストを受信したことを検知すると、鏡筒を沈胴させるなどして撮影モードを終了する。処理が正常に完了すると、その結果からレスポンス用データセットを成形して、通信部１１１を介してスマートデバイス２００に送信する。
【００７６】
Ｓ４３１において、制御部１０１は、リモート撮影モードでＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストに対するレスポンスを送信する。これは、リモート撮影モードが終了したことで、リソースを消費する不必要なリクエスト処理を終了させるためである。この際のレスポンスの内容は空、もしくは「終了」を示す値を入力しておく。制御部２０１はこのレスポンスの内容を参照することにより、再度ＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストを送信しないようにする。この段階で未応答回数、つまり保留セッションは１となり、この残り１つの保留セッションはバッテリー状態などの通知に用いられる。
【００７７】
Ｓ４３２において、制御部２０１は表示部２０６に図５（ａ）を表示する。次に、Ｓ４３３において、制御部１０１は、デジタルカメラ１００のバッテリー状態が変化したことを検知すると、Ｓ４３４において、バッテリー残量からレスポンス用データセットを成形して、通信部１１１を介してスマートデバイス２００に送信する。このとき、未応答回数を“１”だけ減じる。この段階で未応答回数、つまり保留セッションはゼロとなる。なお、Ｓ４３２で通知できるのはバッテリーに関する情報に限定されない。例えばデジタルカメラ１００がパワーセーブモードに移行することを示す情報を送信してもよい。また、例えばデジタルカメラ１００がデジタルカメラ１００のユーザによる操作やタイムアウトなどでスマートデバイスとの通信を切断することを示す情報を送信してもよい。
【００７８】
Ｓ４３５において、制御部２０１は、図５（ａ）の画面の情報５０３のバッテリー情報の表示を更新する。ちなみに、リモート撮影モード中にバッテリー情報が更新される場合には、ＵＩ５０５の表示が更新される。
【００７９】
Ｓ４３６において、制御部２０１は、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストをデジタルカメラ１０１に送信する。これは、再度デジタルカメラ１００の状態情報を取得するためである。この段階で未応答回数、つまり保留セッションは１となる。
【００８０】
Ｓ４３７において、制御部２０１はユーザ指示によってプログラムの終了指示を検知すると、Ｓ４３８において、デジタルカメラ１００との通信を終了する。
【００８１】
Ｓ４３９において、制御部１０１は、通信部１１１を介して通信の終了を検知すると、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストのレスポンスを送信する。この際のレスポンスの内容は空、もしくは「終了」を示す値を入力しておく。
【００８２】
Ｓ４４０において、デジタルカメラ１００とスマートデバイス２００の通信の切断処理が完了する。
【００８３】
以上が、スマートデバイス２００がデジタルカメラ１００と接続して、コンテンツ一覧表示やリモート撮影してコンテンツファイルを取得する際に、デジタルカメラ１００の状態情報を取得する方法の一例である。
【００８４】
＜デジタルカメラ１００のフローチャートについて＞
デジタルカメラ１００の処理の流れについて説明する。図６（ａ）は、デジタルカメラ１００のＡＰＩサービスの処理の流れを示したフローチャートである。
【００８５】
まず、Ｓ６０１において、制御部１０１は、デジタルカメラ１００とスマートデバイス２００は無線ローカルエリアネットワーク（ＬＡＮ）接続を確立する。本処理はＳ４０１で説明したデジタルカメラ１００の処理と同様であるため説明は割愛する。
【００８６】
次に、Ｓ６０２において、制御部１０１は、ディスカバリを行い、デジタルカメラ１００とスマートデバイス２００が互いの存在や提供するサービスを認識し、無線ＬＡＮを介してデジタルカメラ１００が提供するＡＰＩを使用して通信するための準備を行う。本処理は、Ｓ４０２で説明したデジタルカメラ１００の処理と同様であるため説明は割愛する。
【００８７】
次に、Ｓ６０３において、制御部１０１は、通信部１１１を介してＡＰＩのリクエストを受信したか否かを検知する。もし、検知した場合はＳ６０４に進む。そうでない場合は処理を繰り返す。
【００８８】
次に、Ｓ６０４において、制御部１０１は、受信したＡＰＩがＲｅｑｕｅｓｔＥｖｅｎｔ３１０などのデジタルカメラ１００の状態変更を通知するＡＰＩか否かを検知する。そうである場合はＳ６０５に進む。そうでない場合はＳ６０６に進む。
【００８９】
次に、Ｓ６０５において、制御部１０１は、デジタルカメラ１００の状態を監視する処理を開始し、未応答の回数を初期値として１をセットする。ただし、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０を再度受信した場合には、状態監視処理は既に開始済みであるので、未応答の回数を“１”増加させる処理を行う。
【００９０】
図６（ｂ）のＳ６０５１〜Ｓ６０５５は、Ｓ６０５にて状態監視処理が開始された後のフローである。Ｓ６０５１において、制御部１０１は、デジタルカメラ１００の状態が変更したか否かを検知する。そうである場合はＳ６０５２へ進む。そうでない場合は、Ｓ６０５４へ進む。Ｓ６０５２において、制御部１０１は、デジタルカメラ１００の変更された情報を取得する。そして、Ｓ６０５３において、制御部１０１は、変更された情報を表すレスポンス用データセットに成形し、通信部１１１を介してスマートデバイス２００に送信する。このとき、応答が１つ済んだことになるので、制御部１０１は、その未応答の回数から“１”を減じる処理を行う。なお、未応答の回数が“０”の場合、本処理が応答処理は行わないが、後述するようにスマートデバイス２００は状態変化のレスポンスを受信しては、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０をデジタルカメラ１００に要求するので、図６（ｂ）の処理は基本的に継続することになる。
【００９１】
また、Ｓ６０５４において、制御部１０１は、デジタルカメラ１００がリモート撮影モードであるか否かを検知する。そうである場合はＳ６０５１に戻る。そうでない場合は、Ｓ６０５５に進む。Ｓ６０５５において、制御部１０１は、リモート撮影モード用ＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストに対するレスポンスを送信する。本ステップはＳ４３１の処理と同様であるため説明は割愛する。
【００９２】
図６（ａ）の説明に戻る。Ｓ６０６において、制御部１０１は、各々のＡＰＩに与えられた機能を実行する。次に、Ｓ６０７において、制御部１０１は、Ｓ６０６の処理によって取得したデジタルカメラ１００へのレスポンスの情報を所定のデータ形式に成形して、スマートデバイス２００に送信する。
【００９３】
次に、Ｓ６０８において、制御部１０１は、ＡＰＩサービスを終了する指示があるか否かを判定する。ＡＰＩサービスを終了すると検知した場合には、ＡＰＩサービスを実行するためのプログラムを終了する。そうでない場合には、Ｓ６０３に戻り、次のＡＰＩのリクエストの受信を待つ。次に、Ｓ６０９において、制御部１０１は、通信部１１１を介して通信の終了を検知すると、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストのレスポンスを送信する。本ステップは、Ｓ４３９と同様である。
【００９４】
以上が、デジタルカメラ１００のＡＰＩサービスの処理の流れを示したフローチャートである。
【００９５】
＜スマートデバイス２００のフローチャートについて＞
次に、コンテンツ一覧表示やリモート撮影してコンテンツファイルを取得する際に、デジタルカメラ１００の状態情報を取得する際のスマートデバイス２００の処理の流れについて説明する。
【００９６】
図７（ａ）は、スマートデバイス２００にて実行されるアプリケーションの処理の流れを示したフローチャートである。
【００９７】
まず、Ｓ７０１において、制御部２０１は、デジタルカメラ１００とスマートデバイス２００は無線ローカルエリアネットワーク（ＬＡＮ）接続を確立する。本処理はＳ４０１で説明したスマートデバイス２００の処理と同様であるため説明は割愛する。
【００９８】
次に、Ｓ７０２において、制御部２０１は、ディスカバリを行い、デジタルカメラ１００とスマートデバイス２００が互いの存在や提供するサービスを認識し、無線ＬＡＮを介してデジタルカメラ１００が提供するＡＰＩを使用して通信するための準備を行う。本処理は、Ｓ４０２で説明したスマートデバイス２００の処理と同様であるため説明は割愛する。
【００９９】
次に、Ｓ７０３において、制御部２０１は、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストをデジタルカメラ１００に送信する。本処理は、Ｓ４０３で説明した処理と同様であるため説明は割愛する。
【０１００】
図７（ｃ）のＳ７２５〜Ｓ７２８は、Ｓ７０３にて状態監視処理が開始された後のフローである。Ｓ７２５において、制御部２０１は、レスポンスを受信したか否かを検知する。そうである場合はＳ７２６へ進む。そうでない場合は、レスポンス受信するまで処理を繰り返す。Ｓ７２６において、制御部２０１は、受信したレスポンスデータを解析し、デジタルカメラ１００の変更情報を取得する。Ｓ７２７において、制御部２０１は、画面の表示を更新する。本処理は、Ｓ４２６、Ｓ４３５と同様であるため説明は割愛する。Ｓ７２８において、制御部２０１は、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０のリクエストをデジタルカメラ１００に送信する。この結果、状態変化の応答を受信した場合、次の状態変化があった場合の通知を受けることが約束され、状態変化の監視を継続させることができる。本処理は図４のＳ４２７、Ｓ４３６と同様であるため説明は割愛する。
【０１０１】
次に、Ｓ７０４において、制御部２０１は、ＲｅｑｕｅｓｔＰｒｏｄｕｃｔＩｎｆｏ３０１のリクエストをデジタルカメラ１００に送信する。本処理は、Ｓ４１０で説明した処理と同様であるため説明は割愛する。次に、Ｓ７０５において、制御部２０１は、リクエストしたＡＰＩのレスポンスを待つ。
【０１０２】
レスポンスを待つ処理の詳細は、図７（ｂ）のフローチャートに示す通りである。まず、Ｓ７２１にて制御部２０１は、ＡＰＩのレスポンスが受信したか否かを検知する。もし受信した場合にはＳ７２２に進む。そうでない場合にはＳ７２３に進む。Ｓ７２２において、制御部２０１は、受信したレスポンスを解析する。受信したレスポンスは必要に応じて作業用メモリ２０４に保存し、処理の判定材料、またはＵＩ画面表示時の表示物として使用する。もし、エラー情報がレスポンスとして返却された場合には、ＡＰＩの再リクエスト、もしくはプログラムを終了する。Ｓ７２３において、制御部２０１は、タイムアップの時間が過ぎたか否かを検知する。スマートデバイス２００のプログラムは、予めレスポンスを待つ時間を設定しており、デジタルカメラ１００よりレスポンスが返却されず設定した時間を超えた場合は、Ｓ７２４に進む。そうでない場合は、Ｓ７２１に戻りレスポンスの受信を待つ。なお、図７（ｂ）のＳ７２１〜Ｓ７２４は、すべてのＡＰＩのレスポンスを待つ行為に対して同様の処理を行う。
【０１０３】
次に、Ｓ７０６において、制御部２０１は、ＲｅｑｕｅｓｔＭｅｍｏｒｙＩｎｆｏ３０２のリクエストをデジタルカメラ１００に送信する。本処理は、Ｓ４１０で説明した処理と同様であるため説明は割愛する。次に、Ｓ７０７において、制御部２０１は、リクエストしたＡＰＩのレスポンスを待つ。本処理はＳ７０５で説明した処理と同様である。
【０１０４】
次に、Ｓ７０８において、制御部２０１は、表示部２０６に図５（ａ）の画面を表示する。本処理はＳ４１１で説明した処理と同様であるため説明は割愛する。次に、Ｓ７０９において、制御部２０１は、ユーザ操作によってプログラムの終了が指示されたか否かを検知する。そうである場合は処理を終了する。そうでない場合はＳ７１０進む。次に、Ｓ７１０において、制御部２０１は、ユーザ操作によってリモート撮影モードの選択が指示されたか否かを検知する。そうである場合はＳ７１１へ進む。そうでない場合は、リモート撮影モードが選択されるまで待つ。
【０１０５】
次に、Ｓ７１１において、制御部２０１は、ＳｔａｒｔＣａｐｔｕｒｅＶａｌｕｅ３０５のリクエストをデジタルカメラ１００に送信する。本処理は、Ｓ４１４で説明した処理と同様であるため説明は割愛する。次に、Ｓ７１２において、制御部２０１は、リクエストしたＡＰＩのレスポンスを待つ。本ステップはＳ７０５と同様である。次に、Ｓ７１３において、制御部２０１は、ＲｅｑｅｕｅｓｔＥｖｅｎｔ３１０のリクエストをデジタルカメラ１００に送信する。本処理は、Ｓ４１８で説明した処理と同様であるため説明は割愛する。
【０１０６】
次に、Ｓ７１４において、制御部２０１は、ＲｅｑｕｅｓｔＴｈｒｏｕｇｈＣｏｎｔｅｎｔ３０７をデジタルカメラ１００に送信する。本処理は、Ｓ４２０で説明した処理と同様であるため説明は割愛する。次に、Ｓ７１５において、制御部２０１は、Ｓ４２２〜Ｓ４２７の処理を行う。次に、Ｓ７１６において、制御部２０１は、ユーザ操作によりリモート撮影モードの終了が指示されたか否かを検知する。そうである場合は、Ｓ７１７へ進む。そうでない場合は、リモート撮影を継続して行う。
【０１０７】
次に、Ｓ７１７において、制御部２０１は、ＥｎｄＣａｐｔｕｒｅＭｏｄｅ３０９のリクエストをデジタルカメラ１００に送信する。本処理はＳ４２９と同様であるため説明は割愛する。次に、Ｓ７１８において、制御部２０１は、リクエストしたＡＰＩのレスポンスを待つ。本ステップはＳ７０５と同様である。本ステップの後、Ｓ７０８に戻り図５（ａ）の画面をトップ画面として表示部２０６に表示する。
【０１０８】
以上が、コンテンツ一覧表示やリモート撮影してコンテンツファイルを取得する際に、デジタルカメラ１００の状態情報を取得する際のスマートデバイス２００の処理の流れである。
【０１０９】
以上説明したように、本第１の実施形態におけるデジタルカメラ１００は、外部機器（実施形態の場合にはスマートデバイス２００）から、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０の要求を受信した場合には、直ちに応答するのではなく、実際に状態変更があった場合に備えて、その応答を保留セッションとして追加していく（実施形態では、未応答の回数を増加していくことで対処している）。そして、デジタルカメラ１００は、状態変更があった場合には、その状態変更内容を要求元にレスポンスし、保留セッションを消化していく。この結果、外部機器にとっては、上記のような手順で、ＲｅｑｕｅｓｔＥｖｅｎｔ３１０を発行することで、デジタルカメラの全体の状態変化、並びに、リモートカメラに特化した状態変化を、少ないセッションで継続して監視できるようになる。すなわち、状態通知を受信することを維持するのに、多数のセッションを張る必要が無くなる。
【０１１０】
［第２の実施形態］
上記の第１の実施形態では、デジタルカメラ１００の状態取得用ＡＰＩが１種類とした例を説明したが、用途に応じて用意されている形態も考えられる。そこで、本第２の実施形態では、デジタルカメラ１００の動作モードごとに、状態取得ＡＰＩを有する例を説明する。
【０１１１】
＜デジタルカメラを外部装置から制御するＡＰＩの構成について＞
図８は、第２の実施形態における、外部機器からデジタルカメラ１００を制御するためのＡＰＩ３００のうち、ＲｅｑｕｅｓｔＥｖｅｎｔの別の形態について説明した図である。
【０１１２】
ＡＰＩ８０１は、デジタルカメラ１００の状態のうち、コンテンツ一覧表示、及びリモート撮影全てのモードにおいて変更された情報を取得するＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＲｅｑｕｅｓｔＣａｍｅｒａＥｖｅｎｔ」のリクエストを引数なしで受信した場合、ＡＰＩ８０１で取得可能な情報の一部もしくはすべてを取得する。なお、デジタルカメラ１００は、このＡＰＩ８０１のリクエストに対してすぐさまレスポンスを返却しない。デジタルカメラ１００の一部の状態が変化するまで待ち、変化したことを検知すると、変化した情報のみをレスポンスとして返却する。例えば、本実施形態では、バッテリー情報を取得するためのＡＰＩである。
【０１１３】
ＡＰＩ８０２は、デジタルカメラ１００の状態のうち、リモート撮影モードでのみ使用する情報が変更された情報を取得するＡＰＩである。デジタルカメラ１００は、ＡＰＩ名の「ＲｅｑｕｅｓｔＣａｐｔｕｒｅＥｖｅｎｔ」のリクエストを引数なしで受信した場合、ＡＰＩ８０１で取得可能な情報の一部もしくはすべてを取得する。なお、デジタルカメラ１００は、このＡＰＩのリクエストに対して、すぐさまレスポンスを返却しない。デジタルカメラ１００の一部の状態が変化するまで待ち、変化したことを検知すると、変化した情報のみをレスポンスとして返却する。例えば、本実施形態では、残り撮影枚数や撮影パラメータなどである。
【０１１４】
なお、デジタルカメラ１００は、上記ＡＰＩ８０１，８０２のリクエストを受信した場合、それぞれの状態検出＆応答に係る処理を開始する。ただし、１つの状態検出処理で、ＡＰＩ８０１、８０２の要求を受けたか否かを示すフラグを設け、そのフラグが１であった場合に該当する状態変更の有無、有った場合に応答処理を行うようにしても良い。また、以上で説明したＡＰＩは一例であり、その他様々なデジタルカメラ１００の制御方法が提供されていてもよい。
【０１１５】
＜スマートデバイスがデジタルカメラの状態情報を取得するシーケンスについて＞
スマートデバイス２００がデジタルカメラ１００と接続して、コンテンツ一覧表示やリモート撮影してコンテンツファイルを取得する際に、デジタルカメラ１００の状態情報を取得する方法について図９，図５を用いて説明する。
【０１１６】
基本的なシーケンスは図４で説明したシーケンスと同様である。ここでは、差分点のみ説明する。Ｓ９０１乃至Ｓ９４０と、Ｓ４０１乃至４４０は互いに対応するものである。そして、そのうち、Ｓ９０３、Ｓ９１８，Ｓ９２５，Ｓ９２７、Ｓ９３１、Ｓ９３４、Ｓ９３６，Ｓ９３９が若干異なる。それ故、以下では、これら異なるステップについて説明する。
【０１１７】
通信確立した初期段階のＳ９０３において、スマートデバイス２００の制御部２０１は、通信部２１１を介してＲｅｑｕｅｓｔＣａｍｅｒａＥｖｅｎｔ８０１のリクエストをデジタルカメラ１００に送信する。デジタルカメラ１００の制御部１０１は通信部１１１を介して、このリクエストを受信したことを検知すると、デジタルカメラ１００の状態が変更されたことを検知する処理を開始する。このＡＰＩではバッテリー情報が更新された場合にレスポンスを送信する。
【０１１８】
Ｓ９１８において、制御部２０１は、ＲｅｑｕｅｓｔＣａｐｔｕｒｅＥｖｅｎｔ８０２のリクエストをデジタルカメラ１００に送信する。このＡＰＩでは、リモート撮影モードで撮影設定に関わる情報（撮影可能枚数、ズーム位置、撮影パラメータ（Ａｖ値、Ｔｖ値、ＩＳＯ値など））が変更された場合にレスポンスを送信する。制御部１０１は通信部１１１を介して前記リクエストを受信したことを検知すると、デジタルカメラ１００の状態が変更されたことを検知する処理を開始する。
【０１１９】
Ｓ９２５において、制御部１０１は、デジタルカメラ１００の状態が変化したことを通知するため、Ｓ９１８のリクエストに対してレスポンスを返却する。この場合、撮影が実行され撮影可能枚数が変化したため、残り撮影可能枚数からレスポンス用データセットを成形して、通信部１１１を介してスマートデバイス２００に送信する。
【０１２０】
Ｓ９２７において、制御部２０１は、ＲｅｑｕｅｓｔＣａｐｔｕｒｅＥｖｅｎｔ８０２のリクエストをデジタルカメラ１００に送信する。これは、デジタルカメラ１００の撮影設定に関わる情報通知処理が１つ完了したため、状態監視を再度実行するためにリクエストする。
【０１２１】
Ｓ９３１において、制御部１０１は、リモート撮影モードでＲｅｑｕｅｓｔＣａｐｔｕｒｅＥｖｅｎｔ８０２のリクエストのレスポンスを送信する。これは、リモート撮影モードが終了したことで、不必要なリクエスト処理を終了させるためである。
【０１２２】
Ｓ９３４において、制御部１０１が、デジタルカメラ１００のバッテリー状態が変化したことを検知すると、Ｓ９０３のＲｅｑｕｅｓｔＣａｍｅｒａＥｖｅｎｔ８０１に対して、バッテリー情報からレスポンス用データセットを成形して、通信部１１１を介してスマートデバイス２００に送信する。
【０１２３】
Ｓ９３６において、制御部２０１は、リモート撮影モードでＲｅｑｕｅｓｔＣａｍｅｒａＥｖｅｎｔ８０１のリクエストのレスポンスを送信する。これは、再度デジタルカメラ１００の状態情報を取得するためである。Ｓ９３９において、制御部１０１は、通信部１１１を介して通信の終了を検知すると、ＲｅｑｕｅｓｔＣａｍｅｒａＥｖｅｎｔ８０１のリクエストのレスポンスを送信する。
【０１２４】
以上が、本第２の実施形態における、スマートデバイス２００がデジタルカメラ１００と接続して、コンテンツファイルを取得する方法の一例である。
【０１２５】
なお、上記第２の実施形態では、状態取得ＡＰＩとして、「ＲｅｑｕｅｓｔＣａｍｅｒａＥｖｅｎｔ」、「ＲｅｑｕｅｓｔＣａｐｔｕｒｅＥｖｅｎｔ」の２種類とした。そして、「ＲｅｑｕｅｓｔＣａｍｅｒａＥｖｅｎｔ」は全モード共通とし、「ＲｅｑｕｅｓｔＣａｐｔｕｒｅＥｖｅｎｔ」はデジタルカメラの撮影項目変更に限った状態変更取得するものとした。デジタルカメラ１００の動作モードとして、上記以外の動作モードが存在する場合には、該当するモードに特化した状態変更情報を取得するＡＰＩを新設すれば良い。ただし、デジタルカメラ１００のごとく、バッテリーで駆動する装置の場合には、そのバッテリー残量変化は全モードに影響を与えるので、上記の通り、全モード共通の状態変更取得ＡＰＩは用意することが望まれる。
【０１２６】
上記第２の実施形態によれば、外部機器としては、デジタルカメラ１００の各動作モードごとに、状態変更の通知を１つだけ予約することで、各モードにおける状態変更通知のレスポンスを受信することが約束されることになる。
【０１２７】
［他の実施形態］
上述の実施形態では、デジタルカメラ１００がRequestEvent３１０、RequestCameraEvent８０１やRequestCaptureEvent８０２のリクエストを受信した場合、１つの状態変更について検知したことをトリガーとして１つの状態変更の内容をレスポンスとして送信する形態を例示した。しかし、同じタイミングで複数の状態変更を検知した場合は、複数の状態変更の内容をレスポンスとして送信する形態であってもよい。
【０１２８】
例えば、Ｓ４２５の直前にバッテリー状態に変化があった場合は、撮影可能枚数とバッテリー残量の情報の２つをＳ４２５のレスポンスとして送信してもよい。
【０１２９】
また、上述の実施例では、リモート撮影モード用にリクエストしたRequestEvent３１０、RequestCaptureEvent８０２のリクエストに対して、リモート撮影に関わるデジタルカメラ１００の状態変更が検知されると即座にレスポンスを送信する形態を例示した。しかし、撮影設定に関しては、１つの設定値の変更に影響されて自動的に変更される設定値が存在する。例えば、デジタルカメラ１００の撮像センサーの制約にて、Ｔｖ値を変更してシャッタースピードを遅くするとＩＳＯ値の設定可能範囲が制限され、ＩＳＯ値が自動的に変更される。リモート撮影モードにてＡｖ値が変更された場合には、Ａｖ値、ＩＳＯ値両方の設定変更処理が完了するのを待ってから、Ａｖ値、ＩＳＯ値の変更情報をレスポンスとして送信する形態であってもよい。
【０１３０】
また、上述の実施形態ではデジタルカメラ１００及びスマートデバイス２００のモードとしてコンテンツ一覧表示モードとリモート撮影モードを例に説明したが、他のモードについて本発明を適用することも可能である。例えばリモート撮影モードにおいて、動画撮影モードの場合は録音を行う必要がある。したがって、録音に関するステータス情報を通知するための追加のＲｅｑｕｅｓｔＥｖｅｎｔを送信してもよい。また、外部ストロボやＧＰＳユニット、通信カードなど、アクセサリを用いて撮影を行う場合、アクセサリに関するステータス情報を通知するための追加のＲｅｑｕｅｓｔＥｖｅｎｔを送信してもよい。
【０１３１】
本実施形態では、少なくとも撮像装置の全体的な状態変化と、リモートカメラとして機能した場合の状態変化を、より少ないセッション数で知ることができる。
【０１３２】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。また、上述の実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線／無線通信を用いてプログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのプログラムを実行する場合も本発明に含む。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムを供給するための記録媒体としては、例えば、ハードディスク、磁気テープ等の磁気記録媒体、光／光磁気記憶媒体、不揮発性の半導体メモリでもよい。また、プログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムを記憶し、接続のあったクライアントコンピュータはがコンピュータプログラムをダウンロードしてプログラムするような方法も考えられる。
【符号の説明】
【０１３３】
１００…デジタルカメラ、１０１…制御部、１０２…撮像部、１０３…不揮発性メモリ、１０３…作業用メモリ、１０５…操作部、１０６…表示部、１１０…記録媒体、１１１…通信部、１１２…近距離通信部、２００…スマートデバイス、２０１…制御部、２０２…撮像部、２０３…不揮発性メモリ、２０４…作業用メモリ、２０５…操作部、２０６…表示部、２１０…記録媒体、２１１…通信部、２１２…近距離通信部、２１３…公衆網通信部、２１４…マイク、２１５…スピーカ
【図１】
0006603513.tif 000002
【図２】
0006603513.tif 000003
【図３】
0006603513.tif 000004
【図４】
0006603513.tif 000005
【図５】
0006603513.tif 000006
【図６】
0006603513.tif 000007
【図７】
0006603513.tif 000008
【図８】
0006603513.tif 000009
【図９】
0006603513.tif 000010