(58)【調査した分野】(Int.Cl.,DB名)
前記第2の応答手段は、前記第2の要求手段による要求を受信した場合、情報の転送を中断するUIを表示する第2の表示手段を含み、前記UIが操作された場合、前記所定の状態になったとして応答する
ことを特徴とする請求項1乃至4のいずれか1項に記載の通信システム。
【発明を実施するための形態】
【0009】
以下、添付図面に従って本発明の実施形態を詳細に説明する。なお、以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態を適宜組み合せることも可能である。
【0010】
[第1の実施形態]
<デジタルカメラ100の構成>
図1(a)は、本実施形態が適用する通信システムのメンバであるデジタルカメラ100の構成例を示すブロック図である。なお、ここでは通信装置の一例として画像データを記録媒体に記録可能なデジタルカメラについて述べるが、通信装置はこれに限られない。例えば通信装置は携帯型のメディアプレーヤや、いわゆるタブレットデバイス、パーソナルコンピュータ、種々の設備に接続または組み込まれた情報処理装置などであってもよい。また、取り扱うデータも画像データに限定されず、音声データ、文書データなどであってもよい。
【0011】
制御部101は、入力された信号や、後述のプログラムに従ってデジタルカメラ100の各部を制御する。なお、制御部101が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
【0012】
撮像部102は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光(映像)を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、CMOS(Complementary Metal Oxide Semiconductor)や、CCD(Charge Coupled Device)が利用される。撮像部102は、制御部101に制御されることにより、撮像部102に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行いデジタルデータを画像データとして出力する。本実施形態のデジタルカメラ100の制御部101は、撮像した画像データを符号化し、DCF(Design Rule for Camera File system)の規格に従って、記録媒体110にファイルとして記録する。
【0013】
不揮発メモリ103は、電気的に消去・記録可能な不揮発性のメモリであり、制御部101で実行される後述のプログラムや設定に係る各種データ等が格納される。作業用メモリ104は、撮像部102で撮像された画像データを一時的に保持するバッファメモリや、表示部106の画像表示用メモリ、制御部101の作業領域等として使用される。
【0014】
操作部105は、ユーザがデジタルカメラ100に対する指示をユーザから受け付けるために用いられる。操作部105は例えば、ユーザがデジタルカメラ100の電源のON/OFFを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、後述の通信部111を介して外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、後述する表示部106に形成されるタッチパネルも操作部105に含まれる。なお、レリーズスイッチは、押下状態を2段階で検出するためにSW1およびSW2を有する。レリーズスイッチが、いわゆる半押し状態となることにより、SW1がONとなる。これにより、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の撮影準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、SW2がONとなる。これにより、撮影を行うための指示を受け付ける。
【0015】
表示部106は、撮影の際のビューファインダー画像の表示、撮影した画像データの表示、対話的な操作のための各種メニューや文字表示などを行う。なお、表示部106は必ずしもデジタルカメラ100が内蔵する必要はない。デジタルカメラ100は内部又は外部の表示部106と接続することができ、表示部106の表示を制御する表示制御機能を少なくとも有していればよい。なお、操作部105及び表示部106で、デジタルカメラのユーザインターフェースを構成することになる。
【0016】
記録媒体110は、撮像部102から出力された画像データのファイルを記録することができる。記録媒体110は、デジタルカメラ100に着脱可能なよう構成してもよいし、デジタルカメラ100に内蔵されていてもよい。すなわち、デジタルカメラ100は少なくとも記録媒体110にアクセスする手段を有していればよい。
【0017】
通信部111は、外部装置と接続するためのインターフェイスである。本実施形態のデジタルカメラ100は、通信部111を介して、外部装置とデータのやりとりを行うことができる。例えば、撮像部102で生成した画像データを、通信部111を介して外部装置に送信することができる。なお、本実施形態では、通信部111は外部装置とIEEE802.11の規格に従った、いわゆる無線LANで通信するためのインターフェイスを含む。制御部101は、通信部111を制御することで外部装置との無線通信を実現する。なお、通信方式は無線LANに限定されるものではなく、例えば赤外線通信方式、Bluewtooth(登録商標)通信方式、WirelessUSB等の無線通信方式などを含むことができる。さらには、USBケーブルやHDMI、IEEE1394、Ethernetなど、有線接続を採用してもよい。通信部111は第1の無線通信手段の一例である。
【0018】
近距離通信部112は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近距離通信部112は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することでISO/IEC 18092の規格(いわゆるNFC:Near Field Communication)に従った近距離通信を実現する。またその他、赤外線通信方式、Bluewtooth(登録商標)通信方式、WirelessUSB等の無線通信方式などに従った短距離無線通信を実現する。本実施形態の近距離通信部112は、デジタルカメラ100の側部に配され、第2の無線通信手段の一例である。
【0019】
本実施形態におけるデジタルカメラ100は、後述するスマートデバイス200と、通信部より通信を開始して接続される。また、本実施形態におけるデジタルカメラ100の通信部111は、インフラストラクチャモードにおけるアクセスポイントとして動作するAPモードと、インフラストラクチャモードにおけるクライアントとして動作するCLモードとを有している。そして、通信部111をCLモードで動作させることにより、本実施形態におけるデジタルカメラ100は、インフラストラクチャモードにおけるCL機器として動作することが可能である。デジタルカメラ100がCL機器として動作する場合、周辺のAP機器に接続することで、AP機器が形成するネットワークに参加することが可能である。また、通信部111をAPモードで動作させることにより、本実施形態におけるデジタルカメラ100は、APの一種ではあるが、より機能が限定された簡易的なAP(以下、簡易AP)として動作することも可能である。デジタルカメラ100が簡易APとして動作すると、デジタルカメラ100は自身でネットワークを形成する。デジタルカメラ100の周辺の装置は、デジタルカメラ100をAP機器と認識し、デジタルカメラ100が形成したネットワークに参加することが可能となる。上記のようにデジタルカメラ100を動作させるためのプログラムは不揮発性メモリ103に保持されているものであり、APモード、CLモードをユーザが操作部105を操作して選択することになる。
【0020】
なお、本実施形態におけるデジタルカメラ100はAPの一種であるものの、CL機器から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない簡易APである。したがって、自機が形成したネットワークに参加している他の装置からデータを受信しても、それをインターネットなどのネットワークに転送することはできない。
【0021】
<デジタルカメラ100の外観>
次に、デジタルカメラ100の外観について説明する。
図1(b)、
図1(c)はデジタルカメラ100の外観正面、背面の一例を示す図である。レリーズスイッチ105aや再生ボタン105b、方向キー105c、タッチパネル105dは、前述の操作部105に含まれる操作部材である。また、表示部106には、撮像部102による撮像の結果得られた画像が表示される。以上、実施形態におけるデジタルカメラ100の構成を説明した。
【0022】
<スマートデバイス200の内部構成について>
図2は、本実施形態のデジタルカメラ100と通信する情報処理装置(端末装置)の一例であるスマートデバイス200の構成例を示すブロック図である。なお、スマートデバイスとはスマートフォンやタブレットデバイス等の携帯端末を意味する。また、ここでは情報処理装置の一例としてスマートデバイスについて述べるが、情報処理装置はこれに限られない。例えば情報処理装置は、無線機能付きのデジタルカメラやプリンタ、テレビ、あるいはパーソナルコンピュータなどであってもよい。
【0023】
制御部201は、入力された信号や、後述のプログラムに従ってスマートデバイス200の各部を制御する。なお、制御部201が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
【0024】
撮像部202は、撮像部202に含まれるレンズで結像された被写体光を電気信号に変換し、ノイズ低減処理などを行い、デジタルデータを画像データとして出力する。撮像した画像データはバッファメモリに蓄えられた後、制御部201にて所定の演算や符号化処理が施され、記録媒体210にファイルとして記録される。
【0025】
不揮発メモリ203は、電気的に消去・記録可能な不揮発性のメモリである。不揮発性メモリ203には、制御部201が実行する基本的なソフトウェアであるOS(オペレーティングシステム)や、このOSと協働して応用的な機能を実現するアプリケーションが記録されている。また、本実施形態では、不揮発性メモリ203には、デジタルカメラ100と通信するためのアプリケーション(以下アプリ)が格納されている。
【0026】
作業用メモリ204は、表示部206の画像表示用メモリや、制御部201の作業領域等として使用される。操作部205は、スマートデバイス200に対する指示をユーザから受け付けるために用いられる。操作部205は例えば、ユーザがスマートデバイス200の電源のON/OFFを指示するための電源ボタンや、表示部206に形成されるタッチパネルなどの操作部材を含む。表示部206は、画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部206は必ずしもスマートデバイス200が備える必要はない。スマートデバイス200は表示部206と接続することができ、表示部206の表示を制御する表示制御機能を少なくとも有していればよい。なお、操作部205及び表示部206で、スマートデバイス200のユーザインターフェースを構成することになる。
【0027】
記録媒体210は、撮像部202から出力された画像データを記録することができる。記録媒体210は、スマートデバイス200に着脱可能なよう構成してもよいし、スマートデバイス200に内蔵されていてもよい。すなわち、スマートデバイス200は少なくとも記録媒体210にアクセスする手段を有していればよい。
【0028】
通信部211は、外部装置と接続するためのインターフェイスである。実施形態における通信部211は、IEEE802.11の規格に従った、いわゆる無線LANで通信するためのインターフェイスを含む。本実施形態のスマートデバイス200は、通信部211を介して、デジタルカメラ100とデータのやりとりを行うことができる。本実施形態では、通信部211はアンテナであり、制御部101は、アンテナを介して、デジタルカメラ100と接続することができる。なお、デジタルカメラ100との接続では、直接接続してもよいしアクセスポイントを介して接続してもよい。データを通信するためのプロトコルとしては、例えばHTTP(Hyper Text Transfer Protocol)である。その他、無線LANを通じたPTP/IP(Picture Transfer Protocol over Internet Protocol)を用いることもできる。なお、デジタルカメラ100との通信はこれに限られるものではない。例えば、通信部211は、赤外線通信モジュール、Bluewtooth(登録商標)通信モジュール、WirelessUSB等の無線通信モジュールを含むことができる。さらには、USBケーブルやHDMI、IEEE1394、Ethernetなど、有線接続を採用してもよい。
【0029】
近距離無線通信部212は、他機との非接触近距離通信を実現するための通信ユニットである。近距離無線通信部212は、無線通信のためのアンテナと無線信号を処理するための変復調回路や通信コントローラから構成される。近距離無線通信部212は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することにより非接触近距離通信を実現する。ここでは、ISO/IEC 18092の規格(いわゆるNFC)に従った非接触通信を実現する。近距離線通信部212は、他のデバイスからデータ読み出し要求を受けると、不揮発性メモリ203に格納されているデータに基づき、応答データを出力する。
【0030】
公衆網通信部213は、公衆無線通信を行う際に用いられるインターフェイスである。スマートデバイス200は、公衆網通信部213を介して、他の機器と通話することができる。この際、制御部201はマイク214およびスピーカ215を介して音声信号の入力と出力を行うことで、通話を実現する。本実施形態では、公衆網通信部213はアンテナであり、制御部101は、アンテナを介して、公衆網に接続することができる。なお、通信部211および公衆網通信部213は、一つのアンテナで兼用することも可能である。以上、実施形態におけるスマートデバイス200を説明した。
【0031】
<デジタルカメラを外部装置から制御するAPIの構成について>
図3は、外部機器からデジタルカメラ100(サーバ)を制御するためのAPI(Application Programming Interface)を示す図である。このAPIは、実施形態のデジタルカメラ100を先に説明したAPモードとして機能させた場合である。
【0032】
デジタルカメラ100は、スマートデバイス200などの外部機器から制御可能なAPIを公開している。このAPIを通して、実施形態のデジタルカメラ100は、デジタルカメラ100の不揮発メモリ103に記録されたデバイス情報や、デジタルカメラ100の記録媒体110などに保存されたコンテンツファイルを外部機器へ提供する。コンテンツファイルとは、デジタルカメラ100が生成して記録媒体110や不揮発メモリ103に保存するファイルのことであり、本実施形態では、撮像した静止画ファイルや動画ファイルのことを指す。
【0033】
このAPIは、予め不揮発メモリ103に保存されている。制御部101は、通信部111を介して外部機器(実施形態でのスマートデバイス200)との通信が確立すると、APIを実行するためのプログラムを作業用メモリ104に展開し、外部装置からAPIがリクエストされるのを待つ。制御部101が外部機器からAPIがリクエストされたことを検知すると、APIの種類に応じて処理を実行し、その結果をレスポンスとして外部機器に返却する。なお、APIはデジタルカメラ100が規定した通信プロトコル上で実行され、外部機器は規定された通信プロトコルを用いてデジタルカメラ100と通信を行い、APIをリクエストする。また、本実施形態では、HTTP(Hyper Text Transfer Protocol)上で本APIが実行されることを想定して説明する。すなわち、デジタルカメラ101がHTTPサーバとして機能し、スマートデバイス200がHTTPクライアントとして機能する。なお、通信プロトコルは、HTTPに限るものではなく、他のプロトコルであっても構わない。また、HTTPプロトコル自体は広く利用されているものであるので、ここでの説明は割愛する。HTTPにおけるAPIの実行方法については、外部機器がHTTPリクエストボディにAPI名と必要な引数をテキストで記述しGETメソッドもしくはPOSTメソッドを用いてデジタルカメラ100に送信すると、HTTPレスポンスボディにその結果を付加して外部機器に返却することで実現される。
【0034】
図3のAPIリスト300は、前述した仕組みで動作する、実施形態のデジタルカメラ100が提供するAPIセットを表にしたものである。以下、各APIを説明する。
【0035】
API301は、デジタルカメラ100の製品情報を取得するためのAPIである。デジタルカメラ100は、API名の「RequestProductInfo」のリクエストを引数なしで受信した場合、不揮発性メモリ103に格納された、デジタルカメラ100の製品名、製造者名、ファームウェアバージョン、シリアルナンバーをレスポンスとして構成する。そしてデジタルカメラ100は、その構成した情報を要求元の外部機器に送信する。なお、製品名とは、デジタルカメラ100の製品名称である。製造者名とはデジタルカメラ100のメーカー名称である。ファームウェアバージョンとは、不揮発メモリ103に保存されたデジタルカメラ100を制御するためのプログラムのバージョン番号である。シリアルナンバーとは、デジタルカメラ100の個体識別が可能な一意の番号である。
【0036】
API302は、デジタルカメラ100の保存領域の情報を取得するAPIである。デジタルカメラ100は、API名の「RequestMemoryInfo」のリクエストを引数なしで受信した場合、デジタルカメラ100の保存領域ID、保存可能容量、空き容量、保存済みのコンテンツファイル数をレスポンスとして構成する。そして、デジタルカメラ100は、その構成したレスポンスを要求元の外部機器に送信する。なお、保存領域IDとは、デジタルカメラ100で生成されるコンテンツファイルが保存可能な領域にそれぞれ割り振られたID(Identification)である。例えば、デジタルカメラ100の記録媒体110に割り振られる。保存可能容量とは、コンテンツファイルが保存できる保存領域の保存可能上限サイズである。空き容量とは、保存領域のうち、コンテンツファイルが保存されていない領域のサイズである。保存済みのコンテンツ数とは、保存領域に保存されているコンテンツファイルの総数のことである。
【0037】
API303は、デジタルカメラ100の保存領域に保存されているコンテンツIDとコンテンツファイルの基本情報を取得するAPIである。デジタルカメラ100は、API名の「RequestConteentInfo」のリクエストと共に、引数として、API302で取得した保存領域ID、コンテンツフォーマットの種類、取得要求数を受信した場合、デジタルカメラ100の保存領域に保存されているコンテンツファイルのコンテンツID、ファイル名、ファイルサイズ、ファイル生成日時を取得し、要求元の外部機器に送信する。なお、コンテンツIDとは、コンテンツファイルを個々に識別するために割り振られたIDである。また、本実施形態における本APIは、作業用メモリ104のサイズによっては一度に取得できるコンテンツファイルの情報に上限値が設定されている。よって、記録媒体110などに保存されているコンテンツファイルの数が本APIの上限値を超える場合には、繰り返しAPIをリクエストする必要がある。
【0038】
API304は、デジタルカメラ100の保存領域に保存されているコンテンツファイルを取得するAPIである。デジタルカメラ100は、API名の「RequestConent」のリクエストと共に、引数としてコンテンツIDとコンテンツサイズを受信すると、該当するコンテンツファイルを要求元の外部機器に送信する。なお、コンテンツサイズでは、コンテンツファイルをオリジナルのサイズで取得するのか、もしくは縮小したサイズで取得するのかを選択することができる。デジタルカメラ100は指定されたサイズに従ったコンテンツファイルを生成し外部装置へレスポンスとして送信することになる。本実施形態では、例えば静止画ファイルをオリジナルのサイズで取得するのか、サムネイルサイズで取得するのかが指定できる。従って、サイズとしては、数値ではなく、オリジナル、サムネイルを識別する文字列も利用できる。
【0039】
API305は、デジタルカメラ100の状態のうち、変更された情報を取得するAPIである。デジタルカメラ100は、API名の「RequestCameraEvent」のリクエストを引数なしで受信した場合、API801で取得可能な情報の一部もしくはすべてを取得する。なお、デジタルカメラ100は、このAPI305のリクエストに対してすぐさまレスポンスを返却しない。デジタルカメラ100の一部の状態が変化するまで待ち、変化したことを検知すると、変化した情報のみをレスポンスとして返却する。例えば、本実施形態では、バッテリー情報を取得するためのAPIである。
【0040】
API306は、デジタルカメラ100が要求元の外部機器に対して送信するコンテンツファイルのIDを取得するAPIである。デジタルカメラ100は、API名の「RequestContentList」のリクエストを引数なしで受信した場合、該当するコンテンツファイルの一覧を要求元の外部機器に送信する。なお、デジタルカメラ100は、このAPI306のリクエストに対してすぐさまレスポンスを返却しない。デジタルカメラ100の保存領域に保存されているコンテンツファイルの中から、要求元の外部機器に送信する画像がユーザによって選択された時にレスポンスとして返却する。
【0041】
API307は、デジタルカメラ100が要求元の外部機器に対するコンテンツファイルの送信を中断するAPIである。デジタルカメラ100は、API名の「CancelRequestContent」のリクエストを引数なしで受信した場合、API304の「RequestConent」によって行っているデジタルカメラ100から要求元の外部機器に送信しているコンテンツファイルの送信を中断する。なお、中断するのは現在転送しているコンテンツファイルだけではなく、要求元の外部機器がその後に送信を予定しているコンテンツファイルも含めて中断する。なお、デジタルカメラ100は、このAPI307を受信するまでは、表示部106にコンテンツファイル転送キャンセルを指示するUIの表示を行わない。また、デジタルカメラ100は、このAPI307のリクエストに対してすぐさまレスポンスを返却しない。デジタルカメラ100においてユーザがキャンセル指示操作が行われたことを検出した時にレスポンスとして外部装置に返却する。
【0042】
API308は、デジタルカメラ100が要求元の外部機器に対するコンテンツファイルの送信を中断する、もしくは変更された情報を取得するAPIである。デジタルカメラ100は、API名の「CancelEventAndCancel」のリクエストを引数なしで受信した場合、前述のAPI305もしくはAPI307の処理を実施する。本APIはAPI305とAPI307の共用APIであり、どちらの用途に使用しても良い。
【0043】
以上、実施形態におけるAPIを説明した。上記は、主要なAPIの一例であり、上記以外の様々なデジタルカメラ100の制御方法のAPIを提供しても構わない。また、デジタルカメラ100は、上記APIリクエストに対する応答を送信するとき、要求されたリクエストを特定すると共に、その返値(もしあれば)を要求元に送信するものとする。応答形式は、『Response(APIリクエスト名、返値)』とする。例えば、デジタルカメラ100が、外部装置から、RequestProductInfoのリクエストを受信し、それに対して応答する場合は、『Response(RequestProductInfo,返値)』として、要求元に応答する。なお、どのAPIに対する応答であるかを、要求元に通知できれば良いので、上記例で発明が限定されるものではない。
【0044】
これから説明する全ての実施形態では、スマートデバイス200とデジタルカメラ100とがネットワーク(実施形態では無線LAN)を介して画像処理システムを構成する。なお、デジタルカメラ100の制御部101は、操作部105から簡易APモード(初期状態ではHTTPプロトコルを利用するファイルサーバモード)に移行済みであるものとする。また、全ての実施形態におけるコンテンツファイルは、画像ファイルを例に説明する。また、実施形態の説明では、例えば、『スマートデバイス200がデジタルカメラ100に対し、API301の「RequestProductInfo」を送信する』ことを、簡易にするため、『スマートデバイス200がRequestProductInfo301をデジタルカメラにリクエストする』と表現する。
【0045】
<デジタルカメラからスマートデバイスへの画像転送を中断するシーケンス>
以下、前述の画像処理システムにおいて、デジタルカメラ100からスマートデバイス200に対するコンテンツファイルの画像転送を、デジタルカメラ100の任意のタイミングで中断する手順を
図4〜
図7を用いて説明する。
【0046】
図4はスマートデバイス200とデジタルカメラ100の通信シーケンスの例を示している。具体的には、スマートデバイス200がデジタルカメラ100から受信するコンテンツファイルの一覧を取得し、その後そのコンテンツファイル一覧を元に、スマートデバイス200からデジタルカメラ100に画像の送信要求を行い、デジタルカメラ100がコンテンツファイルをスマートデバイス200に送信するまでの処理である。
図5は、デジタルカメラ100上で動作するプログラムが表示部106に表示するユーザインターフェイス(UI)を示す図である。
【0047】
S401において、デジタルカメラ100とスマートデバイス200は無線ローカルエリアネットワーク(LAN)接続を確立する。ここでは、デジタルカメラ100が、ユーザの操作によって、簡易APを起動してコネクションを確立する場合の処理を説明する。
【0048】
デジタルカメラ100の制御部101は、無線LAN接続するために必要なSSID(Service Set Identifier)と暗号化キーを生成した後、SSIDと暗号化キーを用いて簡易APを起動し無線LANネットワークを生成する。このとき、デジタルカメラ100は、表示部106に、SSID、暗号キー等のデジタルカメラ100が提供している簡易APに接続するための情報を表示する。なお、SSIDとは、IEEE802.11シリーズの無線LANにおけるアクセスポイントの識別子であり、混信を避けるために付けられる名前である。暗号化キーとは、SSIDに不正アクセスされないよう無線LANの暗号化を行うためのキーである。なお、ここで表示するSSID、暗号キー等がユーザが適宜編集可能であり、変更編集が無い限り前回用いた情報を表示する。次に、制御部101は、DHCP(Dynamic Host Configuration Protocol)サーバを起動し、簡易APが生成するネットワークに参加した機器に対してIPアドレスが割り振れるよう準備する。
【0049】
一方、スマートデバイス200の制御部201は、ユーザ操作によって無線LANネットワークに接続する処理を開始すると、周囲のAPをサーチする処理を行い、その結果、得られたSSIDの一覧を表示部206に表示される。ユーザは、操作部205を操作して、表示部206に表示されたSSID一覧中の、デジタルカメラ100の表示部106に表示された簡易APのSSIDと一致するものを選択する。そして、ユーザは、デジタルカメラ100の表示部106に表示された暗号化キーと同じキー(文字列)を、操作部205から入力する。この結果、スマートデバイス200の制御部201は、デジタルカメラ100が生成した簡易APのネットワークへの参加を開始する。なお、スマートデバイス200は、過去に接続した経験のあるSSIDと暗号化キーを記憶しておき、ユーザが選択したSSIDが、記憶された中にある場合には、対応して記憶された暗号化キーを、暗号キー入力欄にデフォルトとして表示するようにし、ユーザがOKボタンを押下(もしくはタッチ)するだけで良いようにしても構わない。上記の結果、デジタルカメラ100からスマートデバイス200にIPアドレスが割り振られ、無線LANへの接続が完了する。なお、ここではデジタルカメラ100はDHCPサーバも兼ねる例を説明したが、ルータが構築するローカルネットワークにデジタルカメラ100とスマートデバイス200がそれぞれ接続する形態も考えられる。
【0050】
S402において、スマートデバイス200がディスカバリ処理を行う。そして、デジタルカメラ100とスマートデバイス200が互いの存在や提供するサービスを認識する。また、スマートデバイス200は、無線LANを介してデジタルカメラ100が提供するAPIを使用して通信するための準備を行う。なお、ディスカバリで用いられるプロトコルは、例えば、SSDP(Single Service Discovery Protocol)やMalticast DNSなどがある。またSSDPやMalticast DNSについては公知のプロトコルであるため説明は割愛する。
【0051】
ディスカバリ処理の一例を説明すると、デジタルカメラ100の制御部101は、自らが生成したネットワークに対してアドバタイズ通知を送信し、自身の存在をスマートデバイス200に通知する。スマートデバイス200の制御部201は、デジタルカメラ100からのアドバタイズ通知を受信すると、デジタルカメラ100の機器情報が記載されたデバイスディスクリプションをデジタルカメラ100から取得し、APIサービスを提供しているか否かを判定する。制御部201は、デジタルカメラ100がAPIサービスを提供していると判断した場合、不揮発メモリ203よりAPIを使用してデジタルカメラ100から画像ファイルを取得するためのプログラムを作業用メモリ204に展開し、実行する。
【0052】
S403において、制御部201は、通信部211を介してRequestProductInfo301をデジタルカメラ100にリクエストする。S404にて、制御部101が通信部111を介して、このリクエストを受信したことを検知すると、製品名、製造者名、ファームウェアバージョン、シリアルナンバーを不揮発メモリ103より取得し、レスポンス用データセットに成形する。そして、制御部101は形成したデータセットを、通信部111を介してスマートデバイス200に送信する。
【0053】
S405において、制御部201は、通信部211を介してRequestMemoryInfo302をデジタルカメラ100にリクエストする。S406において、制御部101は、通信部111を介してこのリクエストを受信したことを検知すると、保存領域ID、保存可能容量、空き容量、保存済みコンテンツ数を作業用メモリ104や記録媒体110より取得してレスポンス用データセットに成形する。そして、制御部101は形成したデータセットを、通信部111を介してスマートデバイス200に送信する。
【0054】
S407において、制御部201は、通信部211を介してRequestContentList306をデジタルカメラ100にリクエストする。デジタルカメラ100の制御部101が、通信部111を介して、このリクエストを受信したことを検知すると、S408においてデジタルカメラ100の表示部106に、
図5(a)のように記憶媒体110に記録されている画像のサムネイル一覧を選択可能に表示する。そして、制御部100は、ユーザによる選択を行わせ、スマートデバイス200への転送対象の画像を決定していく。
【0055】
S409において、ユーザが、デジタルカメラ100の表示部106において、転送画像を選択ボタン502で選択し、OKボタン503をタッチすると、制御部101は、
図5(b)の転送中の画面を表示部106に表示する。このとき制御部101は、選択した画像ID一覧を作業用メモリ104に保存する。その後、S410において、制御部101は、ユーザが選択した送信用の画像ID一覧を作業用メモリ104より取得して、レスポンス用データセットに成形する。そして、制御部101は形成したデータセットを、通信部111を介してスマートデバイス200に送信する。
【0056】
この結果、スマートデバイス200の制御部201は、ユーザが選択した画像を特定する情報を取得できることになる。
【0057】
S411において、制御部201は、通信部211を介してCancelRequestContent307をデジタルカメラ100にリクエストする。デジタルカメラ側から転送の中断操作を可能にするためである。デジタルカメラ100の制御部101が通信部111を介して、このリクエストを受信したことを検知すると、デジタルカメラ100の表示部106に、
図5(c)に示すように、キャンセルボタン504を追加表示する。制御部201は、このリクエストに対するレスポンスは直ぐに返さず、保留状態とする。このリクエストを意図的に保留状態にしておくことで、デジタルカメラ100は任意のタイミングでスマートデバイス200にデータを送信することが可能となる。本実施形態では、ユーザ操作によりキャンセルボタン504が押下されたタイミングでレスポンスを返すことになる。このように、サーバ側が任意のタイミングでクライアントにデータを送信することをサーバプッシュと呼び、意図的なレスポンスの保留状態を作ってサーバプッシュを実現する技術をロングポーリングと呼ぶ。
【0058】
S412において、制御部201は、通信部211を介してRequestContent304をデジタルカメラ100にリクエストする。S413において、制御部101は、通信部111を介してこのリクエストを受信したことを検知すると、指定されたコンテンツIDに対応するコンテンツファイル(ユーザが選択した画像のファイル)を作業用メモリ104や記録媒体110より取得してレスポンス用データセットに成形する。そして、制御部101は形成したデータセットを、通信部111を介してスマートデバイス200に送信する。
【0059】
その後、S414、S415以降、S412、S413と同じ処理が繰り返される。つまり、通常は、ユーザが選択した全画像のデジタルカメラ100からスマートデバイスに向けて転送が完了するまで繰り返される。この間、ユーザが、何らかの理由で転送をキャンセルする場合を説明する。
【0060】
今、画像転送中のS416において、ユーザは、操作部105への操作によって、
図5(c)のキャンセルボタン504を押下したとする。この場合、S417において、制御部101は、通信部111を介してスマートデバイス200に対し、S411に対するレスポンスデータを送信する。
【0061】
S418において、制御部201はユーザ指示によってプログラムの終了指示を検知すると、S419において、デジタルカメラ100との通信を終了する。つまり、制御部201は、この終了指示を検知した場合、ユーザが当初選択した全画像の受信が完了していなくても、通信を終了する。
【0062】
S420において、デジタルカメラ100とスマートデバイス200の通信の切断処理が完了する。
【0063】
以上が、スマートデバイス200がデジタルカメラ100と接続して、コンテンツファイルを取得する際に、デジタルカメラ100からコンテンツファイル取得の中断を行う方法の一例である。
【0064】
<デジタルカメラ100の処理内容>
デジタルカメラ100の処理の流れについて説明する。
図6は、デジタルカメラ100のAPIサービスの処理の流れを示したフローチャートである。
【0065】
S601において、制御部101は、デジタルカメラ100とスマートデバイス200は無線ローカルエリアネットワーク(LAN)接続を確立する。本処理はS401で説明したデジタルカメラ100の処理と同様であるため説明は割愛する。
【0066】
S602において、制御部101は、ディスカバリを行い、デジタルカメラ100とスマートデバイス200が互いの存在や提供するサービスを認識し、無線LANを介してデジタルカメラ100が提供するAPIを使用して通信するための準備を行う。本処理は、S402で説明したデジタルカメラ100の処理と同様であるため説明は割愛する。
【0067】
S603において、制御部101は、通信部111を介してAPIのRequestContentListリクエストを受信したか否かを検知する。もし、検知した場合はS604に進む。そうでない場合は処理を繰り返す。
【0068】
S604において、制御部101は、
図5(a)の画像情報一覧を表すUIの表示、及び、ユーザによる画像の選択操作を受け付ける。そして、選択終了(
図5(a)のOKボタン操作)があった場合に、制御部101は、通信部111を介して、選択画像を特定するためのIDを含む情報リスト(or画像リスト)を生成し、その情報リストをAPIのRequestContentListレスポンスとして送信する。
【0069】
S605において、制御部101は、表示部106に
図5(b)の転送の進捗状況を示すUIを表示する。
【0070】
S606にて、制御部101は、CancelRequestContentリクエストを受信しているか否かを判定するためのフラグFLAGを初期化(非受信を示す値)する。なお、このフラグFLAGは、作業用メモリ104の所定のアドレスに確保されるものとする。
【0071】
S607において、制御部101は、通信部111を介してAPIのRequestContentリクエストを受信したか否かを検知する。もし、受信していた場合はS608に進む。そうでない場合はS609に処理を進める。
【0072】
S608にて、制御部101は、通信部111を介してAPIのRequestContentレスポンスを送信する。このレスポンスは、RequestContentリクエストに記述されたIDが示す画像データの送信である。このレスポンス処理を終えると、制御部101は、処理をS607に戻す。
【0073】
一方、S609に処理が進んだ場合、制御部101は、通信部111を介してAPIのCancelRequestContentリクエストを受信したか否かを判定する。このリクエストを受信した場合、制御部101は処理をS610に進める。否の場合、制御部101は、処理をS612に進める。
【0074】
S610にて、制御部101は、APIのCancelRequestContentリクエストを受信したので、フラグFLAGに“1”をセットする。そして、S611にて、制御部101は、表示部106に
図5(c)のキャンセルボタン504を表示する。この後、制御部101は処理をS607に戻す。
【0075】
S612において、制御部101は、フラグFLAGが“1”であるか否かを判定する。換言すれば、CancelRequestContentリクエストを受信しているか否かを判定するとも言えるし、キャンセルボタン504をUIに表示済みであるか否かを判定すると言い換えることもできる。フラグFLAGが“1”である場合、制御部101は酢織をS613に進める。また、フラグFLAGが“0”である場合、制御部101は処理をS607に戻す。
【0076】
S613にて、制御部101は、ユーザが操作部105を操作して、キャンセルボタン504を押下したか否かを判定する。キャンセルボタン504が押下されていた場合、制御部101は処理をS614に進め、押下されていない場合にはS607に処理を戻す。
【0077】
S614において、制御部101は、通信部111を介してAPIのCancelRequestContentレスポンスを送信する。つまり、制御部101は、ユーザより画像転送のキャンセルが操作されたことをスマートデバイス200に通知する。その後、制御部101は、スマートデバイス200から接続終了の指示を受けて、本処理を終了させる。
【0078】
<スマートデバイス200の処理内容>
次に、コンテンツ一覧表示やリモート撮影してコンテンツファイルを取得する際に、デジタルカメラ100の状態情報を取得する際のスマートデバイス200の処理の流れについて説明する。
【0079】
図7は、スマートデバイス200にて実行されるアプリケーションの処理の流れを示したフローチャートである。
【0080】
S701において、制御部201は、デジタルカメラ100とスマートデバイス200は無線ローカルエリアネットワーク(LAN)接続を確立する。本処理はS401で説明したスマートデバイス200の処理と同様であるため説明は割愛する。
【0081】
S702において、制御部201は、ディスカバリを行い、デジタルカメラ100とスマートデバイス200が互いの存在や提供するサービスを認識し、無線LANを介してデジタルカメラ100が提供するAPIを使用して通信するための準備を行う。本処理は、S402で説明したスマートデバイス200の処理と同様であるため説明は割愛する。
【0082】
S703において、制御部201は、RequestProductInfoをデジタルカメラ100に送信する。本処理は、S403で説明した処理と同様であるため説明は割愛する。
【0083】
S704において、制御部201は、RequestMemoryInfoをデジタルカメラ100に送信する。本処理は、S405で説明した処理と同様であるため説明は割愛する。
【0084】
S705において、制御部201は、RequestContentListをデジタルカメラ100に送信する。本処理は、S407で説明した処理と同様であるため説明は割愛する。
【0085】
S706において、制御部201は、通信部211を介してRequestContentListレスポンス(転送対象の画像IDが記述された情報リスト)を受信したか否かを判定する。もし、そのレスポンスを受信した場合、制御部201は処理をS707に進め、そうでない場合はそのレスポンスを受信するまで待つ。
【0086】
S707において、制御部201は、通信部211を介してCancelRequestContentをデジタルカメラ100に送信する。本処理は、S411で説明した処理と同様であるため説明は割愛する。
【0087】
S708において、制御部201は、RequestContentをデジタルカメラ100に送信する。つまり、制御部201は、ユーザが選択した画像の1つの送信要求をデジタルカメラ100に要求する。この処理はS412で説明した処理でもある。
【0088】
S709において、制御部201は、通信部211を介してAPIのCancelRequestContentレスポンスを受信したか否かを判定する。もし、CancelRequestContentレスポンスを受信した場合は、制御部201は画像受信処理を中断し、デジタルカメラ100に接続終了の指示を送信して処理を終了させる。CancelRequestContentレスポンスが未受信であると判定した場合、制御部201は処理をS710に進める。
【0089】
S710において、制御部201は、通信部211を介してAPIのRequestContentレスポンス(画像データ)を受信したか否かを判定する。RequestContentレスポンスを受信した場合、S711にて、制御部201は、全ての画像の受信を終えたか否かを判断する。否の場合には次の画像を取得するため、制御部201は、次の画像をデジタルカメラ100から受信するために、S708に処理を戻す。一方、着目している画像データの受信が完了していない場合には、ユーザからのキャンセル処理が行われたどうかを判断するために、処理をS709に戻す。
【0090】
以上説明したように本実施形態によれば、ユーザがデジタルカメラに記憶保持されている撮像画像をスマートデバイスに転送する場合に、デジタルカメラ側の操作部を介して転送の中断を行うことができるようになる。
【0091】
上記の第1の実施形態では、画像転送している間にその転送をデジタルカメラ100の操作でキャンセルした例を説明した。画像の転送キャンセル用に使用したAPIのCancelRequestContentと同じ使い方で、デジタルカメラ100のステータス通知用に使用することも出来る。
【0092】
そこで、第2の実施形態では、画像転送のキャンセルには専用のAPIのCancelRequestContentを使用し、デジタルカメラのステータス通知には別のAPIのRequestCameraEventを使用した例を説明する。
【0093】
第3の実施形態では、画像転送のキャンセルと、デジタルカメラのステータス通知の共用として使用するAPIのRequestEVentAndCancelを用いた例を説明する。
【0094】
[第2の実施形態]
<画像転送用のAPIと、カメラのステータス通知用のAPIをそれぞれ別で使用する場合のシーケンス>
図8は、第2の実施形態における、スマートデバイス200とデジタルカメラ100との画像転送キャンセルを行わなかった場合の通信シーケンスを含めた例を示している。具体的には、画像転送のキャンセルには専用のAPI307を使用し、デジタルカメラ100のステータス通知には別のAPI305を使用した例である。
【0095】
S801、S802は第1の実施形態で説明した
図4のS401、S402と同様の処理なので説明を省略する。
【0096】
S803において、制御部201は、通信部211を介してRequestCameraEvent305をデジタルカメラ100にリクエストする。デジタルカメラ100の制御部101は、通信部111を介してこのリクエストを受信したとしても、直ぐにレスポンスは返さない。また、制御部101は、このリクエストを受信すると、カメラ100のステータスが変化(状態変化)を監視を開始し、その変化があった場合にはじめて、このRequestCameraEvent305のレスポンスを返す。本第2の実施形態ではバッテリーの状態を通知した時の例を説明している。もちろん、ステータスとしてバッテリーの状態だけでは無く、カメラの内部状態であれば他のパラメータであっても構わないに対する。
【0097】
S804〜S818までの処理は、第1の実施形態で説明した
図4のS414、S415と同様の処理なので説明を省略する。
【0098】
S819において、バッテリー状態が変化している。S820において、制御部101が、デジタルカメラ100のバッテリー状態が変化したことを検知すると、S803のRequestCameraEvent305に対して、バッテリー情報をレスポンス用データセットに成形して、通信部111を介してスマートデバイス200に送信する。
【0099】
S821において、制御部201は、通信部211を介してRequestCameraEvent305をデジタルカメラ100にリクエストする。S821を行うことによって、再度デジタルカメラ100のステータス通知をスマートデバイス200に対して行えることを可能にしている。
【0100】
S822において、制御部101は、通信部111を介してCancelRequestContent307のレスポンスをデジタルカメラ100に送信する。これはS813から始まった画像転送がキャンセルされなかったため、正常に画像転送処理が終わった場合は、必ずCancelRequestContent307に対してレスポンスを返してリソースの消費を防いでいる。
【0101】
S823〜S837は第1の実施形態で説明した
図4のS401〜S420と同様の処理なので説明を省略する。
【0102】
<デジタルカメラ100の処理内容>
デジタルカメラ100の処理の流れについて説明する。
図9A、9Bは、デジタルカメラ100のAPIサービスの処理の流れを示したフローチャートである。以下、同図に従って説明する。
【0103】
S901、S902は第1の実施形態で説明した
図6のS601、S602と同様の処理なので説明を省略する。
【0104】
S903にて、制御部101は、作業用メモリ104に予め確保したフラグFLAG_E、FLAG_Cをゼロクリアする。フラグFLAG_Eは、RequestCameraEventリクエストを受信しているか否かを判定するため、フラグFLAG_Cは、CancelRequestContentリクエストを受信しているか否かを判定するためのフラグである。S903の処理は、いずれのリクエストも未受信であるものとするためである。
【0105】
S904にて、制御部101は、通信部111を介して、スマートデバイス200から何らかのリクエストを受信したか否かを判定する。リクエストの受信があった場合、制御部は続くS905乃至S908にて、受信したリクエストの種類を判定し、それぞれに応じた処理を行う。一方、リクエストを受信していないと判定した場合、制御部101はS921に処理を進める。
【0106】
受信したのがRequestContentListリクエストである場合、制御部101はS905からS909に処理を進める。そして、S909にて、制御部101は、RequestContentListレスポンスを送信する。この送信は、第1の実施形態におけるS604と同じである。そして、制御部101は、S910にて、画像転送画面の表示を開始する。この処理も第1の実施形態におけるS605と同じである。この後、制御部101は処理をS904に戻す。
【0107】
受信したのがRequestCameraEventリクエストである場合、制御部101はS906からS911に処理を進める。このS911にて、制御部101は、RequestCameraEventリクエストの受信があったことを示すため、フラグFLAG_Eに“1”をセットする。そして、制御部101は処理をS904に戻す。
【0108】
受信したのがCancelRequestContentリクエストである場合、制御部101はS907からS912に処理を進める。このS912にて、制御部101は、CancelRequestContentリクエストの受信があったことを示すため、フラグFLAG_Cに“1”をセットする。そして、制御部101は、S913にて、表示画面にキャンセルボタン504を表示する。この後、制御部101は処理をS904に戻す。
【0109】
なお、実施形態では、CancelRequestContentリクエストの受信する以前に転送画面が既に表示されているものとしているが、CancelRequestContentリクエストを受信した後に、RequestContentListリクを受信した場合には、制御部101は、S910にて、キャンセルボタン504を有する転送画面を表示することになる。
【0110】
受信したのがRequestContentリクエストである場合、制御部101はS908からS914に処理を進める。このS914にて、制御部101は、RequestContentリクエストのレスポンスを送信する。この送信処理は、第1の実施形態におけるS608と同じである。この後、制御部101は処理をS904に戻す。
【0111】
また、受信したリクエストが上記以外の場合には、制御部101はS908からS915に進み、受信したリクエストに対応する処理を行う。そして、制御部101は、処理をS904に戻す。
【0112】
さて、S904にて、制御部101がリクエストの受信が無いと判断した場合にはS921に処理を進める。このS921にて、制御部101は、フラグFLAG_Eが“1”であるか否か、換言すれば、RequestCameraEventリクエストを受信済みであるか否かを判定する。FLAG=0(非受信)である場合、制御部101は、S922、S923の処理をスキップし、S924に処理を進める。また、フラグFLAG_Eが“1”である場合(受信済み)、制御部101は、S922にて、デジタルカメラ100のバッテリー状態等の変化があったか否かを判定する。変化がない場合には、制御部101は処理をS924に進める。また、変化があれば、S923にて、制御部101は、変化内容を記述した応答メッセージを作成し、RequestCameraEventリクエストに対する応答として送信する。そして、制御部101は処理をS924に進める。
【0113】
S924にて、制御部101は、フラグFLAG_Cが“1”であるか否か、換言すれば、CancelRequestContentリクエストを受信済みか否かを判定する。FLAG_C=0(非受信)である場合、制御部101は処理をS904に戻す。FLAG_C=1である場合(受信済み)、制御部101はS925に処理を進める。このS925にて、制御部101は、キャンセルボタン504が押下されたか否かを判定する。非押下の場合、制御部101は処理をS904に戻す。また、制御部101は、キャンセルボタン504が押下されたと判定した場合、処理をS926に進める。このS926にて、制御部101は、CancelRequestContentリクエストに対する応答メッセージを生成し、送信する。このS926の処理は、第1の実施形態における、S614と同じである。
【0114】
<スマートデバイス200の処理内容>
次に、スマートデバイス200の処理の流れを
図10のフローチャートに従って説明する。
【0115】
S1001〜S1004は第1の実施形態で説明した
図7のS701〜S704と同様の処理なので、その説明は省略する。
【0116】
S1005においては、制御部201は、RequestCameraEvent305リクエストをデジタルカメラ100に送信する。S1006〜S1010は第1の実施形態で説明した
図7のS701〜S709と同様の処理なので説明を省略する。
【0117】
S1011において、制御部201は、通信部211を介してAPIのRequestCameraEventレスポンスを受信したか否かを判定する。もし、そのレスポンスを受信した場合は、制御部201は画像受信処理を中断し、デジタルカメラ100に接続終了の指示を送信して処理を終了させる。CancelRequestContentレスポンスが未受信であると判定した場合、制御部201は処理をS1011に進める。
【0118】
S1011にて、制御部201は、RequestCameraEvent305に対するレスポンスを受信したか否かを判定する。否の場合、制御部201は処理をS1013に進める。また、RequestCameraEvent305に対するレスポンスを受信した場合、制御部201は、S1012にて、デジタルカメラのステータスに応じた処理を行うと共に、以降でもスタータスに変化があった場合に通知を受信するため、再度RequestCameraEvent305リクエストをデジタルカメラ100に送信する。
【0119】
S1013は第1の実施形態で説明した
図7のS710と同様の処理なので説明を省略する。
【0120】
S1014において、制御部201は、S1007で受信したRequestContentListの全ての画像を受信したかどうかを判定する。否の場合には、制御部201は次の画像の受信するために処理をS1009に戻す。一方、全画像の受信が完了していれば、制御部201は本処理を終えるため、通信を終える。
【0121】
[第3の実施形態]
<画像転送用のAPIと、カメラのステータス通知用のAPIをそれぞれ別で使用する場合のシーケンス>
図11は、第3の実施形態における、スマートデバイス200とデジタルカメラ100との画像転送キャンセルを行わなかった場合の通信シーケンスを含めた例を示している。具体的には、画像転送のキャンセルと、デジタルカメラ100のステータス通知を共用したAPI、RequestEventAndCancel308を使用した時の例である。
【0122】
S1101、S1102は第1の実施形態で説明した
図4のS401、S402と同様の処理なので説明を省略する。
【0123】
S1103は、制御部201は、通信部211を介してRequestCameraEventAndCancel308をデジタルカメラ100にリクエストする。デジタルカメラ100の制御部101が通信部111を介して、このリクエストを受信したことを検知しても、直ぐにレスポンスは返さない。この後行う画像転送のキャンセル処理、もしくはカメラのステータスが変化した時にレスポンスを返す。
【0124】
S1104〜S1117は第2の実施形態で説明した
図8のS804〜S811、S813〜818と同様の処理なので説明を省略する。
【0125】
S1118において、バッテリー状態が変化しとする。この場合、S1119において、制御部101が、デジタルカメラ100のバッテリー状態が変化したことを検知し、S1103のRequestEventAndCancel308に対して、バッテリー情報をレスポンス用データセットに成形して、通信部111を介してスマートデバイス200に送信する。
【0126】
S1120において、制御部201は、このレスポンスを再度受信できるようにするため、通信部211を介してRequestEventAndCancel308をデジタルカメラ100にリクエストする。S1120を行うことによって、再度デジタルカメラ100のステータス通知をスマートデバイス200に対して行えること、また画像転送のキャンセルを可能にしている。
【0127】
S1121〜S1128は第2の実施形態で説明した
図8のS823〜S826、S828〜831と同様の処理なので説明を省略する。
【0128】
S1129において、制御部101が、デジタルカメラ100のバッテリー状態が変化したことを検知すると、S1120のRequestEventAndCancel308に対して、バッテリー情報をレスポンス用データセットに成形して、通信部111を介してスマートデバイス200に送信する。
【0129】
S1132〜S1135は第2の実施形態で説明した
図8のS834〜S837と同様の処理なので説明を省略する。
【0130】
<デジタルカメラ100の処理内容>
デジタルカメラ100の処理の流れについて説明する。
図12A、12Bは、デジタルカメラ100のAPIサービスの処理の流れを示したフローチャートである。以下、同図に従って説明する。
【0131】
S1201、S1202は第1の実施形態で説明した
図6のS601、S602と同様の処理なので説明を省略する。
【0132】
S1203にて、制御部101は、作業用メモリ104に予め確保したフラグFLAGをゼロクリアする。このフラグFLAGは、RequestEventAndCancelリクエストを受信しているか否かを判定するためのものである。S1203の処理は、RequestEventAndCancelリクエストを未受信とするためである。
【0133】
S1204にて、制御部101は、通信部111を介して、スマートデバイス200から何らかのリクエストを受信したか否かを判定する。リクエストの受信があった場合、制御部は続くS1205、S1206,S1208にて、受信したリクエストの種類を判定し、それぞれに応じた処理を行う。一方、リクエストを受信していないと判定した場合、制御部101はS1221に処理を進める。
【0134】
受信したのがRequestContentListリクエストである場合、制御部101はS1205からS1209に処理を進める。そして、S1209にて、制御部101は、RequestContentListレスポンスを送信する。この送信は、第1の実施形態におけるS604と同じである。そして、制御部101は、S1210にて、画像転送画面の表示を開始する。この処理も第1の実施形態におけるS605と同じである。この後、制御部101は処理をS1204に戻す。
【0135】
受信したのがRequestEventAndCancelリクエストである場合、制御部101はS1206からSS1211に処理を進める。このS1211にて、制御部101は、RequestEventAndCancelリクエストの受信があったことを示すため、フラグFLAGに“1”をセットする。そして、制御部101は処理をS1212にて、画像転送画面を表示したか否かを判定する。画像転送画面が非表示である場合、制御部101は、処理をS1204に戻す。また、画像転送画面を表示している場合には、制御部101はS1213にて、キャンセルボタン504を表示する。この後、制御部101は処理をS1204に戻す。
【0136】
なお、実施形態では、RequestEventAndCancelクエストの受信した後に、CancelRequestContentリクエストを受信した場合には、フラグを“1”にすると共に、制御部101は、キャンセルボタン504を有する転送画面を表示することになる。
【0137】
受信したのがRequestContentリクエストである場合、制御部101はS1208からS1214に処理を進める。このS1214にて、制御部101は、RequestContentリクエストのレスポンスを送信する。この送信処理は、第1の実施形態におけるS608と同じである。この後、制御部101は処理をS1204に戻す。
【0138】
また、受信したリクエストが上記以外の場合には、制御部101はS1208からS1215に進み、受信したリクエストに対応する処理を行う。そして、制御部101は、処理をS1204に戻す。
【0139】
さて、S1204にて、制御部101がリクエストの受信が無いと判断した場合にはS1221に処理を進める。このS1221にて、制御部101は、フラグFLAGが“1”であるか否か、換言すれば、RequestEventAndCancelリクエストを受信済みであるか否かを判定する。FLAG=0(非受信)である場合、制御部101は、処理をS1204に戻す。
【0140】
また、フラグFLAGが“1”である場合(受信済み)、制御部101は、S1222にて、デジタルカメラ100のバッテリー状態等の変化があったか否かを判定する。変化がない場合には、制御部101は処理をS1224に進める。また、変化があれば、S1223にて、制御部101は、変化内容を記述した応答メッセージを作成し、RequestEventAndCancelリクエストに対する応答として送信する。そして、制御部101は処理をS1204に戻す。
【0141】
また、S1224にて、制御部101は、キャンセルボタン504が押下されたか否かを判定する。非押下の場合、制御部101は処理をS1204に戻す。また、制御部101は、キャンセルボタン504が押下されたと判定した場合、処理をS1225に進める。このS1225にて、制御部101は、キャンセルボタン504が押下されたことを示すメッセージを作成し、CancelRequestContentリクエストに対する応答として送信する。そして、制御部101は、処理をS1204に戻す。
【0142】
<スマートデバイス200の処理内容>
次に、スマートデバイス200の処理の流れを
図13のフローチャートに従って説明する。
【0143】
S1301〜S1304は第1の実施形態で説明した
図7のS701〜S704と同様の処理なので、その説明は省略する。
【0144】
S1305においては、制御部201は、RequestEventAndCancel308のリクエストをデジタルカメラ100に送信する。S1306〜S1308は第1の実施形態で説明した
図7のS701〜S709と同様の処理なので説明を省略する。
【0145】
S1309において、制御部201は、通信部211を介してAPIのRequestEventAndCancelリクエストのレスポンスを受信したか否かを判定する。RequestEventAndCancelリクエストのレスポンスを受信した場合、制御部201は処理をS1310に処理を進め、否の場合には処理をS1313に進める。
【0146】
S1310にて、制御部201は受信したRequestEventAndCancelリクエストのレスポンスを解析し、デジタルカメラのステータスの変更を通知するものであるか、画像転送のキャンセルが指示されたことを示すものであるかを判定する。そして、画像転送のキャンセルが指示されたことを示している場合、制御部201は本通信処理を終了する。
【0147】
一方、ステータス変更を示す場合、制御部201は、S1311にて、デジタルカメラ100のステータスに応じた処理を行うと共に、以降でもスタータスに変化があった場合に通知を受信するため、再度RequestEventAndCancel308のリクエストをデジタルカメラ100に送信する。そして、制御部201は、処理をS1313に進める。
【0148】
S1313は第1の実施形態で説明した
図7のS710と同様の処理なので説明を省略する。
【0149】
S1314において、制御部201は、S1307で受信したRequestContentListの全ての画像を受信したかどうかを判定する。否の場合には、制御部201は次の画像の受信するために処理をS1308に戻す。一方、全画像の受信が完了していれば、制御部201は本処理を終えるため、通信を終える。
【0150】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。