以下に、本発明を実施するための形態について、添付の図面を用いて詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態を適宜組み合せることも可能である。
[第1の実施形態]
<デジタルカメラの構成>
図1(a)は、本実施形態の通信装置の一例であるデジタルカメラ100の構成例を示すブロック図である。なお、ここでは通信装置の一例としてデジタルカメラについて述べるが、通信装置はこれに限られない。例えば通信装置は携帯型のメディアプレーヤやいわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
制御部101は、入力された信号や、後述のプログラムに従ってデジタルカメラ100の各部を制御する。なお、制御部101が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
メモリ102は書き換え可能な記録媒体であり、データを一時的に保持するバッファメモリや、表示部105の画像表示用メモリ、制御部101の作業領域等として使用される。
メモリ102は、例えばRAM(半導体素子を利用した揮発性のメモリ)などからなる。
不揮発性メモリ103は、電気的に消去・記録可能な不揮発性のメモリであり、制御部101で実行される後述のプログラム等が格納される。不揮発性メモリ103は、例えばフラッシュメモリやEEPROMなどからなる。
操作部104は、ユーザがデジタルカメラ100に対する指示をユーザから受け付けるために用いられる。操作部104は例えば、ユーザがデジタルカメラ100の電源のON/OFFを指示するための電源ボタンや、撮像を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、後述の無線LAN接続部112を介して外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、後述する表示部105に形成されるタッチパネルも操作部104に含まれる。なお、不図示のレリーズスイッチは、SW1およびSW2を有する。レリーズスイッチが、いわゆる半押し状態となることにより、SW1がONとなる。これにより、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の、静止画撮像準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、SW2がONとなる。これにより、静止画撮像を行う指示を受け付ける。
表示部105は、静止画撮像準備段階でのビューファインダーへの動画像の表示、撮像した静止画画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部105は必ずしもデジタルカメラ100が内蔵する必要はない。デジタルカメラ100はカメラの背面等に設けた表示部105だけでなくカメラの外部の表示部105と接続することができ、表示部105の表示を制御する表示制御機能を少なくとも有していればよい。
記録媒体I/F106は、メモリカードなどの記録媒体107を装着するためのインターフェースである。制御部101の制御に基づき、記録媒体I/F106に装着された記録媒体107からのデータの読み出しや、記録媒体107に対するデータの書き込みを行う。
記録媒体107は、撮像した画像データを保持するための書き換え可能な不揮発性メモリである。例えば、記録媒体107としては、SDメモリカードやコンパクトフラッシュ(登録商標)カードを用いることができる。
撮像部108は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光(映像)を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、CMOS(Complementary Metal Oxide Semiconductor)や、CCD(Charge Coupled Device Image Sensor)が利用される。撮像部108は、制御部101に制御されることにより、撮像部108に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行いデジタルデータを画像データとしてバス113に出力する。
画像処理部109は、制御部101の制御に基づいて、不揮発性メモリ103や記録媒体107に格納された画像データや、撮像部108が出力する映像信号に対して各種画像処理を施す。画像処理部109が行う画像処理には、A/D変換処理、D/A変換処理、画像データの符号化処理、圧縮処理、デコード処理、拡大/縮小処理(リサイズ)、ノイズ低減処理、色変換処理、顔検出処理などが含まれる。画像処理部109は特定の画像処理を施すための専用の回路ブロックで構成してもよい。また、画像処理の種別によっては画像処理部109を用いずに制御部101がプログラムに従って画像処理を施すことも可能である。なお、本実施形態のデジタルカメラ100では、画像データは、DCF(Design rule for Camera File system)の規格に従って、記録媒体107に記録される。
バッテリ110は、デジタルカメラ100が動作するための電力を各部に供給するためのユニットである。バッテリ110は、充電可能な二次電池からなるユニットで、図示しない外部のバッテリ充電器により充電することができる。
近接無線通信部111は、他機との非接触近接通信を実現するための通信ユニットである。近接無線通信部111は、無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近接無線通信部111は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することにより非接触近接通信を実現する。ここでは、ISO/IEC 18092の規格(いわゆるNFC:Near Field Communication)に従った非接触通信を実現する。近接無線通信部111は、他のデバイスからデータ読み出し要求を受けると、不揮発性メモリ103に格納されているデータに基づき、応答データを出力する。本実施形態では、近接無線通信部111は、後述の携帯電話200の近接無線通信部208と近接・離反した際に、携帯電話200の近接・離反の検出、携帯電話200からの信号強度情報の受信などに利用される。
本実施形態における近接無線通信の実現においては、各機器の互いの近接無線通信部同士を近接させることにより通信を開始して接続される。なお、この近接無線通信を実現するためには、必ずしも近接無線通信部同士を接触させる必要はない。近接無線通信部は一定の距離だけ離れていても、通信することができるため、ここでは近接無線通信可能な範囲まで近づければよい。以下の説明では、この近接無線通信可能な範囲まで近づけることを「近接させる」と記載する。
また、互いの近接無線通信部が近接無線通信不可能な範囲にあれば、通信は開始されない。また、互いの近接無線通信部が近接無線通信可能な範囲にあって、機器同士が通信接続されている際に、互いの近接無線通信部が近接無線通信不可能な範囲に離れてしまった場合は、通信接続が解除される。なお、近接無線通信部111が実現する非接触近接通信はNFCに限られるものではなく、他の無線通信を採用してもよい。例えば、近接無線通信部111が実現する非接触近接通信として、ISO/IEC 14443の規格に従った非接触近接通信を採用してもよい。
無線LAN接続部112は、外部装置と接続するためのインターフェースである。本実施形態のデジタルカメラ100は、無線LAN接続部112を介して、外部装置とデータのやりとりを行うことができる。なお、本実施形態では、無線LAN接続部112は外部装置とIEEE802.11の規格に従った、いわゆる無線LANで通信するためのインターフェースである。制御部101は、無線LAN接続部112を制御することで外部装置との無線通信を実現する。なお、通信方式は無線LANに限定されるものではないが、少なくとも通信可能な距離が、近接無線通信部111よりも長い通信方式が採用されるものとする。
システムバス113は、デジタルカメラ100の各部を繋ぐバスである。システムバス113に接続される各部は、システムバス113を介して互いにデータのやりとりを行うことができる。
続いて、デジタルカメラ100の外観について説明する。
図1(b)、(c)、(d)は、それぞれデジタルカメラ100の正面図・背面図・底面図である。
図1(b)のレリーズスイッチ1041は図1(a)の操作部104に含まれる操作部材である。撮像撮像なお、本実施形態では、動画データの撮像時にレリーズスイッチ1041を全押しすると、動画データの撮像を終了する。
図1(b)のファインダー窓1082は、撮像時の構図決定の際に被写体像を後述のファインダー接眼部1084から確認することができる。
図1(b)のストロボ1083は、撮像時に必要に応じて発光する。
図1(b)の撮像レンズ1081は、撮像部108に含まれる撮像部材である。
図1(c)のファインダー接眼部1084は、ユーザが被写体像を光学的に確認するための覗き窓である。
図1(c)の電源ボタン1042は、デジタルカメラ100の電源をON・OFFするためのボタンである。
図1(c)の操作部材群1043は操作部104を構成するボタン群である。ユーザはこれらのボタンを利用し、デジタルカメラ100のメニューを表示したり、各種パラメータを設定したりすることができる。
図1(c)の表示部105は、撮像開始前には撮像範囲(構図の決定)に使用したり、操作メニューを表示したり、撮像した映像データを再生して表示するためのLCDである。なお、本部材には図1(a)と同様の番号を付している。
領域1111は近接無線通信を行うためのエリアである。すなわち、この部分に近接無線通信部111のアンテナが配置されている。携帯電話200の近接無縁通信部208のアンテナがこのエリアに接近すると、近接無線通信部111と近接無線通信部208の間で通信が可能となる。
ねじ穴1102は三脚を固定するためのねじ穴である。
バッテリ室1101はバッテリを格納するための領域である。ユーザはこの中にバッテリ110と記録媒体107を装着することができる。
以上がデジタルカメラ100の説明である。
<携帯電話の構成>
次に、携帯電話200について説明する。
図2(a)は、本実施形態の情報処理装置の一例である携帯電話200の構成例を示すブロック図である。なお、ここでは情報処理装置の一例としてスマートフォンについて述べるが、情報処理装置はこれに限られない。例えば情報処理装置は携帯型のメディアプレーヤやいわゆるタブレットデバイス、パーソナルコンピュータなどであってもよい。また、通信機能を備えたデジタルカメラ100のような撮像装置であってもよい。
制御部201は、入力された信号や、後述のプログラムに従って携帯電話200の各部を制御する。なお、制御部201が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
メモリ202は書き換え可能な記録媒体であり、データを一時的に保持するバッファメモリや、表示部204の画像表示用メモリ、制御部201の作業領域等として使用される。
メモリ202は、例えばRAM(半導体素子を利用した揮発性のメモリ)などからなる。
不揮発性メモリ203は、電気的に消去・記録可能な不揮発性のメモリであり、制御部201で実行される後述のプログラム等が格納される。不揮発性メモリ103は、例えばフラッシュメモリやEEPROMなどからなる。
表示部204は、撮像の際のビューファインダー画像の表示、撮像した画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部204は必ずしも携帯電話200が内蔵する必要はない。携帯電話200は携帯電話200の背面等に設けた表示部204だけでなく携帯電話200の外部の表示部204と接続することができ、表示部204の表示を制御する表示制御機能を少なくとも有していればよい。
操作部205は、ユーザが携帯電話200に対する指示をユーザから受け付けるために用いられる。操作部205は例えば、ユーザが携帯電話200の電源のON/OFFを指示するための電源ボタンや、撮像を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、後述の無線LAN接続部212を介して外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、表示部204に形成されるタッチパネルも操作部205に含まれる。
バッテリ206は、携帯電話200が動作するための電力を各部に供給するためのユニットである。バッテリ206は、充電可能な二次電池からなるユニットで、図示しない外部のバッテリ充電器により充電することができる。
近接無線通信部208は、他機との非接触近接通信を実現するための通信ユニットである。近接無線通信部208は、無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近接無線通信部208は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することにより非接触近接通信を実現する。ここでは、ISO/IEC 18092の規格に従った非接触通信を実現する。近接無線通信部111は、他のデバイスからデータ読み出し要求を受けると、不揮発性メモリ203に格納されているデータに基づき、応答データを出力する。本実施形態では、近接無線通信部208は、前述のデジタルカメラ100の近接無線通信部111と近接・離反した際に、デジタルカメラ100の近接・離反の検出、携帯電話200からの信号強度情報の受信などに利用される。なお、近接無線通信部208が実現する非接触近接通信はNFCに限られるものではなく、他の無線通信を採用してもよい。例えば、近接無線通信部208が実現する非接触近接通信として、ISO/IEC 14443の規格に従った非接触近接通信を採用してもよい。
無線LAN接続部209は、外部装置と接続するためのインターフェースである。本実施形態のデジタルカメラ100は、無線LAN接続部209を介して、外部装置とデータのやりとりを行うことができる。なお、本実施形態では、無線LAN接続部209は外部装置とIEEE802.11の規格に従った、いわゆる無線LANで通信するためのインターフェースである。制御部101は、無線LAN接続部209を制御することで外部装置との無線通信を実現する。なお、通信方式は無線LANに限定されるものではないが、少なくとも通信可能な距離が、近接無線通信部208よりも長い通信方式が採用されるものとする。
3G通信部207は、本携帯電話と図示しない移動体通信網との間の音声通信およびデータ通信を実現するためのユニットである。3G通信部207は、無線通信を行うためのアンテナと無線信号を処理するための通信コントローラから構成され、例えばW‐CDMA(UMTS)にしたがって無線通信を実現する。
システムバス210は、携帯電話200の各部を繋ぐバスである。システムバス210に接続される各部は、システムバス210を介して互いにデータのやりとりを行うことができる。
続いて、携帯電話200の外観について説明する。
図2(b)、(c)、(d)は、それぞれ携帯電話200の正面図・背面図・底面図である。
タッチパネル付液晶ディスプレイ204は表示部204の一例である。なおここでは図1と同様の部材として同じ番号を付している。タッチパネル部は操作部205を、液晶ディスプレイ部は表示部204を構成する。ユーザはタッチパネル部を使用することで、タッチパネル付液晶ディスプレイ204に表示されるGUIの操作などを行うことができる。
操作ボタン2051は、操作部205を構成する。ユーザはこれらのボタンを用いることにより、携帯電話200の機能の切り替えや、表示部204に表示されるGUIの操作などを行うことができる。
ボリュームボタン2503は、操作部205を構成する。ユーザはこれらのボタンを用いることにより、音声通信時や、記録されている音声データ、音楽データ、動画データなどを再生する際の音量を制御することができる。
電源ボタン2502は、操作部205を構成する。ユーザはこのボタンを用いることにより、携帯電話200の電源ON/OFFなどの操作を行うことができる。
領域2081は、近接無線通信を行うためのエリアである。すなわちこの部分に近接無線通信部208のアンテナが配置されている。デジタルカメラ100の近接無線通信部111のアンテナがこのエリアに近接すると、近接無線通信部208と近接無線通信部111の間で通信が可能となる。
以上が携帯電話200の説明である。
<システムの概要>
図3(a)、(b)、(c)、(d)は、本実施形態に係る通信システムの概略構成を示す図である。
図3(a)において、携帯電話200はアクセスポイント303に接続している。すなわち、携帯電話200は、アクセスポイント303が生成しているネットワークに参加している。一方、デジタルカメラ100はいずれのアクセスポイントにも接続していない。したがって、このネットワーク構成ではデジタルカメラ100と携帯電話200は無線LANを利用してお互いに通信することができない。
図3(b)において、デジタルカメラ100はアクセスポイント301に接続している。一方、携帯電話200は、アクセスポイント303に接続している。デジタルカメラ100と携帯電話200は、異なるアクセスポイントに接続しているため、このネットワーク構成では無線LANを利用してお互いに通信することができない。
図3(c)において、デジタルカメラ100はアクセスポイント302に接続している。一方、携帯電話200は、アクセスポイント303に接続している。デジタルカメラ100と携帯電話200は、異なるアクセスポイントに接続しているため、図3(b)と同様にこのネットワーク構成では無線LANを利用してお互いに通信することができない。
図3(d)において、デジタルカメラ100はアクセスポイント303に接続している。一方、携帯電話200も、アクセスポイント303に接続している。つまり、デジタルカメラ100と携帯電話200は、同じアクセスポイントに接続している(すなわち同じネットワークに参加している)。そのため、このネットワーク構成では無線LANを利用してデジタルカメラ100と携帯電話200とがお互いに通信可能である。
また、図3(e)には、各無線LANアクセスポイントが生成するネットワークのパラメータの一覧を示す。SSID(Service Set Identifier)の項目に示される情報は、各無線LANアクセスポイントが生成するネットワークの識別情報である。また、セキュリティの項目に示される情報は、各無線LANアクセスポイントが生成するネットワークで利用されるセキュリティ方式を示す。
また、本実施形態のデジタルカメラ100は、過去に参加したネットワークの情報や過去に通信を確立した携帯電話の情報等を、接続履歴情報として保持している。
図4は、デジタルカメラ100の不揮発性メモリ103に格納されている、接続履歴情報を模式的に表した図である。
項目のうち、SSIDは接続したことのあるネットワークの識別情報である。セキュリティは、接続したことのあるネットワークで利用されたセキュリティ方式である。パスフレーズは、接続したことのあるネットワークで利用されたパスワードの文字列である。ペアリング情報は、接続したことのあるネットワークを介して通信を確立したことがある装置の識別情報である。本実施形態では、なお、本実施形態では、装置毎に一意に定められた識別情報であるUUID(Universally Unique Identifier)を、それぞれの装置自身が保持しているものとする。
履歴401は、SSIDが「ABCD」である無線LANアクセスポイントにデジタルカメラ100が接続したことがあることを示している。また、この無線LANアクセスポイントに接続した際に、UUID{66666666−7777−8888−9999−AAAAAAAAAAAA}を持つ機器と無線LAN通信の確立(いわゆるペアリング)に成功したことを示している。
履歴402および履歴403は、それぞれSSIDが「EFGH」と「MNOP」の無線LANアクセスポイントにデジタルカメラ100が接続したことがあることを示している。また、ペアリング情報の項目はなし、となっており、これらの無線LANアクセスポイントに接続した際には他の機器とのペアリングが行われなかったことを示している。
履歴404では、デジタルカメラ100がSSID「VWXY」のアクセスポイント接続し、UUID{11111111−2222−3333−4444−555555555555}を持つ機器とペアリングに成功したことを示している。
履歴情報は、例えば、再度同じ携帯電話に接続する際に、デジタルカメラ100における操作の一部を省くために利用される。すなわち、例えばこれらの履歴情報の一覧を、通信機能のメニューに表示し、ユーザが操作部を介して履歴を選択したことに応じて、選択された履歴に対応するアクセスポイントのネットワークを検索・参加の処理を実行する。その後、選択された履歴に対応する携帯電話を、ネットワーク内から検索し、通信を確立するための処理を実行する。これにより、例えばユーザがネットワークに参加するためのパラメータの入力操作を必要とすることなく、所望の機器との通信を確立することができる。なお、この場合は、履歴に対応する携帯電話が履歴に対応するネットワークに参加していることが前提となる。もし、履歴に対応する携帯電話が、履歴に対応するネットワークに参加していない場合には、そのままでは通信確立できない。
また、この履歴は、例えばSSIDが同じであっても、対応するペアリング情報のUUIDが異なる場合には、そのセットを別の履歴として保持する。
同様に、ペアリング情報に記録されるUUIDが同じ場合であっても、対応するSSIDが異なる場合は、別の履歴として保持する。
さて、上述のように、デジタルカメラ100が携帯電話200との通信を確立するためには、同じネットワークに参加する必要がある。そのため、履歴を利用する方法であれ、新規にネットワークに参加して通信相手を検索する方法であれ、いずれも通信相手が参加しているネットワークの情報を知り、そのネットワークに参加するための操作が必要である。
そこで、本実施形態では、NFCを用いて携帯電話200の情報を受け取ったデジタルカメラ100が、周囲のアクセスポイントが生成しているネットワークに順次参加して、自動的にネットワーク内の機器から携帯電話200を探すようにした。これにより、ユーザは単にデジタルカメラ100と携帯電話200とを近づけるだけで、携帯電話200が参加しているアクセスポイントの情報をデジタルカメラ100に漏らすことなく、デジタルカメラ100と携帯電話200とが接続することができる。以下、これを実現するための、本実施形態におけるデジタルカメラ100および携帯電話200の動作について説明する。
<動作説明:デジタルカメラ>
図5は、本実施形態におけるデジタルカメラ100が携帯電話200とNFCを介して通信することにより無線LANを利用した通信を確立する際のデジタルカメラ100の動作を示すフローチャートである。本フローチャートの処理は、不揮発性メモリ103に記録されているプログラムを制御部101が読み出し、メモリ102に展開・実行することで実現される。また、本フローチャートの処理は、例えばデジタルカメラ100の電源がオンとなることに応じて開始される。
まず、ステップS501では、制御部101は、近接無線通信部111の状態を確認し、近接無線通信部111が携帯電話200の近接無線通信部208と通信可能かどうかを判定する。具体的にはデジタルカメラ100の近接無線通信エリア1111と携帯電話200の近接無線通信エリア2081とが十分接近したときに近接無線通信部111は通信可能となる。制御部101が、通信不可能であると判定した場合は、本ステップの処理を繰り返し、携帯電話200の近接無線通信エリア1111の近接を待つ。一方、制御部101が、通信可能であると判定した場合、処理はステップS502へ進む。
ステップS502では、制御部101は、近接無線通信部111を介して携帯電話200の識別情報を共有する。具体的には、携帯電話200から、近接無線通信を介して、携帯電話200が保持しているUUIDを受信することにより、携帯電話200とデジタルカメラ100とが、携帯電話200のUUIDを共有する。ここで、識別情報としてUUID{BBBBBBBB−CCCC−DDDD−EEEE−FFFFFFFFFFFF}を取得したとして以降の処理を説明する。
なお、ステップS502では、近接無線通信部111を介して携帯電話200の識別情報を共有することができれば、どちらの近接無線通信部が主体となっても構わない。例えば、近接無線通信部111がNFCリーダとなって近接無線通信部208からデータを読み取る形式、近接無線通信部208がNFCライターとなってデータを近接無線通信部111に書き込む形式などが考えられる。また、近接無線通信部111と近接無線通信部208がNFC P2Pモードで動作し、近接無線通信部208から識別情報を含むデータを近接無線通信部111に送信する形式でもよい。
ステップS503では、制御部101は、無線LAN接続部112を介して周囲の無線LANアクセスポイント情報を収集(いわゆるスキャン)する。具体的には、無線LANアクセスポイントが定期的に発信しているビーコンを受信することで、そのビーコンを発信している無線LANアクセスポイントが生成しているネットワークの情報を収集する。
図6はステップS503で収集した周囲の無線LANアクセスポイントの情報の一例を模式的に表した図である。収集した情報には各無線LANアクセスポイントのSSID・セキュリティ方式・信号強度などが含まれる。なお、情報601は無線LANアクセスポイント301、情報602は無線LANアクセスポイント302、情報603は無線LANアクセスポイント303に対応している。
図5の説明に戻る。
ステップS504〜ステップS517は、接続可能な周囲の無線LANアクセスポイントのうち、いずれかを選択して、選択された無線LANアクセスポイントが生成しているネットワークに参加するための処理である。本実施形態のデジタルカメラ100では、過去に携帯電話とペアリングした際に使用した無線LANアクセスポイント・過去に接続経験のある無線LANアクセスポイント・オープン無線LANアクセスポイントの順に優先して選択する。
ステップS504では、制御部101は、ステップS503で取得した情報と、不揮発性メモリ103に格納されている履歴情報(図4の(a))から、接続可能な無線LANアクセスポイントがあるか否かを判定する。具体的には、制御部101は、ステップS503で取得したSSIDと同一のSSIDを含む接続履歴があった場合に、接続可能な無線LANアクセスポイントが周囲に存在すると判定する。また、ステップS603で取得した無線LANアクセスポイント情報にセキュリティ無しの無線LANアクセスポイント(オープンアクセスポイント)が含まれている場合も、接続可能な無線LANアクセスポイントが周囲に存在すると判定する。
接続可能な無線LANアクセスポイントが存在すると判定された場合は、処理はステップS505へ、存在しないと判定された場合はステップS523へ進む。
ステップS505〜ステップS516は、デジタルカメラ100が携帯電話200とペアリングをするために接続を試みる無線LANアクセスポイントを選択するための処理である。
ステップS505〜ステップS508は、不揮発性メモリ103の接続履歴情報を用いて、過去に携帯電話とのペアリングが成功した際に利用した無線LANアクセスポイントを選択するための処理である。
ステップS505では、制御部101は、図4(a)の接続履歴を参照し、ステップS502で取得した識別情報によって特定される携帯電話とのペアリングが成功した際に利用された無線LANアクセスポイントが接続履歴に含まれるか否かを判定する。
具体的には、接続履歴の「ペアリング履歴」の欄に、ステップS502で取得した識別情報と同じ値が存在し、かつ、その値に対応するSSIDがステップS503で収集したアクセスポイント情報に含まれるか否かを判定する。ステップS502で取得した識別情報と同じ値が存在し、かつ、その値に対応するSSIDがステップS503で収集したアクセスポイント情報に含まれる場合、携帯電話とのペアリングが成功した際に利用した無線LANアクセスポイントが存在すると判定する。
例えば、ステップS502で識別情報としてUUID{11111111−7777−8888−9999−AAAAAAAAAAAA}を取得したとする。この場合、このUUIDは図4(a)のペアリング履歴の欄に含まれているが、対応するSSIDであるVWXYは、収集した図6のアクセスポイント情報に含まれていない。そのため、携帯電話とのペアリングが成功した際に利用した無線LANアクセスポイントは周囲に存在しないと判定されることになる。一方、例えばステップS502で識別情報としてUUID{66666666−7777−8888−9999−AAAAAAAAAAAA}を取得したとする。この場合、このUUIDは図4(a)のペアリング履歴に含まれており(履歴401)、かつ対応するSSID(ABCD)が、図6のアクセスポイント情報に含まれている(情報601)。そのため、携帯電話とのペアリングが成功した際に利用した無線LANアクセスポイントが周囲に存在すると判定されることになる。また、ステップS502で識別情報としてUUID{BBBBBBBB−CCCC−DDDD−EEEE−FFFFFFFFFFFF}を取得したとする。この場合は、このUUIDは図4(a)のペアリング履歴の欄に含まれていない。そのため、携帯電話とのペアリングが成功した際に利用した無線LANアクセスポイントは周囲に存在しないと判定されることになる。
ステップS505にて、制御部101が、携帯電話とのペアリングが成功した際に利用した無線LANアクセスポイントが周囲に存在すると判定した場合はステップS506へ、存在しないと判定した場合はステップS509へ進む。
ステップS506では、制御部101は、周囲に存在する携帯電話とのペアリングが成功した際に利用した無線LANアクセスポイントのうち、本フローチャートの処理でまだ接続を試みていない無線LANアクセスポイントがあるか否かを判定する。
まだ接続を試みていない無線LANアクセスポイントがある場合はステップS507へ、ない場合はステップS509へ進む。この処理は、同じ携帯電話を通信相手としようとしていても(つまりペアリング情報のUUIDが同じであっても)、SSIDが異なれば別の履歴として保持するために必要となる。すなわち、同じ携帯電話であっても、自宅のアクセスポイントを介してペアリングした場合と、別なアクセスポイントを介してペアリングした場合とが存在する可能性があるからである。
ステップS507では、制御部101は、過去のペアリングが成功した際に利用したことがあり、かつ、本フローチャートの処理でまだ接続を試みていない無線LANアクセスポイントのうち、いずれか一つを選択する。この際、ステップS502で更に、NFCの通信が確立した際に、携帯電話が接続しているアクセスポイントから携帯電話200に送信されたビーコンの強度を携帯電話200から受け取っておき、線LANアクセスポイント選択する際の基準に利用してもよい。すなわち、ステップS503で情報を収集した際のアクセスポイントからの信号の強度が、ステップS502で受け取ったビーコン強度に近いアクセスポイントを優先して選択するようにしてもよい。なぜなら、NFCで通信するタイミングでは、デジタルカメラ100と携帯電話200とは、アクセスポイントからの距離が略一致しており、結果としてアクセスポイントから発信されるビーコンの強度が略一致する位置関係にある可能性が高いためである。
ステップS508では、制御部101は、ステップS507で選択した無線LANアクセスポイントに接続するための通信パラメータ(SSID、セキュリティ方式、パスフレーズ)を、接続履歴(図4の(a))を参照して決定する。その後、処理はステップS517に進む。ステップS517以降の処理については後述することとし、まずはステップS509以降の処理について説明する。
ステップS509〜S512は、過去にペアリングに成功した際に利用した無線LANアクセスポイントが存在しない場合に、不揮発性メモリ103の接続履歴情報を用いて、過去に接続したことのある無線LANアクセスポイントを選択するための処理である。
ステップS509では、制御部101は、ステップ603で取得した接続可能な無線LANアクセスポイントのうち、過去に接続したことのある無線LANアクセスポイントがあるか否かを判定する。
具体的には、ステップS503で収集した無線LANアクセスポイント情報のうち、同じSSIDの無線LANアクセスポイントに関する情報が、接続履歴に記録されている場合、過去に接続したことのある無線LANアクセスポイントがあると判定する。
例えば、図6の情報601と情報602に関しては、同じSSIDが図4(a)において履歴401と履歴402として存在するため、ステップS509では過去に接続したことのある無線LANアクセスポイントがあると判定することになる。
過去に接続したことのある無線LANアクセスポイントがあると判定された場合はステップS510へ、ないと判定された場合はステップ513へ進む。
ステップS510では、制御部101は、周囲に存在する過去に接続したことのある無線LANアクセスポイントのうち、本フローチャートの処理でまだ接続を試みていない無線LANアクセスポイントがあるか否かを判定する。
まだ接続を試みていない無線LANアクセスポイントがあると判定された場合はステップS611へ、ないと判定された場合はステップS613へ進む。
ステップS611では、制御部101は、過去に接続したことがあり、かつ、本フローチャートの処理で接続を試みていない無線LANアクセスポイントのうち、いずれか一つを選択する。この際にも、ステップS507と同様に、ビーコン強度と信号強度に基づく優先順位で選択するようにしてもよい。
ステップS512では、制御部101は、ステップS511で選択した無線LANアクセスポイントに接続するための通信パラメータ(SSID、セキュリティ方式、パスフレーズ)を、接続履歴(図5の(a))を参照して決定する。その後、処理はステップS517に進む。ステップS517以降の処理については後述することとし、まずはステップS513以降の処理について説明する。
ステップS513では、制御部101は、ステップS507で取得した接続可能な無線LANアクセスポイントのうち、オープンな無線LANアクセスポイントがあるか否かを判定する。
具体的には、ステップS503で収集した無線LANアクセスポイント情報のうち、セキュリティが「なし」のSSIDが存在する場合に、オープンな無線LANアクセスポイントがあると判定する。
例えば、ステップS503で収集した無線LANアクセスポイント情報のうち、図6の情報602と情報603はセキュリティが「なし」のため、オープンな無線LANアクセスポイントがあると判定することになる。
接続可能なオープンな無線LANアクセスポイントがあると判定された場合はステップS514へ、ないと判定された場合はステップ523へ進む。
ステップS514では、制御部101は、周囲に存在する接続可能なオープンな無線LANアクセスポイントのうち、本フローチャートの処理でまだ接続を試みていない無線LANアクセスポイントがあるか否かを判定する。
まだ接続を試みていない無線LANアクセスポイントがあると判定された場合はステップS515へ、ないと判定された場合はステップS523へ進む。
ステップS515では、制御部101は、接続を試みていない無線LANアクセスポイント(接続可能なオープンな無線LANアクセスポイント)のうち、いずれか一つを選択する。この際にも、ステップS507と同様に、ビーコン強度と信号強度に基づく優先順位で選択するようにしてもよい。
ステップS516では、制御部101は、ステップS511で選択した無線LANアクセスポイントに接続するための通信パラメータを決定する。選択した無線LANアクセスポイントはオープンであるため、接続に必要な通信パラメータはSSIDのみとなる。その後、処理はステップS517に進む。
ステップS517〜S519は、ステップS505〜S516の処理で選択された無線LANアクセスポイントを介して、無線LAN接続部112を用いて携帯電話200と通信可能か否かを判定するための処理である。
ステップS517では、制御部101は、ステップS508・S512・S516のいずれかで決定された通信パラメータを使用して、無線LANアクセスポイントが生成しているネットワークに参加する。具体的には制御部101は、無線LANアクセスポイントから定期的に発信されるビーコンを無線LAN接続部112を介して受信し、これに対する応答および接続処理を経て、無線LANアクセスポイントと接続することによりネットワークに参加する。あるいは、無線LANアクセスポイントに対してプローブ信号を送信し、所定の接続シーケンスを経て無線LANアクセスポイントに接続することにより、無線LANアクセスポイントが生成しているネットワークに参加する。
例えば、ステップS511で、SSIDが「ABCD」の無線LANアクセスポイント(図4(a)の履歴401)が選択された場合、デジタルカメラ100は無線LANアクセスポイント301と接続することになる(図3の(b))。
例えば、ステップS515において、SSIDが「IJKL」の無線LANアクセスポイント(図6の情報603)が選択された場合は、デジタルカメラ100は無線LANアクセスポイント303と接続することになる(図4の(d))。
ステップS518では、制御部101は、ステップS502で取得した識別情報を利用して、無線LAN接続部112を用いて現在接続している無線LAN上でその識別情報を持つ装置を探索(いわゆるディスカバリ)する。具体的には、識別情報がUUIDの場合は、制御部101は探索信号として、SSDPのM−Searchコマンドを、参加中のネットワーク内の全ての機器に対して送信する。ネットワーク内の機器は、このM−Searchを受信し、かつ対応しているならば、これに対する応答信号をM−Searchの送信元(つまりデジタルカメラ100)に対して送信する。この応答信号にはUUIDが含まれる。故に、この応答に、ステップS502で取得した識別情報(UUID)と一致するUUIDが含まれているかどうかを参照すれば、現在参加中の無線LAN内に、そのUUIDを持つ装置が存在するかどうかが判断できる。
また、識別情報としてホスト名を使用する場合は、制御部101はmDNSプロトコルを用いそのホスト名を持つネットワーク上の通信装置を検索(名前解決リクエスト)する。名前解決リクエストに対して応答があれば、現在接続している無線LAN上にそのホスト名を持つ通信装置が存在することがわかる。
ステップS519では、制御部101は、ステップS518で行った探索に成功したか否かを判定する。ここでは、ステップS502で取得した識別情報と一致するUUIDが含まれる応答信号が受信できれば、探索に成功したと判定されることになる。探索に失敗したと判定された場合はステップ520へ進み、探索に成功したと判定された場合はステップS521に進む。
ステップS520では、制御部101は、ステップS517で参加した無線LANから離脱し、次の無線LANアクセスポイントを選択するためにステップS505へ戻る。これは、ステップS502でNFCを介して受信したUUIDにより特定される携帯電話が、他の無線LANアクセスポイントのネットワークに参加しているであろうとの予測によるものである。すなわち、ステップS505〜ステップS520の処理を繰り返すことによって、デジタルカメラ100は周囲のアクセスポイントが生成しているネットワークに順次参加し、参加したネットワーク内にある機器から、携帯電話200を探索する。これにより、結果的に携帯電話200との通信を確立することができる。
一方、携帯電話200の探索に成功して遷移したステップS521では、制御部101は、ステップS517で確立した無線LAN接続を使用し、携帯電話200に対してペアリングが成功した旨の通知を行う。例えば、予め定められたペアリング成功の旨を示すメッセージを、無線LAN接続部112を用いて携帯電話200に送信する。
続くステップS522では、制御部101は、現在使用している無線LAN接続のための通信パラメータ(SSID、セキュリティ方式、パスフレーズ)とペアリング情報を、不揮発性メモリ103の接続履歴情報に追加する。また、制御部101は、表示部105にペアリングに成功した旨を示すメッセージを表示する。その後、本フローチャートを終了する。
例えば、ステップS515で、SSIDが「HIJK」の無線LANアクセスポイント(図6の情報603)が選択された場合は、デジタルカメラ100と携帯電話200は供に無線LANアクセスポイント301と接続することになる。つまり、ステップS519ではYESとなる。この場合は、図4(a)の接続履歴情報は図4(b)のように更新される(履歴405を追加する)。
一方、ステップS523は、デジタルカメラ100が接続可能なすべての無線LANアクセスポイントのネットワーク内を検索したにもかかわらず、携帯電話200のUUDIを見つけられなかった場合の処理である。すなわち、携帯電話200と通信可能な状態にできなかった場合(ペアリングに失敗)の処理である。
ステップS523では、制御部101は、表示部105にペアリングに失敗した旨のエラー表示を行い、本フローチャートを終了する。
以上が、本実施形態におけるデジタルカメラ100の動作である。
<動作説明:携帯電話>
続いて、上述のデジタルカメラ100の動作に対応する携帯電話200の動作について説明する。
図7は、デジタルカメラ100が携帯電話200とNFCを介して通信することにより無線LANを利用した通信を確立する際の携帯電話200の動作を示すフローチャートである。本フローチャートの処理は、不揮発性メモリ203に記録されているプログラムを制御部201が読み出し、メモリ202に展開・実行することで実現される。また、本フローチャートの処理は、例えば携帯電話200の電源がオンとなることに応じて開始される。
まず、ステップS701では、制御部201は、近接無線通信部208の状態を確認し、近接無線通信部208がデジタルカメラ100の近接無線通信部111と通信可能かどうかを判断する。具体的にはデジタルカメラ100の近接無線通信エリア1111と携帯電話200の近接無線通信エリア2081とが十分接近したときに近接無線通信部208は通信可能となる。
制御部201により、通信不可能であると判断された場合、本ステップの処理を繰り返し、デジタルカメラの近接を待つ。一方、通信可能であると判断された場合はステップS702へ進む。
ステップS702では、制御部201は、近接無線通信部208を介して携帯電話200の識別情報を、デジタルカメラ100に送信する。ここでは、識別情報としてUUID{BBBBBBBB−CCCC−DDDD−EEEE−FFFFFFFFFFFF}を送信したとして以降の処理を説明する。
なお、ステップS702で行われる近接無線通信は、デジタルカメラ100の近接無線通信部111がNFCリーダとなることで実現してもよいし、携帯電話200の近接部線通信部208がNFCライターとなることで実現してもよい。デジタルカメラ100の近接無線通信部111がNFCリーダとなる場合、制御部101が、近接無線通信部111を介して、携帯電話200の近接部線通信部208から識別情報を含むデータを読み取る。近接無線通信部208がNFCライターとなる場合、制御部201が、近接無線通信部208を介して、識別情報を含むデータを近接無線通信部111に書き込む。また、近接無線通信部111と近接無線通信部208がNFC P2Pモードで動作し、近接無線通信部208から識別情報を含むデータを近接無線通信部111に送信する形式を採用してもよい。
ステップS703では、制御部201は、無線LAN接続部209で受信するデータを監視し、ネットワーク上の機器検出(いわゆるディスカバリ)が行われているか否かを判断する。具体的には、SSDPのM−Searchコマンドを受信した場合や、mDNSプロトコルの名前解決リクエストなどを受信した場合は、機器検出が行われていると判断する。
ステップS703で、機器検出が行われていると判断した場合はステップS704へ、機器検出が行われていないと判断された場合はステップS705へ進む。
ステップS704では、制御部201は、ステップS703で受信したデータを元に、機器検出に応答する必要があるか否かを判断する。
具体的には、ステップS703で受信した機器検出データが、SSDPプロトコルのM−Searchコマンドであった場合には応答が必要であると判断する。また、mDNSプロトコルの名前解決リクエストであった場合は、その名前解決リクエストが携帯電話200のホスト名に対する物であった場合に応答が必要であると判断する。
ここで、応答する必要がないと判断した場合はステップS705へ進む。
ステップS705では、制御部201は、ステップS702においてNFCでデータ受信をしてからの経過時間が所定の時間(例:90秒)経過したか否かを判断する。
所定の時間を経過していると判断した場合はステップS701に戻り、次のデジタルカメラ100の近接を待つ。一方、経過していないと判断した場合は、ステップS703に戻り、次の機器検出を待つ。
一方、ステップS704で応答する必要があると判断した場合はステップS706へ進む。
ステップS706では、制御部201は、S703で受信した機器検出に対して応答する。ここでは、例えばSSDPプロトコルのM−Searchコマンドに対しては、応答信号に自身の識別情報(UUID{BBBBBBBB−CCCC−DDDD−EEEE−FFFFFFFFFFFF})を含めて送信する。また、ステップS703で受信したデータが、mDNSプロトコルの名前解決リクエストであった場合は、携帯電話200のIPアドレスを含めて応答する。
ステップS707では、制御部201は、無線LAN接続部209を用いて、ペアリングが成功した旨の通知がデジタルカメラ100から送られてくるのを待つ。
ペアリング完了通知を受信した場合(ステップS707でYES)はステップS708へ進み、受信しなかった場合(ステップS707でNO)はステップS709へ進む。
ステップS708では、制御部201は、表示部204にペアリングが成功した旨の表示を行い、その後ステップS701に戻ることにより次なるNFCタッチを待つ。
一方、ステップS709では、制御部201は、ステップS706で機器検出に応答してからの経過時間が所定の時間(例:90秒)経過したか否かを判断する。所定の時間が経過していると判断した場合、処理はステップS801に戻り、次のデジタルカメラ100の近接を待つ。経過していないと判断した場合、処理はステップS807に戻り、ペアリング受信通知を待つ。
以上が、上述のデジタルカメラ100の動作に対応する携帯電話200の動作についての説明である。
以上説明したように、本実施形態のデジタルカメラは、アクセスポイントのネットワークを順次切り替えて、ネットワーク内から携帯電話200を探索する。これにより、アクセスポイントの情報を交換することなく、デジタルカメラと携帯電話との通信を確立することができる。このようにして無線LANを介した通信が確立された後は、無線LANを用いて、デジタルカメラで生成された画像データを携帯電話に送信したり、携帯電話で生成した画像データをデジタルカメラに送信したりすることができる。
[第2の実施形態]
第1の実施形態では、デジタルカメラ100が、周囲のアクセスポイントが生成するネットワークに参加し、携帯電話200を検索するためのディスカバリを行う場合を例に挙げて説明した。これに対し、本実施形態では、デジタルカメラ100が周囲のアクセスポイントが生成するネットワークに参加し、携帯電話200からのディスカバリがないかを検知する場合について説明する。なお、本実施形態は第1の実施形態と共通する部分が多いため、本実施形態特有の部分を中心に説明する。
<動作説明:デジタルカメラ>
図8は、本実施形態にけるデジタルカメラ100が携帯電話200とNFCを介して通信することにより無線LANを利用した通信を確立する際のデジタルカメラ100の動作を示すフローチャートである。本フローチャートの処理は、不揮発性メモリ103に記録されているプログラムを制御部101が読み出し、メモリ102に展開・実行することで実現される。また、本フローチャートの処理は、例えばデジタルカメラ100の電源がオンとなることに応じて開始される。
まず、ステップS801では、無線LAN接続部112を介して周囲の無線LANアクセスポイント情報を収集(いわゆるスキャン)する。本ステップの処理は、図5のステップS503と同様である。すなわち、ここでは、図6のような情報が収集されることになる。
続いて、ステップS802では、制御部101は、近接無線通信部111の状態を確認し、近接無線通信部111が携帯電話200の近接無線通信部208と通信可能かどうかを判定する。本ステップの処理は、図5のステップS501と同様である。制御部101が、通信不可能であると判定した場合は、処理はステップS801に戻り、ステップS801とステップS802の処理を繰り返しながら、携帯電話200の近接無線通信エリア2081の近接を待つ。一方、制御部101が、通信可能であると判定した場合、処理はステップS803へ進む。
ステップS803では、制御部101は、近接無線通信部111を介して、自身の識別情報・無線LAN接続後の検出期間・周囲の無線LANアクセスポイント数を携帯電話200に通知する。この結果、携帯電話200では、これらの情報を用いてデジタルカメラ100のディスカバリを行う。ただし、このディスカバリの信号は、携帯電話200と同じネットワークに参加していなければ、デジタルカメラ100が受け取ることはできない。そのため、移行の処理にてデジタルカメラ100は、周囲のアクセスポイントが生成するネットワークに順次参加し、携帯電話200からのディスカバリを受け取れるネットワークを探す。なお、ここでは、識別情報としてUUID{22222222−3333−4444−5555−666666666666}、検出期間として15秒、無線LANアクセスポイント数として3を通知した場合を例に挙げて以降の処理を説明する。
続くステップS804〜ステップS817では、図5のステップS504〜ステップS517と同様の処理が実行される。ただし、ステップS804、ステップS813およびステップS814でNOの場合には、ステップS825へ進む。
ステップS807で、無線LAN接続部112を用いて無線LANアクセスポイントへの接続が完了すると、処理はステップS818に進む。
ステップS818では、制御部101は、無線LAN接続部112を介して受信するデータを監視し、デジタルカメラ100に対するネットワーク上の機器検出(ディスカバリ)が行われているか否かを判定する。具体的には、ステップS803で携帯電話200に通知したUUIDを指定したSSDPのM−Searchコマンドを受信した場合に、自身に対する機器検出が行われたと判定する。なお、ステップS803で携帯電話200に通知する識別情報としてホスト名を用いた場合は、そのホスト名に対するmDNSプロトコルの名前解決リクエストを受信した場合に、自身に対する機器検出が行われたと判定するようにしてもよい。
ステップS818にて、自身に対する機器検出が行われたと判定した場合はステップS821へ進み、検出が行われなかったと判定した場合はステップS819へ進む。
ステップS819では、制御部101は、ステップS817で無線LANアクセスポイントに接続してからの経過時間が、ステップS803で通知した検出時間を超えたか否かを判別する。検出時間を超過した場合はステップS820へ進み、超過していない場合はステップS818に戻り、再び自身に対する検出処理の有無を確認する。
ステップS820では、制御部101は、ステップS817で確立した無線LAN接続を切断し、次の無線LANアクセスポイントを選択するためにステップS805へ戻る。
一方、ステップS821では、制御部101は、ステップS819で受信した機器検出に応答する。ここでは、例えばSSDPプロトコルのM−Searchコマンドに対する応答信号に自身の識別情報(UUID{22222222−3333−4444−5555−666666666666})を含めて送信する。また、ステップS819で受信したデータが、mDNSプロトコルの名前解決リクエストであった場合は、自身のIPアドレスを含めて応答する。
ステップS822では、制御部101は、無線LAN接続部112を介して、携帯電話200から送信されるペアリングが成功した旨の通知の受信を待つ。ペアリング完了通知を受信した場合はステップS823へ進み、受信しなかった場合はステップS824へ進む。
ステップS823では、制御部101は、現在使用している無線LAN接続のための通信パラメータ(SSID、セキュリティ方式、パスフレーズ)とペアリング情報を、不揮発性メモリ103の接続履歴情報に追加する。また、制御部101は、表示部105にペアリングに成功した旨の表示を行い、本フローチャートを終了する。例えば、ステップS815において、SSIDが「HIJK」の無線LANアクセスポイント(図4の履歴405)を選択した場合は、図3(d)のように、デジタルカメラ100と携帯電話200は共に無線LANアクセスポイント303と接続することになる。
一方、ステップS824では、制御部101は、ステップS821で機器検出に応答してからの経過時間が所定の時間(例:90秒)経過したか否かを判定する。所定の時間が経過していないと判定した場合はステップS822に戻り、再度ペアリング受信通知を待つ。一方、所定の時間が経過したと判定した場合はステップS825へ進む。
ステップS825は、デジタルカメラ100が接続可能なすべての無線LANアクセスポイントを試したにもかかわらず、携帯電話200との通信を確立できなかった場合(ペアリングに失敗)の処理である。本ステップでは、制御部101は、表示部105にペアリングに失敗した旨のエラー表示を行い、本フローチャートを終了する。
<動作説明:携帯電話>
続いて、上述のデジタルカメラ100の動作に対応する、本実施形態の携帯電話200の動作について説明する。
図9は、携帯電話200における、近接無線通信部208と無線LAN接続部209に関わる処理を説明するためのフローチャートである。本フローチャートの処理は、不揮発性メモリ203に記録されているプログラムを制御部201が読み出し、メモリ202に展開・実行することで実現される。また、本フローチャートの処理は、例えば携帯電話200の電源がオンとなることに応じて開始される。
まず、ステップS901では、制御部201は、近接無線通信部208の状態を確認し、近接無線通信部208がデジタルカメラ100の近接無線通信部111と通信可能かどうかを判断する。具体的にはデジタルカメラ100の近接無線通信エリア1111と携帯電話200の近接無線通信エリア2081とが十分接近したときに近接無線通信部208は通信可能となる。
制御部201により、通信不可能であると判断された場合、本ステップの処理を繰り返し、デジタルカメラの近接を待つ。一方、通信可能であると判断された場合はステップS902へ進む。
ステップS902では、制御部201は、近接無線通信部208を介してデジタルカメラ100から識別情報・検出期間・周囲の無線LANアクセスポイント数を受信する。これは、図8のステップS803でデジタルカメラ100から送信される情報である。ここでは、識別情報としてUUID{22222222−3333−4444−5555−666666666666}、検出期間として15秒、無線LANアクセスポイント数として3を受信したとして以降の処理を説明する。
ステップS903では、制御部201は、ステップS902で取得した識別情報を利用して、無線LAN接続部209を用いて現在接続している無線LAN上に参加中の他の装置のなかから、その識別情報を持つ装置の検出(いわゆるディスカバリ)を試みる。具体的には、識別情報がUUIDの場合は、制御部201はSSDPのM−Searchコマンドを用いネットワーク上の通信装置を検索する。このコマンドに対する応答にはUUIDが含まれるので、ステップS903で取得した識別情報(UUID)と一致するUUIDを含む応答があれば、現在接続している無線LAN上にそのUUIDを持つ装置が存在することがわかる。
なお、識別情報としてホスト名を使用する場合は、制御部201はmDNSプロトコルを用いそのホスト名を持つネットワーク上の装置を検索(名前解決リクエスト)するようにしてもよい。この場合、名前解決リクエストに対して応答があれば、現在接続している無線LAN上にそのホスト名を持つ装置が存在することがわかる。
続くステップS904では、制御部201は、ステップS903で実行した検出処理が成功したか否かを判定する。検出に失敗したと判定した場合にはステップS905へ、検出に成功したと判定した場合にはステップS908へ進む。
ステップS905では、制御部201は、ステップS903の処理を開始してからの経過時間が、ステップS902で受信した検出期間で指定される時間を超過したか否かを判定する。超過していないと判定した場合、処理はステップS903に戻り、超過するか検出が成功するまで、機器の検出を繰り返す。一方、超過したと判定した場合はステップS906へ進む。
ステップS906では、所定期間(ステップS902で取得した検出期間)の検出処理(すなわちステップS903〜S905のループ処理)の実行回数が、ステップS902で受信した周囲の無線LANアクセスポイント数を越えたか否かを判定する。超えていないと判定した場合にはステップS903に戻り、検出を継続する。一方、超えたと判定した場合にはステップS907へ進む。なお、ステップS906では、実行回数の上限としてステップS902で受信した周囲の無線LANアクセスポイント数を用いた。これについては、例えば、制御部201が無線LAN接続部209を介して周囲の無線LANアクセスポイント情報を収集(スキャン)し得られた無線LANアクセスポイント数を上限としてもよい。
ステップS907は、携帯電話200が繰り返し検出処理を行ったにもかかわらず、デジタルカメラ100との通信を確立できなかった場合(ペアリングに失敗)の処理である。本ステップでは、制御部201は表示部204に、ペアリングに失敗した旨のエラー表示を行い、本フローチャートを終了する。
一方、ステップS908は、デジタルカメラ100と携帯電話200が無線LANで通信可能な状態にできた場合(ペアリングが完了した場合)の処理である。ステップS908では、制御部201は、接続中の無線LANを使用し、デジタルカメラ100に対してペアリングが成功した旨の通知を行う。例えば、予め定められた、ペアリング成功の旨を示すメッセージを、無線LAN接続部209を用いてデジタルカメラ100に送信する。
続くステップS909では、制御部201は、表示部204にペアリングに成功した旨の表示を行い、本フローチャートを終了する。
以上説明したように、本実施形態のデジタルカメラは、アクセスポイントのネットワークを順次切り替えて、ネットワーク内から自機に対するディスカバリがあるかどうかを検知する。これにより、アクセスポイントの情報を交換することなく、デジタルカメラと携帯電話との通信を確立することができる。
[その他の実施例]
上述の実施形態では、近接無線通信としてNFCを用いる場合を例に挙げて説明した。しかし、近接無線通信はこれに限定されるものではない。近接無線通信としては、例えばBluetooth(登録商標)などの他の通信方式を採用してもよい。
また、上述の実施形態に加えて、無線LANを介して通信を確立している状態のデジタルカメラにおいては、その通信を優先するために、近接無線通信部111を無効に設定してもよい。
本発明は、以下の処理を実行することによっても実現される。即ち上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記録媒体は本発明を構成することになる。