以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態を適宜組み合せることも可能である。
[第1の実施形態]
<デジタルカメラ100の構成>
図1(a)は、本実施形態の通信装置の一例であるデジタルカメラ100の構成例を示すブロック図である。なお、ここでは通信装置の一例としてデジタルカメラについて述べるが、通信装置はこれに限られない。例えば通信装置は携帯電話や、携帯型のメディアプレーヤ、いわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
制御部101は、入力された信号や、後述のプログラムに従ってデジタルカメラ100の各部を制御する。なお、制御部101が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
撮像部102は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光(映像)を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、CMOS(Complementary Metal Oxide Semiconductor)や、CCD(Charge Coupled Device)が利用される。撮像部102は、制御部101に制御されることにより、撮像部102に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行いデジタルデータを画像データとして出力する。本実施形態のデジタルカメラ100では、画像データは、DCF(Design Rule for Camera File system)の規格に従って、記録媒体110に記録される。
不揮発性メモリ103は、電気的に消去・記録可能な不揮発性のメモリであり、制御部101で実行される後述のプログラム等が格納される。
作業用メモリ104は、撮像部102で撮像された画像データを一時的に保持するバッファメモリや、表示部106の画像表示用メモリ、制御部101の作業領域等として使用される。
操作部105は、ユーザがデジタルカメラ100に対する指示をユーザから受け付けるために用いられる。操作部105は例えば、ユーザがデジタルカメラ100の電源のON/OFFを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、後述の通信部111を介して外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、後述する表示部106に形成されるタッチパネルも操作部105に含まれる。なお、レリーズスイッチは、SW1およびSW2を有する。レリーズスイッチが、いわゆる半押し状態となることにより、SW1がONとなる。これにより、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の撮影準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、SW2がONとなる。これにより、撮影を行うための指示を受け付ける。
表示部106は、撮影の際のビューファインダー画像の表示、撮影した画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部106は必ずしもデジタルカメラ100が内蔵する必要はない。デジタルカメラ100は内部又は外部の表示部106と接続することができ、表示部106の表示を制御する表示制御機能を少なくとも有していればよい。
記録媒体110は、撮像部102から出力された画像データを記録することができる。記録媒体110は、デジタルカメラ100に着脱可能なよう構成してもよいし、デジタルカメラ100に内蔵されていてもよい。すなわち、デジタルカメラ100は少なくとも記録媒体110にアクセスする手段を有していればよい。
通信部111は、外部装置と接続するためのインターフェイスである。本実施形態のデジタルカメラ100は、通信部111を介して、外部装置とデータのやりとりを行うことができる。例えば、撮像部102で生成した画像データを、通信部111を介して外部装置に送信することができる。なお、本実施形態では、通信部111は外部装置とIEEE802.11の規格に従った、いわゆる無線LANで通信するためのインターフェイスを含む。制御部101は、通信部111を制御することで外部装置との無線通信を実現する。なお、通信方式は無線LANに限定されるものではなく、例えば赤外通信方式や、Bluetooth(登録商標)、WirelessUSB等、他の無線通信方式を採用してもよい。
近距離無線通信部112は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近距離無線通信部112は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することによりIEEE802.15の規格(いわゆるBluetooth(登録商標))に従った近距離無線通信を実現する。本実施形態においてBluetooth(登録商標)通信は、低消費電力であるBluetooth(登録商標) Low Energyのバージョン4.0を採用する。このBluetooth(登録商標)通信は、無線LAN通信と比べて通信可能な範囲が狭い(つまり、通信可能な距離が短い)。また、Bluetooth(登録商標)通信は、無線LAN通信と比べて通信速度が遅い。その一方で、Bluetooth(登録商標)通信は、無線LAN通信と比べて消費電力が少ない。なお、近距離無線通信部112が実現する非接触近接通信はBluetooth(登録商標)に限られるものではなく、他の無線通信を採用してもよい。
なお、本実施形態におけるデジタルカメラ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に保持されているものとする。
なお、本実施形態におけるデジタルカメラ100はAPの一種であるものの、CL機器から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない簡易APである。したがって、自機が形成したネットワークに参加している他の装置からデータを受信しても、それをインターネットなどのネットワークに転送することはできない。
次に、デジタルカメラ100の外観について説明する。図1(b)、図1(c)はデジタルカメラ100の外観の一例を示す図である。レリーズスイッチ105aや再生ボタン105b、方向キー105c、タッチパネル105dは、前述の操作部105に含まれる操作部材である。また、表示部106には、撮像部102による撮像の結果得られた画像が表示される。
以上がデジタルカメラ100の説明である。
<スマートデバイス200の内部構成について>
図2は、本実施形態の情報処理装置の一例であるスマートデバイス200の構成例を示すブロック図である。なお、スマートデバイスとはスマートフォン等の携帯電話やいわゆるタブレットデバイスを含む。なお、ここでは情報処理装置の一例としてスマートデバイスについて述べるが、情報処理装置はこれに限られない。例えば情報処理装置は、無線機能付きのデジタルカメラやプリンタ、テレビ、あるいはパーソナルコンピュータなどであってもよい。
制御部201は、入力された信号や、後述のプログラムに従ってスマートデバイス200の各部を制御する。なお、制御部201が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
撮像部202は、撮像部202に含まれるレンズで結像された被写体光を電気信号に変換し、ノイズ低減処理などを行い、デジタルデータを画像データとして出力する。撮像した画像データはバッファメモリに蓄えられた後、制御部201にて所定の演算を行い、記録媒体210に記録される。
不揮発性メモリ203は、電気的に消去・記録可能な不揮発性のメモリである。不揮発性メモリ203には、制御部201が実行する基本的なソフトウェアであるOS(オペレーティングシステム)や、このOSと協働して応用的な機能を実現するアプリケーションが記録されている。また、本実施形態では、不揮発性メモリ203には、デジタルカメラ100と通信するためのアプリケーション(以下アプリ)が格納されている。
作業用メモリ204は、表示部206の画像表示用メモリや、制御部201の作業領域等として使用される。
操作部205は、スマートデバイス200に対する指示をユーザから受け付けるために用いられる。操作部205は例えば、ユーザがスマートデバイス200の電源のON/OFFを指示するための電源ボタンや、表示部206に形成されるタッチパネルなどの操作部材を含む。
表示部206は、画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部206は必ずしもスマートデバイス200が備える必要はない。スマートデバイス200は表示部206と接続することができ、表示部206の表示を制御する表示制御機能を少なくとも有していればよい。
記録媒体210は、撮像部202から出力された画像データを記録することができる。記録媒体210は、スマートデバイス200に着脱可能なよう構成してもよいし、スマートデバイス200に内蔵されていてもよい。すなわち、スマートデバイス200は少なくとも記録媒体210にアクセスする手段を有していればよい。
通信部211は、外部装置と接続するためのインターフェイスである。本実施形態のスマートデバイス200は、通信部211を介して、デジタルカメラ100とデータのやりとりを行うことができる。本実施形態では、通信部211はアンテナであり、制御部101は、アンテナを介して、デジタルカメラ100と接続することができる。なお、デジタルカメラ100との接続では、直接接続してもよいしアクセスポイントを介して接続してもよい。データを通信するためのプロトコルとしては、例えば無線LANを通じたPTP/IP(Picture Transfer Protocol over Internet Protocol)を用いることができる。なお、デジタルカメラ100との通信はこれに限られるものではない。例えば、通信部211としては、赤外線通信モジュール、Bluetooth(登録商標)通信モジュール、WirelessUSB等の他の無線通信モジュールを採用してもよい。
近距離無線通信部212は、近距離無線通信を実現するための通信ユニットである。近距離無線通信部212は、無線通信のためのアンテナと無線信号を処理するための変復調回路や通信コントローラから構成される。近距離無線通信部212は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することにより近距離無線通信を実現する。ここでは、IEEE802.15の規格(いわゆるBluetooth(登録商標))に従った近距離無線通信を実現する。なお、近距離無線通信部112が実現する非接触近接通信はBluetooth(登録商標)に限られるものではなく、他の無線通信を採用してもよい。
公衆網接続部213は、公衆無線通信を行う際に用いられるインターフェイスである。スマートデバイス200は、公衆網接続部213を介して、他の機器と通話することができる。この際、制御部201はマイク214およびスピーカ215を介して音声信号の入力と出力を行うことで、通話を実現する。本実施形態では、公衆網接続部213はアンテナであり、制御部101は、アンテナを介して、公衆網に接続することができる。なお、通信部211および公衆網接続部213は、一つのアンテナで兼用することも可能である。
以上がスマートデバイス200の説明である。
<メニュー操作で画像を送信する手順について>
次に、デジタルカメラ100において、ユーザ操作によってメニュー画面からスマートデバイスと無線LAN接続し画像を送信する手順について、図3、図4(a)を用いて説明する。
図3は、第1の実施形態におけるデジタルカメラ100において、ユーザ操作によって表示部106に表示されるメニュー画面からスマートデバイス200と無線LAN接続し画像を送信する処理を示すシーケンス図である。
図4(a)は第1の実施形態におけるデジタルカメラ100において、ユーザ操作によって表示部106に表示されるメニュー画面からスマートデバイス200と無線LAN接続し画像を送信する際の画面遷移図である。
まず、ステップS301において、デジタルカメラ100は図4の画面401を表示部106に表示させ、スマートデバイスと接続する機能を実行するためのアイコン(画面401のアイコン450)の選択を受け付ける。ユーザは、アイコン450を、操作部105(例えばタッチパネル)を介して選択することで、スマートデバイスと接続する機能を実行する指示を入力することができる。なお、スマートデバイスと接続する機能を実行した後に、過去に接続したことのある機器が存在する場合は、それらの機器のリスト(いわゆる接続履歴一覧)を表示して、過去に接続したことのある機器と接続するか、新規で接続するかの選択をユーザに促す。なお、この画面401においては他の通信機能を用いるためのアイコンも表示される。例えばスマートデバイスではなく、他のカメラと接続する機能を実行するためのアイコンや、対応するアプリがインストールされているPCと接続する機能を実行するためのアイコンが表示される。また、ネットワークのSNSや、オンラインアルバムのウェブサイトにコンテンツをアップロードする機能を実行するためのアイコンも表示される。さて、制御部101が、アイコン450の選択を検知したならば、無線LAN接続のための処理(すなわちステップS302以降の処理)を開始する。なお、無線LANの規格としては例えばWi−Fi(登録商標)を採用することができる。
次に、ステップS302において、制御部101は、簡易APを起動する準備を行う。具体的には、簡易APを起動してビーコンの発信を開始する前に、無線LANの通信パラメータ(ここでは少なくともネットワーク識別子であるSSID(Service Set Identifier)と暗号化キー)を決定する。制御部101は、ステップS301において過去に接続したことのある機器が選択されたかを判断する。過去に接続したことがある機器が選択されていないと判断した場合、無線LANの通信パラメータを新規に生成したものに決定する。生成するSSIDと暗号化キーは、いずれも本ステップが実行される度にランダムに決定される値が用いられる。すなわち、ユーザがメニュー操作によって無線LAN接続を開始する度に、毎回異なる通信パラメータを生成する。SSIDは、予め不揮発性メモリに記録された機器情報を基に生成する。機器情報とは、例えば、機器名や個体識別情報(GUID:Globally Unique Identifierあるいは、UUID:Universally Unique Identifierなど)などである。暗号化キーは、生成した乱数をパスフレーズとして暗号化計算を繰り返すことで生成する。なお、ここで生成した無線LANの通信パラメータは、接続する機器の個体識別情報と共に不揮発性メモリ103に記憶しておく。記憶の際には、例えば同じフォルダ内に記録しておくことや、同じデータ形式を用いること、または、個体識別情報と通信パラメータとの関連付けの状態を示す管理用のデータを用意することなどにより実現することができる。過去に接続したことがある機器が選択されたと判断した場合、接続する機器の個体識別情報と共に不揮発性メモリ103に記憶されている無線LANの通信パラメータに決定する。つまり、スマートデバイス側で過去に接続した無線LANの通信パラメータを履歴情報として保持する場合、保持する履歴と同じ通信パラメータを用いることになる。これにより、スマートデバイス側の操作も履歴からの選択で済み、新たなパスの入力の手間を省くことができる。
次に、ステップS303において、制御部101は、ステップS302で決定したSSIDと暗号化キーを用いて簡易APを起動して無線LANネットワークを生成し、画面402を表示する。
次に、ステップS304において、制御部101は、DHCP(Dynamic Host Configuration Protocol)サーバを起動し、簡易APが生成するネットワークに参加した機器に対してIPアドレスを割り振る準備を行う。
次に、ステップS305において、制御部101は、機器の検索を開始する。なお機器検索で用いられるのはディスカバリプロトコルであり、例えば、SSDP(Single Service Discovery Protocol)やMalticast DNSなどを用いることができる。
次に、ステップS306において、スマートデバイス200は、無線LAN設定を開始する指示を受け付ける。ユーザは、OSのメニューから、無線LA設定を開始する指示を入力するためのメニューを選択することで、本ステップの処理の実行を指示することができる。無線LAN設定を開始すると、表示部206に、不図示のSSID一覧表示画面が表示される。
一方、スマートデバイス200は、ステップS307において、ステップS305にて表示部206に表示されたSSID一覧から、デジタルカメラ100が生成した簡易APのネットワークの選択を受け付ける。なお、この際、デジタルカメラ100の表示部106には、画面402のように、デジタルカメラ100が生成しているネットワークの通信パラメータが表示されている。ユーザは、デジタルカメラ100の画面402に表示されるSSIDを見ながら、SSID一覧に表示されるSSIDから、デジタルカメラ100が生成しているネットワークのSSIDを選択することができる。
次に、ステップS308において、ユーザ操作によってネットワークが選択されると、スマートデバイス200は、デジタルカメラ100の簡易APのネットワークに参加する。
スマートデバイス200がネットワークに参加すると、デジタルカメラ100は、ステップS309において、スマートデバイス200にIPアドレスを設定する。ここまでの処理によって、ネットワークレベルで、デジタルカメラ100とスマートデバイス200との間の接続が確立する。
続いて、以降の処理によって、アプリケーションレベルでの接続の確立を行う。ステップS310において、スマートデバイス200は、操作部205を介して、スマートデバイスの不揮発性メモリ203に保存されたアプリケーションを起動する指示をユーザから受け付ける。
次に、ステップS311において、スマートデバイス200は、起動したアプリケーションの制御に従い、参加したネットワーク内にアドバタイズ通知をブロードキャストし、自身の存在をデジタルカメラ100に通知する。なおアドバタイズ通知で用いられるのはディスカバリプロトコルであり、例えば、SSDP(Single Service Discovery Protocol)やMalticast DNSなどを用いることができる。
次に、ステップS312において、デジタルカメラ100の制御部101は、ステップS310でアドバタイズ通知を受信したならば、アドバタイズに含まれるデバイス名を表示部106に表示するよう制御する。ここでは、図4の画面403を表示部106に表示して接続可能な機器の一覧をユーザに示す。なお、デジタルカメラ100の生成するネットワークには、複数のスマートデバイスが参加することが可能である(すなわちネットワークレベルでの接続は1対複数での接続が可能である)。そのため、アドバタイズも複数機器から受信することがあるため、本ステップにて、どの機器とアプリケーションレベルでの接続を確立するのか選択するよう、ユーザに促す。ユーザは操作部105を操作して、画面403から接続したい機器を選択することができる。
次に、ステップS313において、デジタルカメラ100の制御部101は、接続したい機器を選択したことを検知すると、選択された接続対象機器であるスマートデバイス200との接続処理を開始する。これに併せて、表示部106に画面404を表示する。
次に、ステップS314において、スマートデバイス200の制御部201はデジタルカメラ100に対して接続可否を通知する。
次に、ステップS315において、デジタルカメラ100とスマートデバイス200の、アプリケーションレベルの接続が完了する。制御部101はスマートデバイス200との接続が完了することを検知すると画面405や画面407を表示する。これらの画面では、送信対象となる画像が表示され、画像送信サービスを開始する。
次に、ステップS316において、ユーザ操作によって送信したい画像の選択が行われる。1枚の画像のみを送信する場合は画面405から再生表示されている画像の1枚送信を実行するボタンを選択する。複数枚の画像を送信する場合は、画面407に遷移して複数の画像を一度に選択することも可能である。制御部101は、複数枚の画像選択が選択され、送信を実行するボタンが選択されたことを検知すると、画像送信前のユーザ確認のため画面408を表示部106に表示する。ユーザは再度、画像送信を実行するボタンを選択することで画像送信が実行される。
次に、ステップS317において、制御部101はユーザ操作によって選択された画像をスマートデバイス200に送信する。なお、画像送信を実行する通信プロトコルは、例えばHTTP(Hyper Text Transfer Protocol)であってもよいし、PTP−IP(Picture Transfer Protocol over IP)などがある。画像送信中、制御部101は表示部106に画面406を表示し、画像送信の進捗をユーザに示す。
最後に、ステップS318において、制御部101は画像の送信完了を検知すると、不図示だが画像送信が完了したことを表示部106に表示する。なお、この後、デジタルカメラ100は、再度送信したい画像の選択、及び送信に進むことも可能であり、画像送信モードを抜けて撮影モード、画像再生モードへの遷移、またはシャットダウンすることも可能である。
以上が、デジタルカメラ100において、ユーザ操作によってメニュー画面からスマートデバイスと無線LAN接続し画像を送信する手順である。
<Bluetooth(登録商標)での通信をトリガに無線LAN接続する手順について>
次に、デジタルカメラ100とスマートデバイス200において、近距離無線通信部同士の通信(以下、Bluetoothハンドオーバーと呼ぶ)をトリガに無線LAN接続し画像を送信する手順について、図5、図4(b)を用いて説明する。
図5は、第1の実施形態におけるデジタルカメラ100がスマートデバイス200とBluetoothハンドオーバーをトリガに無線LAN接続する処理を示すシーケンス図である。
図4(b)は第1の実施形態におけるデジタルカメラ100の近距離無線通信部112がスマートデバイス200の近距離無線通信部212とBluetoothハンドオーバーをトリガにスマートデバイス200と無線LANに接続する際の画面遷移図である。
ステップS501において、デジタルカメラ100とスマートデバイス200とは、互いの近距離無線通信部によって、既に接続済である。この時デジタルカメラ100は、画像再生モードにて表示部106に例えば図4(b)の画面411のように画像を再生している。
次に、ステップS502において、スマートデバイス200は、操作部205を介して、スマートデバイスの不揮発性メモリ203に保存されたアプリケーションを起動する指示をユーザから受け付ける。
次に、ステップS503において、スマートデバイス200は、操作部205を介して、Bluetoothハンドオーバーを開始する指示をユーザから受け付ける。
次に、ステップS504において、スマートデバイス200は、近距離無線通信部212を介して、デジタルカメラ100の近距離無線通信部112へハンドオーバー要求を送信する。なお、ハンドオーバー要求と一緒に、スマートデバイス200の情報も送信する。スマートデバイス200の情報は、OS(Operating Sysyte)情報、アプリケーションのバージョン情報、個体識別情報などを指す。また、必ずしもハンドオーバー要求と一緒に送る必要はなく、ハンドオーバー要求より前、もしくは後に送信することとしても良い。
次に、ステップS505において、デジタルカメラ100は、近距離無線通信部112を介して受け取ったハンドオーバー要求を、デジタルカメラ100の制御部101に通知する。
次に、ステップS506において、制御部101は、簡易APを起動する準備を行う。具体的には、簡易APを起動してビーコンの発信を開始する前に、無線LANの通信パラメータ(ここでは少なくともネットワーク識別子であるSSIDと暗号化キー)を決定する。制御部101は、ステップS504で受信したスマートデバイス200の情報を元に、過去に無線LANの接続をしたことのある機器と接続するのかを判断する。過去に無線LANの接続をしたことのある機器と接続すると判断した場合は、スマートデバイス200の個体識別情報と共に不揮発性メモリ103に記憶されている無線LANの通信パラメータに決定する。つまりスマートデバイス側で過去に接続した無線LANの通信パラメータを履歴情報として保持する場合、保持する履歴と同じ通信パラメータを用いることになる。これにより、スマートデバイス側の操作も履歴からの選択で済み、新たなパスの入力の手間を省くことができる。過去に無線LANの接続をしたことのある機器と接続しないと判断した場合は、無線LANの通信パラメータを新規に生成したものに決定する。
次に、ステップS507において、制御部101は、ハンドオーバー応答を、近距離無線通信部112に通知する。
次に、ステップS508において、デジタルカメラ100は、近距離無線通信部112を介して、ハンドオーバー応答を、スマートデバイス200に送信する。なお、ハンドオーバー要求と一緒に、ステップS506で決定した無線LANの通信パラメータも送信する。もしくは、必ずしもハンドオーバー応答と一緒に送る必要はなく、ハンドオーバー応答より前、もしくは後に送信することとしても良い。
次に、ステップS509において、デジタルカメラ100は、近距離無線通信部112に、近距離無線通信の終了を通知する。なお、本処理は通信部111と近距離無線通信部112との同時起動時の電波干渉を抑えるために実施してもよいし、しなくてもよい。
次に、ステップS510において、制御部101は、ステップS506で決定したSSIDと暗号化キーを用いて簡易APを起動して無線LANネットワークを生成し、画面412を表示する。
次に、ステップS511において、制御部101は、DHCPサーバを起動し、簡易APが生成するネットワークに参加した機器に対してIPアドレスを割り振る準備を行う。
次に、ステップS512において、制御部101は、機器の検索を開始する。なお機器検索で用いられるのはディスカバリプロトコルであり、例えば、SSDPやMalticast DNSなどを用いることができる。
一方、スマートデバイス200は、ステップS513において、ステップS508で受信した無線LANの通信パラメータを用いて、デジタルカメラ100が生成した簡易APのネットワークに参加する。
スマートデバイス200がネットワークに参加すると、デジタルカメラ100は、ステップS514において、スマートデバイス200にIPアドレスを設定する。ここまでの処理によって、ネットワークレベルで、デジタルカメラ100とスマートデバイス200との間の接続が確立する。
続いて、以降の処理によって、アプリケーションレベルでの接続の確立を行う。ステップS515において、スマートデバイス200は、アプリケーションの制御に従い、参加したネットワーク内にアドバタイズ通知をブロードキャストし、自身の存在をデジタルカメラ100に通知する。なおアドバタイズ通知で用いられるのはディスカバリプロトコルであり、例えば、SSDPやMalticast DNSなどを用いることができる。
このアドバタイズ通知を受信したデジタルカメラ100の制御部101は、ステップS516にて、アドバタイズに含まれる個体識別子と、ステップS504で受信したスマートデバイス200の情報を用いてスマートデバイス200との接続処理を開始する。ここでは、図4の画面413を表示部106に表示して接続対象機器をユーザに示す。
次に、ステップS517において、スマートデバイス200の制御部201はデジタルカメラ100に対して接続可否を通知する。
次に、ステップS518において、デジタルカメラ100とスマートデバイス200の、アプリケーションレベルの接続が完了する。制御部101はスマートデバイス200との接続が完了することを検知すると画面414や画面415を表示する。これらの画面では、送信対象となる画像が表示され、画像送信サービスを開始する。
次に、ステップS519において、ユーザ操作によって送信したい画像の選択が行われる。1枚の画像のみを送信する場合は画面414から再生表示されている画像の1枚送信を実行するボタンを選択する。複数枚の画像を送信する場合は、画面415に遷移して複数の画像を一度に選択することも可能である。制御部101は、複数枚の画像選択が選択され、送信を実行するボタンが選択されたことを検知すると、画像送信前のユーザ確認のため画面417を表示部106に表示する。ユーザは再度、画像送信を実行するボタンを選択することで画像送信が実行される。
次に、ステップS520において、制御部101はユーザ操作によって選択された画像をスマートデバイス200に送信する。なお、画像送信を実行する通信プロトコルは、例えばHTTPであってもよいし、PTP−IPなどがある。画像送信中、制御部101は表示部106に画面416を表示し、画像送信の進捗をユーザに示す。
最後に、ステップS521において、制御部101は画像の送信完了を検知すると、不図示だが画像送信が完了したことを表示部106に表示する。なお、この後、デジタルカメラ100は、再度送信したい画像の選択、及び送信に進むことも可能であり、画像送信モードを抜けて撮影モード、画像再生モードへの遷移、またはシャットダウンすることも可能である。
以上が、デジタルカメラ100において、Bluetooth(登録商標)での通信をトリガに無線LAN接続する手順である。
<デジタルカメラ100の動作について>
次に、上記の手順を実現するためのデジタルカメラ100の動作について説明する。
図6(a)、図6(b)は、本実施形態におけるデジタルカメラ100の動作を示すフローチャートである。
まず、ステップS601において、制御部101は、近距離無線通信部112を介してスマートデバイス200からハンドオーバー要求があったか判断する。本ステップの処理は図5のステップS504に相当する。もし、近距離無線通信部112を介してスマートデバイス200からハンドオーバー要求があった場合はステップS614に進み、そうでない場合はステップS602へ進む。
まず、ステップS602に進んだ場合について説明する。
ステップS602において、制御部101は、ユーザ操作によって、スマートデバイス200と接続して画像送信するメニューが選択されたか否かを検知する。メニューが選択されたと検知した場合はステップS603に進む。そうでない場合はステップS601に戻る。なお、本ステップの処理は図3のステップS301に相当する。
次に、ステップS603において、制御部101は、簡易APの起動準備を行う。本ステップの処理は図3のステップS302に相当する。図6(b)を用いて、簡易APの起動準備について説明する。
ステップS651において、制御部101は、過去に無線LANの接続をしたことのある機器と接続するかどうかを判断する。具体的には、ステップS301でユーザが過去に接続したことのある機器と接続するか、新規で接続するかの選択をしたかで判断する。もし、過去に無線LANの接続をしたことのある機器と接続する場合はステップS652に進み、そうでない場合はステップS653に進む。
ステップS652において、制御部101は、接続する機器の個体識別情報と共に不揮発性メモリ103に記憶されている無線LANの通信パラメータを読み出す。具体的には、ステップS301でユーザが選択した機器の個体識別情報と共に、不揮発性メモリ103に記憶されている無線LANの通信パラメータを読み出し簡易AP起動準備を終了する。なお、機器の個体識別情報と共に無線LANの通信パラメータを不揮発性メモリ103に記憶する方法は後述する。
ステップS653において、制御部101は、無線LANの通信パラメータを新規で生成する。生成するSSIDと暗号化キーは、いずれも本ステップが実行される度にランダムに決定される値が用いられる。すなわち、ユーザがメニュー操作によって無線LAN接続を開始する度に、毎回異なる通信パラメータを生成する。SSIDは、予め不揮発性メモリに記録された機器情報を基に生成する。機器情報とは、例えば、機器名や個体識別情報(GUID:Globally Unique Identifierあるいは、UUID:Universally Unique Identifierなど)などである。暗号化キーは、生成した乱数をパスフレーズとして暗号化計算を繰り返すことで生成する。
ステップS654において、制御部101は、ステップS653において新規で生成した無線LANの通信パラメータを、不揮発性メモリ103に記憶する。なお、本ステップでは、接続する機器の個体識別情報を取得する手段がないため、接続する機器の個体識別情報と共に記憶することはできない。そこで、後述する接続する機器の個体識別情報が取得できるタイミングで、接続する機器の個体識別番号と共に記憶する。
次に、ステップS604において、制御部101は、簡易AP機能を起動し、ステップS603で決定した通信パラメータを含むビーコンのブロードキャストを開始する。本ステップの処理は図3のステップS303に相当する。
次に、ステップS605において、制御部101は、DHCPサーバを起動する。本ステップの処理は図3のステップ304に相当する。
次に、ステップS606において、制御部101は、機器検索を開始する。本ステップの処理は図3のステップS305に相当する。
次に、ステップS607において、制御部101は、簡易APネットワークに機器が参加したか否かを検知する。機器が参加したと判断した場合はステップS608に進む。そうでない場合は、処理を終了する。例えば、一定時間が過ぎた後、ネットワークに機器が参加しなかった旨を不図示であるが表示部106に表示し、簡易APの起動を終了する。
次に、ステップS608において、制御部101は、ネットワークに参加した機器に対してIPアドレスを割り当てる。本ステップの処理はS309に相当する。
次に、ステップS609において、制御部101は、接続可能な相手機器が発見されたか否かを検知する。ステップS311においてスマートデバイス200がアドバタイズ送信したことを検知した場合、ステップS610に進む。そうでない場合は処理を終了する。例えば、一定時間が過ぎた後、アドバタイズ送信を受信しなかった旨を不図示であるが表示部106に表示し、簡易APの起動を終了する。
次に、ステップS610において、制御部101は、ユーザ操作によって接続する相手機器が選択されたかを検知する。本ステップの処理は図3のS312に相当する。なお、ステップS301において、過去に接続したことのある機器のリスト(いわゆる接続履歴一覧)を表示して、過去に接続したことのある機器と接続することを選択した場合、そこで選択された機器を記憶しておき、制御部101が選択してもよい。
次に、ステップS611において、制御部101は、ユーザ操作によって選択された相手機器であるスマートデバイス200に対して接続処理を開始する。本ステップの処理は図3のステップS313、S315に相当する。また、接続処理を開始するにあたり、接続する機器の個体識別情報が取得し、本接続で使用している無線LANの通信パラメータを、接続する機器の個体識別番号と共に不揮発性メモリ103に記憶する。
次に、ステップS612において、制御部101は、ユーザ操作によって送信対象となる画像選択が行われたか否かを検知する。本ステップの処理は図3のステップS316に相当する。
次に、ステップS613において、制御部101は、選択画像をスマートデバイス200に送信する。本ステップの処理は図3のステップS317に相当する。画像の送信が完了すると、画像送信処理を終了する。
以上が、ステップS601からステップS602に進んだ場合についての説明である。
続いて、ステップS601からステップS614に進んだ場合について説明する。
ステップS614において、制御部101は、近距離無線通信部112を介して受信したスマートデバイス200の情報を受信する。なお、本ステップは、必ずしもステップS601より後で受信する必要はなく、事前に受信したものを作業用メモリ204に記憶しておき、それを読み出すとしても良い。本ステップの処理は図5のステップS504に相当する。
次に、ステップS615において、制御部101は、簡易APの起動準備を行う。本ステップの処理は図5のステップS506に相当する。図6(b)を用いて、簡易APの起動準備について説明する。
ステップS651において、制御部101は、過去に無線LANの接続をしたことのある機器と接続するかどうかを判断する。具体的には、ステップS614において受信したスマートデバイス200の情報を基に、過去に接続したことのある機器と接続するか、新規で接続するかを判断する。もし、過去に無線LANの接続をしたことのある機器と接続する場合はステップS652に進み、そうでない場合はステップS653に進む。
ステップS652において、制御部101は、接続する機器の個体識別情報と共に不揮発性メモリ103に記憶されている無線LANの通信パラメータを読み出す。具体的には、ステップS614において受信したスマートデバイス200の情報に含まれる個体識別情報と共に、不揮発性メモリ103に記憶されている無線LANの通信パラメータを読み出し簡易AP起動準備を終了する。
ステップS653において、制御部101は、無線LANの通信パラメータを新規で生成する。生成するSSIDと暗号化キーは、いずれも本ステップが実行される度にランダムに決定される値が用いられる。すなわち、ユーザがメニュー操作によって無線LAN接続を開始する度に、毎回異なる通信パラメータを生成する。SSIDは、予め不揮発性メモリに記録された機器情報を基に生成する。機器情報とは、例えば、機器名や個体識別情報(GUID:Globally Unique Identifierあるいは、UUID:Universally Unique Identifierなど)などである。暗号化キーは、生成した乱数をパスフレーズとして暗号化計算を繰り返すことで生成する。
ステップS654において、制御部101は、ステップS653において新規で生成した無線LANの通信パラメータを、ステップS614において受信したスマートデバイス200の情報に含まれる個体識別情報と共に、不揮発性メモリ103に記憶する。
次に、ステップS617において、制御部101は、簡易APを起動する。本ステップの処理は図5のステップS510に相当する。
次に、ステップS618において、制御部101は、DCHPサーバを起動する。本ステップの処理は図5のステップS511に相当する。
次に、ステップS619において、制御部101は、簡易APネットワークに機器が参加したか否かを検知する処理を行う。機器が参加したと判断した場合はステップS620に進む。そうでない場合は、処理を終了する。例えば、一定時間が過ぎた後、ネットワークに機器が参加しなかった旨を不図示であるが表示部106に表示し、簡易APの起動を終了する。
次に、ステップS620において、制御部101は、接続機器にIPアドレスを割り当てる。本ステップの処理は図5のステップS514に相当する。
次に、ステップS621において、制御部101は、制御部101は、接続機器であるスマートデバイス200に対して接続処理を開始する。本ステップの処理は図5のステップS516、S518に相当する。
次に、ステップS622において、制御部101は、ユーザ操作によって送信対象となる画像選択が行われたか否かを検知する。本ステップの処理は図3のステップS519に相当する。
次に、ステップS623において、制御部101は、選択画像をスマートデバイス200に送信する。本ステップの処理は図5のステップS520に相当する。画像の送信が完了すると、画像送信処理を終了する。これに伴い、スマートデバイス200との無線LAN接続を切断する。
以上が、本実施形態におけるデジタルカメラ100の処理を示すフローチャートである。
<スマートデバイス200の処理のフローについて>
次に、上記の手順を実現するためのスマートデバイス200の動作について説明する。
図7は、本実施形態におけるスマートデバイス200の動作を示すフローチャートである。
まず、ステップS701において、制御部201は、ユーザ操作によってBluetoothハンドオーバーを実施したか否かを判断する。もし、Bluetoothハンドオーバーを実施したと判断した場合はステップS710に進み、そうでない場合はステップS702へ進む。
まず、ステップS702に進んだ場合について説明する。
ステップS702において、制御部201は、ユーザ操作によって、デジタルカメラ100と接続して画像受信するメニューが選択されたか否かを検知する。メニューが選択されたと検知した場合はステップS703に進む。そうでない場合はステップS701に戻る。
次に、ステップS703において、制御部201は、ユーザ操作によって、操作部205を用いて無線LANネットワークの設定メニューを選択したかを検知する。本ステップの処理は図3のステップS306に相当する。
次に、ステップS704において、制御部201は、ユーザ操作によって、操作部205を用いて接続するネットワークが選択されたか否かを検知する。本ステップの処理は図3のステップS307に相当する。
次に、ステップS705において、制御部201は、ステップS704で選択したネットワークに参加する。本ステップの処理は図3のステップS308に相当する。
次に、ステップS706において、制御部201は、DHCPアドレッシングにより図3のステップS309にてデジタルカメラ100から貸与されたIPアドレスをスマートデバイス200のIPアドレスとして設定する。
次に、ステップS707において、制御部201は、デジタルカメラ100に対してアドバタイズ送信を行う。本ステップの処理は図3のステップS311に相当する。
次に、ステップS708において、制御部201は、デジタルカメラ100との接続処理を行う。本ステップの処理は図3のステップS314に相当する。
次に、ステップS709において、制御部201は、デジタルカメラ100から送信された画像を受信する。すべての画像の受信が完了した場合、画像送信が完了した旨をデジタルカメラ100に通知し、例えば不図示であるが表示部206に受信完了のメッセージを表示して処理を終了する。
以上が、ステップS701からステップS702に進んだ場合についての説明である。
続いて、ステップS701からステップS710に進んだ場合について説明する。
ステップS710において、制御部201は、近距離無線通信部212よりデジタルカメラ100へハンドオーバー要求を送信する。本ステップの処理は図5のステップS504に相当する。
次に、ステップS711において、制御部201は、近距離無線通信部212よりデジタルカメラ100へスマートデバイス200の情報を送信する。なお、スマートデバイス200の情報は、OS(Operating Sysyte)情報、アプリケーションのバージョン情報、個体識別情報などを指し、いずれか1つでも良いし、これらの組み合わせを送信しても良い。また、必ずしもステップS710より後に送信する必要はなく、ステップS710より先に送信することとしても良い。
次に、ステップS712において、制御部201は、デジタルカメラ100より近距離無線通信部212を介して、無線LANの通信パラメータを受信する。本ステップの処理は図5のステップS508に相当する。
次に、ステップS713において、制御部201は、無線LANネットワークを探索する。具体的には、OSの管理するSSIDのデータベースに、ステップS712で受信した無線LANの通信パラメータを、有効な情報として記録する。これに併せて、既に管理されている他のSSIDの状態を無効に設定する。これにより、既に他の無線LANネットワークに参加していたとしても、その無線LANネットワークを離脱して、デジタルカメラ100のネットワークのみを探索するように制御する。
次に、ステップS714において、制御部201は、ネットワークが発見されたか否かを検知する。もし無線LANネットワークを検知した場合はS715に進む。そうでない場合は処理を終了する。例えば、一定時間が過ぎた後、無線LANネットワークが発見されなかった旨を不図示であるが表示部106に表示し、無線LANネットワークの検索を終了する。
次に、ステップS715において、制御部201は、無線LANネットワークに参加する。本ステップの処理は図5のステップS513に相当する。
次に、ステップS716において、制御部201は、DHCPアドレッシングにより図5のステップS514にてデジタルカメラ100から貸与されたIPアドレスをスマートデバイス200のIPアドレスとして設定する。
次に、ステップS717において、制御部201は、デジタルカメラ100との接続処理を行う。本ステップの処理は図5のステップS518に相当する。
最後に、ステップS718において、制御部201は、制御部201は、デジタルカメラ100から送信された画像を受信する。すべての画像の受信が完了した場合、画像送信が完了した旨をデジタルカメラ100に通知し、例えば不図示であるが表示部206に受信完了のメッセージを表示して処理を終了する。なお、受信した画像は、スマートデバイス200の撮像部202によって撮像されて得られる画像を保存する記録媒体と同じ記録媒体に保存する。
以上が、本実施形態におけるスマートデバイス200の処理を示すフローチャートである。
以上、本実施形態のデジタルカメラ100は、メニュー操作から無線LAN接続する場合と、Bluetoothハンドオーバーをトリガに無線LANに接続する場合とで、共に利用する通信パラメータを共通にした。具体的には、過去に接続したことのある機器との接続に用いた通信パラメータを、過去に接続したことのある機器の個体識別情報と共に保持する。そして、メニュー操作から無線LAN接続する場合は、過去に接続したことのある機器のリスト(いわゆる接続履歴一覧)が選択されたか否かで判断する。一方、Bluetoothハンドオーバーをトリガに無線LANに接続する場合は、個体識別情報を受信して判断する。このように、異なる接続手順であっても、共通の通信パラメータを用いることにより、登録済の通信装置とハンドオーバー実施時に、過去に接続した際のネットワークパラメータを使って接続を確立することが可能となる。
[第2の実施形態]
図8を参照して、本発明の第2の実施形態を説明する。ここでは、Bluetoothハンドオーバー時に使用する無線LANの通信パラメータを、接続する機器の個体識別情報とは別に不揮発性メモリ103に記憶する方法について説明する。なお、無線LANの通信パラメータを、接続する機器の個体識別情報と別に不揮発性メモリ103に記憶するのは以下の理由による。すなわち、メニュー画面からスマートデバイスと無線LAN接続した場合の接続履歴が消去された場合に、共に保存している無線LANの通信パラメータが消去されることを防ぐためである。また、別の目的は、Bluetoothハンドオーバー時の接続時間を短縮するために、接続する機器の個体識別情報から無線LANの通信パラメータを検索する処理を省くためである。本実施形態においては、第1の実施形態のBluetoothハンドオーバー実施時の簡易AP起動準備(図6のステップS615)の処理について説明する。本実施形態においては、上記以外は第1の実施形態と同様である。
図8は、本実施形態におけるデジタルカメラ100の動作を示すフローチャートである。
ステップS801において、制御部101は、ハンドオーバー専用の無線LANの通信パラメータが不揮発性メモリ103に記憶されているかを判断する。もし、ハンドオーバー専用の無線LANの通信パラメータが不揮発性メモリ103に記憶されていると判断した場合はステップS802に進み、そうでない場合はステップS803に進む。
ステップS802において、制御部101は、不揮発性メモリ103からハンドオーバー専用の無線LANの通信パラメータ読み出し、簡易AP起動準備を終了する。なお、ハンドオーバー専用の無線LANの通信パラメータを不揮発性メモリ103に記憶する方法は後述する。
ステップS803において、制御部101は、過去に無線LANの接続をしたことのある機器と接続するかどうかを判断する。具体的には、図6のステップS614において受信したスマートデバイス200の情報を基に、過去に接続したことのある機器と接続するか、新規で接続するかを判断する。もし、過去に無線LANの接続をしたことのある機器と接続する場合はステップS804に進み、そうでない場合はステップS805に進む。
ステップS804において、制御部101は、接続する機器の個体識別情報と共に不揮発性メモリ103に記憶されている無線LANの通信パラメータを読み出す。具体的には、図6のステップS614において受信したスマートデバイス200の情報に含まれる個体識別情報と共に、不揮発性メモリ103に記憶されている無線LANの通信パラメータを読み出す。
ステップS805において、制御部101は、無線LANの通信パラメータを新規で生成する。生成するSSIDと暗号化キーは、いずれも本ステップが実行される度にランダムに決定される値が用いられる。すなわち、ユーザがメニュー操作によって無線LAN接続を開始する度に、毎回異なる通信パラメータを生成する。SSIDは、予め不揮発性メモリに記録された機器情報を基に生成する。機器情報とは、例えば、機器名や個体識別情報(GUID:Globally Unique Identifierあるいは、UUID:Universally Unique Identifierなど)などである。暗号化キーは、生成した乱数をパスフレーズとして暗号化計算を繰り返すことで生成する。
ステップS806で制御部101は、ステップS804で読み出した通信パラメータまたは、ステップS805で生成した通信パラメータを、ハンドオーバー専用の無線LAN通信パラメータとして不揮発性メモリ103に記憶し、簡易AP起動準備を終了する。なお、通信パラメータが、接続する機器の個体識別情報と共に新規で記憶されるか、変更される場合、接続する機器の個体識別情報がステップS614で受信したものと同じかどうかを判断してもよい。そして、同じであった場合には、ハンドオーバー専用の無線LANの通信パラメータとして不揮発性メモリ103に記憶してある無線LANの通信パラメータを、同じ無線LANの通信パラメータに変更する構成としても良い。
以上が、本実施形態におけるデジタルカメラ100の動作を示すフローチャートである。
以上、本実施形態のデジタルカメラ100は、Bluetoothハンドオーバーをトリガに無線LANに接続する場合の無線LANの通信パラメータを、接続する機器の個体識別情報とは別に不揮発性メモリ103に記憶した。
[第3の実施形態]
図9を参照して、本発明の第3の実施形態を説明する。本実施形態では、接続するスマートデバイス200のOSの種類に応じて、通信パラメータを変更する方法について説明する。
スマートデバイス200のOSの種類としてiOS(登録商標)とAndroid(登録商標)などが考えられる。ここで、接続するスマートデバイス200がAndroidバージョン6.0機器の場合、メニュー画面から接続したことがある状態で、Bluetoothハンドオーバー接続を行うときに以下のような不都合が生じる。すなわち、使用する無線LANの通信パラメータがメニュー画面からの接続時に用いた使用した無線LANの通信パラメータと同じものを使用した場合、接続できないという問題が生じる。これは、Androidバージョン6.0機器ではアプリID とSSID を関連付けて記憶し、同じアプリID のアプリからしかSSID の編集・削除を許可していないためである。メニュー画面から接続する場合は、デジタルカメラで簡易APを起動した後、スマートデバイスの設定の無線LAN設定から簡易APのSSIDを選択してパスワードを入力して接続する。その後、Bluetoothハンドオーバーで接続する場合は、スマートデバイスのアプリからメニュー画面から接続する時と同じSSIDに対して接続を試みる。この際に、一度SSID情報を削除してから接続を試みるが、上述したAndroidのOSの仕様から削除ができないため接続することができない。
そこで、Android機器と接続する場合は、Bluetoothハンドオーバー時に使用する無線LANの通信パラメータとメニュー画面からの接続時に使用する無線LANの通信パラメータを変更することを考える。本実施形態においては、第1の実施形態のBluetoothハンドオーバー実施時の簡易AP起動準備(図6のステップS615)の処理について説明する。本実施形態においては、上記以外は第1の実施形態と同様である。
図9は、本実施形態におけるデジタルカメラ100の動作を示すフローチャートである。
ステップS901において、制御部101は、スマートデバイス200のOSがAndroidであるか否かを判断する。具体的には、図6のステップS614において受信したスマートデバイス200の情報に含まれるOS情報を基に、スマートデバイス200のOSを判断する。スマートデバイス200のOSがAndroidであると判断した場合は、ステップS902に進み、スマートデバイス200のOSがAndroidではない、つまり、iOSであると判断した場合は、ステップS908に進む。
ステップS902において、制御部101は、過去に無線LAN接続をしたことがある機器との接続であるか否かを判断する。この判断は、図6のステップS614において受信したスマートデバイス200の情報に含まれる個体識別情報と不揮発性メモリ103に記憶されている無線LAN通信パラメータに基づき行われる。ステップS902において、過去に無線LAN接続をしたことがある機器との接続であると判断した場合は、ステップS903に進み、過去に無線LAN接続をしたことがない機器であると判断した場合は、ステップS907に進む。
ステップS903において、制御部101は、不揮発性メモリ103に記憶されている無線LANの通信パラメータを作業用メモリ104に読み出し、ステップS904に進む。具体的には、図6のステップS614において受信したスマートデバイス200の情報に含まれる個体識別情報をもとに、不揮発性メモリ103に記憶されている無線LAN通信パラメータを作業用メモリ104に読み出す。
ステップS904において、制御部101は、無線LANの通信パラメータを新規に生成し、ステップS905に進む。生成するSSIDと暗号化キーは、いずれも本ステップが実行される度にランダムに決定される値が用いられる。SSIDは、予め不揮発性メモリ103に記録されている機器情報を基に生成する。機器情報とは、例えば、機器名や個体識別情報などである。暗号化キーは、生成した乱数をパスフレーズとして暗号化計算を繰り返すことで生成する。
ステップS905において、制御部101はステップS903において不揮発性メモリ103から読み出した無線LANの通信パラメータとステップS904において新規に生成した無線LANの通信パラメータを比較して、同じであるか否かを判断する。ステップS905において、無線LANの通信パラメータが同じであると判断した場合は、ステップS904に戻り再度通信パラメータを生成し、無線LANの通信パラメータが異なると判断した場合は、ステップS906に進む。
ステップS906において、制御部101は、ステップS904で新規に生成した無線LANの通信パラメータを、図6のステップS614で受信したスマートデバイス200の情報に含まれる個体識別情報と共に、不揮発性メモリ103に記憶する。そして、簡易AP起動準備を終了する。
ステップS902において、過去に無線LAN接続をしたことがない機器であると判断した場合は、ステップS907において、制御部101は、無線LANの通信パラメータを新規に生成し、ステップS906に進む。ステップS907における処理は、ステップS904における処理と同様である。
次に、ステップS901において、スマートデバイス200のOSがiOSであると判断した場合について説明する。
ステップS908において、制御部101は、過去に無線LAN接続をしたことがある機器との接続であるか否かを判断する。ステップS908において、過去に無線LAN接続をしたことがある機器との接続であると判断した場合は、ステップS909に進み、過去に無線LAN接続をしたことがない機器であると判断した場合は、ステップS910に進む。ステップS908における処理は、ステップS902における処理と同様である。
ステップS909において、制御部101は、不揮発性メモリ103に記憶されている無線LANの通信パラメータを作業用メモリ104に読み出し、簡易AP起動準備を終了する。ステップS909における処理は、ステップS903における処理と同様である。
ステップS902において、過去に無線LAN接続をしたことがない機器であると判断した場合は、ステップS910において、制御部101は、無線LANの通信パラメータを新規に生成し、ステップS911に進む。ステップS910における処理は、ステップS904における処理と同様である。
ステップS911において、制御部101は、ステップS910で新規に生成した無線LANの通信パラメータを、図6のステップS614で受信したスマートデバイス200の情報に含まれる個体識別情報と共に、不揮発性メモリ103に記憶する。そして、簡易AP起動準備を終了する。
以上が、本実施形態におけるデジタルカメラ100の動作を示すフローチャートである。
以上のように、接続するスマートデバイスのOSがAndroidの場合は、Bluetoothハンドオーバー接続時に使用する無線LANの通信パラメータとメニュー画面からの接続時に使用する無線LANの通信パラメータを異なるパラメータにする。これにより、先にメニュー画面からの接続を行った後でBluetoothハンドオーバー接続を行うときに接続できないという問題を解決することができる。
なお、本実施形態では、スマートデバイスのOSがAndroidの場合、Bluetoothハンドオーバー接続時に使用する無線LANの通信パラメータとメニュー画面からの接続時に使用する無線LANの通信パラメータを異ならせるようにした。しかし、Androidのバージョンによっては同じ通信パラメータでも接続可能な場合があるため、Androidのバージョンによって通信パラメータを同じにするか異なるものにするかを判断してもよい。このような構成にすることにより、Androidとの接続の場合でも、バージョンによってBluetoothハンドオーバー時も同じ無線LANの通信パラメータを用いることができる。
また、本実施形態において、Bluetoothハンドオーバー時にスマートデバイス200から取得するスマートデバイス200の情報に含まれるOS情報に基づいて、OSがAndroidの場合は異なる通信パラメータにするという構成にした。これについては、メニュー画面からの接続時とBluetoothハンドオーバー時の無線LANの通信パラメータが同じでよいか否かをスマートデバイス200側で判断してもよい。また、同一通信パラメータが可能であるかの情報をBluetoothハンドオーバー時にデジタルカメラ100に通知し、デジタルカメラ100はその情報をもとに通信パラメータを同じにするか異なるものにするかを決めるという構成にしてもよい。このような構成にすることにより、メニューからの接続の場合でもスマートデバイスのアプリを用いて接続する場合は、Bluetoothハンドオーバー時も同じ無線LANの通信パラメータを用いることができる。
また、本実施形態のステップS902〜ステップS905で、過去に無線LAN接続したことがある機器との接続の場合は、記憶している通信パラメータと新規に生成した通信パラメータが同じならば再度通信パラメータを生成し直すという構成にした。しかし、記憶している通信パラメータを読み出して、一部を変更して新たな通信パラメータとするという構成にしてもよい。このような構成にすることで、読み出した通信パラメータと新規に生成した通信パラメータを比較する時間と、比較して同じだった場合、再度通信パラメータを生成し直すという時間を短縮することが可能である。
さらに、本実施形態において、Bluetoothハンドオーバー時の無線LANの通信パラメータは、スマートデバイスの個体識別情報と共に不揮発性メモリ103に記憶するという構成にした。しかし、第2の実施形態に記述のように、Bluetoothハンドオーバー時の通信パラメータを接続する機器の個体識別情報とは別に不揮発性メモリ103に記憶してもよい。このような構成にすることで、メニュー画面からスマートデバイスと無線LAN接続した場合の接続履歴が消去された場合に、共に保存している無線LANの通信パラメータが消去されることを防ぐことができる。また、Bluetoothハンドオーバー時の接続時間を短縮するために、接続する機器の個体識別情報から無線LANの通信パラメータを検索する処理を省くことができる。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。