以下、本発明の実施形態について図面に基づいて説明する。
(第1の実施形態)
図1は、第1の実施形態に係る更新システムの全体図である。更新システムは、通信装置の一例としてのカメラ100のファームウェアの更新を行う。ここで、ファームウェアは、カメラ100の更新に利用される情報であり、更新情報の一例である。例えば、1人のユーザがカメラ100と、携帯型の端末装置110とを所有するものとする。ユーザは、カメラ100の表示部103に表示された情報を見ながらカメラ100を操作したり、端末装置110の表示部113に表示された情報を見ながら端末装置110を操作したりすることができる。カメラ100及び端末装置110は、いずれも周囲の無線アクセスポイント(AP)120を介して、サーバ装置130と通信することができる。また、カメラ100と端末装置110は、IEEE802.15の規格に準拠したBluetooth(登録商標)に応じた近距離無線通信を行うことができる。サーバ装置130は、カメラ100のファームウェアを管理し、新たなファームウェアをカメラ100に提供する。
カメラ100の第2通信部102及び端末装置110の第2通信部112は、例えば、IEEE802.11規格に準拠した無線LAN通信を行うためのインターフェースである(以下、Wi-Fi(登録商標)と記述する)。このWi-Fiによって、カメラ100は、AP120と無線通信を行うことができる。さらには、カメラ100はTCP/IPなどの上位のプロトコルによって、AP120を介して、インターネット140上のサーバ装置130とデータを送受信することができる。カメラ100はまた、AP120を介して端末装置110とも通信を行うことができる。
カメラ100の第1通信部101及び端末装置110の第1通信部111は、例えば、IEEE802.15の規格に準拠したBluetoothに応じた近距離無線通信を行う。このBluetooth通信により、カメラ100と端末装置110は無線通信を行うことができる。Bluetooth通信は、Bluetooth Low Energy(以下、BLEと記述する)を用いるものとする。このBLE通信は、Wi-Fi通信と比較して通信可能な範囲が狭い(つまり、通信可能な距離が短い)。また、BLE通信は、Wi-Fi通信と比較してその通信速度が遅い。一方、BLE通信は、Wi-Fi通信と比較してその消費電力が低いことを特徴としている。このように、カメラ100の第1通信部101と第2通信部102は、異なる通信方式での通信を行う。同様に、端末装置110の第1通信部111と第2通信部122も、異なる通信方式での通信を行う。
図2は、カメラ100のハードウェア構成図である。制御部200は、入力された信号や、後述のプログラムに従ってカメラ100の各部を制御する。制御部200は例えばCPUである。不揮発性メモリ202は、電気的に消去・記録可能な不揮発性のメモリであり、各種データや各種プログラム等を記憶する。なお、カメラ100の機能や処理は、制御部200が不揮発性メモリ202に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。また、他の例としては、第1通信部101は、不揮発性メモリ202に替えて、SDカード等の記録媒体208に格納されているプログラムを読み出してもよい。また、他の例としては、カメラ100は、制御部及び不揮発性メモリを複数有し、後述のカメラ100の処理の少なくとも一部は、これらを協働させることにより実現されるものであってもよい。また他の例としては、カメラ100の処理の少なくとも一部は、制御部以外のハードウェア回路を用いて実現されてもよい。
不揮発性メモリ202は、第1領域202a、第2領域202b、第3領域202c、第4領域202dの4つの領域を有している。ここで、第1領域202aは、BLE以外のファームウェアの領域である。第2領域202bは、BLE通信の第2のファームウェアの領域である。第3領域202cは、BLE通信の第1のファームウェアの領域である。ここで、BLE通信とは、対向機とBLE通信を行うためのドライバの部分と制御部200と通信するインターフェースの両方を含んでいる。第4領域202dは、通常動作とは関係ない、その他のファームウェアの領域である。
図3は、不揮発性メモリ202のメモリマップの概略図である。メモリマップ内の「通常動作ファーム」は、カメラ100の通常使用時に動作するファームウェアの領域である。ここには、撮像系の動作、表示系の動作、外部機器との通信ファーム等が含まれ、Wi-Fi通信やBLE通信の動作ファームもここに入る。前述した第1領域202a、第2領域202bがこれにあたる。これに対して、「ファームウェア更新動作用ファーム」は、ファームウェアの更新時の動作ファーム、ファームウェアの更新時の画面表示の動作ファームだけでなく、ここにもBLE通信の動作ファームがある。前述した第3領域202c、第4領域202dがこれにあたる。ユーザからファームウェアの更新が選択されると、「ファームウェアの更新フラグ判定」によって、「ファームウェア更新動作用ファーム」が動き出し、「通常動作ファーム」部分が全て書き換えられるように動作する。この時、第3領域202cも「ファームウェア更新動作用ファーム」にあるため、ファームウェアの更新中でもBLE通信が可能になる。
BLEのファームとしては、電源OFFONのタイミングなどで、第2領域202bを、第3領域202cにコピーしておくことで、第3領域202cも最新のファームウェアに保つことができる。また、ここでは、第2領域202bを「通常動作ファーム」に、第3領域202cを「ファームウェア更新動作用ファーム」に決めている。ただし、一度ファームウェアを書き込んだら、第2領域202bを「ファームウェア更新動作用ファーム」に、第3領域202cを「通常動作ファーム」に割り当てるといったように、その都度切り替えるようにしてもよい。
図2に戻り、撮像部201は、撮像部201に含まれるレンズで結像された被写体光を電気信号に変換し、ノイズ低減処理などを行い、デジタルデータを画像データとして出力する。撮像した画像データはバッファメモリに蓄えられた後、制御部200にて所定の演算が施され、記録媒体208に記録される。作業用メモリ203は、撮像部201で撮像された画像データを一時的に保持するバッファメモリや、後述する表示部103の画像表示用メモリ、制御部200の作業領域等として使用される。
操作部204は、ユーザがカメラ100に対する指示を入力するために用いられる。操作部204は、例えば、ユーザがカメラ100の電源のON/OFFを指示するための電源ボタンや、撮像を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンなどの操作部材を含む。また、後述する表示部103に形成されるタッチパネルも操作部204に含まれる。なお、レリーズスイッチは、SW1及びSW2を有する。レリーズスイッチが、いわゆる半押し状態となることにより、SW1がONとなる。これにより、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の撮像準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、SW2がONとなる。これにより、撮像を行うための指示を受け付ける。
表示部103は、撮像の際のビューファインダー画像の表示、撮像した画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部103は必ずしもカメラ100が備える必要はない。カメラ100は表示部103と接続することができ、表示部103の表示を制御する表示制御機能を少なくとも有していればよい。また、端末装置110のも同様に表示部113を備えている。
電源制御部206は、カメラ100の各部への電力の供給を制御する。なお、本実施形態では、電力の供給元として、着脱可能なバッテリーである電源207を採用した場合を例に挙げて説明するが、これに限られるものではない。例えば、ACアダプタ等を介して、外部から電力を取得する構成にしてもよい。記録媒体208は、撮像部201から出力された画像を記録することができる。記録媒体208は、カメラ100に着脱可能なよう構成してもよいし、カメラ100に内蔵されていてもよい。すなわち、カメラ100は少なくとも記録媒体208にアクセスする手段を有していればよい。第1アンテナ209は、BLE用(第1通信部用)のアンテナである。第2アンテナ210は、Wi-Fi用(第2通信部用)のアンテナであるが、アンテナはまとめて1つでもよいし、2つずつなどにしてもよい。少なくとも1つ以上あればよい。
端末装置110は、公衆回線やWi-Fiなどの電波の届く場所ならいつもインターネット140と接続でき、カメラ100のファームウェアが置いてあるサーバ装置130にもアクセスすることができる。その一方で、カメラ100は電池の消耗等の観点から、常にWi-Fiで通信させておくことは非現実的である。そのため、カメラ100は、ファームウェアが更新されたかどうかを知るには、わざわざサーバ装置130に接続して、確認する必要がある。この2つの機器の性質を考えると、以下のような処理が望ましい。すなわち、端末装置110がサーバ装置130にアクセスし、カメラ100のファームウェアが更新されたか否かを確認する。そして、カメラ100は、常時接続可能な低消費電力のBLE通信を介してファームウェアの更新に関する情報をカメラ100に通知し、カメラ100がファームウェアをダウンロードする。さらに、カメラ100は、ファームウェアをダウンロードする際は、高速な通信が可能で、かつインターネット140接続が可能なアクセスポイントと通信できるWi-Fiを用いるのが好ましい。
図4及び図5は、更新システムによる更新制御処理を示すシーケンス図である。更新制御処理は、上述のようなファームウェアのダウンロードを行うための情報処理である。図6は、更新制御処理において、端末装置110に表示される表示画面例を示す図である。図7は、更新制御処理において、カメラ100に表示される表示画面例を示す図である。なお、処理の開始時には、カメラ100及び端末装置110のBLE通信はONの状態になっているものとする。また、更新制御処理におけるカメラ100の各処理は、カメラ100の制御部200が不揮発性メモリ202に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。同様に、更新制御処理における端末装置110及びサーバ装置130の各処理は、それぞれ端末装置110及びサーバ装置130の制御部が不揮発性メモリに格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。
まず、S401において、カメラ100は、アドバタイズパケットの送信を開始する。アドバタイズパケットの送信とは、接続情報が含まれるパケットを、不特定多数の機器に向けてブロードキャスト送信し、それを接続先の機器が受信することによって接続が可能になる、接続待機の動作のことである。カメラ100がこの状態となっているときに、端末装置110が接続するための操作を行うと、端末装置110はアドバタイズパケットを検出するスキャン動作を行う。端末装置110は、アドバタイズパケットを検出すると、コネクション状態に移行するための無線接続要求送信を行う。カメラ100は、この無線接続要求を受信し、カメラ100と端末装置110が無線接続動作(以下、ペアリングと記述する)を行う。この一連のペアリング動作により、カメラ100は、端末装置110と常に接続可能な状態にいることで、端末装置110からの指示に即座に対応することが可能になる。また、カメラ100は、接続が一度切れても、相手の情報を記憶しているので、相手を再度検出したら自動で接続することが可能である。
次に、S402において、カメラ100は、ファームバージョン情報を端末装置110に送信する。ここで、ファームバージョン情報とは、S402の処理時点におけるカメラ100のファームバージョン等の情報である。端末装置110は、ファームバージョン情報を受信すると、これを自装置の不揮発性メモリ202等に設けられた管理テーブルに記録する。なお、ファームバージョン情報は、ペアリング中だけ一時的に保持されるようにしてもよい。次に、S403において、端末装置110は、サーバ装置130と無線接続する。この接続方法は、例えばLTEなどコネクションが可能なものであればよい。次に、S404において、端末装置110は、カメラ100のファームウェアよりも新しい、カメラ100に対応したファームウェア(以下、新ファームウェアと称する)が存在するか否かを示すファーム有無情報を受信する。サーバ装置130が端末装置110と無線接続すると、ファーム有無情報を送信することとしてもよく、また他の例としては、端末装置110の問い合わせに応じてサーバ装置130がファーム有無情報を送信することとしてもよい。
次に、S405において、端末装置110は、ファーム有無情報に基づいて新ファームウェアの有無を確認する。端末装置110は、新ファームウェアが存在すると判断した場合には(S405でYes)、処理をS406へ進める。端末装置110は、新ファームウェアが存在しないと判断した場合には(S405でNo)、更新制御処理を終了する。S406において、端末装置110は、新ファームウェアのファーム情報をカメラ100に送信する。ここで、新ファームウェアのファーム情報は、新ファームウェアがあること、新ファームウェアの格納場所等の情報を含んでいる。
カメラ100は、S406において新ファームウェアのファーム情報を受信すると、S407において、Wi-Fiを起動させる。そして、カメラ100は、AP120を経由してサーバ装置130と無線接続する。カメラ100は、AP120のSSID情報を不揮発性メモリ202等に記憶しているものとし、AP120のビーコン情報より、そのSSIDを検出したらAP120と接続しにいく。その後、カメラ100は、AP120を経由して、サーバ装置130と接続する。なお、カメラ100はAP経由でサーバ装置130と接続できたかを判定し、AP120が見つからない場合にはタイムアウト等を設け、処理を終了する。カメラ100は、サーバ装置130との接続が確認できると、処理をS408へ進める。なお、カメラ100とサーバ装置130の間の無線接続は、S408の処理前に完了させておけばよく、S401の処理タイミングなど、より前のタイミングで実行してもよい。ここで、S407の処理は、サーバ装置に更新情報としての新ファームウェアが存在する旨の情報を端末装置110から受信した場合に、サーバ装置130と第2通信部102とを通信可能とするよう制御する通信管理処理の一例である。
S408において、カメラ100は、サーバ装置130との接続が完了した旨の接続完了通知を端末装置110に送信する。次に、S409において、カメラ100は、ダウンロード画面を表示部103に表示するよう制御する。ここで、ダウンロード画面は、新ファームウェアを受信し、記録媒体208に記録するか否かの指示をユーザから受け付ける画面である。なお、S408とS409の処理順は実施形態に限定されない。S409の後でS408を実行してもよく、S408とS409を同時に実行してもよい。端末装置110は、S408において接続完了通知を受信すると、S410においてダウンロード画面を表示部113に表示するよう制御する。このダウンロード画面は、S409において表示されるダウンロード画面と同様に、カメラ100の新ファームウェアをカメラ100の記録媒体208にダウンロードするか否かの指示をユーザから受け付ける画面である。
図6(a)は、S410において端末装置110の表示部113に表示されるダウンロード画面601の一例を示す図である。図7(a)は、S409においてカメラ100の表示部103に表示されるダウンロード画面701の一例を示す図である。ダウンロード画面601,701の何れかにおいて、ダウンロードの開始のユーザ操作が行われると、カメラ100及び端末装置110は、それぞれの表示部103,113に、カメラ100のダウンロードの進捗状況を表示する。具体的には以下の処理が行われる。
端末装置110は、S410の処理の後、S411において、ユーザ操作に応じてダウンロードの開始指示を受け付けたか否かを確認する。端末装置110は、指示を受け付けたと判断した場合には(S411でYes)、処理をS412へ進める。端末装置110は、指示を受け付けなかったと判断した場合には(S411でNo)、処理をS416へ進める。S412において、端末装置110は、ダウンロードの開始指示をカメラ100に送信し、その後処理をS416へ進める。
一方で、カメラ100は、S409の処理の後、S413において、ユーザ操作に応じてダウンロードの開始指示を受け付けたか否かを確認する。カメラ100は、指示を受け付けたと判断した場合には(S413でYes)、処理をS415へ進める。カメラ100は、指示を受け付けなかったと判断した場合には(S413でNo)、処理をS414へ進める。
S414において、カメラ100は、ダウンロードの開始指示を端末装置110から受信したか否かを確認する。なお、S414において受信する開始指示は、前述の通り、S412において送信されるものである。カメラ100は、開始指示を受信したと判断した場合には(S414でYes)、処理をS415へ進める。カメラ100は、開始指示を受信しなかったと判断した場合には(S414でNo)、処理をS413へ進める。S415において、カメラ100は、ダウンロードを開始する旨の開始通知を端末装置110に送信し、その後処理をS501(図5)へ進める。端末装置110は、S416において、カメラ100から開始通知を受信したか否かを確認する。端末装置110は、開始通知を受信したと判断した場合には(S416でYes)、処理をS503(図5)へ進め、S503においてダウンロードの進捗状況を受信するまで待機する。端末装置110は、開始通知を受信しなかったと判断した場合には(S416でNo)、処理をS411へ進める。
図5のS501において、カメラ100は、サーバ装置130から新ファームウェアのダウンロードを開始する。ここで、S501の処理は、サーバ装置と通信可能な場合に、サーバ装置から更新情報としての新ファームウェアを受信するよう制御する受信処理の一例である。次に、S502において、カメラ100は、ダウンロードの進捗状況を確認する。次に、S503において、カメラ100は、BLE通信により、ダウンロードの進捗状況を端末装置110に送信する。本処理は、更新情報に係る処理の進捗状況を送信するよう制御する進捗管理処理の一例である。また、カメラ100は、このように、新ファームウェアの受信を開始したタイミングで進捗情報の送信を開始する。次に、S504において、カメラ100は、ダウンロードの進捗状況を表示部103に表示するよう制御する。S504の処理により、表示部103には、図7(b)に示す進捗画面702が表示される。進捗画面702には、進捗状況を示すプログレスバーが表示されている。
図5に戻り、S504の後、S505において、カメラ100は、ダウンロードが完了したか否かを確認する。カメラ100は、ダウンロードが完了したと判断した場合には(S505でYes)、処理をS506へ進める。S506において、カメラ100は、ダウンロードの完了通知を端末装置110へ送信する。また、S505において、カメラ100は、ダウンロードが完了していないと判断した場合には(S505でNo)、処理をS502へ進める。この場合には、S502において、カメラ100は、再びダウンロードの進捗状況を確認し、S503においてダウンロードの進捗状況を送信し、S504においてダウンロードの進捗状況の表示を更新する。具体的には、カメラ100は、プログレスバーの表示を更新する。カメラ100は、S502~S504の処理を定期的に繰り返すことで、継続して進捗情報を送信し、かつ進捗画面702の進捗状況の表示を順次更新することができる。
一方、端末装置110は、S503でダウンロードの進捗状況を受信すると、S507において、ダウンロードの進捗状況を表示部113に表示するよう制御する。S507の処理により、表示部113には、図6(b)に示す進捗画面602が表示される。進捗画面602には、進捗状況を示すプログレスバーが表示されている。S507の処理の後、S508において、端末装置110は、カメラ100から完了通知を受信したか否かを確認する。端末装置110は、完了通知を受信しなかったと判断した場合には(S508でNo)、処理をS503へ進める。この場合には、カメラ100は、S503においてカメラ100から進捗状況を受信するのを待ち、進捗状況を受信すると、S507において、ダウンロードの進捗状況の表示を更新する。端末装置110は、S503、S507を繰り返すことで、進捗画面602の進捗状況の表示を順次更新することができる。S508において、端末装置110は、完了通知を受信したと判断した場合には(S508でYes)、進捗画面602の表示を終了し、処理をS509へ進める。
S509において、端末装置110は、表示部113にダウンロードが完了した旨を表示した後、更新画面を表示するよう制御する。ここで、更新画面は、カメラ100がダウンロードした新ファームウェアを利用したファームウェアの更新処理を実行するか否かの指示をユーザから受け付けるための画面である。図6(c)は、S509において端末装置110の表示部113に表示される更新画面603の一例を示す図である。一方、カメラ100も、S506の処理の後、S510において、表示部103にダウンロードが完了した旨を表示した後、更新画面を表示するよう制御する。図7(c)は、S510においてカメラ100の表示部103に表示される更新画面703の一例を示す図である。
更新画面603,703の何れかにおいて、更新の開始のユーザ操作が行われると、カメラ100及び端末装置110は、それぞれの表示部103,113に、カメラ100のファームウェアの更新処理の進捗状況を表示する。具体的には以下の処理が行われる。
端末装置110は、S509の処理の後、S511において、ユーザ操作に応じて更新の開始指示を受け付けたか否かを確認する。端末装置110は、指示を受け付けたと判断した場合には(5411でYes)、処理をS512へ進める。端末装置110は、指示を受け付けなかったと判断した場合には(S511でNo)、処理をS516へ進める。S512において、端末装置110は、更新の開始指示をカメラ100に送信し、その後処理をS516へ進める。
一方で、カメラ100は、S510の処理の後、S513において、ユーザ操作に応じて更新の開始指示を受け付けたか否かを確認する。カメラ100は、指示を受け付けたと判断した場合には(S513でYes)、処理をS515へ進める。カメラ100は、指示を受け付けなかったと判断した場合には(S513でNo)、処理をS514へ進める。S514において、カメラ100は、更新の開始指示を端末装置110から受信したか否かを確認する。なお、S514において受信する開始指示は、前述の通り、S512において送信されるものである。カメラ100は、開始指示を受信したと判断した場合には(S514でYes)、処理をS515へ進める。カメラ100は、開始指示を受信しなかったと判断した場合には(S514でNo)、処理をS513へ進める。S515において、カメラ100は、ダウンロードを開始する旨の開始通知を端末装置110に送信し、その後処理をS517へ進める。
端末装置110は、S516において、カメラ100から開始通知を受信したか否かを確認する。端末装置110は、開始通知を受信したと判断した場合には(S516でYes)、処理をS524へ進め、更新の進捗状況を受信するまで待機する。端末装置110は、開始通知を受信しなかった場合には(S516でNo)、処理をS511へ進める。
S517において、カメラ100は、ファームウェアの更新処理を行うために、Wi-Fi通信を切断する。次に、S518において、カメラ100は、新ファームウェアを用いて、ファームウェアの更新処理を開始する。次に、S519において、カメラ100は、更新処理の進捗状況を確認する。次に、S520において、カメラ100は、BLE通信により、更新処理の進捗状況を端末装置110に送信する。次に、S521において、カメラ100は、更新処理の進捗状況を表示部103に表示するよう制御する。S521の処理により、表示部103には、図7(d)に示す進捗画面704が表示される。進捗画面704には、進捗状況を示すプログレスバーが表示されている。
図5に戻り、S521の後、S522において、カメラ100は、更新処理が完了したか否かを確認する。カメラ100は、更新処理が完了したと判断した場合には(S522でYes)、処理をS523へ進める。S523において、カメラ100は、更新処理の完了通知を端末装置110へ送信する。以上で、カメラ100の処理は終了する。このように、カメラ100は、更新処理が完了するタイミングまで、進捗状況の送信を継続して行うよう制御する。S522において、更新処理が完了していないと判断した場合には(S522でNo)、カメラ100は、処理をS519へ進める。この場合には、S519において、カメラ100は、再び更新処理の進捗状況を確認し、S520において更新処理の進捗状況を送信し、S521において更新処理の進捗状況の表示を更新する。具体的には、カメラ100は、プログレスバーの表示を更新する。カメラ100は、S519~S521の処理を定期的に繰り返すことで、進捗画面702の進捗状況の表示を順次更新することができる。
一方、端末装置110は、S520で更新処理の進捗状況を受信すると、S524において、更新処理の進捗状況を表示部113に表示するよう制御する。S524の処理により、表示部113には、図6(d)に示す進捗画面604が表示される。進捗画面704には、進捗状況を示すプログレスバーが表示されている。S524の処理の後、S525において、端末装置110は、カメラ100から完了通知を受信したか否かを確認する。端末装置110は、完了通知を受信しなかったと判断した場合には(S525でNo)、処理をS520へ進める。この場合には、カメラ100は、S520においてカメラ100から進捗状況を受信するのを待ち、進捗状況を受信すると、S524において、更新処理の進捗状況の表示を更新する。端末装置110は、S520、S524を繰り返すことで、進捗画面704の進捗状況の表示を順次更新することができる。
S525において、端末装置110は、完了通知を受信したと判断した場合には(S525でYes)、進捗画面604の表示を終了し、処理をS526へ進める。S526において、端末装置110は、表示部113に更新処理が完了した旨を示す更新完了画面を表示するよう制御する。次に、S527において、端末装置110は、新ファームウェアのファーム情報を記録する。以上で、端末装置110の処理は終了する。なお、ダウンロード画面601,701及び更新画面603,703においては、キャンセルの選択肢も用意して、キャンセルが選択された場合には、ダウンロード処理を終了することとしてもよい。
以上のように、本実施形態に係る更新システムにおいては、ファームウェアのダウンロードや更新の指示は、カメラ100及び端末装置110のいずれからも行うことができる。さらに、各処理の進捗状況は、カメラ100の表示部103だけでなく端末装置110の表示部113にも表示される。したがって、ユーザは、ファームウェアの更新に係る進捗状況を端末装置110において確認することができる。また、本実施形態の更新システムによれば、ユーザは、端末装置110のみを用いて、更新のための指示を入力したり、進捗状況を確認したりすることができる。つまり、ペアリングさえ実施していれば、カメラ100を用いることなく端末装置110でカメラ100のファームウェアの管理、更新が可能になる。
第1の実施形態の第1の変形例としては、ダウンロード画面、更新画面、ダウンロードや更新処理の進捗状況の表示は、端末装置110の表示部113のみが行うこととしてもよい。
また、第2の変形例としては、カメラ100においてダウンロードの開始指示を受け付けた場合には、ダウンロードの進捗状況は、カメラ100の表示部103のみに表示するようにし、端末装置110の表示部113には表示しないようにしてもよい。また、端末装置110においてダウンロードの開始指示を受け付けた場合には、ダウンロードの進捗状況の表示は、カメラ100の表示部103のみで行うようにし、カメラ100の表示部103には表示させないようにしてもよい。操作していない機器の画面はユーザが確認する可能性が少なくなるため、このように、省電の観点からいずれか一方の表示部にのみ進捗状況を表示させるようにしてもよい。
また、第3の変形例としては、カメラ100は、ユーザからの指示を要することなく、AP120を検出したことを条件として、自動でファームウェアをダウンロードし、更新するようにしてもよい。
また、第4の変形例としては、カメラ100は、図4のS413において開始指示の入力を受け付けた場合及びS414において開始指示を受信した場合に、S415の処理を行うことなく、処理をS501へ進めてもよい。この場合、端末装置110は、図4に示すS416においてダウンロードの進捗状況を受信したか否かを確認し、受信した場合に、処理をS507へ進めることしてもよい。S515、S516についても同様の処理が可能である。
また、第5の変形例としては、カメラ100は、q100又はq110における開始指示の入力を要することなく、サーバ装置130に新ファームウェアが存在することを条件として、自動的にダウンロードや更新処理を開始してもよい。
(第2の実施形態)
第2の実施形態に係る更新システムにおいては、サーバ装置130からのファームウェアのダウンロードは、端末装置110を介して行われる。例えば、カメラ100がAP120を見つけることができないような場合に適している。AP120経由でファームウェアをダウンロードする時は、ファームウェアの更新までの時間が速くなる一方、AP120が見つからない場合もある。そのようなときに、公衆回線などを利用して、端末装置110がサーバ装置130からファームウェアをダウンロードすれば、ローカルに保存するところまでは行えるため、より確実性が増すことになる。
図8及び図9は、第2の実施形態に係る更新制御処理を示すシーケンス図である。図10は、更新制御処理において端末装置110に表示される表示画面例を示す図である。図11は、更新制御処理においてカメラ100に表示される表示画面例を示す図である。なお、図8に示すダウンロード処理の各処理のうち、図4を参照しつつ説明した第1の実施形態に係るダウンロード処理の各処理と同一の処理には同一の番号を付している。
図8に示すように、端末装置110は、S406において、新ファームウェアのファーム情報を送信した後、処理をS410へ進め、ダウンロード画面を表示するよう制御する。図10(a)は、S410において端末装置110の表示部113に表示されるダウンロード画面1001の一例を示す図である。また、カメラ100は、S406において新ファームウェアのファーム情報を受信した後、処理をS409へ進め、ダウンロード画面を表示するよう制御する。図11(a)は、S409においてカメラ100の表示部103に表示されるダウンロード画面1101の一例を示す図である。なお、他の例としては、カメラ100は、ダウンロード画面の表示(S409)は省略してもよい。
続いて、カメラ100及び端末装置110の何れかのダウンロード画面において、開始指示を受け付けると、端末装置110はダウンロードを開始する。すなわち、カメラ100は、S409の処理の後、S801において、ユーザ操作に応じてダウンロードの開始指示を受け付けたか否かを確認する。カメラ100は、指示を受け付けたと判断した場合には(S801でYes)、処理をS802へ進める。カメラ100は、指示を受け付けなかったと判断した場合には(S801でNo)、処理をS806へ進める。S802において、カメラ100は、ダウンロードの開始指示を端末装置110に送信し、その後処理をS806へ進める。
一方で、端末装置110は、S410の処理の後、S803において、ユーザ操作に応じてダウンロードの開始指示を受け付けたか否かを確認する。端末装置110は、指示を受け付けたと判断した場合には(S803でYes)、処理をS805へ進める。端末装置110は、指示を受け付けなかったと判断した場合には(S803でNo)、処理をS804へ進める。S804において、端末装置110は、ダウンロードの開始指示をカメラ100から受信したか否かを確認する。端末装置110は、開始指示を受信したと判断した場合には(S804でYes)、処理をS805へ進める。端末装置110は、開始指示を受信しなかったと判断した場合には(S804でNo)、処理をS803へ進める。S805において、端末装置110は、ダウンロードを開始する旨の開始通知をカメラ100に送信し、その後処理をS901(図9)へ進める。
カメラ100は、S806において、端末装置110から開始通知を受信したか否かを確認する。カメラ100は、開始通知を受信したと判断した場合には(S806でYes)、処理をS903(図9)へ進め、S903においてダウンロードの進捗状況を受信するまで待機する。カメラ100は、開始通知を受信しなかった場合には(S806でNo)、処理をS801へ進める。
図9のS901において、端末装置110は、サーバ装置130から新ファームウェアのダウンロードを開始する。次に、S902において、端末装置110は、ダウンロードの進捗状況を確認する。次に、S903において、端末装置110は、BLE通信により、ダウンロードの進捗状況をカメラ100に送信する。次に、S904において、端末装置110は、ダウンロードの進捗状況を表示部103に表示するよう制御する。S904の処理により、端末装置110の表示部113には、図6(b)の進捗画面602が表示される。
図9に戻り、S904の後、S905において、端末装置110は、ダウンロードが完了したか否かを確認する。端末装置110は、ダウンロードが完了したと判断した場合には(S905でYes)、処理をS906へ進める。S906において、端末装置110は、ダウンロードの完了通知をカメラ100へ送信する。また、S905において、端末装置110は、ダウンロードが完了していない場合には(S905でNo)、処理をS902へ進める。
一方、カメラ100は、S903でダウンロードの進捗状況を受信すると、S907において、ダウンロードの進捗状況を表示部103に表示するよう制御する。次に、S908において、カメラ100は、端末装置110から完了通知を受信したか否かを確認する。端末装置110は、完了通知を受信しなかったと判断した場合には(S908でNo)、処理をS903へ進める。カメラ100は、完了通知を受信したと判断した場合には(S908でYes)、進捗状況の表示を終了し、処理をS909へ進める。
S909において、カメラ100は、AP120を経由して端末装置110と無線接続する。カメラ100は、端末装置110に予め接続したいAP120のSSID情報をペアリング中に伝えておき、端末装置110がAP120のビーコン情報より、そのSSIDを検出したら、端末装置110はAP120と接続する。端末装置110は、カメラ100に接続したいAP120を検出したことを伝え、カメラ100は、Wi-Fiを起動させ、AP120経由で端末装置110と接続する。
次に、S910において、カメラ100は、転送画面を表示するよう制御する。ここで、転送画面は、端末装置110の新ファームウェアを受信し、カメラ100の記録媒体208に記録するか否かの指示を受け付ける画面である。図11(b)は、S910においてカメラ100の表示部103に表示される転送画面1102の一例を示す図である。S909の処理の後、端末装置110も、S911において、転送画面を表示するよう制御する。図10(b)は、S911において端末装置110の表示部113に表示される転送画面1002の一例を示す図である。
続いて、カメラ100及び端末装置110の何れかの転送画面において、開始指示を受け付けると、端末装置110は、新ファームウェアの転送を開始する。すなわち、カメラ100は、S910の処理の後、S912において、ユーザ操作に応じて転送の開始指示を受け付けたか否かを確認する。カメラ100は、指示を受け付けたと判断した場合には(S912でYes)、処理をS913へ進める。カメラ100は、指示を受け付けなかったと判断した場合には(S912でNo)、処理をS919へ進める。S913において、カメラ100は、転送の開始指示を端末装置110に送信し、その後処理をS919へ進める。
一方で、端末装置110は、S911の処理の後、S914において、ユーザ操作に応じて転送の開始指示を受け付けたか否かを確認する。端末装置110は、指示を受け付けたと判断した場合には(S914でYes)、処理をS916へ進める。端末装置110は、指示を受け付けなかったと判断した場合には(S914でNo)、処理をS915へ進める。S915において、端末装置110は、転送の開始指示をカメラ100から受信したか否かを確認する。端末装置110は、開始指示を受信したと判断した場合には(S915でYes)、処理をS916へ進める。端末装置110は、開始指示を受信しなかったと判断した場合には(S915でNo)、処理をS914へ進める。S916において、端末装置110は、新ファームウェアのカメラ100への転送を開始する。
次に、S917において、端末装置110は、転送の進捗状況を表示部113に表示するよう制御する。S917の処理により、表示部113には、図10(c)の進捗画面1003が表示される。次に、S918において、端末装置110は、転送が完了したか否かを確認する。端末装置110は、転送が完了したと判断すると(S918でYes)、処理をS923へ進める。端末装置110は、転送が完了していないと判断した場合には(S918でNo)、処理をS917へ進め、転送の進捗状況を更新しつつ、表示を継続する。なお、端末装置110は、自装置からの新ファームウェアの送信状況に応じて進捗状況を表示してもよく、端末装置110からBLE通信により新ファームウェアの受信状況を受信し、受信状況に応じて進捗状況を表示してもよい。
一方、カメラ100は、S919において、新ファームウェアを受信したか否かを確認する。カメラ100は、新ファームウェアを受信した場合には(S919でYes)、処理をS920へ進める。カメラ100は、新ファームウェアを受信しなかった場合には(S919でNo)、処理をS912へ進める。S920において、カメラ100は、転送の進捗状況を表示部103に表示するよう制御する。S920の処理により、表示部103には、図11(c)の進捗画面1103が表示される。次に、S921において、カメラ100は、転送が完了したか否かを確認する。カメラ100は、転送が完了したと判断すると(S921でYes)、処理をS922へ進める。カメラ100は、転送が完了していないと判断した場合には(S921でNo)、処理をS920へ進め、転送の進捗状況を更新しつつ、表示を継続する。
S922において、カメラ100は、転送が完了した旨を示す転送完了画面を表示するよう制御する。次に、S923において、カメラ100は、Wi-Fi通信を切断する。カメラ100のこれ以降の処理は、図5を参照しつつ説明したS510以降の処理と同様である。また、端末装置110のこれ以降の処理は、図5を参照しつつ説明したS509以降の処理と同様である。なお、第2の実施形態に係る更新システムのこれ以外の構成及び処理は、第1の実施形態に係る更新システムの構成及び処理と同様である。
以上のように、第2の実施形態の更新システムにおいては、一旦端末装置110に新ファームウェアをダウンロードし、カメラ100は、端末装置110から新ファームウェアを受信する。そして、この場合においても、各処理の進捗状況は、カメラ100の表示部103だけでなく端末装置110の表示部113にも表示される。したがって、ユーザは、ファームウェアの更新に係る進捗状況を端末装置110において確認することができる。
(第3の実施形態)
第3の実施形態に係る更新システムにおいては、端末装置110は、複数台のカメラのファームウェアの更新を制御する。なお、本実施形態においては、2台のカメラのファームウェアの更新を制御する場合を例に説明するが、3台以上でもよい。
図12は、第3の実施形態に係る更新制御処理を示すシーケンス図である。なお、図12においては、各処理を時間軸に沿って示している。図12を参照しつつ、端末装置110がカメラA及びカメラBの2台のカメラ100との間でそれぞれ更新制御処理を行う場合を例に説明する。端末装置110は、カメラA及びカメラBそれぞれとの間で並行して処理を実行する。図12に示すように、端末装置110はまず、カメラA及びカメラBそれぞれとの間で接続処理を並行して実行する。ここで、端末装置110の接続処理は、図4を参照しつつ説明したS401~S408における端末装置110の処理に相当する。なお、2つの接続処理は、同時期に行われるものとするが、内部処理の時間や無線通信状況に応じて多少前後してもよい。端末装置110の処理に対応し、カメラA及びカメラBは、いずれも接続処理を行う。ここで、カメラA及びカメラBの接続処理は、図4を参照しつつ説明したS401~S408における端末装置110の処理に相当する。
次に、S1201において、端末装置110は、カメラA及びカメラBのそれぞれの電波状況を受信する。ここで、電波状況とは、電波強度や通信レート等電波に関する情報である。端末装置110は、取得した電波状況を比較し、カメラA及びカメラBのうち電波状況が良い方に、ファームウェアのダウンロードを行うよう指示する。本実施形態においては、カメラBにダウンロードを指示するものとする。この場合、端末装置110は、カメラBとの間でのダウンロード処理を開始する。ここで、端末装置110のダウンロード処理は、図4及び図5を参照しつつ説明したS411~S508における端末装置110の処理に相当する。これに対し、カメラBもダウンロード処理を開始する。カメラBのダウンロード処理は、図4及び図5を参照しつつ説明したS413~S506の処理に相当する。なお、ダウンロード処理以降の端末装置110及びカメラ100の処理は、図4及び図5を参照しつつ説明した端末装置110及びカメラ100の処理と同様である。
端末装置110は、電波状況に替えて、端末装置110と接続した順番、カメラ100のシリアルナンバーに基づいて、ダウンロード処理を行うカメラを決定してもよい。また、端末装置110は、ランダムにダウンロード処理を行うカメラを決定してもよい。
端末装置110は、カメラBとの間でのダウンロード処理が終了すると、これに続いてファームウェアの更新画面を表示し(S509)、続く更新処理(図5のS511~S527)を行う。これに対応し、カメラBは、ファームウェアの更新画面を表示し(S510)、続く更新処理(図5のS513~S523)を行う。
端末装置110及びカメラBが更新画面を表示するタイミングt2において、端末装置110は、カメラAとの間でのダウンロード処理(S411~S508)を開始する。これに対応し、カメラAもダウンロード処理(S413~S506)を開始する。すなわち、端末装置110は、カメラAとの間でのダウンロード処理をt1のタイミングで開始し、カメラAとの間でのダウンロード処理が終了すると、t2のタイミングでカメラAとの間でのダウンロード処理を開始する。ここで、t2は、t1よりも後のタイミングである。さらに、端末装置110は、カメラAとの間でのダウンロード処理が完了すると、更新画面の表示(S510)及び更新処理(S513~S523)を行う。これに対応し、カメラAも更新画面の表示(S509)及び更新処理(S511~S527)を行う。
以上の処理により、端末装置110は、t2よりも後のタイミングt3においては、カメラBとの間で更新処理を実行しつつ、カメラAとの間でダウンロード処理を実行することとなる。この場合、端末装置110は、図13に示すように、カメラAとの間のダウンロード処理の進捗状況及びカメラBとの間の更新処理の進捗状況を示す進捗画面1300を表示するよう制御する。これにより、ユーザは、各カメラとの間の処理の進捗状況を容易に把握することができる。なお、第3の実施形態に係る更新システムのこれ以外の構成及び処理は、他の実施形態に係る更新システムの構成及び処理と同様である。
このように、第3の実施形態の更新システムにおいては、1台の端末装置110が複数台のカメラのファームウェを一元管理することができる。さらに、複数台のカメラ100が同時にサーバ装置130にアクセスし、新ファームウェアをダウンロードすることがないので、無線通信の混戦を招き、ダウンロード時間が延びてしまうのを避けることができる。
(第4の実施形態)
第4の実施形態の更新システムにおいては、複数のカメラ100が新ファームウェアのダウンロードを行う場合に、すべてのカメラ100がサーバ装置130からダウンロードする必要がないよう、カメラ100間で新ファームウェアを共有する。なお、ここでは、カメラが2台の例について説明するが、3台以上であってもよい。
図14は、第4の実施形態に係る更新制御処理を示すシーケンス図である。まず、端末装置110、カメラA及びカメラBは、それぞれ接続処理(S401~S406)を実行する。その後、S1401において、端末装置110は、カメラBに対し、新ファームウェアのダウンロード要求を送信する。端末装置110は、さらにカメラAに対し、Wi-Fi情報を端末装置110に送るよう要求する。この要求に応答して、S1402において、カメラAは、Wi-Fi情報を端末装置110に送信し、Wi-Fi接続待機状態になる。なお、Wi-Fi情報の送信は、このタイミングでなくてもよい。また、本実施形態においては、カメラBに対し新ファームウェアのダウンロード要求を送信しているが、ダウンロード要求の送信先は、カメラAでもよい。端末装置110は、各カメラのWi-Fiの電波状況等に従いダウンロード要求の送信先を決定してもよい。
カメラBは、ダウンロード要求を受信すると、ダウンロード処理を実行する。ここで、ダウンロード処理は、図4及び図5を参照しつつ説明したS409~S506の処理に相当する。このとき、端末装置110もダウンロード処理を実行する。ここで、端末装置110のダウンロード処理は、図4及び図5を参照しつつ説明したS410~S508の処理に相当する。これにより、カメラBは、サーバ装置130から新ファームウェアをダウンロードする。ダウンロードが完了すると、S1403において、端末装置110は、カメラBからカメラAに新ファームウェアを転送するか否かのユーザ指示を受け付けるための転送画面を表示する。そして、端末装置110は、転送の開始指示を受け付けたと判断した場合には(S1403でYes)、処理をS1404へ進める。
S1404において、端末装置110は、カメラBに対しカメラAのWi-Fi情報を送信する。次に、S1405において、カメラAとカメラBがAP120を介してWi-Fi接続を行う。次に、S1406において、カメラBは、新ファームウェアのカメラAへの転送を開始する。次に、S1407において、カメラBは、端末装置110に転送の進捗状況を送信する。次に、S1408において、カメラBは、転送の進捗状況を表示するよう制御する。次に、S1409において、カメラBは、転送が完了したか否かを確認する。カメラBは、転送が完了していない場合には(1409でNo)、処理をS1407へ進める。カメラBは、転送が完了した場合には(S1409でYes)、処理をS1410へ進める。S1410において、カメラBは、端末装置110へ転送の完了通知を送信する。S1410の処理の後、カメラBは、処理をS510(図5)へ進める。
また、カメラAは、S1406において転送が開始すると、S1411において、端末装置110に転送の進捗状況を送信する。続く、S1412~S1414の処理は、S1408~S1410の処理と同様である。カメラAは、S1414の処理の後、処理をS510(図5)へ進める。
端末装置110は、S1407及びS1411において転送の進捗状況を受信すると、S1415において、転送の進捗状況を表示するよう制御する。次に、S1416において、端末装置110は、カメラA及びカメラBから完了通知を受信したか否かを確認する。端末装置110は、カメラA及びカメラBから完了通知を受信したと判断した場合には(S1416でYes)、処理をS509(図5)へ進める。端末装置110は、カメラA及びカメラBから完了通知を受信しなかったと判断した場合には(S1416でNo)、処理をS1415へ進める。なお、第4の実施形態の更新システムのこれ以外の構成及び処理は、他の実施形態に係る更新システムの構成及び処理と同様である。
以上のように、第4の実施形態に係る更新システムでは、サーバ装置130から新ファームウェアをダウンロードするのは1台のカメラのみとし、他のカメラは、1台のカメラがダウンロードした新ファームウェアを共有することができる。
第4の実施形態の変形例としては、カメラBがダウンロード処理を終了後、例えばユーザ操作に応じて、カメラBからカメラAへの新ファームウェアの転送を行わず、カメラBにおけるファームウェアの更新処理を行うこととしてもよい。
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。