以下、本発明の実施の形態について、図面を参照しながら説明する。なお、本発明の技術範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
(無線通信システムの構成例)
図1に、本実施形態に係る無線通信システム100の構成例を示す。図1の無線通信システム100は、例えば、デジタルカメラ101A〜101B、スマートデバイス102、及びアクセスポイント(AP)103A〜103Bを含んで構成される。なお、デジタルカメラ101A〜101B、スマートデバイス102、及びAP103A〜103Bは、それぞれ、無線LANによる通信機能を有する無線通信装置である。AP103A〜103Bは、それぞれ、インフラストラクチャ・モードで無線LANのネットワーク106A〜106Bを構築している。また、デジタルカメラ101A〜101Bおよびスマートデバイス102は、ネットワーク106A〜106Bの少なくともいずれかに接続し、無線LANの信号104を介して無線通信を行うことができる。また、AP103A〜103Bは、バックボーンネットワーク107と接続されている。なお、バックボーンネットワーク107は、例えばInternetであるが、ローカルネットワーク等の他のネットワークであってもよい。さらに、デジタルカメラ101A〜101Bは、それぞれ、スマートデバイス102との間で、Bluetooth(登録商標) Low Energy(以下、「BLE」と呼ぶ。)の信号105を用いた通信を行うことができる。
本実施形態では、デジタルカメラ101A〜101Bは、スマートデバイス102から、接続候補となるAPに関するネットワーク情報をBLEによる通信を介して取得して、その通知されたAPと接続することができる。ここで、スマートデバイス102は、自身が接続可能な、すなわち自身の近傍のAPを検索して、その近傍のAPに関するネットワーク情報を、接続候補のAPに関するネットワーク情報をデジタルカメラ101A〜101Bへ送信する。デジタルカメラ101A〜101Bは、スマートデバイス102との間の距離に応じて、スマートデバイス102から通知されたネットワーク情報に従うかを決定する。すなわち、デジタルカメラ101A〜101Bは、スマートデバイス102との距離が大きく離れている場合には、そのスマートデバイス102から取得したネットワーク情報には従わない。スマートデバイス102の近傍のAPが、デジタルカメラ101A〜101Bの近傍に存在するとは限らないからである。
以下では、このような動作を行うデジタルカメラ101A〜101Bと、スマートデバイス102との構成と、これらの装置が実行する処理とについて説明する。なお、本実施形態では、デジタルカメラとスマートデバイスとの間で、BLE通信を用いて、デジタルカメラが無線LANのネットワークに接続するための処理を行うが、これに限られない。例えば、処理は、デジタルカメラが無線LANと異なるネットワークに接続するために用いられてもよいし、本処理のためにBLEではない別の通信方式による通信が用いられてもよい。なお、無線LANは、IEEE802.11規格シリーズに準拠するものであってもよいし、他の規格に従うものであってもよい。また、無線LANではなく、例えば、ワイヤレスUSB、MBOA、Bluetooth、UWB、ZigBee等の他の無線媒体が用いられてもよい。また、有線LAN等の有線通信媒体が用いられてもよい。なお、MBOAは、Multi Band OFDM Allianceの頭字語である。また、UWBには、ワイヤレスUSB、ワイヤレス1394、WINETなどが含まれる。
また、デジタルカメラ及びスマートデバイスは、後述の処理を実行する通信装置の一例に過ぎず、一方の通信装置が、他の通信装置と連携してネットワークに接続するための処理を実行可能であれば、どのような装置が用いられてもよい。すなわち、デジタルカメラは、例えば、ノートパソコン、タブレット端末、ポータブルゲーム機、パーソナルデジタルアシスタント(PDA)などの、通信機能を有する任意の装置と置き換えられうる。また、スマートデバイスも、同様に任意の装置で置き換えられうる。例えば、後述のスマートデバイスの機能をデジタルカメラが実行してもよい。
(デジタルカメラの構成)
図2に、本実施形態に係るデジタルカメラ101A〜101Bの構成例を示す。デジタルカメラ101A〜101Bは、例えば、Host部20とBLE Controller部25とを含んで構成される。なお、Host部20及びBLE Controller部25は、それぞれ、ハードウェア構成として、CPUやMPU等のプロセッサと、ROMやRAM等の記憶装置と、アンテナや増幅器等の通信装置とを含んで構成される。ここで、CPUはCentral Processing Unitの頭字語であり、MPUはMicro Processing Unitの頭字語である。また、ROMはRead Only Memoryの、RAMはRandom Access Memoryの頭字語である。なお、以下の各機能部の少なくとも一部は、例えばプロセッサによって記憶装置によって記憶されたプログラムが読み出されて実行されることにより実現されうるが、その一部は別のハードウェアによって実現されうる。
ここで、Host部20は、例えば、無線LAN通信部201、パケット送受信部203、制御部204、記憶部205、電源部206、表示部207、操作部208、撮像部209、画像処理部210、符号/復号化部211、及び記録再生部212を有する。なお、Host部20は、さらに、BLE Controller部25との間のインタフェースとして、BLE Controller I/F213を含む。
一方、BLE Controller部25は、一例として、BLE通信部251、パケット送受信部253、制御部254、記憶部256及び電源部257を有する。また、BLE Controller部25は、Host部20との間のインタフェースとして、Host I/F255を含む。
無線LAN通信部201は、無線LANの、RF(Radio Frequency)制御、通信処理、IEEE802.11シリーズに準拠した通信の各種制御を行うドライバや関連するプロトコルの処理を行う。無線LAN通信部201は、アンテナ202を介して、無線LANの通信を行う。パケット送受信部203は、無線LANの各種通信に係るパケットの送受信を行う。制御部204は、記憶部205に記憶される制御プログラムを実行することにより、Host部20を制御する。記憶部205は、制御部204が実行する制御プログラムと、通信に必要なパラメータ等の各種情報を記憶する。後述するHost部20の各種動作は、記憶部205に記憶された制御プログラムを制御部204が実行することにより行われうる。
電源部206は、Host部20に電源を供給する。表示部207は各種表示を行う機能部であり、LCDやLEDのように視覚で認知可能な情報の出力、またはスピーカ等の音出力を行うことができる。操作部208は、デジタルカメラ101A〜101Bに対する操作を受け付ける。撮像部209は、被写体の光学像を撮像する。画像処理部210は、撮像部209から出力された撮像画像を所定フォーマットの画像データに変換し、画像データの輝度や色補正等の各種処理を実行する。符号/復号化部211は、画像処理部210から出力された画像データに対して、所定の高能率符号化(例えば、DCT変換、量子化後の可変長符号化)を行う。記録再生部212は、圧縮符号化された画像データを不図示の記録媒体に記録再生する。
BLE通信部251は、BLEの、RF制御、通信処理、規格に準拠した通信のための各種制御を行うドライバや関連するプロトコルの処理を行う。BLE通信部251は、アンテナ252を介してBLEの通信を行う。パケット送受信部253は、BLE通信に係るパケットの送受信を行う。制御部254は、記憶部256に記憶された制御プログラムを実行することによりBLE Controller部25を制御する。記憶部256は、制御部254が実行する制御プログラムと、BLE通信に必要なパラメータ等の各種情報を記憶する。後述するBLE Controller部25の各種動作は、記憶部256に記憶された制御プログラムを制御部254が実行することにより行われうる。電源部257は、BLE Controller部25に電源を供給する。
本実施形態では、BLE Controller部25を上述のように構成することにより、BLE Controller部25とHost部20とがそれぞれ独立して動作することができる。すなわち、BLE Controller部25は、電源部206がHost部20に対する電源供給を停止していても、電源部257からの電源供給により起動し、外部装置とBLEによる通信を行うことができる。
(スマートデバイスの構成)
図3に、本実施形態に係るスマートデバイス102の構成例を示す。スマートデバイス102は、例えば、無線LAN通信部301、公衆無線通信部303、BLE通信部305、パケット送受信部307、制御部308、記憶部309、電源部310、表示部311、操作部312、通話部313及びマイク314を有する。
無線LAN通信部301は、無線LANの、RF制御、通信処理、IEEE802.11シリーズに準拠した通信の各種制御を行うドライバや関連するプロトコルの処理を行う。無線LAN通信部301は、アンテナ302を介して、無線LANの通信を行う。公衆無線通信部303は、公衆無線通信の、RF制御、通信処理、規格に準拠した通信の各種制御を行うドライバや関連するプロトコルの処理を行う。公衆無線通信は、例えばIMT(International Multimedia Telecommunications)規格やLTE(Long Term Evolution)規格などに準拠した通信でありうる。公衆無線通信部303は、アンテナ304を介して通信を行う。BLE通信部305は、BLEの、RF制御、通信処理、規格に準拠した通信の各種制御を行うドライバや関連するプロトコルの処理を行う。BLE通信部305は、アンテナ306を介して通信を行う。パケット送受信部307は、各種通信にかかわるパケットを送受信する。制御部308は、記憶部309に記憶される制御プログラムを実行することにより、スマートデバイス102全体を制御する。記憶部309は、制御部308が実行する制御プログラムと、通信に必要なパラメータ等の各種情報を記憶する。後述する各種動作は、記憶部309に記憶された制御プログラムを制御部308が実行することにより行われうる。電源部310は、スマートデバイス102に電源を供給する。表示部311は、各種表示を行う機能部であり、LCDやLEDのように視覚で認知可能な情報の出力、またはスピーカ等の音出力を行うことができる。操作部312は、スマートデバイス102に対する操作を受け付ける。通話部313は、マイク314を介して、ユーザへ通話機能を提供する。
上述の全ての機能ブロックは、ソフトウェアまたはハードウェアにおける相互関係を有するものである。また、上述の機能ブロックは一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、何れかの機能ブロックが更に複数の機能を行うブロックに分けられてもよい。
(処理の流れ)
以下では、デジタルカメラ101A又は101Bと、スマートデバイス102がそれぞれ実行する処理について説明した後に、いくつかの状況においてシステム内で実行される処理の流れの例について説明する。なお、以下の説明では、スマートデバイス102に、接続先の候補となりうるAPのネットワーク情報が予め登録されているものとする。ここで、ネットワーク情報は、APが生成するネットワークのBSSID(Basic Service Set Identifier)や通信チャネルでありうるが、これらに限られない。例えば、SSID(Service Set Identifier)、暗号方式、暗号キー、通信チャネル、電波強度又はネットワークを識別可能とする所定の識別情報等の少なくともいずれかがネットワーク情報として用いられてもよい。また、以下の説明では、BLE通信は、GATT(Generic Attribute)プロファイルでのリンクが確立された状態であるものとする。
((デジタルカメラの処理))
図4は、デジタルカメラ101Aが、他の装置を介した無線LANの接続制御を開始した場合の処理の流れの例を示すフローチャートである。ここで、この、他の装置を介した無線LANの接続制御を、以下では「連携接続処理」と呼ぶ。本処理は、例えばデジタルカメラ101Aにおけるユーザのボタン操作やメニュー選択を契機に開始されうるが、これに限られない。例えば、デジタルカメラ101Aは、NFC(Near Field Communication)によって、スマートデバイス102の近接を検知した場合に、本処理を開始しうる。なお、デジタルカメラ101Bも同様の動作をすることができる。
まず、デジタルカメラ101Aは、外部装置であるスマートデバイス102との距離を推定する(S401)。以下では、距離の推定は、一例として、BLE通信における信号105の受信強度(RSSI)に基づいた、Immediate(至近距離)、Near(近距離)、Far(遠距離)等の3段階の結果を与えるものとする。なお、Immediate、Near、Farの3段階の評価結果は、例えばデジタルカメラ101Aからの距離が短い順に短い第1の範囲、第2の範囲、及び第3の範囲、のように一般化することができる。この場合、距離の推定では、所定の基準に従って、デジタルカメラ101Aとスマートデバイス102との距離がどの範囲に属するかが判定されうる。なお、この他の距離推定技術が用いられてもよい。例えば、BLE通信における位置の計測精度やリンク状態等を用いて、距離推定が行われてもよい。デジタルカメラ101Aは、計測精度を用いる場合、計測精度の値が閾値以下であるか否かを判定することにより、スマートデバイス102が一定以上離れた位置に存在するか否かを推定することができる。また、デジタルカメラ101Aは、リンク状態を用いる場合、接続中のBLE通信のリンクが切断された場合に、スマートデバイス102が一定以上離れた位置に存在すると推定しうる。なお、デジタルカメラ101Aは、スマートデバイス102との距離を、上述の基準を組み合せて推定してもよい。
次に、デジタルカメラ101Aは、スマートデバイス102との距離推定結果がFarであるか否かを判定する(S402)。なお、ここでは、上述の3段階での距離推定と異なる手法で距離が推定された場合には、デジタルカメラ101Aとスマートデバイス102との間の距離が所定距離以上離れているかが判定されてもよい。デジタルカメラ101Aは、距離推定結果がFarである場合(S402でYES)は処理をS403へ進める一方で、距離推定結果がFarでない場合(S402でNO)は処理をS411へ進める。
まず、デジタルカメラ101Aが、スマートデバイス102がFarと判定されるよりも近い位置に存在する場合(S402でNO)について説明する。この場合、デジタルカメラ101Aは、スマートデバイス102へ処理停止通知を送信したか否かを判定し(S411)、処理停止通知を送信した場合(S411でYES)は、処理開始通知を送信して(S412)、処理をS401へ戻す。なお、S412の判定は、以前に処理開始通知が送信されて以降、処理停止通知が送信されたかの判定でありうる。この場合、デジタルカメラ101Aは、処理をS401へ戻した後にスマートデバイス102との距離がFarの状態とならない限り、処理を再度S411へ戻すこととなる。一方、デジタルカメラ101Aは、処理停止通知を送信していない場合(S411でNO)は、処理をS413へ進める。
ここで、処理停止通知は、デジタルカメラ101Aが、他の装置(スマートデバイス102)から取得した情報に基づくAPの検索処理、すなわち連携接続処理を停止することを当該他の装置に通知するための信号である。また、処理開始通知は、連携接続処理を開始することを当該他の装置に通知するための信号である。なお、他の装置(スマートデバイス102)は、処理開始通知および処理停止通知のそれぞれによって、ネットワークの選択と、そのネットワークに関する情報の通知の開始および停止を行う。処理開始通知および処理停止通知は、BLE通信における信号105として送受信されうる。
S413では、デジタルカメラ101Aは、スマートデバイス102から、ネットワーク情報を受信したか否かを判定する。デジタルカメラ101Aは、ネットワーク情報を受信した場合(S413でYES)は、処理をS414へ進める一方で、受信していない場合(S413でNO)は、処理をS401へ戻す。S414では、デジタルカメラ101Aは、スマートデバイス102との距離推定結果がImmediateであるか否かを判定する。なお、ここでは、上述の3段階での距離推定と異なる手法で距離が推定された場合には、デジタルカメラ101Aとスマートデバイス102との間の距離が所定距離より短いかが判定されてもよい。ここでの所定距離は、S402での判定に用いられうる所定距離より短い第2の所定距離であってもよいし、S402での判定に用いられうる所定距離と同じであってもよい。デジタルカメラ101Aは、スマートデバイス102との距離の推定結果がImmediateである場合(S414でYES)は、処理をS417へ進める一方、Immediateでない場合(S414でNO)は処理をS415へ進める。
デジタルカメラ101Aは、スマートデバイス102との距離がImmediateと判定されない程度であった場合(S414でNO)、受信した接続先候補のネットワークに接続するかの判定を行うネットワーク確認処理を実行する(S415)。なお、スマートデバイス102との距離がImmediateと判定されない程度である場合とは、例えば、スマートデバイス102との距離がNearと判定される程度の距離の場合である。なお、デジタルカメラ101Aは、スマートデバイス102との距離が、S402での判定に用いられる第1の所定距離より短く、かつ、上述の第2の所定距離以上である場合に、S414においてNOと判定してもよい。ネットワーク確認処理については、図6を用いて後述する。なお、ここでは、デジタルカメラ101Aは、スマートデバイス102との距離がNearである場合にのみ、ネットワーク確認処理を実行するようにしたが、距離に関係なくネットワーク確認処理を実行してもよい。これにより、デジタルカメラ101Aは、スマートデバイス102と自身との無線LANの通信特性が異なり、接続先候補として選択されたネットワークが不適切である場合に、そのネットワークに接続することを防ぐことができる。
S416では、デジタルカメラ101Aは、S415のネットワーク確認処理における判定に基づいて、スマートデバイス102から受信した接続先候補のネットワークに接続するか否かを判定する。デジタルカメラ101Aは、接続先候補のネットワークへ接続する場合(S416でYES)、そのネットワークへの接続を行い(S417)、処理をS419へ進める。一方、デジタルカメラ101Aは、接続先候補のネットワークへ接続しない場合(S416でNO)は、スマートデバイス102から受信したネットワーク情報を破棄し(S418)、処理をS419へ進める。
S414において、デジタルカメラ101Aは、スマートデバイス102との距離がImmediateと判定された場合(S414でYES)、スマートデバイス102から受信した情報を用いて、接続先候補のネットワークに接続する(S417)。そして、デジタルカメラ101Aは、処理をS419へ進める。デジタルカメラ101Aは、例えば、スマートデバイス102からAP103Aに関するネットワーク情報を取得して、AP103が提供するネットワーク106Aに参加する。
S402において、デジタルカメラ101Aは、スマートデバイス102との距離がFarであると判定した場合(S402でYES)、続いて、スマートデバイス102が移動したか否かを判定する(S403)。そして、デジタルカメラ101Aは、スマートデバイス102が移動した場合(S403でYES)は処理をS404へ進める一方で、移動していない場合(S403でNO)は処理をS405へ進める。
スマートデバイス102が移動したか否かの判定は、スマートデバイス102からBLE通信を介して移動通知を受信したか否かにより行われうる。なお、移動通知は、スマートデバイス102における移動の有無を示すデータであるが、移動検出の精度や手段、時刻等のデータが含まれていてもよい。また、デジタルカメラ101Aは、スマートデバイス102の移動判定を、自身が有するGPS(Global Positioning System)や加速度、ジャイロ等の各種センサや周囲のネットワーク情報を用いた自身の移動検出により判定しうる。例えば、デジタルカメラ101Aは、自身の移動を検出した場合であって、スマートデバイス102との距離が前回推定時よりも離れた場合には、デジタルカメラ101Aが移動したと判定し、スマートデバイス102が移動していないと判定しうる。
デジタルカメラ101Aは、スマートデバイス102が移動したと判定した場合(S403でYES)、続いて、スマートデバイス102からネットワーク情報を受信したか否かを判定する(S404)。そして、デジタルカメラ101Aは、ネットワーク情報を受信した場合(S404でYES)は、受信したネットワーク情報を破棄して(S409)、また、受信していない場合(S404でNO)は何もせずに、処理をS410へ進める。S410では、デジタルカメラ101Aは、スマートデバイス102に対して、処理停止通知の送信を行う。これにより、デジタルカメラ101Aは、スマートデバイス102が離れた位置に存在する場合に、スマートデバイス102から受信した不適切なネットワーク情報に基づいた接続設定を行うことを防ぐことができる。
なお、図4では、デジタルカメラ101Aが、すでに何らかのネットワークとの間で接続を確立していて、その後、連携接続処理を行っているスマートデバイス102との距離が離れた場合の処理について示している。このため、図4では、S403において、外部装置が移動したと判定した場合は、デジタルカメラ101Aは、その時点で確立されているネットワークとの接続を維持すればよいため、その後のネットワーク接続処理は行わない。一方、デジタルカメラ101Aがいずれのネットワークとも接続を確立していない場合はありうる。この場合、デジタルカメラ101Aは、スマートデバイス102からのネットワーク情報によらず、後述のネットワーク検索処理のようにして、自律的に接続先のネットワークを検索して接続を確立してもよい。
一方、デジタルカメラ101Aは、スマートデバイス102が移動していないと判定した場合(S403でNO)、ネットワーク検索処理を実行する(S405)。ネットワーク検索処理では、デジタルカメラ101Aは、自身が接続すべきネットワークを検索して、そのようなネットワークが存在する場合には、そのネットワークに関するネットワーク情報を記憶する。ネットワーク検索処理については、図5を用いて後述する。
デジタルカメラ101Aは、ネットワーク検索処理の結果として、接続先候補のネットワーク情報が記憶されたか否かを判定する(S406)。デジタルカメラ101Aは、ネットワーク情報が記憶されている場合(S406でYES)は処理をS407へ進め、ネットワーク情報が記憶されていない場合(S406でNO)は接続先候補を発見しなかったものとして処理をS410へ進める。S407では、デジタルカメラ101Aは、記憶されているネットワークが、デジタルカメラ101Aが接続中のネットワークと同一であるかを判定する。そして、デジタルカメラ101Aは、これらのネットワークが同一である場合(S407でYES)には受信したネットワーク情報を破棄する(S409)。一方、デジタルカメラ101Aは、これらのネットワークが同一でない場合(S407でNO)は、記憶されていたネットワークに接続する(S408)。その後、デジタルカメラ101Aは、スマートデバイス102に対して、処理停止通知を送信して(S410)、処理をS419へ進める。
S419では、デジタルカメラ101Aは、連携接続処理を終了するか否かを判定し、終了すると判定した場合(S419でYES)は処理を終了し、終了しないと判定した場合(S419でNO)は処理をS401へ戻す。ここでは、デジタルカメラ101Aは、ユーザのボタン操作やメニュー選択を契機に本処理を終了すると判定しうるが、これに限られない。例えば、デジタルカメラ101Aは、一定期間にわたって無操作状態が続いた場合や、BLE通信のリンク切断等を契機に、処理を終了すると判定してもよい。これにより、デジタルカメラ101Aは、不要な電力消費を抑制することができる。
次に、図5を用いて、デジタルカメラ101Aが実行するネットワーク検索処理の流れについて説明する。本処理において、デジタルカメラ101Aは、まず、データ通信中であるか否かを判定し(S501)、データ通信中である場合(S501でYES)は処理をS502へ進め、データ通信中でない場合(S501でNO)は処理をS503へ進める。S502では、デジタルカメラ101Aは、データ通信中の状態が所定時間に達したかを観測することによってタイムアウトが発生したか否かを判定する。そして、デジタルカメラ101Aは、タイムアウトが発生した場合(S502でYES)は、データ通信中のために、ネットワークのスキャンを実行できる状況ではないと判定し、そのまま処理を終了する。一方、デジタルカメラ101Aは、タイムアウトが発生していない場合(S502でNO)は、処理をS501へ戻す。
S503では、デジタルカメラ101Aは、周囲のネットワークの全通信チャネルに対してスキャンを行う。なお、デジタルカメラ101Aは、本実施形態では全通信チャネルに対してスキャンを実行するものとするが、自身に事前に登録されたネットワークに対応する通信チャネルのみをスキャンするようにしてもよい。これにより、ネットワークのスキャンにかかる時間を短縮することができ、データ通信が必要な場合に、早期にスキャンからデータ通信へと戻ることができる。この後、デジタルカメラ101Aは、接続先候補を判定するために、S503のスキャンによって得られた各ネットワークに対して、S504〜S508の処理を繰り返し実行する。
S504では、デジタルカメラ101Aは、対象のネットワークが事前に登録されていたネットワークであるか否かを判定する。デジタルカメラ101Aは、対象のネットワークが事前に登録されていた場合(S504でYES)は、対象のネットワークの電波強度が一定値以上、すなわち、閾値Tr以上であるか否かを判定する(S505)。そして、デジタルカメラ101Aは、対象のネットワークの電波強度が閾値以上である場合(S505でYES)は、対象のネットワークの電波強度が、スキャンで得られた他のネットワークの電波強度よりも大きいか否かを判定する(S506)。なお、S506では、これまでにS504〜S508の処理の対象となったネットワークについて、上述の判定が行われる。すなわち、例えば1つのネットワークしか発見されなかった場合には、S506の処理は行われなくてもよい。デジタルカメラ101Aは、対象のネットワークの電波強度が、それまでに判定されたネットワークの電波強度より大きい場合(S506でYES)は、処理をS507へ進める。S507では、デジタルカメラ101Aは、対象のネットワークの電波強度が、現在接続中のネットワークにおける電波強度より強いか否かを判定する。なお、接続中のネットワークが存在しない、すなわち、デジタルカメラ101Aがネットワークと接続を確立していない場合は、S507の処理は行われなくてもよい。そして、デジタルカメラ101Aは、対象のネットワークの電波強度が、現在接続中のネットワークの電波強度より強い場合(S507でYES)は、対象のネットワークの情報を接続先候補のネットワークのネットワーク情報として記憶する(S508)。また、デジタルカメラ101Aは、S504〜S507のいずれかの判定がNOである場合には、対象のネットワークに接続しないと判定し、別の接続先候補のネットワークに対してS504〜S508の処理を実行する。S503で発見されたネットワークの全てに対して、S504〜S508の処理が繰り返し実行された後に、本処理は終了する。
なお、デジタルカメラ101は、S506において、S508で記憶された情報に対応するネットワークについての電波強度と、対象のネットワークの電波強度とを比較しうる。ここで、S508において対象のネットワークの情報が記憶される前に、ネットワーク情報として、現在接続中のネットワークの情報が記憶されていてもよい。例えば、周期的に、現在接続中のネットワークについて記憶されるようにしてもよい。この場合、S506における1回目の判定は、対象のネットワークの電波強度と、現在接続中のネットワークの電波強度との比較によるものとなるため、S507の処理は省略されうる。また、現在接続中のネットワークのS507の1回目の判定において、現在接続中のネットワークの電波強度が、対象のネットワークの電波強度より大きい場合に、現在接続中のネットワークの電波強度を記憶するようにしてもよい。また、現在接続中のネットワークについても接続先候補のネットワークとして、S504〜S508の処理が実行されてもよい。この場合、S507の処理は省略されてもよい。
なお、デジタルカメラ101は、S503においてスキャンを実行する前に現在接続中のネットワークの電波の受信強度を取得し、その受信強度が閾値以上である場合に、S503からS508の処理を省略してもよい。この場合、デジタルカメラ101は、接続先候補のネットワークがないものとして本処理を終了しうる。これにより、既に安定したネットワークへ接続している場合に、不要なネットワーク検索および切り替えを抑制することができ、データ通信が必要な場合に、早期にデータ通信へ戻ることができる。
なお、図5の例では、デジタルカメラ101Aは、データ通信中は周囲のネットワークのスキャンを実行しないようにしたが、データ通信中であってもスキャンを実行してもよい。例えば、デジタルカメラ101Aは、接続中のネットワークの電波強度が閾値より小さくなっている場合はデータ通信中であってもスキャンを実行してもよい。これにより、データ通信が不安定となりスループットが低下している場合に、デジタルカメラ101Aは、より安定したネットワークへ接続を切り替えてデータ通信を行うことができる。
次に、図6を用いて、デジタルカメラ101Aが実行するネットワーク確認処理の流れについて説明する。本処理において、デジタルカメラ101Aは、まず、データ通信中であるか否かを判定し(S601)、データ通信中である場合(S601でYES)は処理をS602へ進め、データ通信中でない場合(S601でNO)は処理をS603へ進める。S602では、デジタルカメラ101Aは、データ通信中の状態が所定時間に達したかを観測することによってタイムアウトが発生したか否かを判定する。そして、デジタルカメラ101Aは、タイムアウトが発生した場合(S602でYES)は、データ通信中のために、ネットワークのスキャンを実行できる状況ではないと判定し、そのまま処理を終了する。一方、デジタルカメラ101Aは、タイムアウトが発生していない場合(S602でNO)は、処理をS601へ戻す。
S603では、デジタルカメラ101Aは、スマートデバイス102から受信した接続先候補のネットワーク情報に基づいて、そのネットワークが存在する通信チャネルにおいてスキャンを実行する。このように、確認すべきネットワークの通信チャネルのみをスキャンすることで、スキャン時間を短縮することができ、データ通信におけるスループット低下を抑制することができる。その後、デジタルカメラ101Aは、接続先候補のネットワークが周囲に存在するか否かを判定する(S604)。デジタルカメラ101Aは、接続先候補のネットワークが存在した場合(S604でYES)は処理をS605へ進める。S605では、デジタルカメラ101Aは、接続先候補のネットワークの電波強度が一定以上、例えば、閾値Tr以上であるか否かを判定する。デジタルカメラ101Aは、接続先候補のネットワークの電波強度が閾値以上である場合(S605でYES)は処理をS606へ進める。一方で、デジタルカメラ101Aは、接続先候補のネットワークが周囲に存在しなかった場合(S604でNO)、電波強度が閾値未満である場合(S605でNO)は、接続先候補のネットワークへ接続しないと判定して処理を終了する。
S606では、デジタルカメラ101Aは、接続先候補のネットワークの電波強度が、現在接続中のネットワークの電波強度よりも大きいか否かを判定する。そして、デジタルカメラ101Aは、接続先候補のネットワークの方が現在接続中のネットワークよりも電波強度が大きい場合(S606でYES)、接続先候補のネットワークに接続すると判定し(S607)、本処理を終了する。一方、デジタルカメラ101Aは、接続先候補のネットワークの方が現在接続中のネットワークよりも電波強度以下である場合(S606でNO)、接続先候補のネットワークへの接続は行わないと判定して本処理を終了する。
なお、上述の説明では、受信したネットワーク情報に係るネットワークが存在する通信チャネルのみをスキャンするようにしたが、デジタルカメラ101Aは、他の通信チャネルを同時にスキャンしてもよい。これにより、デジタルカメラ101Aは、受信したネットワーク情報に係るネットワークが自身にとって適切でなかった場合でも、周囲の他の適切なネットワークに接続することができる。
また、デジタルカメラ101Aは、データ通信中である場合にはネットワークのスキャンを実行しないとしたが、データ通信中であってもスキャンを実行してもよい。これにより、例えばデータ通信が不安定となりスループットが低下している場合に、より安定したネットワークへ接続を切り替えてデータ通信を継続することができる。
なお、デジタルカメラ101Aは、S603においてスキャンを実行する前に現在接続中のネットワークの電波強度を取得し、電波強度が閾値以上である場合に、S603からS607の処理を省略し、接続先ネットワークを切り替えなくてもよい。これにより、既に安定したネットワークへ接続している場合に、不要なネットワーク探索および切り替えを抑制することができ、データ通信が必要な場合に、早期にデータ通信へ戻ることができる。
((スマートデバイスの処理))
次に、スマートデバイス102が実行する処理の流れについて説明する。図7は、スマートデバイス102が、連携接続処理によって他の装置(デジタルカメラ101A)に無線LANのネットワーク情報を提供する処理の流れの例を示すフローチャートである。本処理は、例えばスマートデバイス102におけるユーザのアプリケーションの起動やボタン操作等を契機に開始されうるが、これに限られない。例えば、スマートデバイス102は、デジタルカメラ101からBLE通信を介して処理開始通知を受信したことを契機に、自動的に本処理を開始してもよい。
スマートデバイス102は、まず、自身の移動を検出したか否かを判定し(S701)、移動を検出した場合(S701でYES)は処理をS702へ進め、移動を検出していない場合(S701でNO)は処理をS703へ進める。なお、移動検出は、例えば、スマートデバイス102が有するGPS機能や加速度センサ、ジャイロ等の各種センサの情報を用いて行われうる。ただし、これに限られず、例えば、無線LANやBLE等の周囲のネットワーク情報やインターネット上のサーバ等に記憶された位置情報を用いて移動検出が行われても酔い。また、移動検出は、各種センサ情報やネットワーク情報等の組み合わせによって行われてもよい。スマートデバイス102は、S702において、デジタルカメラ101Aへ移動通知を送信し、処理をS703へ進める。
スマートデバイス102は、S703において、接続先ネットワークの選択を開始するか否かを判定し、開始する場合(S703でYES)は処理をS704へ進め、開始しない場合(S703でNO)は処理をS701へ戻す。なお、ネットワーク選択を開始するか否かの判定は、例えば、前に接続先ネットワークの選択を実行した時点からの時間経過と、デジタルカメラ101Aから処理停止通知又は処理開始通知を受信したか否かと、によって行われうる。例えば、スマートデバイス102は、前回の接続先ネットワークの選択を実行した時点から所定時間以上の時間が経過していた場合には、周囲のネットワークが変更されている可能性を考慮して、ネットワーク選択を開始すると判定しうる。ただし、スマートデバイス102は、例えばデジタルカメラ101Aから処理停止通知を受信していた場合には、所定時間以上の時間の経過後であっても、ネットワーク選択を開始しなくてもよい。また、スマートデバイス102は、例えば、所定時間以上の時間の経過前であっても、デジタルカメラ101Aから処理開始通知を受信した場合には、ネットワーク選択を開始しうる。なお、スマートデバイス102は、例えば、自身の移動を検出したか否か等によって、ネットワーク選択を開始するかを判定するなど、他の方法によって上述の判定を行ってもよい。スマートデバイス102は、例えば、移動検出時には周囲のネットワークが変更されている可能性が高いため、ネットワーク選択を開始すると判定しうる。
S704では、スマートデバイス102は、デジタルカメラ101Aの接続しているネットワーク情報を取得する。ここで、スマートデバイス102は、デジタルカメラ101Aが接続中のネットワーク情報を、BLE通信の信号105を用いて、デジタルカメラ101Aから取得しうる。なお、これに限られず、スマートデバイス102は、例えば、周囲に存在するネットワークに順次接続して、そのネットワークにおいてデジタルカメラ101Aを探索しうる。この探索には、例えば、ディスカバリプロトコルであるSSDP(Simple Service Discovery Protocol)やmDNS(Multicast Domain Name Service)が用いられうる。
次に、スマートデバイス102は、デジタルカメラ101Aが接続中のネットワーク情報の取得に成功したか否かを判定する(S705)。スマートデバイス102は、デジタルカメラ101Aが接続中のネットワーク情報の取得に成功した場合(S705でYES)は、そのネットワーク情報を記憶して(S706)、処理をS707へ進める。一方で、スマートデバイス102は、デジタルカメラ101Aが接続中のネットワーク情報の取得に失敗した場合(S705でNO)は、ネットワーク情報の記憶を行わずに、処理をS707へ進める。なお、スマートデバイス102は、デジタルカメラ101Aが接続中のネットワーク情報の取得に失敗した場合は、デジタルカメラ101Aがネットワークに現在接続していないと判定しうる。
S707では、スマートデバイス102は、デジタルカメラ101Aが接続すべきネットワークを判定する。スマートデバイス102は、デジタルカメラ101Aが接続すべきネットワークが存在する場合には、接続先候補のネットワークの情報として、その接続すべきネットワークの情報を記憶しておく。この判定の詳細については、図8を用いて後述する。
次に、スマートデバイス102は、接続先候補のネットワークの情報が記憶されているか否かを判定し(S708)、記憶されている場合(S708でYES)は、処理をS709へ進める。一方、スマートデバイス102は、接続先候補のネットワークの情報が記憶されていない場合(S708でNO)は、デジタルカメラ101の接続対象ネットワークを発見できなかったものとして、ネットワーク情報を送信せずに、処理をS711へ進める。
スマートデバイス102は、S709において、記憶されているネットワークが、デジタルカメラ101Aの接続中のネットワークと同一であるか否かを判定する。スマートデバイス102は、デジタルカメラ101Aが接続中のネットワークの情報を接続先候補として記憶していた場合(S709でYES)は、改めてネットワーク情報を通知する必要がないため、ネットワーク情報を送信せずに、処理をS711へ進める。このように、S709の判定により、スマートデバイス102は、デジタルカメラ101への不要なネットワーク情報の送信を抑制することができる。
一方、スマートデバイス102は、接続先候補のネットワークとデジタルカメラ101が接続中のネットワークとが異なる場合(S709でNO)は、処理をS710へ進める。S710では、スマートデバイス102は、BLE通信の信号105によって、デジタルカメラ101Aへ接続先候補のネットワーク情報を送信して(S710)、処理をS711へ進める。
S711では、スマートデバイス102は、連携接続処理を終了するか否かを判定し、終了しないと判定した場合(S711でNO)は処理をS701へ戻し、終了すると判定した場合(S711でYES)は処理を終了する。なお、スマートデバイス102は、ユーザによるアプリケーションの終了やボタン操作等を契機に本処理を終了すると判定しうるが、これに限られない。例えば、スマートデバイス102は、自身のバッテリー残量の低下や、デジタルカメラ101AとのBLE通信のリンク切断を契機に、処理を終了すると判定してもよい。これにより、スマートデバイス102は、不要な電力消費を抑制することができる。
続いて、S707の判定処理について、図8を用いて説明する。スマートデバイス102は、S707の処理を開始すると、まず、周囲のネットワークの全通信チャネルに対してスキャンを行う(S801)。なお、ここでは、全通信チャネルに対してスキャンを実行するものとしたが、例えば、予め記憶されたネットワークに対応するチャネルについてのスキャンのみが実行されるようにしてもよい。これにより、S801のスキャンに要する時間が短縮されうる。また、これに伴って、スマートデバイス102は、例えば他のアプリケーションの無線LANによるデータ通信が実行中である場合に、スキャンからデータ通信への復帰を早めて、スループットの低下を抑制することができる。
その後、スマートデバイス102は、S801で取得した各ネットワークに対して、接続先候補を判定するためにS802〜S805の処理を実行する。スマートデバイス102は、S802において、対象のネットワークが事前に登録されているネットワークであるか否かを判定する。スマートデバイス102は、対象のネットワークが登録されている場合(S802でYES)は、続いて、そのネットワークの電波強度が一定値以上であるか、例えば閾値Tr以上であるか、を判定する(S803)。そして、スマートデバイス102は、電波強度が閾値以上であった場合(S803YES)は、対象のネットワークの電波強度がS706または後述のS805で以前に記憶されたネットワークの電波強度より強いかを判定する(S804)。スマートデバイス102は、対象のネットワークの電波強度が、S706またはS805で以前に記憶されたネットワークの電波強度より強い場合(S804でYES)、その対象のネットワークを接続先候補のネットワークとして記憶する(S805)。また、スマートデバイス102は、S802〜S804のいずれかの判定がNOである場合には、対象のネットワークは接続先候補でないと判定し、次のネットワークに対してS802〜S805の処理を実行する。S801のスキャンで発見されたネットワークの全てに対して、S802〜S805の処理が繰り返し実行された後に、本処理は終了する。
(無線通信システムで実行される処理の例)
次に、無線通信システムで実行される処理の流れについて、いくつかの状況を想定して説明する。
((処理例1))
まず、図9A及び図9Bを用いて、第1の処理例について説明する。第1の処理例では、デジタルカメラ101Aは、まず、スマートデバイス102とImmediateとなる位置に存在し、スマートデバイス102からAP103Aに関するネットワーク情報を受けてAP103Aに接続する。その後、スマートデバイス102がデジタルカメラ101Aとの距離がFarとなるAP103Bが近隣に存在する位置へ移動し、さらに後に再度距離がImmediateとなる位置へ戻るものとする。
ユーザは、連携接続処理を開始するため、デジタルカメラ101Aにおいてボタン操作またはメニュー選択を行い(M901)、スマートデバイス102においてアプリケーションを起動する(M902)。スマートデバイス102は、アプリケーションを起動すると、この時点では移動していないため移動通知を送信せず(S701でNO)、ネットワークの選択を開始する(M903)。スマートデバイス102は、ネットワークの選択を開始すると、デジタルカメラ101Aが接続中のネットワークの情報を取得する(S704、M904)。ここでは、スマートデバイス102は、情報を取得した結果、デジタルカメラ101Aがネットワークに未接続であると判定し(S705でNO)、接続先候補を判定するために周囲のネットワークのスキャンを実行する(S801、M905及びM906)。スマートデバイス102は、スキャン結果からAP103Aを接続先候補であると判定し、そのネットワークの情報をBLE通信によって、デジタルカメラ101Aへ送信する(S710、M907)。
一方、デジタルカメラ101Aは、スマートデバイス102との距離推定を行う(M908)。ここでは、デジタルカメラ101Aは、スマートデバイス102との距離がImmediateであると判定し(S414でYES)、そのネットワークへの接続を行う(S417、M909)。例えばユーザがデジタルカメラ101Aにおいて撮像操作を行うと(M910)、デジタルカメラ101Aは、撮像データをアップロードするために、接続中のAP103Aを介してデータ通信を行う(M911)。
スマートデバイス102は、この時点では移動していないため移動通知を送信せず(S701でNO)、再度ネットワーク選択を開始する(M912)。スマートデバイス102は、ネットワーク選択を開始すると、デジタルカメラ101Aが接続中ネットワーク情報を取得する(S704、M913)。スマートデバイス102は、デジタルカメラ101AがAP103Aに接続中であるため(S705でYES)、AP103Aによるネットワークの情報を記憶し(S706)、周囲のネットワークをスキャンする(S801、M919及びM920)。ここで、スマートデバイス102は、スキャン結果からAP103Aを接続先候補として選択するが、デジタルカメラ101Aの接続しているネットワークと同一であるため(S709でYES)、ネットワーク情報をデジタルカメラ101Aへ送信しない。これにより、不要なネットワーク情報の通知を抑制し、デジタルカメラ101Aにおいて不要な処理が実行されることを防ぐことができる。
その後、スマートデバイス102は、デジタルカメラ101Aから離れた位置、すなわち、デジタルカメラ101Aとの距離がFarとなる位置へ移動する。この場合、スマートデバイス102は、自身の移動を検知して(S701でYES)、デジタルカメラ101Aへ移動通知を送信する(S702、M916)。そして、スマートデバイス102は、再びネットワーク選択を開始する(M917)と、デジタルカメラ101Aの接続中ネットワーク情報を取得する(M918)。スマートデバイス102はデジタルカメラ101AがAP103Aに接続中であるため、当該APのネットワーク情報を記憶し、周囲のネットワークをスキャンする(M919およびM920)。ここで、スマートデバイス102は、スキャン結果からAP103Bを接続先候補として選択したものとする。この場合、スマートデバイス102は、選択したAP103Bが、デジタルカメラ101Aの接続中のAP103Aと異なる(S709でNO)ため、AP103Bのネットワーク情報をデジタルカメラ101Aへ送信する(S710、M921)。
一方で、デジタルカメラ101Aは、スマートデバイス102との距離推定を行う(M922)。ここでは、デジタルカメラ101Aは、スマートデバイス102との距離がFarであると判定し(S403でYES)、スマートデバイス102が移動したか否かを判定する(S404、M923)。デジタルカメラ101Aは、スマートデバイス102から受信した移動通知から、スマートデバイス102が移動していると判定し(S404でYES)、接続先をAP103Bへ切り替えずに、受信したネットワーク情報を破棄する(S409、M924)。デジタルカメラ101Aは、ネットワーク情報を破棄すると、スマートデバイス102へ処理停止通知を送信する(S410、M925)。スマートデバイス102は、処理停止通知を受信すると、ネットワークの選択を停止する。このように、スマートデバイス102において不要なネットワーク選択を実行しないことにより、スマートデバイス102における電力消費を抑制することができる。また、デジタルカメラ101Aにおいても、不要なネットワーク情報を受信しないことにより、不要な判定処理の実行を抑制することができ、電力消費を抑制することができる。ここで、例えばユーザがデジタルカメラ101Aにおいて撮像操作を行うと(M926)、デジタルカメラ101Aは、撮像データをアップロードするため、接続中のAP103Aを介してデータ通信を行う(M927)。
その後、スマートデバイス102は、再びデジタルカメラ101Aとの距離がImmediateとなる位置へ移動する。スマートデバイス102は、自身の移動を検出すると(S701でYES)、デジタルカメラ101Aへ移動通知を送信する(S702、M928)。一方、デジタルカメラ101Aは、距離推定を行う(M929)。デジタルカメラ101Aは、スマートデバイス102との距離がImmediateで、かつ、処理停止処理を送信済みであるため(S402でNO、S411でYES)、処理開始通知を送信する(S412、M930)。これにより、スマートデバイス102において停止していたネットワーク選択を再開させることができ、デジタルカメラ101Aは、必要に応じて適切なネットワークへ接続を切り替えることが可能となる。スマートデバイス102は、処理開始通知を受信すると、ネットワーク選択を再開する(M931)。M932からM934の処理は、M913からM915の処理と同様であるため、その詳細な説明については省略する。ここで、例えばユーザがデジタルカメラ101Aにおいて撮像操作を行うと(M935)、デジタルカメラ101Aは、撮像データをアップロードするため、接続先のネットワークを切り替えずに、接続中のAP103Aを介してデータ通信を行う(M936)。
以上のように、本処理例によれば、外部端末の位置や移動状況に応じて不適切なネットワークへの接続切り替えを抑制することで、データ通信におけるスループット低下やデータパケット消失の機会を低減することができ、通信の安定化を図ることができる。
((処理例2))
第2の処理例について、図10A及び図10Bを用いて説明する。本処理例は、デジタルカメラ101Aが、スマートデバイス102とImmediateとなる位置に存在し、スマートデバイス102からAP103Aに関するネットワーク情報を受けてAP103Aに接続するまでは第1の処理例と同様である。一方で、本処理例では、デジタルカメラ101Aが、スマートデバイス102との距離がFarとなるAP103Bが近隣に存在する位置へ移動し、再度距離がImmediateとなる位置へ戻る場合について説明する。なお、M1001からM1015の処理は、第1の処理例で示したM901からM915の処理と同様であるため、その詳細な説明については省略する。
M1015の後、デジタルカメラ101Aは、スマートデバイス102から離れた位置へ、この場合、スマートデバイス102との距離がFarとなる位置へ、移動したものとする。スマートデバイス102は、ネットワーク選択を開始する(M1016)。この後、M1017からM1019の処理は第1の処理例で示したM917からM919の処理と同様である。
ここで、スマートデバイス102は、自身が移動していないため(S701でNO)、移動通知の送信を行わない。また、スマートデバイス102は、デジタルカメラ101Aが接続中のネットワークと、自身が接続先候補として判定したネットワークとが同一であるため(S709でYES)、デジタルカメラ101Aへネットワーク情報を送信しない。
一方で、デジタルカメラ101Aは、スマートデバイス102との距離推定を行う(M1020)。ここでは、デジタルカメラ101Aは、スマートデバイス102との距離がFarであると判定し(S402でYES)、続いて、スマートデバイス102が移動したか否かを判定する(S403、M1021)。デジタルカメラ101Aは、スマートデバイス102から移動通知を受信していないため、スマートデバイス102は移動していないと判定し(S403でNO)、ネットワーク検索処理を開始する(S405、M1022)。デジタルカメラ101Aは、周囲のネットワークをスキャンし(S503、M1023及びM1024)、最も電波強度の強いAP103Bを接続先候補として判定したものとする(S504〜S508)。この場合、デジタルカメラ101Aは、AP103Aとの接続を切断して(M1025)、AP103Bへ接続を行う(S408、M1026)。また、デジタルカメラ101Aは、AP103Bへ接続すると、スマートデバイス102へ処理停止通知を送信する(S410、M1027)。ここで、例えばユーザがデジタルカメラ101Aにおいて撮像操作を行うと(M1028)、デジタルカメラ101Aは、撮像データをアップロードするために、接続切り替え先であるAP103Bを介してデータ通信を行う(M1029)。
その後、デジタルカメラ101Aは、再びスマートデバイス102との距離がImmediateとなる位置へ移動したものとする。この後に行われるM1030からM1035の処理は、第1の処理例で示したM929からM934の処理と同様である。ここで、スマートデバイス102は、AP103Aを接続先候補として選択すると、AP103Aがデジタルカメラ101Aの接続中のAP103Bと異なるため(S709でNO)、AP103Aのネットワークの情報を送信する(S710、M1036)。デジタルカメラ101Aは、ネットワーク情報を受信すると、スマートデバイス102との距離がImmediateである(S414でYES)ため、AP103Bとの接続を切断して(M1037)、AP103Aと接続する(S417、M1038)。ここで、例えばユーザがデジタルカメラ101Aにおいて撮像操作を行うと(M1039)、デジタルカメラ101Aは、撮像データをアップロードするため、接続切り替え先であるAP103Aを介してデータ通信を行う(M1040)。
以上のように、本処理例によれば、デジタルカメラ101Aは、外部端末(スマートデバイス102)の位置や移動状況に応じて接続可能なネットワークを自ら検索する。これにより、デジタルカメラ101Aは、スマートデバイス102からネットワーク情報の通知がない場合にも、適切なネットワークへ接続を切り替えることが可能となる。これにより、データ通信におけるスループット低下やデータパケット消失の機会を低減することが可能となり、通信の安定化を図ることができる。
((処理例3))
第3の処理例について、図11を用いて説明する。本処理例は、デジタルカメラ101Aが、スマートデバイス102とImmediateとなる位置に存在し、スマートデバイス102からAP103Aに関するネットワーク情報を受けてAP103Aに接続するまでは第1及び第2の処理例と同様である。一方で、本処理例では、スマートデバイス102およびデジタルカメラ101Aが、互いの距離がNearとなり、かつ、AP103Bが近隣に存在する位置へ移動した場合について説明する。なお、M1101からM1115の処理は、第1の処理例で示したM901からM915の処理と同様であるため、その詳細な説明については省略する。
その後、デジタルカメラ101A及びスマートデバイス102は、互いの距離がNearとなる位置で、かつ、AP103Bが近隣に存在する位置へ移動する。ここで、スマートデバイス102は、再びネットワーク選択を開始する(M1116)。この後、M1117からM1120の処理は、第1の処理例で示したM918からM921と同様である。デジタルカメラ101Aは、スマートデバイス102からネットワーク情報を受信すると、スマートデバイス102との距離推定を行う(M1121)。ここでは、デジタルカメラ101Aは、スマートデバイス102との距離がNearであると判定し(S414でNO)、ネットワーク確認処理を開始する(S415、M1122)。デジタルカメラ101Aは、ネットワーク確認処理を開始すると、スマートデバイス102から受信した接続先候補のネットワークであるAP103Bの通信チャネルに対してスキャンを実行する(S603、M1123)。本処理例では、デジタルカメラ101Aは、AP103Bのネットワークを発見し(S604でYES)、電波強度が閾値Tr以上(S605でYES)であると判定したものとする。さらに、デジタルカメラ101Aは、AP103Bのネットワークの電波強度が、接続中のAP103Aのネットワークの電波強度よりも強いと判定したものとする(S606でYES)。この場合、デジタルカメラ101Aは、AP103Aとの接続を切断し(M1124)、AP103Bとの接続を行う(M1125)。この後、M1126およびM1127の処理は、第2の処理例で示したM1028からM1029の処理と同様である。
このように、本処理例では、デジタルカメラ101Aは、スマートデバイス102の位置や移動状況に応じて、接続先候補のネットワークが自身にとって適切であるか否かを、実際に接続を確立する前に確認する。なお、本処理例では、デジタルカメラ101Aは、接続先候補のネットワーク(AP103Bのネットワーク)が適切であると判定したため、そのネットワークに接続したが、これが適切でないと判定した場合は、ネットワーク情報を破棄する(S418)。これにより、デジタルカメラ101Aは、適切でないネットワークに接続することを防ぎ、これに伴って、ネットワークの切り替えが生じる機会を減らし、通信の安定化を図ることができる。
((処理例4))
上述の第1〜第3の処理例では、デジタルカメラ101Aおよびスマートデバイス102が1対1で連携接続処理を実行する場合について説明した。第4の処理例では、複数台のデジタルカメラ101Aおよびデジタルカメラ101Bと、スマートデバイス102とが連携接続処理を実行する場合について、図12A〜図12Cを用いて説明する。
本処理例では、まず、デジタルカメラ101Aおよびデジタルカメラ101Bが、スマートデバイス102からAP103Aに関するネットワーク情報の通知を受けて、AP103Aに接続する。その後、スマートデバイス102およびデジタルカメラ101Bが、デジタルカメラ101Aとの距離がFarとなり、かつ、AP103Bが近隣に存在する位置へ移動するものとする。さらに、その後に、デジタルカメラ101Aが、スマートデバイス102およびデジタルカメラ101Bとの距離がImmediateとなる位置へ移動するものとする。
本処理例では、デジタルカメラ101A及びデジタルカメラ101Bと、スマートデバイス102との距離は、当初はImmediateの状態であるものとする。このとき、ユーザは、連携接続処理を開始するため、デジタルカメラ101A及びデジタルカメラ101Bにおいてボタン操作又はメニュー選択を行い(M1201及びM1202)、スマートデバイス102においてアプリケーションを起動する(M1203)。スマートデバイス102は、アプリケーションを起動すると、この時点では移動していないため(S701でNO)移動通知を送信せず、ネットワークの選択を開始する(M1204)。スマートデバイス102は、ネットワークの選択を開始すると、デジタルカメラ101A及びデジタルカメラ101Bのそれぞれが接続中のネットワークの情報を取得する(M1205及びM1206)。ここでは、スマートデバイス102は、デジタルカメラ101A及びデジタルカメラ101Bが、ネットワークに接続していないと判定し、接続先候補を判定するために周囲のネットワークをスキャンする(M1207及びM1208)。スマートデバイス102は、スキャン結果からAP103Aを接続先候補であると判定し、AP103Aのネットワーク106Aの情報を、BLE通信によって、デジタルカメラ101A及びデジタルカメラ101Bに送信する(M1209及びM1210)。
デジタルカメラ101A及びデジタルカメラ101Bは、それぞれ、ネットワーク情報を受信すると、スマートデバイス102との距離推定を行う(M1211及びM1212)。本処理例では、デジタルカメラ101A及びデジタルカメラ101Bは、それぞれ、スマートデバイス102との距離がImmediateであると判定し(S413でYES)、通知されたネットワークへ接続する(M1213及びM1214)。ここで、例えばユーザがデジタルカメラ101Aにおいて撮像操作を行うと(M1215)、デジタルカメラ101Aは、撮像データをアップロードするため、接続中のAP103Aを介してデータ通信を行う(M1216)。同様に、ユーザがデジタルカメラ101Bにおいて撮像操作を行うと(M1217)、デジタルカメラ101Bは、撮像データをアップロードするため、接続中のAP103Aを介してデータ通信を行う(M1218)。
スマートデバイス102は、M1219において、再度、ネットワークの選択を開始する。スマートデバイス102は、ネットワークの選択を開始すると、デジタルカメラ101A及びデジタルカメラ101Bのそれぞれが接続中のネットワークの情報を取得する(M1220およびM1221)。スマートデバイス102は、デジタルカメラ101A及びデジタルカメラ101BがAP103Aに接続中であるため、ネットワーク106Aの情報を記憶し、周囲のネットワークをスキャンする(M1222及びM1223)。スマートデバイス102は、スキャン結果からAP103Aを接続先候補として選択するが、これは、デジタルカメラ101A及びデジタルカメラ101Bが現在接続中のネットワークと同一である(S709でYES)ため、ネットワーク情報を送信しない。これにより、スマートデバイス102による不要なネットワーク情報の送信を抑制し、デジタルカメラ101A及びデジタルカメラ101Bによる不要な処理を削減することができる。
その後、スマートデバイス102及びデジタルカメラ101Bは、デジタルカメラ101Aから離れた位置へ、すなわち、デジタルカメラ101Aとの距離がFarとなる位置へ移動する。スマートデバイス102は、自身の移動を検知する(S701でYES)と、デジタルカメラ101A及びデジタルカメラ101Bのそれぞれに移動通知を送信する(S702、M1224及びM1225)。そして、スマートデバイス102は、再びネットワークの選択を開始し(M1226)、デジタルカメラ101A及びデジタルカメラ101Bのそれぞれが接続中のネットワークの情報を取得する(S704、M1227及びM1228)。スマートデバイス102は、デジタルカメラ101A及びデジタルカメラ101BがAP103Aに接続中であるため、ネットワーク106Aの情報を記憶して(S706)、周囲のネットワークをスキャンする(S801、M1229及びM1230)。スマートデバイス102は、スキャン結果からAP103Bを接続先候補として選択し、AP103Bのネットワーク106Bの情報を、BLE通信によってデジタルカメラ101A及びデジタルカメラ101Bへ送信する(M1231及びM1232)。
ここで、デジタルカメラ101A及びデジタルカメラ101Bは、それぞれ、スマートデバイス102との距離を推定する(M1233及びM1234)。デジタルカメラ101Aは、スマートデバイス102との距離がFarであると判定し(S402でYES)、続いて、スマートデバイス102が移動したか否かを判定する(S403、M1235)。デジタルカメラ101Aは、スマートデバイス102から受信した移動通知により、スマートデバイス102が移動したと判定し(S403でYES)、接続先をAP103Bへ切り替えずに、受信したネットワーク情報を破棄する(S409、M1236)。デジタルカメラ101Aは、ネットワーク情報を破棄すると、スマートデバイス102へ処理停止通知を送信する(S410、M1237)。一方、デジタルカメラ101Bは、スマートデバイス102との距離がImmediateであると判定し(S414でYES)、AP103Aとの接続を切断し(M1238)、AP103Bへ接続する(M1239)。スマートデバイス102は、デジタルカメラ101Aからの処理停止通知を受信しても、ネットワークの選択を停止しないが、デジタルカメラ101Aに対するネットワーク情報の送信のみを停止する。一方、スマートデバイス102は、デジタルカメラ101Bに対するネットワーク情報の送信は継続する。これにより、スマートデバイス102は、近隣に位置するデジタルカメラ101Bに対しては、周囲に存在する接続先候補のネットワーク情報を送信し続け、デジタルカメラ101Bは、継続して適切なネットワークへ接続することができる。また、デジタルカメラ101Aは、不要なネットワーク情報を受信しないことで、不要な処理を実行しないこととなるため、電力消費を抑制することができる。
その後、例えばユーザがデジタルカメラ101Aにおいて撮像操作を行うと(M1240)、デジタルカメラ101Aは、撮像データをアップロードするため、接続中のAP103Aを介してデータ通信を行う(M1241)。また、例えばユーザがデジタルカメラ101Bにおいて撮像操作を行うと(M1242)、デジタルカメラ101Bは、撮像データをアップロードするため、接続中の、AP103Aとは異なるAP103Bを介してデータ通信を行う(M1243)。
その後、スマートデバイス102は、ネットワークの選択を開始する(M1244)。スマートデバイス102は、ネットワークの選択を開始すると、デジタルカメラ101Aから処理停止通知を受信しているため、デジタルカメラ101Bが接続中のネットワークの情報のみを取得する(M1245)。スマートデバイス102は、デジタルカメラ101BがAP103Bに接続中であるため、ネットワーク106Bの情報を記憶し、周囲のネットワークをスキャンする(M1246及びM1247)。スマートデバイス102は、スキャン結果からAP103Bを接続先候補として選択するが、ネットワーク106Bはデジタルカメラ101Bが接続中のネットワークと同一であるため、ネットワーク情報の送信は行わない。
その後、デジタルカメラ101Aが、スマートデバイス102及びデジタルカメラ101Bとの距離がImmediateとなる位置へ移動する。ここで、デジタルカメラ101A及びデジタルカメラ101Bは距離推定を行う(M1248及びM1249)。デジタルカメラ101Aは、スマートデバイス102との距離がImmediateであり、処理停止通知を送信済みであるため(S411でYES)、スマートデバイス102へ処理開始通知を送信する(S412、M1250)。これにより、スマートデバイス102は、デジタルカメラ101Bに対するネットワーク情報の送信を継続させながら、デジタルカメラ101Aに対するネットワーク情報の送信を再開する。一方、デジタルカメラ101Bは、処理停止通知を送信しておらず、ネットワーク情報も受信していないため、特に何も行わない。この後、M1251からM1255の処理は、M1204からM1208の処理と同様である。
スマートデバイス102は、AP103Bを接続先候補として選択すると、ネットワーク106Bが、デジタルカメラ101Aが接続中のネットワーク106Aと異なるため、デジタルカメラ101Aに、ネットワーク106Bの情報を送信する(M1256)。一方、スマートデバイス102は、ネットワーク106Bが、デジタルカメラ101Bが接続中のネットワークと同一であるため、デジタルカメラ101Bにはネットワーク情報を送信しない。これにより、デジタルカメラ101Aが適切なネットワークへ接続を切り替えることを可能とすると同時に、デジタルカメラ101Bが不要な処理を実行することを防ぐことができる。
デジタルカメラ101Aは、ネットワーク情報を受信すると、接続中のAP103Aとの接続を切断し(M1257)、AP103Bへ接続する(M1258)。その後、例えばユーザがデジタルカメラ101Aにおいて撮像操作を行うと(M1259)、デジタルカメラ101Aは、撮像データをアップロードするため、接続先のAP103Bを介してデータ通信を行う(M1260)。一方、デジタルカメラ101Bも、ユーザが撮像操作を行うと(M1261)、撮像データをアップロードするため、接続先を切り替えることなくAP103Bを介してデータ通信を行う(M1262)。
以上、本処理例によれば、複数台のデジタルカメラ101A及びデジタルカメラ101Bの各々が、スマートデバイスの位置や移動状況に応じて、適切なネットワークへ接続することができる。これにより、デジタルカメラにおいて、データ通信のスループット低下やデータパケット消失の機会を減らすことができ、通信の安定化を図ることができる。
上述の説明では、デジタルカメラとスマートデバイスとの間の距離推定をデジタルカメラが実行するものとしたが、この距離推定は、スマートデバイス102において実行されてもよい。スマートデバイスにおける距離推定は、BLE通信における電波強度(RSSI)に基づくImmediate(至近距離)、Near(近距離)、Far(遠距離)等の3段階の距離情報によって行われうるが、これに限られない。例えば、BLE通信における位置の計測精度やリンク状態等を用いて、距離の推定が行われてもよい。計測精度が用いられる場合は、例えば、その値が閾値以下であるか否かの判定により、デジタルカメラが一定以上離れた位置に存在するのか、近隣に存在するのかが推定されうる。また、リンク状態が用いられる場合は、例えば、接続中のBLE通信のリンクが切断された場合にデジタルカメラが一定以上離れた位置に存在すると推定されうる。このとき、スマートデバイスは、デジタルカメラとの距離がFarである場合にデジタルカメラへネットワーク情報の送信を行わない。これにより、デジタルカメラにおける不要な判定処理を削減することができ、デジタルカメラにおける電力消費を抑制することができる。
上述の説明では、デジタルカメラは、スマートデバイスとの距離がFarである場合に移動判定を行うとしたが、移動判定を行わずにネットワーク検索処理を実行するようにしてもよい。これにより、デジタルカメラ及びスマートデバイスのそれぞれが移動したような状況においても、適切なネットワークへ確実に接続することができる。
上述の説明では、デジタルカメラとスマートデバイスとの間のBLE通信はGATTプロファイルのリンクが確立された状態であるとしたが、これに限られない。例えば、リンクを確立せずに、AdvertiseパケットやScan Request/Responseパケットによって通信が行われてもよい。この場合、例えば、デジタルカメラがCentral、スマートデバイスがPeripheralとなって、スマートデバイスがAdvertiseまたはScan Responseによりネットワーク情報を送信しうる。この際、ネットワーク情報をAdvertiseまたはScan Responseの1パケットで送信するため、デジタルカメラに事前に登録されたネットワーク情報と紐付けて管理されている識別子等を、ネットワーク情報として送信してもよい。これにより、スマートデバイスは、複数台のデジタルカメラに対して、ネットワーク情報を一斉に通知することができる。
上述の説明では、デジタルカメラは、スマートデバイスとの距離がFarである場合にスマートデバイスへ処理停止通知を送信するようにしたが、処理停止通知を送信しなくてもよい。この場合、例えば、スマートデバイスは、ネットワーク情報の送信を継続し、デジタルカメラは、受信したネットワーク情報を破棄し続ける。例えば、BLE通信のAdvertiseやScan Request/Responseを使用して通信する場合には、デジタルカメラは、スマートデバイスに対して処理停止通知を送信する方法を有しないため、このようにすることが有効である。
上述の説明では、スマートデバイスは、処理停止通知を受信すると、ネットワークの選択を停止するようにしたが、これを停止しなくてもよい。例えば、スマートデバイスは、処理停止通知を受信したことに応じて、ネットワークの選択を停止するのではなく、ネットワークの選択を実行する周期を長くしてもよい。これにより、スマートデバイスにおける電力消費を抑制しつつ、デジタルカメラからの処理開始通知の受信に失敗した場合等においても、周囲のネットワークの変化に応じてネットワーク情報の送信を確実に行うことができる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。