以下、添付図面を参照して、本発明の例示的な実施形態について詳細に説明する。
<1.ハードウェア構成>
図1は、本発明の実施形態に係る無線通信装置を適用可能な装置の一例としてのデジタルカメラ100の構成例を示す図である。なお、無線通信装置としては、例えばいわゆるカメラ付き携帯電話(一般にスマートフォンと呼ばれるデバイスも含む)や、タブレットデバイスなどを用いてもよい。
10はレンズバリア、11は撮影レンズ、12は絞り機能を備えるシャッターであり、撮像制御部13によって制御される。
撮像素子14は光学像を電気信号に変換する、CMOSイメージセンサやCCDイメージセンサである。画像処理回路15は、撮像素子14からのデータ或いはメモリ制御回路16からのデータに対して画素補間処理や色変換処理等の画像処理を行う。
メモリ制御回路16は、画像処理回路15が出力する画像データを例えばメモリ18に書き込む。
画像表示部17は例えばLCD等であり、メモリ18に書き込まれた表示用の画像データはD/A変換されて画像表示部17で表示される。
メモリ18は撮影した静止画像や動画像を格納するために用いられ、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記憶量を備えている。これにより、複数枚の静止画像を連続して撮影する連射撮影やパノラマ撮影の場合にも、高速かつ大量の画像書き込みをメモリ18に対して行うことが可能となる。また、メモリ18はシステム制御部50の作業領域としても使用することが可能である。
システム制御部50は撮影画像の被写体認識処理や、被写体認識結果と管理データの照合処理や、ステータスデータの生成処理など、本実施形態で必要な各種処理を実行すると共に、デジタルカメラ100全体を制御する。システム制御部50は例えばCPU,RAM,ROMを内蔵しており、ROMに記憶された制御プログラムをRAMにロードしてCPUで実行することにより、デジタルカメラ100の動作を実現する。不揮発性メモリ51はシステム制御部50の動作用の定数、変数、プログラム等を記憶することができる。
画像処理部52は、静止画のリサイズ処理などの各種画像処理を行う。
通信制御部60はアンテナ61と接続され、外部機器との無線通信機能を制御する。
操作部70は、ユーザがデジタルカメラ100に各種の動作指示を入力するための入力装置群であり、スイッチ、ボタン、ダイヤル、タッチパネル、視線検知によるポインティング、音声認識装置等、様々な入力装置の一つ以上で構成される。
カードコントローラ90は、メモリカード等の外部記憶媒体とデータの送受信を行う。インタフェース(I/F)91は、メモリカード等の外部記憶媒体とのインタフェースである。コネクタ92には、メモリカード等の外部記憶媒体が装着可能である。外部記憶媒体93はメモリカード等の着脱可能な記憶媒体である。記憶媒体着脱検知部94は、コネクタ92に外部記憶媒体93が装着されているか否かを検知する。
図2は、本発明の実施形態に係る無線通信装置を適用可能な装置の別の例としての携帯電話機200の構成を示す図である。
公衆網通信部201は公衆網アンテナ202と接続され、3G回線等の公衆網と通信を行う。
表示部203は例えばLCDであり、表示制御部204の制御に従い、ユーザに対して各種の情報を表示する。
操作部205はユーザが携帯電話機200に各種の動作指示を入力するための入力装置群であり、スイッチ、ボタン、ダイヤル、タッチパネル、音声認識装置等、様々な入力装置の一つ以上で構成される。
不揮発性メモリ207は電気的に消去・記録可能である。不揮発性メモリ207及びメモリ208のうち少なくとも一方は携帯電話機200の動作用の定数、変数、プログラム等を記憶する。
カードコントローラ209はメモリカード等の外部記憶媒体とデータの送受信を行う。
インタフェース210はメモリカード等の外部記憶媒体とのインタフェースである。
無線LAN通信部211、Bluetooth(登録商標)通信部212は、ともにアンテナ213に接続され、それぞれがサポートする規格に従った無線通信機能を提供する。
GPS通信部214はGPSアンテナ215に接続され、位置情報を取得する。
USBデバイスインタフェース216はパーソナルコンピュータなどの外部機器とUSB規格に従って接続するためのインタフェースである。
音声処理部217はマイク218から取得した音声データに対して所定の処理を適用するほか、処理した音声データをスピーカー219を介して出力する処理を行う。
<2.接続処理>
次に、本実施形態に係る無線通信装置の接続動作について、デジタルカメラ100と携帯電話機200との接続を例として説明する。なお、デジタルカメラ100はすでに他の相手機器と無線接続したことがあり、不揮発性メモリ51には接続した相手機器の接続情報が記憶されているものとする。なお、接続情報には通信パラメータ(無線LANパラメータ)、ネットワーク設定情報および相手機器情報が含まれるものとする。なお、ネットワーク設定情報については、例えばデジタルカメラ100の初期設定値を用いる場合には接続情報に含まれなくてもよい。
図5に接続情報の一例を示す。接続情報には、個々の接続情報に付与される接続情報番号と、接続順と、無線LANパラメータと、ネットワーク設定情報と、相手機器情報が記録されている。ここで、接続順とは接続した順番であり、番号が大きいほうが最近接続したことを示す。図5の例では、無線LANパラメータとしてESSID、BSSID、認証方式、暗号種別、暗号鍵、チャネルが記録されている。このうち、BSSIDはアクセスポイントに固有の無線ネットワーク識別情報である。また、ネットワーク設定情報としてIPアドレス取得方法、DNS取得方法が、相手機器情報として相手機器種別、登録名、UUID、閲覧許可設定が記録されている。なお、登録名はユーザ設定可能な相手機器名であり、ユーザが相手機器を識別できるように自由に変更することができる。なお、相手機器種別、登録名、UUIDなどは必ずしも別個の情報でなくてもよく、例えば種別と名称と一意な文字列を連結した1つのIDでこれらの情報を特定できるようにしてもよい。
接続情報は、システム制御部50が不揮発性メモリ51からメモリ18に展開して使用されてよい。本実施形態で用いる接続情報の特徴は、携帯電話機などの相手機器の情報と、ESSID(ネットワーク識別子またはネットワーク名)とが一対一で関連づけられて管理されていることである。つまり、同じ相手機器であっても異なるネットワークで接続する可能性がある(あるいは、接続したことがある)場合は、それぞれ別の接続情報として管理される。
例えば図5の例では、接続情報番号1と2は同一UUIDを有する相手機器(すなわち、同一の相手機器)に関する接続情報であり、ESSIDがAP1のネットワークと、AP2のネットワークとに関連づけられている。なお、図5で接続情報番号6として示しているように、本実施形態では相手機器の種別がWebサービスの場合には登録名、UUID閲覧許可設定は記録されない。
図3は、本実施形態におけるデジタルカメラ100と携帯電話機200とを新規に無線接続する場合の、デジタルカメラ100の処理を説明するためのフローチャートである。このフローチャートにおける各処理は、システム制御部50が、不揮発性メモリ51に格納されたプログラムをメモリ18に展開して実行することにより実現される。以下、特に断らない限り他のフローチャートも同様である。なお、システム制御部50がソフトウェア的に実行する処理の少なくとも一部を専用のハードウェアによって実施してもよいことは言うまでもない。
S301において、システム制御部50は、操作部70を通じて相手機器種別が選択されるのを待機する。例えばシステム制御部50は画像表示部17に相手機器種別の選択画面を表示させ、操作部70からの入力を待機する。ここで相手機器種別とはデジタルカメラ100が無線接続可能な相手機器の種類であり、例えばデジタルカメラ、携帯電話機、PC、プリンタ、Web(サーバ)などがある。相手接続種別の選択画面の一例を図4に示す。図4の例では、デジタルカメラ、携帯電話機、PC、Webの4つが選択可能なアイコンで表示されている。ユーザは操作部70を操作していずれかのアイコンを選択し、決定を入力すると、システム制御部50は、ユーザが選択したアイコンに対応する相手機器種別をメモリ18に記憶し、処理をS302に進める。ここでは、携帯電話機200と接続するため、相手機器種別として携帯電話機が選択されたものとする。
S302においてシステム制御部50は、接続したことのない相手機器と接続する(新規接続)か、既に接続したことのある相手機器と接続する(再接続)かの選択画面を画像表示部17に表示させ、ユーザの選択を待つ。システム制御部50は、新規接続が選択された場合、新たな接続情報を記録可能か確認し、可能であれば記録可能な接続情報番号の領域に各情報を記憶する。例えば、図5の例では接続情報番号7番に空きがあるため、今回の新規接続が選択された場合には、接続情報番号7に各情報を記憶する。システム制御部50は、接続情報番号7の相手機器種別に、S301で取得した相手機器種別(携帯電話機)を登録し、処理をS303に進める。
なお、S302において再接続が選択された場合、S304でシステム制御部50は履歴接続処理を行う。履歴接続処理とは、前回記録した接続情報を用いた接続処理であり、その詳細については後述する。
<3.新規接続処理>
以下、S303以降の新規接続処理について説明する。S303においてシステム制御部50は、例えば図21(e)に示すような通信モード選択画面を画像表示部17に表示させ、ユーザの選択を待つ。本実施形態において選択可能な通信モードとしては、アクセスポイントを経由して接続を行うインフラストラクチャモードと、アクセスポイントを経由しないでピアトゥーピアで接続を行うアドホックモードとがあるものとする。システム制御部50は、ユーザにより選択された通信モードをメモリ18に記憶し、処理をS305に進める。
S305において、システム制御部50は、ユーザにより選択された通信モードがインフラストラクチャモードであればS306に、アドホックモードであればS315に、それぞれ処理を進める。
<3.1. インフラストラクチャモードでの接続>
インフラストラクチャモードが選択された場合の処理について説明する。
S306においてシステム制御部50は、通信制御部60を用いて、周囲に存在するアクセスポイントを検索する。具体的には、アクセスポイントが発するビーコンを受信し、アクセスポイント情報を取得する。
図6(a)に、アクセスポイント検索処理により取得したアクセスポイント検索結果の例を示す。図6(a)の例ではS306においてアクセスポイントAP1、AP2、AP3、AP4、AP8、AP10が検索されている。
<3.1.1. アクセスポイントのソート処理>
S307において、システム制御部50は、S306において取得したアクセスポイント検索結果のソート処理を行う。
図7は、アクセスポイント検索結果のソート処理を説明するためのフローチャートである。S701において、システム制御部50は、相手機器が既に決定済みか否かを判断する。ここでいう決定済みとは、過去に接続した機器を特定して再接続する場合を指す。相手機器が決定済みと判断した場合、システム制御部50は処理をS702に進める。一方、相手機器が決定済みでない(すなわち、新規接続)と判断した場合、システム制御部50は処理をS705に進める。ここでは新規接続が選択されているため、システム制御部50は処理をS705に進める。再接続時の処理については後述する。
S705においてシステム制御部50は、記録済みの接続情報の中から、S301で選択された相手機器種別と、S303で選択された通信モードに対応する接続情報を読みだす。そしてシステム制御部50は、該当する接続情報の数をメモリ18に用意した定数Nに記憶する。本実施形態ではS301で相手機器種別として携帯電話機が、S303で通信モードとしてインフラストラクチャモードが選択されている。そのため、システム制御部50は図5の接続情報のうち、通信モードがインフラストラクチャモードで、かつ相手機器種別が携帯電話機である接続情報番号1、2、5を読み出し、定数Nに「3」を記憶する。
S706においてシステム制御部50は、S705で抽出した接続情報を、最近接続したものから降順にソートする。接続情報番号1、2、5の接続順はそれぞれ6、2、10である。前述したしたように、接続順は数字が大きいほど最近接続したことを示すため、システム制御部50は、接続情報番号5、1、2の順にソートする。
S707において、システム制御部50は、S706でソートした接続情報と、図3のS306で取得したアクセスポイント検索結果との比較処理を行う。以下、比較処理について詳細に説明する。
図8に示すフローチャートを用いて、S707における比較処理を説明する。
S801においてシステム制御部50は、メモリ18に用意した変数nに1をセットする。
S802においてシステム制御部50は、ソートした接続情報のn番目の接続情報に含まれるアクセスポイント情報(ESSID)を参照し、アクセスポイントの検索結果と比較する。
S803においてシステム制御部50は、S802での比較の結果、アクセスポイント検索結果の中にn番目の接続情報のアクセスポイント情報欄に記憶されたものと同じアクセスポイントがあるかどうか判断する。システム制御部50は、S803において同じアクセスポイントがある場合にはS804に、同じアクセスポイントがない場合にはS805にそれぞれ処理を進める。
アクセスポイントの検索結果が図6(a)に示す結果である場合を考えると、接続情報は接続情報番号5、1、2の順にソートされているので、n=1の接続情報は接続情報番号5であり、対応するアクセスポイントはAP3である。そこで、システム制御部50は、図6(a)のアクセスポイント検索結果にAP3があるかどうかを判定する。図6(a)にはAP3があるため、この場合、システム制御部50は処理をS804に進める。
S804において、システム制御部50は、検索されたアクセスポイントのうち、n番目の接続情報のアクセスポイント情報欄に記憶されたものと同じであると判定されたものに優先順位nを設定する。今回の例であれば、AP3に優先順位「1」を設定する。なお、優先順位は数が小さいほど優先度が高い。
S805においてシステム制御部50は、変数nが読み出した接続情報の総数N(ここではN=3)であるか否かを判断する。S805においてn=Nであると判断した場合、システム制御部50は、比較処理を終了し、n=Nでないと判断した場合は処理をS806に進める。
S806においてシステム制御部50は、変数nをインクリメントしてS802に戻り、S802〜S804の処理を変数nが定数Nになるまで繰り返す。S804では、まだ設定していない優先順位のうち、最も高い優先順位が設定される。つまり、2回目のS804の処理ではAP1に優先順位「2」が設定され、3回目のS804の処理ではAP2に優先順位「3」が設定される。
図7の説明に戻る。S707の比較処理の後、システム制御部50はS708において、接続情報の中から、S301で選択されたものと異なる相手機器種別を有する接続情報を読みだす。そして、システム制御部50は、その総数でメモリ18に用意した定数Nを書き換え、処理をS709に進める。図5の例では、相手機器種別が携帯電話機でない接続情報番号3、6の接続情報が読み出され、N=2が書き込まれる。
S709においてシステム制御部50は、S708で読みだした接続情報を、最近接続したことがあるものから順にソートする。図5の例では、接続情報番号3、6の接続順はそれぞれ5、9であるため、システム制御部50は接続情報番号6、3の順にソートする。
S710においてシステム制御部50は、S709でソートした接続情報と、アクセスポイントの検索結果に基づき、S707と同様の比較処理を行う。ただし、S707の比較処理では、S709ではS707で付与した優先順位より低い優先順位を付与する。
本実施形態ではS704で優先順位1〜3を設定したため、S710で設定される優先順位はn+3=「4」からになる。検索結果が図6(a)である場合、接続情報番号6に対応するアクセスポイントAP4に優先順位「4」が設定される。なお、接続情報番号3に対応するアクセスポイントAP1には既に優先順位が設定されているため、S710においては優先順位を設定しない。
S711において、システム制御部50は、アクセスポイント検索結果の中でまだ優先順位が設定されていないアクセスポイントに優先順位を設定する。この時点でまだ優先順位が設定されていないアクセスポイントは、図5の接続情報のいずれのESSID欄にも含まれないアクセスポイントである。システム制御部50は、これらのアクセスポイントに対し、例えば受信電波強度が強い順に優先順位を設定することができる。
本実施形態では、図6(a)の検索結果に含まれるAP8、AP10が図5の接続情報に含まれていないため、受信電波強度が強い順にソートされる。ここではAP10のほうが受信電波強度が強く、AP10に優先順位「5」、AP8に優先順位「6」が設定されたものとする。
以上の処理により、検索されたアクセスポイントの全てに対して優先順位の設定が完了する。図6(b)に、図6(a)に示すアクセスポイントを図5の設定情報に基づいてソートした結果を示す。
つまり、検索されたアクセスポイントは、以下の基準によって優先順位が付与される。
・関連づけられている相手機器種別が、S301で選択された相手機器種別と同じアクセスポイントが優先される。
・最近接続したアクセスポイントが優先される。
・電波強度の強いアクセスポイントが優先される。
このような基準でアクセスポイントに優先順位を設定することにより、ユーザが接続したいと推測されるアクセスポイントを優先的に表示することができ、ユーザのアクセスポイント選択操作を容易にすることができる。
<3.1.2. アクセスポイントへの接続方法>
説明を図3に戻す。S308においてシステム制御部50は、S307のソート処理によってソートされた順番(優先順位)に従い、検索されたアクセスポイントの一覧を画像表示部17に表示する。図9にアクセスポイント一覧表示の例を示す。図9に示すように、システム制御部50は、優先順位でソートしたアクセスポイントの一覧に加え、簡単(自動)設定(WPS接続)、無線LANパラメータ手動設定欄を含んだ一覧表示画面を画像表示部17に表示する。
S309においてシステム制御部50は、図9に示すような一覧表示画面から接続方法が選択されると、選択結果を取得して処理をS310に進める。アクセスポイントとの接続方法として、簡単設定(WPS接続)により接続する方法、無線LANパラメータを手動設定して接続する方法、アクセスポイント一覧の中から選択することにより接続する方法の3つがある。
S310においてシステム制御部50は、簡単設定(WPS接続)が選択されたか否かを判断する。簡単設定(WPS接続)が選択されたと判断した場合、システム制御部50は図11を用いて後述する簡単設定処理(WPS接続)及び、図13を用いて後述するネットワーク参加処理を行い、アクセスポイントと接続する。一方、S310において簡単設定(WPS接続)が選択されていないと判断した場合、システム制御部50は処理をS311に進める。
S311においてシステム制御部50は、無線LANパラメータ手動設定が選択されたか否かを判断し、選択されたと判断した場合にはS312に、選択されていないと判断した場合はS314にそれぞれ処理を進める。
S312においてシステム制御部50は、操作部70からユーザが所望のアクセスポイントのESSIDを入力するのを待つ。そして、システム制御部50は、ユーザにより入力されたアクセスポイントのESSIDを接続情報番号7の接続情報のESSID欄に記憶し、処理をS313に進める。
S313においてシステム制御部50は、操作部70からユーザが所望のセキュリティ設定を入力するのを待つ。そして、システム制御部50は、ユーザにより設定されたセキュリティ設定を接続情報番号7の接続情報の認証方式欄、暗号種別欄に記憶し、処理をS314に進める。セキュリティ設定としては、WPA2−PSK(AES)、WPA2−PSK(TKIP)、WPA−PSK(AES)、WPA−PSK(TKIP)、WEP、なし等がある。
S314においてシステム制御部50は、アクセスポイントの暗号化キーが操作部70から入力されるのを待つ。システム制御部50は、ユーザにより入力されたアクセスポイントの暗号化キーを接続情報の暗号鍵欄に記憶する。なお、S311で手動設定が選択されていない場合で、S314の処理が行われるのは、対応する接続情報が存在しないアクセスポイントが選択された場合である。接続情報が存在するアクセスポイントが選択された場合には、接続情報に暗号鍵が含まれるためS314の処理は不要である。
そして、システム制御部50は、図12で後述するアドレッシング設定処理及び図13で後述するネットワーク参加処理を行い、アクセスポイントと接続する。
<3.1.3. 簡単設定(WPS接続)>
図11は、S310で簡単設定(WPS接続)が選択されたと判断された場合に実行される、簡単設定(WPS接続)処理を説明するフローチャートである。
簡単設定(WPS接続)とは、接続を行う機器間で無線LANパラメータを交換する方式で、プッシュボタン方式とPINコード方式がある。プッシュボタン方式とは、接続したいアクセスポイントと機器の両方で、ボタンを同時に押すことにより無線LANパラメータが取得できるという方式ある。また、PINコード方式とは、接続機器で生成したPINコードをアクセスポイントに入力することにより無線LANパラメータが取得できるという方式である。なお、これらの方式は公知であるため、各方式において無線LANパラメータを取得するためにアクセスポイントと接続機器間で行われる具体的な処理の詳細についての説明は行わない。
S1101においてシステム制御部50は、簡単設定(WPS接続)の方式の選択画面を表示し、ユーザの選択を待つ。操作部70を通じてユーザから接続方式が選択されると、システム制御部50は、選択された方式がプッシュボタン方式であるか否かを判断する。
また、本実施形態では、簡単設定を行った場合はネットワーク設定を自動設定のみとするため、システム制御部50は図5の接続情報番号7のアドレッシング情報のIP取得とDNS取得にそれぞれAutoを記憶する。S1101においてプッシュボタン方式が選択された場合はS1102に、PINコード方式が選択された場合はS1106に、それぞれ処理を進める。
S1102においてシステム制御部50は、画像表示部17にプッシュボタン方式が選択されている旨を表示し、処理をS1103に進める。
S1103においてシステム制御部50は、ユーザからプッシュボタン方式開始の指示がなされるのを待機し、開始指示があった場合は処理をS1104に進め、開始指示がなければ処理をS1102に戻す。
S1104においてシステム制御部50は、通信制御部60を用いてプッシュボタン方式の無線LANパラメータ交換処理を実行し、処理をS1105に進める。
S1105においてシステム制御部50は、プッシュボタン方式の無線LANパラメータ交換処理が終了したか否かを判断する。プッシュボタン方式の無線LANパラメータ交換処理が終了したと判断した場合、システム制御部50は、接続情報番号7の接続情報の無線LANパラメータ欄に、取得した無線LANパラメータを記憶し、図13を用いて後述するネットワーク参加処理に進む。S1105においてプッシュボタン方式の無線LANパラメータ交換処理が終了していないと判断した場合、システム制御部50は処理をS1104に戻す。
S1101において、プッシュボタン方式でない方式、すなわちPINコード方式が選択された場合、S1106においてシステム制御部50は、画像表示部17にPINコード方式が選択されている旨とPINコードを表示し、処理をS1107に進める。
S1107においてシステム制御部50は、操作部70を通じてユーザからPINコード方式の開始指示があったか判断する。システム制御部50は、PINコード方式の開始指示があった場合は処理をS1108に進め、PINコード方式開始の指示がなかった場合は処理をS1106へ戻す。
S1108においてシステム制御部50は、通信制御部60を用いてPINコード方式の無線LANパラメータ交換処理を実行し、処理をS1109に進める。
S1109においてシステム制御部50は、PINコード方式の無線LANパラメータ交換処理が終了したか否かを判断する。PINコード方式の無線LANパラメータ交換処理が終了したと判断した場合、システム制御部50は、接続情報番号7の接続情報の無線LANパラメータ欄に取得した無線LANパラメータを記憶し、図13を用いて後述するネットワーク参加処理を実行する。S1109においてPINコード方式の無線LANパラメータ交換処理が終了していないと判断した場合、システム制御部50は処理をS1108に戻す。
<3.1.4. アドレッシング設定処理>
図12は、S311で無線LANパラメータ手動設定またはアクセスポイントが選択されたと判断された場合に図3のS314に続いて実行される、アドレッシング設定処理を説明するフローチャートである。
S1201において、システム制御部50は、操作部70を通じてユーザからネットワーク設定方法が選択されるのを待ち、選択が検出されるとネットワーク手動設定が選択されたか否かを判断する。そして、システム制御部50は、ネットワーク手動設定が選択された場合には処理をS1202に進める。ネットワーク手動設定が選択されていない場合に、システム制御部50は接続情報番号7の接続情報のIPアドレス取得欄、DNS取得欄にそれぞれAutoを記憶し、図13を用いて後述するネットワーク参加処理を実行する。
S1202においてシステム制御部50は、操作部70を通じてユーザからIPアドレス設定方法が選択されるのを待ち、選択が検出されるとIPアドレス手動設定が選択されたか否かを判断する。そして、システム制御部50は、IPアドレス手動設定が選択された場合は、処理をS1203に進め、IPアドレス手動設定が選択されていない場合は、接続情報番号7の接続情報のIPアドレス取得欄にAutoを記憶し、処理をS1206に進める。
S1203、S1204、S1205において、システム制御部50は、IPアドレス、サブネットマスク、ゲートウェイを設定するための画面を画像表示部17に順次表示し、ユーザによるそれぞれの設定値を取得する。システム制御部50は、接続情報番号7の接続情報のIPアドレス取得欄にManualを記憶し、ユーザに入力されたIPアドレス、サブネットマスク、ゲートウェイをそれぞれ設定する。
S1206においてシステム制御部50は、DNS設定方法としてユーザからDNS手動設定が設定されたか否かを判断し、DNS手動設定が設定された場合は処理をS1207に進める。S1206においてDNS手動設定が設定されていない場合、システム制御部50は接続情報番号7の接続情報のDNS取得欄にAutoを記憶し、図13を用いて後述するネットワーク参加処理を実行する。
S1207、S1208において、システム制御部50は、優先DNSサーバ、代替DNSサーバを設定するための画面を画像表示部17に順次表示し、ユーザによるそれぞれの設定値を取得する。システム制御部50は、接続情報番号7の接続情報のDNS取得欄にManualを記憶し、ユーザに入力された優先DNSサーバ、代替DNSサーバの設定値をそれぞれ設定し、図13を用いて後述するネットワーク参加処理を実行する。
なお、使用する接続情報の相手機器種別がWeb以外の場合、上述の処理のうち、IPアドレス、サブネットマスクのみを必須入力とする。また、相手機器種別がWebの場合は、IPアドレス、サブネットマスク、ゲートウェイの入力と、優先DNSサーバまたは代替DNSサーバのどちらか一方の入力を必須とする。
<3.1.5. ネットワーク参加/アドレッシング処理>
図13は、本発明の実施形態におけるネットワーク参加/アドレッシング処理を説明するフローチャートである。上述の通り、この処理は、図12または図11のいずれか一方に示した処理に引き続いて実行される。
S1301においてシステム制御部50は、図3〜図11を用いて上述した処理により記憶した、接続情報番号7の接続情報の無線LANパラメータを参照し、通信制御部60を用いて、ネットワーク参加処理を行い、処理をS1302に進める。無線LANパラメータに記憶されたESSIDが発見できなかった場合、システム制御部50は、アクセスポイントが発見できなかった旨を画像表示部17に表示する。また発見できた場合でも、アクセスポイントから暗号種別や認証方式、暗号鍵が異なっているという通知を受信した場合、システム制御部50はその旨を画像表示部17に表示する。アクセスポイントが生成する無線ネットワークに参加できた場合、システム制御部50は接続情報番号7の接続情報のチャネル欄にチャネル番号が記憶されているか確認し、記憶されていない場合は無線ネットワークのチャネル番号を記憶する。
S1302においてシステム制御部50は、接続情報番号7の接続情報のIPアドレス取得欄を参照し、IPアドレス自動設定(Auto)が記憶されているか否かを判断する。システム制御部50は、S1302においてIPアドレス自動設定が記憶されていればS1303に、IPアドレス自動設定が記憶されていない場合はS1308に、それぞれ処理を進める。
S1303においてシステム制御部50は、通信制御部60を用いてDHCPアドレッシングを行い、処理をS1304に進める。DHCPアドレッシングとは、無線ネットワーク上のDHCPサーバにIPアドレスを要求し、IPアドレスを取得する公知の方法であり、その詳細についての説明は省略する。
S1304においてシステム制御部50は、DHCPアドレッシングが成功したか否かを判断し、成功したと判断した場合はS1310に、成功しなかった場合はS1305にそれぞれ処理を進める。例えば、ネットワーク上にDHCPサーバがなかった場合や、DHCPサーバで設定された割り当て上限数のIPアドレスが他の機器に割り当てられている場合などは、DHCPアドレッシングが失敗となる。
S1305においてシステム制御部50は、接続情報の相手機器種別がWebであるか否かを判断し、WebであればS1306に、WebでなければS1307に、それぞれ処理を進める。
S1306においてシステム制御部50は、IPアドレス自動設定に失敗した旨を画像表示部17に表示する。
S1307においてシステム制御部50は、通信制御部60を用いてAutoIPアドレッシングを行い、処理をS1310に進める。AutoIPアドレッシングとは、ネットワーク上の他の機器と重複しない様に自機器でIPアドレスを取得する公知の方法であり、その詳細についての説明は省略する。
S1302において、接続情報番号7の接続情報のIPアドレス取得欄にIPアドレス自動設定(Auto)が記憶されていない場合、IPアドレスは手動設定(Manual)である。
S1308においてシステム制御部50は、通信制御部60を用いて、現在設定されているIPアドレスが無線ネットワーク上の他の機器のIPアドレスと重複していないかの確認をARPプロトコルを用いて行う。設定されているIPアドレスが無線ネットワーク上の他の機器のIPアドレスと重複していた場合(S1309,YES)、システム制御部50は、その旨を画像表示部17に表示し、S1202に処理を戻してIPアドレスの設定方法から再設定を促す。手動設定されたIPアドレスが重複していなかった場合(S1309,NO)、システム制御部50は処理をS1310に進める。
S1310においてシステム制御部50は、最終的なIPアドレスをデジタルカメラ100に設定する。最終的なIPアドレスは、S1303のDHCPアドレッシングまたはS1307のAutoIPアドレッシングで割り当てられたIPアドレス、手動設定されS1308で重複しないことが確認されたIPアドレスのいずれかである。またシステム制御部50は、DNS設定など他の必要な項目についても同様にデジタルカメラ100に設定し、図10を用いて後述する機器検索処理を実行する。
<3.2. アドホックモードでの接続>
次に、図3に戻って、S305において、設定された通信モードがインフラストラクチャモードでない、すなわちユーザによりアドホックモードが選択された場合の処理を説明する。
S315においてシステム制御部50は、アドホックネットワークを生成する際に用いるESSIDとWEPキーを生成し、接続情報番号7の接続情報のESSID欄と暗号鍵欄にそれぞれ記憶し、処理をS316に進める。
S316においてシステム制御部50は、S315で生成したESSIDとWEPキーを画像表示部17に表示し、処理をS317に進める。画像表示部17に表示されたESSIDとWEPキーをユーザが相手機器側で設定することにより、デジタルカメラ100が生成するアドホックネットワークに接続することができる。操作部70を通じてユーザから相手機器側での設定終了が指示されると、システム制御部50は処理をS317に進める。
S317においてシステム制御部50は、S315で生成したESSIDとWEPキーを用い、通信制御部60によってアドホックネットワークを生成し、処理をS318に進める。
S318においてシステム制御部50は、AutoIPアドレッシング処理を行い、取得したIPアドレス、サブネットマスクをデジタルカメラ100に設定し、図10を用いて後述する機器検索処理を実行する。
<3.3. 機器検索処理>
図10は、本実施形態における機器検索処理/機器接続処理を説明するフローチャートである。
S1001においてシステム制御部50は、通信制御部60を用いて機器の検索を行う。この検索では、図5の接続情報番号7の相手機器情報に基づき、相手機器種別に応じたプロトコルを用いて機器を検索する。機器の検索は、UPnP(Universal Plug and Play)やmDNS(Multicast DNS)等のプロトコルを用いて実現することができる。
S1002においてシステム制御部50は、相手機器を発見したか否かを判断し、相手機器を発見した場合はS1006に、発見していない場合はS1003に、それぞれ処理を進める。
S1003においてシステム制御部50は、機器検索処理を開始してから一定時間が経過したか否かを判断し、一定時間が経過していれば処理をS1004に進め、一定時間が経過していなければ処理をS1001に戻す。
S1004においてシステム制御部50は、機器検索処理を開始してから一定時間が経過したが相手機器が見つからなかった旨を画像表示部17に表示し、処理をS1005に進める。
S1005においてシステム制御部50は、画像表示部17に接続機器の再検索指示画面を表示し、ユーザからの再検索指示の入力を待機する。システム制御部50は、接続機器の再検索の指示が入力されればS1001に、指示の入力がなければS1005に、それぞれ処理を戻す。
S1002において相手機器を発見した場合、S1006においてシステム制御部50は、発見した相手機器の情報を画像表示部17に一覧表示する。システム制御部50は、接続情報の相手機器情報に、発見した相手機器と同一のUUIDが記憶されていた場合は、発見した相手機器の名前を、接続情報の相手機器情報の登録名に置き換えて表示し、処理をS1007に進める。例えば、UUIDが0000−ABCD−EFGHの相手機器が発見されたとすると、図5の接続情報を参照すると、接続情報番号1、2、4に同一UUIDの相手機器情報が記憶されている。この場合、システム制御部50は、相手機器から通知された名前ではなく、接続情報に記憶された登録名”SmartPhone1”を相手機器の名前として画像表示部17に表示する。
S1007においてシステム制御部50は、一覧表示画面から、ユーザが相手機器を選択したか否かを判断し、相手機器が選択された場合はS1011に、相手機器が選択されていない場合はS1008に、それぞれ処理を進める。
S1008においてシステム制御部50は、接続情報の相手機器情報を参照し、相手機器種別欄に記憶された機器の種別に応じたプロトコルで、通信制御部60による機器検索処理を行う。
S1009においてシステム制御部50は、相手機器を新たに発見したか否かを判断し、相手機器を新たに発見した場合はS1010に処理を進め、発見していない場合はS1007に処理を戻す。
S1010においてシステム制御部50は、画像表示部17に表示した相手機器一覧に、新たに発見した相手機器を加えて表示し、処理をS1007に戻す。このように、相手機器の一覧表示画面は、逐次更新される。
S1007において相手機器が選択された場合、S1011においてシステム制御部50は、ユーザから操作部70を通じて閲覧許可に関する設定が入力されるのを待つ。なお、閲覧に関する設定は、閲覧を許可するか不許可とするかを予め設定しておいても良く、この場合S1011の処理は無くてもよい。この設定は、ユーザがデジタルカメラと携帯電話機とを接続したときに、デジタルカメラに記憶してある画像を携帯電話機から閲覧することを許可するか否かの設定である。システム制御部50は、ユーザにより入力された閲覧許可設定もしくは、デフォルトで設定された閲覧許可設定を、接続情報の閲覧許可欄に記憶する。
S1012においてシステム制御部50は、ユーザにより選択された相手接続機器に対し、通信制御部60を用いて機器接続処理を行う。さらにシステム制御部50は、接続情報の相手機器情報の登録名欄とUUID欄に、ユーザにより設定された相手接続機器の登録名と、相手機器から取得したUUIDを記憶し、処理をS1013に進める。
S1013においてシステム制御部50は、接続情報を参照し、後述する接続情報マージ処理を行い、処理をS1014に進める。
S1014においてシステム制御部50は、メモリ18に展開した接続情報(ここでは、接続情報番号7の接続情報)の接続順欄に、他の接続情報の接続順欄に記憶された最大値より1大きな値を記憶する。そして、システム制御部50は、メモリ18に展開した接続情報を不揮発性メモリ51に記憶する。このとき、システム制御部50は、これから記憶する接続情報とBSSID欄、UUID欄の内容が同一の接続情報が既に記憶されていれば、両者を同一の接続情報とみなし、既に記憶されていた(古い)接続情報を削除する(新しい接続情報で上書きする)。
一方、アドホックモードの場合、BSSIDが必ずしも一定ではないため、同一の接続情報か否かをBSSIDの比較で判定することはできない。しかしながら、本実施形態ではアドホックネットワークは常にデジタルカメラ100が作成するので、同じUUIDでアドホックモードの接続情報を同一の接続情報とみなすことができる。この場合もインフラストラクチャモードと同様、既に記憶されていた(古い)接続情報を新しい接続情報で上書きする。これにより、同一の接続情報が増える事を防ぐ事ができる。
<3.4. 接続情報マージ処理>
図14は、本実施形態における接続情報マージ処理を説明するフローチャートである。接続情報マージ処理とは、接続情報のうちどれか1つに変更があった場合、その変更を必要に応じて他の接続情報に反映させる処理である。例えば、ある接続情報においてアクセスポイントの暗号鍵が変更された場合、同じアクセスポイントと関連づけられている他の接続情報の暗号鍵にも同様の変更を反映する。
S1401においてシステム制御部50は、現在使用している接続情報の無線LANパラメータを参照し、図5の接続情報のうち、現在使用している接続情報のBSSID欄に記憶されているBSSIDと同じBSSIDを有する接続情報を検索する。そして、システム制御部50は、該当する接続情報の総数Lと、該当する接続情報に記憶された無線LANパラメータとを取得し、処理をS1402に進める。
S1402においてシステム制御部50は、L=0、すなわち、該当する接続情報が存在しないか否かを判断し、L=0でない場合は処理をS1403に進め、L=0であれば処理をS1405に進める。
S1403においてシステム制御部50は、現在使用している接続情報の無線LANパラメータと、S1401で取得した、同一BSSIDを有する接続情報の無線LANパラメータを比較する。システム制御部50は、両者の無線LANパラメータが異なる場合は無線LANパラメータが変更されていると判断し、処理をS1404に進め、同じ場合は、無線LANパラメータが変更されていないと判断し、処理をS1405に進める。
S1404においてシステム制御部50は、S1401で見つかった接続情報の無線LANパラメータを、現在使用している接続情報の無線LANパラメータと同一になる様に接続情報を更新し、処理をS1405に進める。例えば、デジタルカメラ100が図5に示す接続情報を記憶しており、現在、接続情報番号7の接続情報を用いてBSSIDが0059AB1228DCであるアクセスポイントに接続しているとする。そして、今回の接続時に暗号鍵bbbbbbbbを用いた場合、同じBSSIDを有する接続情報番号の1,3の接続情報についても、暗号鍵欄がbbbbbbbbとなる様に上書きして更新し、不揮発性メモリ51に記憶する。このようにすることで、ユーザは接続情報毎に暗号鍵の設定を変更する必要がなくなる。
S1405においてシステム制御部50は、現在使用している接続情報とUUID欄が同一内容の接続情報を探索し、その総数Mを取得して処理をS1406に進める。
S1406においてシステム制御部50は、現在使用している接続情報と同一UUIDが記憶された接続情報の総数M=0であるか否かを判断し、M=0でない場合は処理をS1407に進め、M=0である場合は、接続情報マージ処理を終了する。
S1407においてシステム制御部50は、現在使用している接続情報と、同一UUIDが記憶された他の接続情報とで相手機器情報を比較し、異なっていれば今回の接続時に相手機器情報が変更されていると判断する。システム制御部50は、相手機器情報が変更されている場合は処理をS1408に進め、相手機器情報が変更されていない場合は接続情報マージ処理を終了する。
S1408においてシステム制御部50は、S1405において取得した、同一UUIDが記憶された他の接続情報の相手機器情報を、現在使用している接続情報の相手機器情報と同一になるように上書きして更新し、接続情報マージ処理を終了する。この際、相手機器情報のうち登録名を除く情報については現在使用している接続情報で他の接続情報を更新するが、登録名については、不一致の場合、他の接続情報に記憶されている登録名で現在使用している接続情報の登録名を上書きする。
例えば、デジタルカメラ100が図5に示す接続情報を記憶し、UUIDが0000−ABCD−EFGHの携帯電話機と接続しているとする。今回の接続時に用いた接続情報番号7の接続情報において閲覧許可設定を不許可にした場合、接続情報番号1,2,4の接続情報に対しても、閲覧許可設定を不許可に変更し、不揮発性メモリ51に記憶する。
また、UUIDが0000−ABCD−EFGHの携帯電話機に接続しているとする。今回の接続時に携帯電話機から取得した接続情報番号7の接続情報の登録名がSmartPhone3であり、同一UUIDを有する接続情報番号1,2,4の接続情報における登録名欄にSmartPhone1が記憶されているとする。この場合、他の欄とは異なり、現在使用している接続情報における登録名欄をSmartPhone1に変更して、不揮発性メモリ51に記憶する。これは、既に登録されている登録名「SmartPhone1」は、ユーザが登録後に編集した登録名である場合があるので、今回の接続で携帯電話機から取得した登録名ではなく、ユーザが設定した登録名を反映させるようにするための処理である。これは、図10で説明した機器探索処理における一覧表示時における登録名の置き換え処理と同様である。
なお、本実施形態では、新しい接続情報を登録する際に接続情報マージ処理を行うようにしたが、デジタルカメラを操作して接続情報の編集が可能な場合においては、接続情報の編集を行った際に、接続情報マージ処理を行う構成にしてもよい。
このように、接続情報を新規に登録する際に、既に登録済みの接続情報に対して必要な変更を反映するので、ユーザが手動で更新処理などを行う必要なしに接続情報を常時最新の状態に保つことが可能である。
<4. 履歴を用いた接続>
次に、図3のS302において、既に接続したことのある相手機器と接続する(再接続)ことが選択された場合、システム制御部50は以下の履歴接続処理を実行する。履歴接続は、既に記憶されている接続情報に基づき、一度接続したことのある機器とより簡単なユーザ操作で接続する処理である。なお、デジタルカメラ100には図18に示す接続情報が既に記憶されているものとする。
図15は、本実施形態における履歴接続処理を説明するフローチャートである。なお、この段階ではデジタルカメラ100はまだネットワークに参加していない。
S1501においてシステム制御部50は、図18の接続情報を参照し、接続履歴表示処理を行う。以下、S1501の履歴接続表示処理について詳細に説明する。
<4.1. 履歴接続表示処理>
履歴接続表示処理は、接続したことのある機器を表示する処理であり、これにより本実施形態のデジタルカメラ100は、ユーザの利便性が向上させる。図16は、本実施形態における履歴接続時の履歴接続表示処理を説明するフローチャートである。
S1601においてシステム制御部50は、接続情報のうち、図3のS301においてユーザにより選択されたものと同一の相手機器種別が記憶された接続情報をのみを抽出する。本実施形態では相手機器種別として携帯電話機が選択されているので、接続情報番号1、2、4、5の接続情報が抽出される。
S1602においてシステム制御部50は、S1601において抽出した接続情報の総数(本実施形態では4)をメモリ18に用意した定数Nに記憶する。
S1603においてシステム制御部50は、S1601で抽出した接続情報を、接続順欄の値の大きさに基づき、最近接続した順(値が大きい順)にソートする。本実施形態では、接続情報番号2、1、4、5の順番にソートされる。
S1604においてシステム制御部50は、メモリ18に用意した変数nに1をセットする。
S1605においてシステム制御部50は、ソートした総数Nの接続情報のn番目の相手機器の登録名を既に表示登録したか否かを判断する。表示登録とは、相手機器の登録名を、後述するS1609において画像表示部17に表示する名称として登録する処理である。システム制御部50は、まだ表示登録していないと判断した場合は処理をS1606に進め、既に表示登録していると判断した場合は処理をS1607に進める。
S1606においてシステム制御部50は、抽出したn番目の接続情報における登録名欄の内容を表示登録する。
S1607においてシステム制御部50は、変数n=抽出した接続情報の総数Nか否かを判断し、n=Nの場合はS1609に、n=Nでない場合はS1608に、それぞれ処理を進める。
S1608においてシステム制御部50は、nを1インクリメントして処理をS1605に戻し、S1605〜S1607の処理を繰り返し行う。
本実施形態では、総数4の接続情報が接続情報番号2、1、4、5の順にソートされている。n=1では接続情報番号2の接続情報が処理され、登録名SmartPhone1はまだ表示登録されていないため、システム制御部50は表示登録を行う。次に、n=2では接続情報番号1の接続情報が処理され、登録名SmartPhone1はすでに表示登録されているため、システム制御部50は表示登録しない。次に、n=3では接続情報番号4の接続情報が処理され、登録名SmartPhone1はすでに表示登録されているため、システム制御部50は表示登録しない。最後に、n=N=4では接続情報番号5の接続情報が処理され、登録名SmartPhone2はまだ表示登録されていないためシステム制御部50は表示登録を行う。よって、本実施形態では登録名SmartPhone1、SmartPhone2の2つが表示登録される。
S1609においてシステム制御部50は、表示登録した順番に登録名を画像表示部17に表示する。図17に、本実施形態における表示画面例を示す。図16で説明したように、同一の登録名を記憶する接続情報が複数抽出された場合でも、同じ登録名は一回だけ表示するため、ユーザにとって相手機器の選択がしやすくなる。
<4.2. 接続情報の決定>
履歴接続表示処理をした後、図15のS1502において、システム制御部50は、画像表示部17に登録名を表示している相手機器の中の1つをユーザが操作部70を用いて選択するのを待つ。システム制御部50は、登録名が選択されると、対応するUUIDをメモリ18に記憶して、処理をS1503に進める。ここでは、ユーザが図17に示した画面からSmartPhone1を選択したものとする。
ここで注意すべきは、この段階ではまだデジタルカメラ100がどのネットワークを介してSmartPhone1と接続するかを決定していない点である。図17の選択画面では、登録名が同一であれば、関連付けされているESSIDとは無関係に1つの選択肢として表示したため、ユーザは最終的にどの機器と接続するかを選択しているにすぎない。そのため、最終的にどの接続情報(ネットワーク)を用いてSmartPhone1と接続するかを決定する必要がある。以下はその例である。
S1503においてシステム制御部50は、S1502においてユーザにより選択された相手機器と同一のUUIDを記憶する接続情報が複数あるか否かを判断し、複数ある場合は処理をS1504へ進める。一つしかない場合、システム制御部50はその接続情報を今回用いる接続情報として記憶し、図19に進む。
S1504においてシステム制御部50は、ユーザにより選択された相手機器のUUIDと同一のUUIDを記憶する複数の接続情報の接続順欄の値を参照し、最近の接続に用いられた接続情報を今回用いる接続情報として記憶し、図19に示す処理に進む。例えば、図18に示す接続情報のうち、ユーザにより選択されたSmartPhone1と同一のUUIDを記憶するのは、接続情報番号1、2、4の接続情報である。接続情報番号1、2、4の接続情報を、最近の接続に用いられた順にソートすると接続情報番号2、1、4となるので、接続情報番号2の接続情報を今回用いる接続情報として決定し、メモリ18に記憶する。
<4.3. 履歴接続処理>
図19は、本実施形態における履歴接続処理を説明するフローチャートである。
S1901においてシステム制御部50は、通信制御部60を用いて、図15のS1504において記憶した接続情報を参照してネットワーク接続処理を行い、処理をS1902に進める。ネットワーク接続処理とは、接続情報を参照してネットワーク参加、アドレッシング処理を行うことで、図13を用いて説明した処理と同様であるため説明は省略する。本実施形態の場合、図18の接続情報番号2の接続情報を参照し、ネットワーク接続処理を行う。
S1902においてシステム制御部50は、画像表示部17に接続先変更ボタンを表示する。本実施形態では、ユーザにより選択された相手機器と同一の相手機器を持つ接続情報が複数ある場合、最近使用した接続情報を用いて自動的にネットワーク接続処理を実行するため、必ずしもユーザが所望するネットワークに接続されるとは限らない。そのため、S1902で接続先変更ボタンを表示することにより、接続するネットワーク(アクセスポイント)の変更をユーザが容易に指示できるようにしている。
図21(a)は、S1901におけるネットワーク接続処理中にシステム制御部50が画像表示部17に表示する画面例を示す。本実施形態では図18の接続情報番号2の接続情報を参照して接続処理しているため、システム制御部50はアクセスポイントAP2と接続を行っている旨を表示する。また、図21(a)に示すように、ユーザが接続先を変更できるように接続先変更ボタンを表示する。これにより、ユーザはどのアクセスポイントと接続しようとしているかを容易に認識できるとともに、所望のアクセスポイントでない場合は簡単に接続先の変更を指示することができる。
S1903においてシステム制御部50は、接続先変更ボタンの選択により接続先の変更が指示されたか否かを判断し、接続先の変更が指示された場合はS1906に、変更が指示されていない場合はS1904に、それぞれ処理を進める。
S1904においてシステム制御部50は、ネットワーク接続処理に成功したか否かを判断し、成功した場合は処理をS1908に進め、成功しなかった場合は処理をS1905に進める。
S1905においてシステム制御部50は、S1901のネットワーク接続処理において、参照した接続情報に記憶されていたネットワーク(アクセスポイント)が存在していたかどうかを判断する。ネットワークが存在していた場合は処理をS1907に進め、接続できなかった旨のエラー表示を画像表示部17に行う。ネットワークが存在しなかった場合、システム制御部50は処理をS1906に進め、接続先変更処理を試みる。接続先変更処理の詳細については後述する。
なお、本実施形態ではネットワーク接続処理時にネットワークが存在しなかった場合に接続先変更処理を行う構成にしたが、ネットワーク接続処理に失敗した場合に接続先変更処理を行う構成にしてもよい。
S1908においてシステム制御部50は、通信制御部60を用いて相手機器検索処理を行う。以下、相手機器検索処理についての詳細を説明する。
<4.3.1. 相手機器検索処理>
図20は、本実施形態における履歴接続時の相手機器検索処理を説明するフローチャートである。
S2001においてシステム制御部50は、接続情報に記憶された相手機器種別に応じたプロトコルを用いて、接続情報に記憶されたUUIDを持つ機器の検索を行う機器検索処理を行う。例えば、本実施形態の場合、図18の接続情報番号2の接続情報を参照するため、UUID:0000−ABCD−EFGHを持つ機器を検索する。
S2002においてシステム制御部50は、接続情報に記憶されたUUIDを有する相手機器を発見したか否かを判断し、相手機器を発見した場合は相手機器検索処理を終了し、発見していない場合はS2003に処理を進める。
S2003においてシステム制御部50は、機器検索処理を開始してから一定時間が経過したか否かを判断し、一定時間が経過していれば機器検索処理を終了し、一定時間が経過していなければ処理をS2001〜S2003の処理を繰り返し行う。
図19に戻り、S1909においてシステム制御部50は、相手機器を発見したか否かを判断し、発見した場合は処理をS1912に進め、発見していない場合は処理をS1910に進める。
S1910においてシステム制御部50は、画像表示部17に、機器検索処理に失敗し相手機器が見つからなかった旨を例えば図21(d)に示すように表示し、処理をS1911に進める。図21(d)に示すように、相手機器がに見つからなかった旨を示すとともに、再検索と接続処理の中止をユーザが選択できるようにする。なお、S1904でネットワークへの接続は成功しているため、機器検索処理で相手機器が見つからなくとも、ネットワークへの接続は維持しておく。これにより、再検索が指示された際に、ネットワークへの接続からやり直す必要がなくなる。
S1911においてシステム制御部50は、ユーザから相手機器の再検索が指示されたか判断し、再検索の指示がなかった場合は処理をS1914に進め、再検索の指示があった場合は処理をS1908に戻して相手機器を再検索する。
S1914においてシステム制御部50は、ユーザから接続処理の中止が指示されたか判断し、中止の指示があった場合は履歴接続処理を終了し、中止の指示がなかった場合は処理をS1911に戻す。
S1912においてシステム制御部50は、通信制御部60を用いて、発見した相手機器に対して機器接続処理を行い、処理をS1913に進める。
S1913においてシステム制御部50は、メモリ18に読み出して現在使用している接続情報の接続順欄に、他の接続情報の接続順欄に記憶されている最大値より大きな値を記憶する。そして、システム制御部50は、メモリ18の接続情報を不揮発性メモリ51に記憶し、履歴接続処理を終了する。
このように、本実施形態によれば、既に記憶されている接続情報を用いて機器接続を行う履歴接続処理において、ユーザが選択した相手機器種別に合致する接続情報に記憶されている相手機器の登録名を表示するので、相手機器を容易に選択することができる。
また本実施形態では、同一登録名が記憶された接続情報が複数ある場合、登録名を繰り返し表示せず、1つのみ表示するため、ユーザが相手機器を選択しやすい。さらに、ユーザが相手機器を選択すると、最近の接続で用いた接続情報に基づいて自動的に接続を試みるため、接続に要するユーザの手間を簡略化できる。また、自動的な接続処理による接続先がユーザの意図と異なる場合でも、接続先の変更を容易に指示できるようにしたので、少ない手順で所望の無線ネットワークに接続することが可能となる。
なお、履歴接続処理において、ユーザが相手機器を選択した時に、最近の接続で用いた接続情報に記憶されている無線LANパラメータで接続を試みるものとしたが、必ずしも最近の接続で用いた接続情報を用いなくてもよい。例えば、ネットワークへの接続頻度、累計の接続回数、暗号の強度、電波強度などを含むルールに基づいて、自動接続時に用いる接続情報(無線LANパラメータ)を決定するようにしてもよい。
<4.3.2. 接続先の変更>
次に、S1903においてユーザにより接続先変更が選択された場合、およびS1905においてネットワークが存在しなかった場合にS1906で実行される接続先変更処理について、図22に示すフローチャートを用いて説明する。
S2201においてシステム制御部50は、接続情報を用いて接続する際の通信モードがインフラストラクチャモードか否かを判断し、インフラストラクチャモードであれば処理をS2202に進める。S2201において通信モードがインフラストラクチャモードでない、つまりアドホックモードである場合、システム制御部50は処理をS2205に進める。
例えば、図18の接続情報の場合、図15のS1502において登録名SmartPhone1が相手機器として選択されたとする。この場合、システム制御部50は、図19のS1901のネットワーク接続処理において同じ相手機器との接続に最近用いた接続情報である接続情報番号2の接続情報を用いてネットワーク接続処理を行う。接続情報番号2の接続情報を用いた場合、アクセスポイントAP2との接続を試みるため、システム制御部50は、通信モードがインフラストラクチャモードであると判断する。
S2202においてシステム制御部50は、画像表示部17に通信モード選択画面を表示し、処理をS2203に進める。通信モード選択画面の一例を図21(e)に示す。
本実施形態においてシステム制御部50は、デジタルカメラ100〜アクセスポイント(ネットワーク)間で生じたエラーについては図21(b)や図21(c)のような画面を画像表示部17に表示する。一方、システム制御部50は、アクセスポイント〜相手機器の間でのエラーについては図21(d)のような画面を画像表示部17に表示する。このように、通信経路のどこでエラーが生じたかに応じて異なるガイダンスを表示することにより、ユーザは容易にエラーの概要を把握し、対応することが可能となる。
図21(e)に示す通信モード選択画面の例では、通信モードをアドホックモードとインフラストラクチャモードから選択できるようにしている。これは、接続情報を用いた接続がインフラストラクチャモードの場合、接続先変更を選択した場合に別の接続先としてアドホックモードでの接続と別のアクセスポイントを選択しての接続が考えられるためである。
S2203においてシステム制御部50は、ユーザが通信モード選択画面から選択した通信モードをメモリ18に記憶し、処理をS2204に進める。
S2204においてシステム制御部50は、ユーザが選択した通信モードがインフラストラクチャモードであるか否かを判断し、インフラストラクチャモードであればS2205に、インフラストラクチャモードでない場合はS2209に処理を進める。
<4.3.2.1. アドホックモードでの接続先変更>
まず、S2204においてユーザによりアドホックモードが選択された場合の処理について説明する。
S2209においてシステム制御部50は、同一の相手機器情報を持つ接続情報の中に、アドホックモードの接続情報が記憶されているか否かを判断し、記憶されていれば処理をS2210に進め、記憶されていなければ処理をS2211に進める。
S2210においてシステム制御部50は、同一の相手機器情報を持つ接続情報の中のアドホックモードの接続情報を、今回使用する接続情報として選択し、接続先変更処理を終了する。例えば、図18に示す接続情報の場合、相手機器がSmartPhone1でアドホックモードである接続情報を検索すると、接続情報番号4が該当するため、システム制御部50は、接続情報番号4の接続情報を今回使用する接続情報として選択する。
次に、S2209において、同一相手機器情報を持つ接続情報の中にアドホックモードの接続情報が記憶されていない場合について説明する。ここでは便宜上、図18において接続情報番号4の接続情報がないものとして説明を行う。S2211において、システム制御部50は、接続情報に空きがあるかどうかを検索し、空きがある場合、その接続情報を今回接続に用いる接続情報として選択し、処理をS2212に進める。図18の場合、接続情報番号7の接続情報は空いているため、システム制御部50は接続情報番号7の接続情報を選択する。
S2212においてシステム制御部50は、アドホックネットワークを生成する際に用いるESSIDとWEPキーを生成し、S2211で選択した接続情報番号7の接続情報のESSID欄と暗号鍵欄にそれぞれ記憶し、処理をS2213に進める。
S2213においてシステム制御部50は、S2211で選択した接続情報番号7の接続情報の相手機器情報に、接続先を変更するまで接続に用いていた接続情報の相手機器情報をコピーして、接続先変更処理を終了し、処理をS1901に戻す。ここでは、今回接続に用いる接続情報は接続情報番号7の接続情報であり、接続先変更をするまで用いていた接続情報は接続情報番号2である。そのため、システム制御部50は、接続情報番号7の相手機器情報の各欄に、接続情報番号2の相手機器情報の各欄の値をコピーする。
以上のように、本実施形態によれば、既に記憶されているインフラストラクチャモードの接続情報を用いて履歴接続するときに、別の接続先が選択された場合や、ネットワーク接続処理に失敗した場合に、通信モードを選択できる。これによりユーザは、異なる通信モードの無線ネットワークを含め、所望の無線ネットワークを選択して接続することができる。
また、通信モードにアドホックモードが選択された場合、同一相手機器に対してアドホックモードで接続を行うための接続情報が記憶されていれば、その接続情報を用いて接続を行う。そのため、相手機器において無線LANパラメータを記憶していれば、再度無線LANパラメータを入力する手間を省く事ができる。また、同一相手機器にアドホックモードで接続を行ったことのない場合であっても、それまで用いていた接続情報の相手機器情報を用いてアドホックモード用の接続情報を生成してから無線LANパラメータ、ネットワーク設定を設定する。そのため、アドホックモードで接続を行ったことのある場合と同様に、相手機器の検索結果一覧をリスト表示してユーザに選択させる事なく、相手機器に接続する事が可能となる。
<4.3.2.2. インフラストラクチャモードでの接続先変更>
次に、S2204においてユーザによりインフラストラクチャモードが選択された場合の処理について説明する。
S2205においてシステム制御部50は、通信制御部60を用いて、周囲に存在するアクセスポイントが発するビーコンからアクセスポイント情報を取得するアクセスポイント検索処理を行い、検索結果を画像表示部17に一覧表示する。図24(a)に、アクセスポイント検索処理結果として表示される一覧表示画面の例を示す。図24(a)は、アクセスポイント検索処理によって、アクセスポイントAP1、AP3、AP4、AP8、AP10が見つかった場合の表示例である。
図21(f)および(g)に、アドホックモードでの接続処理中にユーザから接続先変更が指示された場合にシステム制御部50が画像表示部17に表示する画面の例を示す。図21(f)および(g)に示すように、アドホックモードでの接続処理中に接続先変更がユーザから指示された場合、システム制御部50はアクセスポイントの検索処理を実行し、その旨を表示する画面に遷移させている。接続情報を用いた接続がアドホックモードの場合、接続先変更時の通信モードはインフラストラクチャモードであるため、システム制御部50はすぐにアクセスポイント検索処理を実行し、それを図21(g)に示す表示によりユーザに報知する。
S2206においてシステム制御部50は、S2205において取得したアクセスポイント検索結果のソート処理を行い、処理をS2207に進める
S2205で行うアクセスポイント情報のソート処理について図7、図8を用いて説明する。なお、図7、図8は新規接続の際にも説明したが、履歴接続の際の処理についてもここで説明する。履歴接続に特有の部分は、図7のS701〜S704における処理であるため、これらの処理を中心に説明し、新規接続と同様の処理であるS705以降については説明を省略する。なお、ソート処理に関する説明では、新規接続の場合との相違が分かりやすいよう、接続情報が図5の状態であるものとする。
S701において、システム制御部50は、相手機器が決定済みかどうか、すなわち再接続する相手機器かどうかを判断する。システム制御部50は、相手機器が決定済みであれば処理をS702に進め、決定済みでなければ処理をS705に進める。図5に示す接続情報が記憶され、図15のS1502において登録名SmartPhone1が相手機器として選択された場合、相手機器がSmartPhone1に決定済みであるため、システム制御部50は処理をS702に進める。
S702でシステム制御部50は、記憶された接続情報の中から、インフラストラクチャモードで、かつ選択された相手機器のUUIDと同一のUUIDが記憶された接続情報を読みだし、その総数をメモリ18に用意した定数Nに記憶し、処理をS703に進める。ユーザにより相手機器としてSmartPhone1が選択された場合、図5に示す接続情報において0000−ABCD−EFGHをUUID欄に記憶しているのは接続情報番号1、2、4の接続情報である。しかし、接続情報番号4の接続情報はアドホックモードであるため除外され、接続情報番号1、2の接続情報がメモリ18に読み出され、接続情報の総数Nには2が設定される。
S703においてシステム制御部50は、S702において読みだした、ユーザが選択し相手機器と同一のUUIDが記憶された接続情報を、最近の接続に用いたものから順にソートし、処理をS704に進める。例えば、図5において、S702において読みだした接続情報を最近の接続に用いた順(接続順の値が大きい順)にソートすると、接続情報番号1、2の順になる。
S704においてシステム制御部50は、S703でソートした接続情報と図22のS2205のアクセスポイント検索処理により取得したアクセスポイント検索結果との比較処理を行い、処理をS705に進める。比較処理の詳細は図8を用いて説明する。
図8に示すフローチャートを用いて、S704における比較処理を説明する。
S801においてシステム制御部50は、メモリ18に用意した変数nに1をセットする。
S802においてシステム制御部50は、ソートした接続情報のn番目の接続情報に含まれるアクセスポイント情報(ESSID)を参照し、アクセスポイントの検索結果と比較する。
S803においてシステム制御部50は、S802での比較の結果、アクセスポイント検索結果の中にn番目の接続情報のアクセスポイント情報欄に記憶されたものと同じアクセスポイントがあるかどうか判断する。システム制御部50は、S803において同じアクセスポイントがある場合にはS804に、同じアクセスポイントがない場合にはS805にそれぞれ処理を進める。
アクセスポイントの検索結果が図24(a)に示す結果である場合を考えると、接続情報は接続情報番号1、2の順にソートされているので、n=1の接続情報は接続情報番号1であり、対応するアクセスポイントはAP1である。そこで、システム制御部50は、図24(a)のアクセスポイント検索結果にAP1があるかどうかを判定する。図24(a)にはAP1があるため、システム制御部50は処理をS804に進める。
S804において、システム制御部50は、検索されたアクセスポイントのうち、n番目の接続情報のアクセスポイント情報欄に記憶されたものと同じであると判定されたものに優先順位nを設定する。今回の例であれば、AP1に優先順位「1」を設定する。なお、優先順位は数が小さいほど優先度が高い。
S805においてシステム制御部50は、変数nが読み出した接続情報の総数N(ここではN=2)であるか否かを判断する。S805においてn=Nであると判断した場合、システム制御部50は、比較処理を終了し、n=Nでないと判断した場合は処理をS806に進める。
S806においてシステム制御部50は、変数nをインクリメントしてS802に戻り、S802〜S804の処理を変数nが定数Nになるまで繰り返す。S804では、まだ設定していない優先順位のうち、最も高い優先順位が設定される。つまり、2回目のS804の処理ではAP2に優先順位「2」が設定される。
S705〜S711については、新規接続の場合と同様であるため、説明を省略する。図24(b)に、S705〜S711の処理実行後のソート結果を示す。
S2207においてシステム制御部50は、接続情報を参照して、アクセスポイント追加処理を行う。アクセスポイント追加処理は、現在使用している接続情報と同一のUUIDを記憶する接続情報のESSID欄に記憶されたアクセスポイントのうち、S2205のアクセスポイント検索処理で見つからなかったものを、アクセスポイント一覧に追加する処理である。例えば、図15のS1502において登録名SmartPhone1が相手機器として選択され、図24(a)に示すアクセスポイント検索結果が得られている場合、図5の接続情報のうち、接続情報番号2に記憶されたAP2のアクセスポイントが追加される。
S2208においてシステム制御部50は、画像表示部17にアクセスポイント一覧表示を行う。システム制御部50は、まずS2206でソートされたアクセスポイントから、ソートされた順番どおりに一覧表示し、次いでS2207で追加されたアクセスポイントを一覧表示し、処理をS2214に進める。図25にアクセスポイント一覧表示の例を示す。図25に示すように、システム制御部50は、新規接続の場合と同様、簡単設定(WPS接続)、もしくは無線LANパラメータ手動設定の選択肢とともにアクセスポイントの一覧を表示する。
S2214においてシステム制御部50は、インフラストラクチャー接続情報選択処理を行い、接続先変更処理を終了する。
次に、図23に示すフローチャートを用いて、S2214のインフラストラクチャー接続情報選択処理について説明する。
S2301においてシステム制御部50は、アクセスポイント一覧表示画面からユーザにより選択されたアクセスポイントをメモリ18に記憶し、処理をS2302に進める。
S2302においてシステム制御部50は、ユーザにより選択された相手機器と同一UUIDを記憶し、かつS2301においてユーザにより選択されたアクセスポイントをESSID欄に記憶した接続情報があるか否かを判断する。システム制御部50は、該当する接続情報があれば処理をS2303に進め、該当する接続情報がなければ、処理をS2304に進める。
S2303においてシステム制御部50は、ユーザにより選択された相手機器と同一UUIDを記憶し、かつS2301においてユーザにより選択されたアクセスポイントをESSID欄に記憶した接続情報を、今回用いる接続情報として選択する。そして、システム制御部50は、インフラストラクチャー接続情報選択処理を終了する。例えば、図15のS1502においてユーザにより登録名SmartPhone1が相手機器として選択され、S2301においてAP1が選択された場合、システム制御部50は、図5の接続情報番号2の接続情報を今回使用する接続情報として選択する。
一方、ユーザにより選択された相手機器と同一UUIDを記憶し、かつS2301においてユーザにより選択されたアクセスポイントをESSID欄に記憶した接続情報がない場合、S2304でシステム制御部50は、接続情報に空きがあるかどうかを検索する。空きがある場合、システム制御部50は、その接続情報を今回用いる接続情報として選択し、処理をS2305に進める。図5に示す接続情報の場合、接続情報番号7の接続情報は空いているため、システム制御部50は接続情報番号7の接続情報を今回用いる接続情報として選択する。
S2305においてシステム制御部50は、S2304で選択した接続情報番号7の接続情報の相手機器情報に、接続先を変更するまで接続に用いていた接続情報の相手機器情報をコピーし、処理をS2306に進める。ここでは、今回接続に用いる接続情報は接続情報番号7の接続情報であり、接続先変更をするまで用いていた接続情報は接続情報番号4である。そのため、システム制御部50は、接続情報番号7の相手機器情報の各欄に、接続情報番号4の相手機器情報の各欄の値をコピーする。
S2306においてシステム制御部50は、接続情報の中に、S2301においてユーザにより選択されたアクセスポイントの無線LANパラメータを記憶する接続情報があるか否かを判断する。システム制御部50は、該当する接続情報がある場合は処理をS2307に進め、該当する接続情報がない場合は処理をS2308に進める。
S2307においてシステム制御部50は、S2304で選択した接続情報番号7の接続情報の無線LANパラメータの各欄に、ユーザにより選択されたアクセスポイントの無線LANパラメータを記憶する接続情報の無線LANパラメータの各欄の値をコピーする。例えば、S2301においてユーザによりAP3が選択された場合、AP3の無線LANパラメータを記憶する接続情報番号5の無線情報の無線LANパラメータの各欄の値を、今回用いる接続情報番号7の無線情報の無線LANパラメータの各欄にコピーする。そして、システム制御部50は処理をS2309に進める。
一方、S2301においてユーザにより選択されたアクセスポイントの無線LANパラメータを記憶する接続情報がない場合、システム制御部50はS2308で、S2304で選択した接続情報番号7の接続情報に無線LANパラメータを設定する。無線LANパラメータの設定処理は、図3を用いて説明したS311〜S314の処理と同様であるため、説明を省略する。そして、システム制御部50は処理をS2309に進める。
S2309においてシステム制御部50は、S2304で選択した接続情報番号7の接続情報にネットワーク設定情報を設定するアドレッシング設定処理を行い、インフラストラクチャー接続情報選択処理を終了する。アドレッシング設定処理は、図12のS1201〜S1208の処理と同様であるため、説明を省略する。
図22において、S2214のインフラストラクチャー接続情報選択処理が終了すると、システム制御部50は接続先変更処理を終了し、図19の処理をS1901に戻す。その後の処理については上述したとおりであるため、省略する。
以上のように、本実施形態によれば、既に記憶されているアドホックモードの接続情報を用いて履歴接続するときに別の接続先が選択されると、直ちにアクセスポイント検索処理を行うので、通信モードを変更する処理をユーザが行う必要が無い。
また、アクセスポイント検索処理で見つかったアクセスポイントを一覧表示する際、ユーザが選択した相手機器との接続に用いたことのあるアクセスポイントを上位に表示するため、所望の相手機器が接続している可能性の高いアクセスポイントを選択しやすくなる。
また、アクセスポイントの一覧から選択されたアクセスポイントが、同一相手機器について接続を行ったことのあるアクセスポイントである場合には、既に記憶されている接続情報を用いて接続するため、再度無線LANパラメータを入力する手間を省く事ができる。
また、同一相手機器は接続したことがないが、別の相手機器を接続したことがあるアクセスポイントが選択された場合は、新たな接続情報を生成する際に、記憶されている接続情報から相手機器情報や無線LANパラメータをコピーする。そのため、相手機器情報や無線LANパラメータを入力する手間を省く事ができる。
また、同一相手機器も別の相手機器も接続したことがないアクセスポイントが選択された場合も、空き接続情報に相手機器情報をコピーしてから無線LANパラメータ、ネットワーク設定を設定する。そのため、相手機器を例えば一覧表示してユーザに選択させるといった必要なしに相手機器に接続する事が可能となる。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。