JP2023125841A - 通信装置、通信制御方法、及びプログラム - Google Patents

通信装置、通信制御方法、及びプログラム Download PDF

Info

Publication number
JP2023125841A
JP2023125841A JP2022030177A JP2022030177A JP2023125841A JP 2023125841 A JP2023125841 A JP 2023125841A JP 2022030177 A JP2022030177 A JP 2022030177A JP 2022030177 A JP2022030177 A JP 2022030177A JP 2023125841 A JP2023125841 A JP 2023125841A
Authority
JP
Japan
Prior art keywords
application
digital camera
identification information
external device
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022030177A
Other languages
English (en)
Inventor
洋行 鳥飼
Hiroyuki Torikai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2022030177A priority Critical patent/JP2023125841A/ja
Priority to US18/113,271 priority patent/US20230276511A1/en
Publication of JP2023125841A publication Critical patent/JP2023125841A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/30Connection release
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)

Abstract

【課題】通信装置の複数のアプリケーションが外部装置とスムーズに接続する通信装置、通信制御方法及びプログラムを提供する。【解決手段】オペレーティングシステム(OS)、OS上で動作する第1のアプリケーション及びOS上で動作する第2のアプリケーションを記録した記録媒体とプロセッサとを備える通信装置であって、プロセッサにより実行され第1のアプリケーションは、プロセッサに第1のアプリケーションが外部装置と通信するための接続を確立するようにOSに要求することと、外部装置の識別情報を取得することと、識別情報をOSが提供するデータ共有領域に格納することと、を実行させる。プロセッサにより実行される第2のアプリケーションは、プロセッサにデータ共有領域から識別情報を取得することと、識別情報に基づいて第2のアプリケーションが外部装置と通信するための接続を確立させるための接続制御を行うことと、を実行させる。【選択図】図9

Description

本発明は、通信装置、通信制御方法、及びプログラムに関する。
近年、デジタルカメラに無線通信機能が搭載され、スマートフォンと無線で接続する機種が知られている。例えば、特許文献1には、無線LANとBluetooth(登録商標)を搭載し、スマートフォンと無線で接続するデジタルカメラが開示されている。また、タッチパネルを搭載したスマートフォンを使用することによりリモート撮影を行う技術が特許文献2に開示されている。更には、Bluetooth通信を介してリモート撮影を行う技術が特許文献3に開示されている。
特開2015-088789号公報 特開2016-136689号公報 特開2018-037810号公報
スマートフォンのアプリケーションによりデジタルカメラに関連する複数の機能を実行できるようにすることを考えた場合、1つのアプリケーションに全ての機能を盛り込もうとすると、アプリケーションの設計、更新、配布等が煩雑になる可能性がある。
例えば、音声操作によるリモート撮影を実現する機能を提供する場合、アプリケーションがクラウドサービスと連携する必要が生じ、しかも国や地域によって連携すべきクラウドサービスが異なる可能性がある。従って、クラウドサービスに依存する機能については、他の機能を提供するアプリケーションから分離し、国や地域毎に独立したアプリケーションにより提供する方が、アプリケーションの設計、更新、配布等が容易になる場合もありうる。
スマートフォンの複数のアプリケーションにより同じデジタルカメラを制御する場合、複数のアプリケーションが同じデジタルカメラと接続して通信できるようにする必要がある。しかし、従来の技術では、複数のアプリケーションを同じデジタルカメラに接続させることが容易ではない。
本発明はこのような状況に鑑みてなされたものであり、通信装置(例えばスマートフォン)の複数のアプリケーションが外部装置(例えばデジタルカメラ)とスムーズに接続できるようにする技術を提供することを目的とする。
上記課題を解決するために、本発明は、オペレーティングシステム(OS)、前記OS上で動作する第1のアプリケーション、及び前記OS上で動作する第2のアプリケーションを記録した記録媒体と、プロセッサと、を備える通信装置であって、前記第1のアプリケーションは、前記プロセッサにより実行されると、前記プロセッサに、前記第1のアプリケーションが外部装置と通信するための接続を確立するように前記OSに要求することと、前記外部装置の識別情報を取得することと、前記識別情報を、前記OSが提供するデータ共有領域に格納することと、を実行させ、前記第2のアプリケーションは、前記プロセッサにより実行されると、前記プロセッサに、前記データ共有領域から前記識別情報を取得することと、前記識別情報に基づいて、前記第2のアプリケーションが前記外部装置と通信するための接続を確立させるための接続制御を行うことと、を実行させることを特徴とする通信装置を提供する。
本発明によれば、通信装置(例えばスマートフォン)の複数のアプリケーションが外部装置(例えばデジタルカメラ)とスムーズに接続することが可能となる。
なお、本発明のその他の特徴及び利点は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
(a)デジタルカメラ100の構成例を示すハードウェア構成図、(b)(c)デジタルカメラ100の外観の一例を示す図。 スマートフォン200の構成例を示すハードウェア構成図。 デジタルカメラ100及びスマートフォン200がBluetoothで通信のペアリングを確立する処理を説明するためのシステム構成図。 ペアリング済みのデジタルカメラ100及びスマートフォン200がBluetoothで再接続する処理について説明する図。 アプリケーションの画面例を示す図。 一部の機能を別のアプリケーションで実現することに関連する課題を説明する図。 図6を参照して説明した課題に対処するためのシステム構成図。 一次アプリがデジタルカメラ100に対してBluetoothペアリングと再接続を行う処理の流れを、OS311の動作も含めて示したシーケンス図。 一次アプリがユーザの操作を受け付けて機能を実行する処理の流れを、OS311の動作も含めて示したシーケンス図。 図8に示したシーケンス図に対応する一次アプリ及びOS311の処理を示すフローチャート。 図9に示したシーケンス図に対応する一次アプリの処理を示すフローチャート。 図9に示したシーケンス図に対応する二次アプリの処理を示すフローチャート。 図9に示したシーケンス図に対応する二次アプリの処理を示すフローチャート。 第2の実施形態に係る一次アプリ及びOS311の処理のシーケンス図。 第2の実施形態に係る二次アプリ及びOS311の処理のシーケンス図。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1の実施形態]
<デジタルカメラ100の構成>
図1(a)は、本実施形態の通信装置の一例であるデジタルカメラ100の構成例を示すハードウェア構成図である。なお、ここでは通信装置の一例としてデジタルカメラについて述べるが、通信装置はこれに限られない。例えば通信装置は携帯型のメディアプレーヤや、いわゆるタブレットデバイス、パーソナルコンピュータなどであってもよい。
制御部101は、入力された信号や、後述のプログラムに従ってデジタルカメラ100の各部を制御する。なお、制御部101がデジタルカメラ100全体を制御する代わりに、複数のハードウェアが処理を分担することで、デジタルカメラ100全体を制御してもよい。
撮像部102は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光(映像)を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、CMOS(Complementary Metal Oxide Semiconductor)や、CCD(Charge Coupled Device)が利用される。撮像部102は、制御部101に制御されることにより、撮像部102に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行い、デジタルデータを画像データとして出力する。本実施形態のデジタルカメラ100では、画像データは、DCF(Design Rule for Camera File System)の規格に従って、記録媒体110に記録される。
不揮発性メモリ103は、電気的に消去・記録可能な不揮発性のメモリであり、制御部101で実行される後述のプログラム等が格納される。
作業用メモリ104は、撮像部102で撮像された画像データを一時的に保持するバッファメモリや、表示部106の画像表示用メモリ、制御部101の作業領域等として使用される。
操作部105は、がデジタルカメラ100に対する指示をユーザから受け付けるために用いられる。操作部105は例えば、ユーザがデジタルカメラ100の電源のON/OFFを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。更に、後述の通信部111を介して外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、後述する表示部106に形成されるタッチパネルも操作部105に含まれる。なお、レリーズスイッチは、SW1及びSW2を有する。レリーズスイッチが、いわゆる半押し状態となることにより、SW1がONとなる。これにより、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の撮影準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、SW2がONとなる。これにより、撮影を行うための指示を受け付ける。
表示部106は、撮影の際のビューファインダー画像の表示、撮影した画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部106は必ずしもデジタルカメラ100が内蔵する必要はない。デジタルカメラ100は内部又は外部の表示部106と接続することができ、表示部106の表示を制御する表示制御機能を少なくとも有していればよい。
RTC107は、時計管理を行う。ユーザは、操作部105を介して時刻設定を行うことができる。また、RTC107が通信部111を介して時刻情報を取得して時刻設定を行う構成を採用してもよいし、電波時計によって捕捉された時計設定を採用してもよい。時刻を管理することができれば、具体的な管理方法は特に限定されない。
記録媒体110は、撮像部102から出力された画像データを記録することができる。記録媒体110は、デジタルカメラ100に着脱可能なよう構成してもよいし、デジタルカメラ100に内蔵されていてもよい。即ち、デジタルカメラ100は、少なくとも記録媒体110にアクセスする構成を有していればよい。
通信部111は、外部装置と接続するためのインタフェースである。本実施形態のデジタルカメラ100は、通信部111を介して、外部装置とデータのやりとりを行うことができる。例えば、撮像部102で生成した画像データを、通信部111を介して外部装置に送信することができる。なお、本実施形態では、通信部111は外部装置とIEEE802.11の規格に従った、いわゆる無線LANで通信するためのインタフェースを含む。制御部101は、通信部111を制御することで外部装置との無線通信を実現する。なお、通信方式は無線LANに限定されるものではなく、例えば赤外通信方式も含む。
通信部112は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。通信部112は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することによりIEEE802.15の規格(いわゆるBluetooth)に従った無線通信を実現する。本実施形態においてBluetooth通信は、低消費電力であるBluetooth Low Energyのバージョン4.0(以下BLE)を採用する。このBLE通信は、無線LAN通信と比べて通信可能な範囲が狭い(つまり、通信可能な距離が短い)。また、BLE通信は、無線LAN通信と比べて通信速度が遅い。その一方で、BLE通信は、無線LAN通信と比べて消費電力が少ない。本実施形態のデジタルカメラ100は、通信部112を介して、外部装置とデータのやりとりを行うことができる。例えば、撮像部102による撮像を通信部111を介して外部装置からコントロールすることができる。ただし、通信速度が遅いため撮像部102で生成した画像データを送信することはしない。
なお、本実施形態におけるデジタルカメラ100の通信部112は、ペリフェラルモード又はセントラルモードで動作可能である。そして、通信部112をペリフェラルモードで動作させることにより、本実施形態におけるデジタルカメラ100は、Bluetoothにおけるクライアント機器として動作することが可能である。デジタルカメラ100がクライアント機器として動作する場合、セントラルモードになる外部機器に接続することで通信することが可能である。なお、接続する外部機器との認証については、事前にペアリングを行うことで、接続する外部機器の固有情報を不揮発性メモリ103に保持することにより行われる。
また、本実施形態におけるデジタルカメラ100の通信部111は、インフラストラクチャモードにおけるアクセスポイントとして動作するAPモードと、インフラストラクチャモードにおけるクライアントとして動作するCLモードとを有している。そして、通信部111をCLモードで動作させることにより、本実施形態におけるデジタルカメラ100は、インフラストラクチャモードにおけるCL機器として動作することが可能である。デジタルカメラ100がCL機器として動作する場合、周辺のAP機器に接続することで、AP機器が形成するネットワークに参加することが可能である。また、通信部111をAPモードで動作させることにより、本実施形態におけるデジタルカメラ100は、APの一種ではあるが、より機能が限定された簡易的なAP(以下、簡易AP)として動作することも可能である。デジタルカメラ100が簡易APとして動作すると、デジタルカメラ100は自身でネットワークを形成する。デジタルカメラ100の周辺の装置は、デジタルカメラ100をAP機器と認識し、デジタルカメラ100が形成したネットワークに参加することが可能となる。上記のようにデジタルカメラ100を動作させるためのプログラムは不揮発性メモリ103に保持されているものとする。
なお、本実施形態におけるデジタルカメラ100はAPの一種であるものの、CL機器から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない簡易APである。従って、自機が形成したネットワークに参加している他の装置からデータを受信しても、それをインターネットなどのネットワークに転送することはできない。
近接無線通信部114は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近接無線通信部114は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することでISO/IEC 18092の規格(いわゆるNFC:Near Field Communication)に従った非接触近接通信を実現する。本実施形態の近接無線通信部114は、図1(c)参照に示すようにデジタルカメラ100の側部に配される。
デジタルカメラ100と後述するスマートフォン200とは、互いの近接無線通信部114と近接無線通信部214を近接させることにより通信を開始して接続される。なお、近接無線通信部114を用いてデジタルカメラ100をスマートフォン200と接続させる場合、必ずしも近接無線通信部114と近接無線通信部214を接触させる必要はない。近接無線通信部114と近接無線通信部214とは、一定の距離だけ離れていても通信することができるため、互いの機器を接続するためには、近接無線通信可能な範囲まで近づければよい。以下の説明では、この近接無線通信可能な範囲まで近づけることを、近接させる、とも記載する。
次に、デジタルカメラ100の外観について説明する。図1(b)、図1(c)はデジタルカメラ100の外観の一例を示す図である。レリーズスイッチ105aや再生ボタン105b、方向キー105c、タッチパネル105dは、前述の操作部105に含まれる操作部材である。また、表示部106には、撮像部102による撮像の結果得られた画像が表示される。
<スマートフォンの構成>
図2は、本実施形態において外部装置(例えば、デジタルカメラ100)と通信する通信装置の一例であるスマートフォン200の構成例を示すハードウェア構成図である。なお、ここでは通信装置の一例としてスマートフォンについて述べるが、通信装置はこれに限られない。例えば通信装置は、無線機能付きのデジタルカメラ、タブレットデバイス、或いはパーソナルコンピュータなどであってもよい。
制御部201は、プロセッサを含み、入力された信号や、後述のプログラムに従ってスマートフォン200の各部を制御する。なお、制御部201がスマートフォン200全体を制御する代わりに、複数のハードウェアが処理を分担することで、スマートフォン200全体を制御してもよい。
撮像部202は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光(映像)を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、CMOS(Complementary Metal Oxide Semiconductor)や、CCD(Charge Coupled Device)が利用される。撮像部202は、制御部201に制御されることにより、撮像部202に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行い、デジタルデータを画像データとして出力する。本実施形態のスマートフォン200では、画像データは、DCF(Design Rule for Camera File System)の規格に従って、記録媒体210に記録される。
不揮発性メモリ203は、電気的に消去・記録可能な不揮発性のメモリである。不揮発性メモリ203には、制御部201が実行する基本的なソフトウェアであるOS(オペレーティングシステム)や、このOS上で動作して応用的な機能を実現するアプリケーションが記録されている。また、本実施形態では、不揮発性メモリ203には、デジタルカメラ100と通信するためのアプリケーションが格納されている。
作業用メモリ204は、撮像部202で撮像された画像データを一時的に保持するバッファメモリや、表示部206の画像表示用メモリ、制御部201の作業領域等として使用される。
操作部205は、スマートフォン200に対する指示をユーザから受け付けるために用いられる。操作部205は例えば、ユーザがスマートフォン200の電源のON/OFFを指示するための電源ボタンや、表示部206に形成されるタッチパネルなどの操作部材を含む。
表示部206は、画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部206は必ずしもスマートフォン200が備える必要はない。スマートフォン200は表示部206と接続することができ、表示部206の表示を制御する表示制御機能を少なくとも有していればよい。
記録媒体210は、スマートフォン200が、通信部211を介して、制御部201に転送された画像データを記録することができる。記録媒体210は、スマートフォン200に着脱可能なよう構成してもよいし、スマートフォン200に内蔵されていてもよい。即ち、スマートフォン200は少なくとも記録媒体210にアクセスする機能を有していればよい。
通信部211は、外部装置と接続するためのインタフェースである。本実施形態のスマートフォン200は、通信部211を介して、外部装置とデータのやりとりを行うことができる。本実施形態では、通信部211はアンテナを含み、制御部201は、アンテナを介して、デジタルカメラ100と接続することができる。なお、本実施形態では、通信部211は外部装置とIEEE802.11の規格に従った、いわゆる無線LANで通信するためのインタフェースを含む。制御部201は、通信部211を制御することで外部装置との無線通信を実現する。なお、通信方式は無線LANに限定されるものではなく、例えば赤外通信方式も含む。
通信部212は、外部装置と接続するためのインタフェースである。本実施形態のスマートフォン200は、通信部212を介して、外部装置とデータのやりとりを行うことができる。例えば、デジタルカメラ100で生成した画像データを、通信部212を介して受信することができる。なお、本実施形態では、通信部212は外部装置とIEEE802.15.1の規格に従った、いわゆるBluetooth(登録商標)で通信するためのインタフェースを含む。制御部201は、通信部212を制御することで外部装置との無線通信を実現する。なお、通信方式はBluetoothに限定されるものではなく、例えば、IEEE802.11の規格で知られる無線LAN、又は、赤外通信方式も含む。
なお、本実施形態におけるスマートフォン200の通信部212は、ペリフェラルモード又はセントラルモードで動作可能である。そして、通信部212をセントラルモードで動作させることにより、本実施形態におけるスマートフォン200は、Bluetoothにおけるサーバ機器として動作することが可能である。スマートフォン200がサーバ機器として動作する場合、ペリフェラルモードになる外部機器に接続することで通信することが可能である。なお、接続する外部機器との認証については、事前にペアリングを行うことで、接続する外部機器の固有情報を不揮発性メモリ203に保持する。
近接無線通信部214は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近接無線通信部214は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することでISO/IEC 18092の規格(いわゆるNFC:Near Field Communication)に従った非接触近接通信を実現する。本実施形態の近接無線通信部214は、スマートフォン200の側部に配される。
また、スマートフォン200は、スピーカ215及びマイク216も備える。
<Bluetoothペアリング>
図3は、デジタルカメラ100及びスマートフォン200がBluetoothで通信のペアリングを確立する処理を説明するためのシステム構成図である。以下に、ユーザ301がデジタルカメラ100でBluetoothペアリングを開始してから、スマートフォン200とのペアリングを確立するまでの流れを説明する。
図3(a)において、ユーザ301は、デジタルカメラ100を操作して、Bluetooth設定機能のペアリング開始を実行する。デジタルカメラ100は、Bluetoothペアリングを開始すると、アドバタイズ信号302を周囲に発信する。
図3(b)は、デジタルカメラ100とスマートフォン200がBluetooth接続し、暗号化通信のための鍵を交換した様子を示す。スマートフォン200は、デジタルカメラ100が通信部112を介して発信したアドバタイズ信号を、通信部212を介して受信する。そして、スマートフォン200は、アドバタイズ信号に基づいてデジタルカメラ100のペアリング要求を検出し、デジタルカメラを検出した旨の表示を表示部206へ行う。スマートフォン200は、ユーザ301により、検出されたデジタルカメラ100とのペアリングを開始する操作を受け、デジタルカメラ100へBluetooth接続要求を行う。ここで、スマートフォン200は、ペアリング要求をデジタルカメラ100に通知して、通信データの暗号化のための鍵を交換して、スマートフォン200とデジタルカメラ100とで暗号化通信可能な状態とする。交換した通信データ暗号化の解除のための鍵は、デジタルカメラ100では、デジタルカメラ100の制御部101にて動作するソフトウェアモジュール構成316の通信制御モジュール312に保存され(鍵314)、スマートフォン200では、スマートフォン200の制御部201にて動作するソフトウェアモジュール構成315のOS311に保存される(鍵313)。OS311に鍵313が保存されると、OS311はデジタルカメラ100と暗号化通信可能な状態となる。この状態は、OSレイヤでペアリングされた状態である。
図3(c)は、デジタルカメラ100とスマートフォン200がBluetooth接続して暗号化通信可能な状態となった後、スマートフォン200がアプリケーションID321を暗号化通信によりデジタルカメラ100に渡した様子を示す図である。アプリケーションID321がデジタルカメラ100に渡ると、デジタルカメラ100は、アプリケーションID321をカメラ制御モジュール322に記憶し、スマートフォン200とのペアリングが確立したと判断してペアリング済みの状態となる。この状態は、アプリレイヤでペアリングされた状態である。
BLEの場合、接続が確立すると、スマートフォン200のアプリケーション323は、OS311からの接続完了通知に含まれる情報からデジタルカメラ100で利用可能な機能を示すサービスUUIDを取得することができる。スマートフォン200は、そのサービスUUIDで提供される機能を実現するための通信を行うことができる。このサービスUUIDは、通信仕様上規定された標準のBASE UUIDでもよいし、デジタルカメラ100で独自に実装されたVender Specific UUIDでもよい。
以上、図3(b)及び図3(c)を参照して説明したように、デジタルカメラ100とスマートフォン200との間のBluetooth接続には、OSレイヤの接続と、その後のOSレイヤの接続経路を利用したアプリレイヤの接続の2層がある。
<Bluetooth再接続>
次に、図4を参照して、ペアリング済みのデジタルカメラ100及びスマートフォン200がBluetoothで再接続する処理について説明する。
図4(a)は、再接続を開始する際の図である。ユーザ301が、デジタルカメラ100の電源スイッチをONにしたり、電池をデジタルカメラ100に挿入したりするなどして、デジタルカメラ100のBluetooth機能が使用できる状況にすると、デジタルカメラ100は、Bluetooth接続のためにアドバタイズ信号401を周囲に発信する。
図4(b)に示すように、デジタルカメラ100が発信するアドバタイズ信号401には、ペアリングを確立する際にデジタルカメラ100がスマートフォン200から取得したアプリケーションID321が含まれる。スマートフォン200は、デジタルカメラ100が通信部112を介して発信したアドバタイズ信号を、通信部212を介して受信し、アドバタイズ信号から自身のアプリケーションIDを判別して、自身と接続可能であることを判断する。
スマートフォン200は、アドバタイズ信号に含まれるアプリケーションIDが自身のアプリケーションID321であると判断すると、図4(c)に示すように、デジタルカメラ100へBluetooth接続要求を行う。これにより、デジタルカメラ100とスマートフォン200との間で再度Bluetooth接続が確立する。このとき、OSレイヤで再接続し、かつアプリレイヤでも再接続がされた状態となる。
<アプリケーションの画面説明>
図5は、本実施形態におけるアプリケーションの画面例を示す図である。図5(a)は、デジタルカメラ100とスマートフォン200とをBluetoothで接続した状態で表示されるトップメニュー画面500を示したものである。トップメニュー画面500は、カメラの接続状態を示しながら、実行可能な機能のメニューボタンを表示する。カメラ内画像表示ボタン501は、カメラ内の画像を一覧表示する機能に対応する。Wi-Fiリモート撮影ボタン502は、カメラのライブビューを表示しながらカメラの撮影指示をする機能に対応する。BLEリモート撮影ボタン503は、Bluetooth通信でカメラへ撮影指示をする機能に対応する。なお、カメラ内画像表示ボタン501とWi-Fiリモート撮影ボタン502から実行される機能は、画像データやライブビューデータといった、Bluetoothの通信速度にとっては大きいデータを扱う。そのため、これらの機能は、実行時にBluetooth通信からWi-Fi通信へ自動的に切り替える機能を有する。この場合、スマートフォン200は、Bluetoothを介して無線LAN接続に必要な通信パラメータ(SSIDやパスワード等)をデジタルカメラ100と共有する。スマートフォン200及びデジタルカメラ100は、共有された通信パラメータを用いて無線LAN接続を確立する。
図5(b)は、Wi-Fiリモート撮影ボタン502から実行される、カメラのライブビューを表示しながらカメラの撮影指示をする機能の画面例であるWi-Fiリモート撮影画面510を示す。Wi-Fiリモート撮影画面510は、戻るボタン511、カメラから受信したライブビューを表示するエリア512、レリーズボタン513、及び静止画/動画スイッチ514を含む。ユーザは、レリーズボタン513をタップすることで、カメラへ撮影指示を送って画像を撮影することができる。また、ユーザは静止画/動画スイッチ514を操作することにより、静止画モードと動画モードとの間の切り替えを行うことができる。ユーザは、機能の使用を終えたら、戻るボタン511をタップすることで、画面をトップメニュー画面500へ遷移させることができる。
図5(c)は、BLEリモート撮影ボタン503から実行される、Bluetooth通信でカメラへ撮影指示をする機能の画面例であるBLEリモート撮影画面520を示す。BLEリモート撮影画面520には、カメラから受信したライブビューを表示するエリアを設けない代わりにレリーズボタン522が大きく表示して配置される。ユーザは、レリーズボタン522をタップすることで、カメラへ撮影指示を送って画像を撮影することができる。BLEリモート撮影画面520は、戻るボタン521及び静止画/動画スイッチ523も含む。ユーザは静止画/動画スイッチ523を操作することにより、静止画モードと動画モードとの間の切り替えを行うことができる。ユーザは、機能の使用を終えたら、戻るボタン521をタップすることで、画面をトップメニュー画面500へ遷移させることができる。
本実施形態では、上で説明した複数の機能のうち、BLEリモート撮影画面520の機能を別のアプリケーションによりユーザに提供する構成について説明をする。一部の機能を別のアプリケーションとして提供することで、アプリケーション開発の自由度が向上するなどのメリットが得られる。
<一部の機能を別のアプリケーションで実現することに関連する課題>
以下の説明では、トップメニュー画面500を表示するアプリケーションを「一次アプリ」又は「代表アプリ」と呼ぶ。また、一次アプリが提供する機能とは別の機能(例えば、BLEリモート撮影画面520の機能)を提供する別のアプリケーションを「二次アプリ」と呼ぶ。
一次アプリがデジタルカメラ100とBluetooth接続した後に、二次アプリが従来の技術に従ってデジタルカメラ100とBluetooth接続しようとすると、以下に説明する課題が生じる。
図6に示すように、スマートフォン200の一次アプリ601(App1)がデジタルカメラ100とペアリングを行うと、制御部201にて動作するソフトウェアモジュール構成315のOS311に鍵603が保存される。鍵603は、デジタルカメラ100とのペアリング時に交換した通信データ暗号化の解除のための鍵である。
続いて、二次アプリ602(App2)がデジタルカメラ100とペアリングしようとした場合、既にOS311に鍵603が保存されているため、OS311に新たな鍵604を保存することができない。これは、OS311ではデジタルカメラの個体ごとに1つしか鍵を保存することができないためである。従って、デジタルカメラ100としても、制御部101にて動作するソフトウェアモジュール構成316の通信制御モジュール312に保存できるのは、一次アプリ601とペアリングしたときに交換した通信データ暗号化の解除のための鍵607のみである。デジタルカメラ100は、二次アプリ602のための鍵608を通信制御モジュール312に保存することはできない。
同様に、デジタルカメラ100のカメラ制御モジュール322に記憶できるのも、一次アプリ601とペアリングしたときに渡されたアプリケーションID605のみである。デジタルカメラ100は、二次アプリ602のアプリケーションID606をカメラ制御モジュール322に記憶することはできない。
この結果、二次アプリ602は、デジタルカメラ100とのBluetooth接続をOSレイヤで確立することができない。このようなOSの制約により、従来の技術では、二次アプリ602が一次アプリ601とは別のBluetooth接続をデジタルカメラ100との間で確立して機能を実行することが困難である。
<図6の課題に対処するためのシステム構成図>
図7は、図6を参照して説明した課題に対処するためのシステム構成図である。図7(a)は、一次アプリ601がデジタルカメラ100とペアリングをする様子を図示したものである。図7(a)では、図3と同様に、ユーザ301が、デジタルカメラ100を操作して、Bluetooth設定機能のペアリング開始を実行する。この際に、ユーザは、スマートフォン200では一次アプリ601を使用してペアリングを行う。
デジタルカメラ100とスマートフォン200とがBluetooth接続して暗号化通信可能な状態となった後、デジタルカメラ100は、カメラ制御モジュール322に一次アプリ601のアプリケーションID605を記憶する。これにより、デジタルカメラ100は、スマートフォン200とのペアリングが確立したと判断してペアリング済みの状態となる。
なお、スマートフォン200とデジタルカメラ100との間の接続は、Bluetooth接続であってもよいし、Bluetooth Low Energy接続(BLE接続)であってもよい。本実施形態の説明においては、これら2つの接続を厳密には区別せずに記載するものとする。従って、本実施形態の説明において、Bluetooth接続又はBLE接続と記載される接続は、技術的に矛盾しない限り、Bluetooth接続及びBLE接続のいずれによって実施されてもよい。
図7(b)は、一次アプリ601がデジタルカメラ100と再接続をする様子を図示したものである。図7(b)では、図4と同様に、ユーザ301が、デジタルカメラ100の電源スイッチをONにしたり電池をデジタルカメラ100に挿入したりするなどして、デジタルカメラ100のBluetooth機能が使用できる状況にする。続いて、デジタルカメラ100は、Bluetooth接続のためにアドバタイズ信号401に一次アプリ601のアプリケーションID605を載せて周囲に発信する。スマートフォン200の一次アプリ601は、デジタルカメラ100が通信部112を介して発信したアドバタイズ信号を、通信部212を介して受信する。そして、一次アプリ601は、アドバタイズ信号から自身のアプリケーションIDを判別して、自身がデジタルカメラ100と接続可能であることを判断する。そして、一次アプリ601は、デジタルカメラ100へBluetooth接続要求を行い、デジタルカメラ100とスマートフォン200との間で再度Bluetooth接続が確立する。
図7(c)は、一次アプリ601がユーザの操作を受け付けて機能を実行する様子を図示したものである。ユーザにより実行を指示された機能が二次アプリ602により提供される機能である場合、一次アプリ601は二次アプリ602を呼び出す。二次アプリ602は、接続済みのスマートフォン200とデジタルカメラ100とのBluetooth通信を介して、直接デジタルカメラ100へ制御を要求し機能を実行する。
以上のように、2つのアプリケーションの間で役割分担を行うことで、複数のアプリケーションで同一のデジタルカメラ100と通信する機能を提供することができる。
<シーケンス図:ペアリングと再接続>
図8は、一次アプリがデジタルカメラ100に対してBluetoothペアリングと再接続を行う処理の流れを、OS311の動作も含めて示したシーケンス図である。本シーケンス図において、一次アプリ(第1のアプリケーション)が実行するものとして説明される処理及び動作等は、スマートフォン200の制御部201(例えばプロセッサ)が一次アプリを実行することにより実現するものである。同様に、OS311が実行するものとして説明される処理及び動作等は、スマートフォン200の制御部201(例えばプロセッサ)がOS311を実行することにより実現するものである。この点は、図9以降のシーケンス図及びフローチャートにおいても同様である。また、図9以降のシーケンス図及びフローチャートにおいて、二次アプリ(第2のアプリケーション)が実行するものとして説明される処理及び動作等は、スマートフォン200の制御部201(例えばプロセッサ)が二次アプリを実行することにより実現するものである。
最初に、ペアリング時の処理について説明する。T801で、ユーザが一次アプリを起動する。T802で、一次アプリがBluetoothデバイスのスキャンをOS311に要求して、デバイスを検出するのを待つ。
一方、T803で、ユーザはデジタルカメラ100を操作して、ペアリング開始を操作する。T804で、デジタルカメラ100は、アドバタイズ信号を発信する。
OS311がアドバタイズ信号を受信すると、T805で、OS311は一次アプリへデバイスの検出を通知する。一次アプリは、一次アプリがサポートするデバイスのみペアリング画面に一覧表示する。
T806で、ユーザは、表示されたデバイスの一覧から所望のデジタルカメラ(ここではデジタルカメラ100)を選択する。T807で、一次アプリは、選択されたデジタルカメラに対しての接続要求をOS311へ伝える。一次アプリからの接続要求に応じて、T808で、OS311は、デジタルカメラ100へ接続要求を行い、暗号化通信を確立する。T809で、OS311は、接続が完了した旨を一次アプリへ通知する。
一次アプリは、OS311からの接続完了通知に含まれるデバイス情報として、デバイス名やBluetooth MACアドレスを記憶しておく。また、一次アプリは、OS311からの接続完了通知に含まれる情報から、接続したデジタルカメラ100がサポートする機能を示すサービスUUIDを取得できる。一次アプリは、このサービスUUIDを参照して、自身の備える機能、及び、二次アプリの備える機能を必要に応じて画面(例えばトップメニュー画面500)にメニューボタンとして表示する。なお、OS311の種類や特徴によっては、一次アプリがMACアドレスを取得できない場合もある。
T810で、一次アプリは、自身のアプリケーションIDをデジタルカメラ100へ送信する。アプリケーションIDを受信したデジタルカメラ100は、T811で、アプリケーションIDをペアリング相手のアプリケーションの情報として記憶する。
また、必要に応じて、T812で、一次アプリは、デジタルカメラ100へ要求してデジタルカメラ100のシリアル番号を取得して記憶しておく。これにより、スマートフォン200とデジタルカメラ100とがペアリングされた状態となり、OSレイヤ及びアプリレイヤの両方で、スマートフォン200とデジタルカメラ100とのBluetooth接続が確立される。
次に、再接続時の処理について説明する。ペアリング時と同様に、T801で、ユーザが一次アプリを起動する。T802で、一次アプリがBluetoothデバイスのスキャンをOS311に要求して、デバイスを検出するのを待つ。T821で、ペアリング済みのデジタルカメラ100は、ユーザから電源ボタンへの操作を受けるなどして電源がオンになる。T822で、デジタルカメラ100は、T811で記憶したアプリケーションIDを載せてアドバタイズ信号を発信する。OS311がアドバタイズ信号を受信すると、T823で、OS311は一次アプリへデバイスの検出を通知する。T824で、一次アプリは自身のアプリケーションIDがアドバタイズ信号に含まれているアプリケーションIDと一致しているか判定する。一致している場合、T825で、一次アプリはデジタルカメラ100に対しての接続要求をOS311へ伝える。一次アプリからの接続要求に応じて、T826で、OS311は、デジタルカメラ100へ接続要求を行い、暗号化通信を再確立する。
T827で、一次アプリは、OS311からの接続完了通知に含まれるデバイス情報として、デバイス名やBluetooth MACアドレスを記憶しておく。また、一次アプリは、OS311からの接続完了通知に含まれる情報から、接続したデジタルカメラ100がサポートする機能を示すサービスUUIDを取得できる。一次アプリは、このサービスUUIDを参照して、自身の備える機能、及び、二次アプリの備える機能を必要に応じて画面(例えばトップメニュー画面500)にメニューボタンとして表示する。なお、OS311の種類や特徴によっては、一次アプリがMACアドレスを取得できない場合もある。
また、必要に応じて、T828で、一次アプリは、デジタルカメラ100へ要求してデジタルカメラ100のシリアル番号を取得して記憶しておく。
<シーケンス図:機能の実行>
図9は、一次アプリがユーザの操作を受け付けて機能を実行する処理の流れを、OS311の動作も含めて示したシーケンス図である。ユーザは、一次アプリの画面(例えばトップメニュー画面500)に表示されたボタンをタップすることにより機能の実行を指示する。
T901及びT903に示すように、一次アプリは、ユーザの操作により、一次アプリが備える機能の開始や操作指示を受け付ける。この場合、一次アプリ自身が、OS311を通じてデジタルカメラ100とBluetooth通信を行うことにより、デジタルカメラ100の制御を行ったり、Bluetooth通信からWi-Fi通信に自動で切り替えて機能を実行したりする。T902に示すように、デジタルカメラ100は、一次アプリからの要求に応じて、要求された動作を実行する。
一方、T904に示すように、ユーザの操作により、一次アプリのメニューにおいて二次アプリが備える機能の開始を受け付ける場合がある。この場合、T905で、一次アプリは、現在Bluetooth通信で接続中のデジタルカメラ100の情報を二次アプリに伝えるために、デジタルカメラ100の識別情報を含む各種情報をOS311に渡す。これらの各種情報は、ペアリングや再接続の際に取得して記憶済みのカメラ名、MACアドレス、及びシリアル番号を含む。但し、前述の通り、OSの種類によっては一次アプリがMACアドレスを取得することができない場合があり、この場合、各種情報にMACアドレスは含まれない。一次アプリは、各種情報を二次アプリに伝えるために、OS311の提供する、アプリ間でデータ共有するためのデータ共有領域に、デジタルカメラ100の識別情報を含む各種情報を記憶する。このデータ共有領域は、一般的にアクセス可能な不揮発性メモリ203内の所定のディレクトリであってもよいし、両アプリケーションのみがアクセス可能な設定で作成された記憶領域であってもよい。或いは、一次アプリは、OS311の提供する作業用メモリ204を使用したクリップボードをデータ共有領域として使用してもよいし、アプリケーション起動時のパラメータとして各種情報を指定してもよい。
続いて、T906で、一次アプリは、二次アプリを起動するようにOS311に要求する。一次アプリからの要求に応じて、T907で、OS311は二次アプリを起動する。T908で、二次アプリは、データ共有領域から、デジタルカメラ100の識別情報を含む各種情報を取得する。
続いて、二次アプリは、データ共有領域から取得したデジタルカメラ100の識別情報に基づいて、二次アプリがデジタルカメラ100と通信するための接続を確立させるための接続制御を行う。この接続制御の詳細は、OS311の種類や特徴によって異なる。より具体的には、OS311が、一次アプリがペアリング相手のBluetooth MACアドレスを取得することを許可するか否かに応じて、二次アプリが行う接続制御の詳細が異なる。
一次アプリがペアリング相手(ここではデジタルカメラ100)のBluetooth MACアドレスを取得できる場合、T905においてMACアドレスがデータ共有領域に格納される。従って、二次アプリは、T907においてデータ共有領域からMACアドレスを取得し、このMACアドレスをデジタルカメラ100の識別情報として使用することができる。この場合、T909で、一次アプリは、MACアドレスをOS311に渡すことにより、デジタルカメラ100への接続要求を行う。T910で、OS311は二次アプリに対して、アプリレイヤでの接続が完了したことを通知する。T909~T910における二次アプリ及びOS311の処理は、T807~T809における一次アプリ及びOS311の処理に類似しているが、T807~T809の場合と異なりOSレイヤでの接続は既に確立されている。そのため、接続要求を受けたOS311は、デジタルカメラ100と新たにOSレイヤでの接続を確立することなく、アプリレイヤでの二次アプリとデジタルカメラ100との接続の確立をサポートする。
二次アプリがデジタルカメラ100と通信可能な状態になった後、T912で、二次アプリは、ユーザ操作により指示された機能を実行するために、OS311を通じてデジタルカメラ100とBluetooth通信を行う。T913で、デジタルカメラ100は、二次アプリから要求された動作を実行する。
他方、一次アプリがペアリング相手(ここではデジタルカメラ100)のBluetooth MACアドレスを取得できない場合、T905においてデータ共有領域に格納される情報にMACアドレスは含まれない。従って、二次アプリは、T907においてデータ共有領域からMACアドレスを取得することができず、MACアドレスをデジタルカメラ100の識別情報として使用することもできない。この場合、二次アプリは、データ共有領域に格納されるデジタルカメラ100のシリアル番号を、デジタルカメラ100の識別情報(第1種類の識別情報)として使用する。T914で、二次アプリは、OS311に対して、二次アプリ自身がサポートする機能のサービスUUIDを指定することにより、二次アプリがサポートする接続済みカメラ(OSが接続を確立している1以上のデジタルカメラ)の列挙を要求する。T915で、二次アプリは、OS311から返されたリスト(1以上のデジタルカメラそれぞれの第2種類の識別情報)を取得する。
二次アプリは、リストの先頭から順番に個別のデジタルカメラについて、T916~T920のループ処理を行う。具体的には、T916で、二次アプリは、デジタルカメラに接続するようにOS311に要求する。T917で、OS311は二次アプリに対して、アプリレイヤでの接続が完了したことを通知する。T916~T917における二次アプリ及びOS311の処理は、T807~T809における一次アプリ及びOS311の処理に類似しているが、T807~T809の場合と異なりOSレイヤでの接続は既に確立されている。そのため、接続要求を受けたOS311は、デジタルカメラ100と新たにOSレイヤでの接続を確立することなく、アプリレイヤでの二次アプリとデジタルカメラ100との接続の確立をサポートする。その後、T918で、二次アプリは、デジタルカメラ100へシリアル番号の取得要求を行う。T919で、二次アプリは、T918で取得したシリアル番号が一次アプリから渡されたシリアル番号(即ち、データ共有領域から取得されたシリアル番号)と一致するか否かを判定する。
2つのシリアル番号が一致する場合、二次アプリの現在の接続相手が一次アプリの接続相手(ここではデジタルカメラ100)と一致しているということである。この場合、二次アプリは、ループ処理を終了する。
他方、2つのシリアル番号が一致しない場合には、二次アプリの現在の接続相手が一次アプリの接続相手(ここではデジタルカメラ100)と一致していないということである。そこで、T920で、二次アプリは、OS311へ切断要求をしてアプリレイヤでの接続を切断する。なお、一次アプリがデジタルカメラ100との接続状態を保っているので、OS311はOSレイヤでの接続は切断しない。OS311がデジタルカメラ100とのOSレイヤでの接続を切断するのは、全てのアプリがアプリレイヤでの接続を切断した場合である。その後、二次アプリは、リストの次のデジタルカメラについて、ループの先頭(T916)からの処理を行う。
二次アプリが一次アプリの接続相手と同じデジタルカメラ100と接続できた後、T921で、二次アプリは、ユーザ操作により指示された機能を実行するために、OS311を通じてデジタルカメラ100とBluetooth通信を行う。T922で、デジタルカメラ100は、二次アプリから要求された動作を実行する。
なお、上記の説明においては、便宜上、二次アプリが既にスマートフォン200にインストールされているものとした。しかしながら、一次アプリが表示したトップメニュー画面500において、二次アプリが提供する機能を割り当てたメニューボタンがユーザにより操作されたタイミングで、必要に応じて二次アプリをインストールする構成を採用してもよい。この場合、T904とT905の間で、一次アプリは、OS311に問い合わせて二次アプリがインストール済みである否かを判定する。そして、二次アプリがインストール済みでない場合には、一次アプリは、OS311に対して、ストアアプリを起動して二次アプリをインストールするための画面を表示するように要求する。このような構成を採用することにより、ユーザは予め自分で必要なアプリケーションをインストールしておかなくても、スマートフォン200の画面で指示された通りに操作をすることで、目的の機能を実行することが可能である。
<フローチャート:一次アプリ>
図10は、図8に示したシーケンス図に対応する一次アプリ及びOS311の処理を示すフローチャートである。
一次アプリが起動すると、S1001で、一次アプリはBluetoothデバイスのスキャンをOS311に要求する。S1002で、一次アプリは、デバイスを検出するのを待つ。OS311がアドバタイズ信号を受信すると、一次アプリへデバイスの検出が通知されるので、一次アプリは、デバイスが検出されたと判定することができる。デバイスが検出されないと一次アプリが判定した場合、処理ステップはS1012に進む。デバイスが検出されたと一次アプリが判定した場合、処理ステップはS1003に進む。
S1003で、一次アプリは、アドバタイズ信号内にアプリケーションIDが含まれているか否かを判定することにより、検出されたデバイスがペアリング済みであるか否かを判定する。検出されたデバイスがペアリング済みであると一次アプリが判定した場合(アドバタイズ信号内にアプリケーションIDが含まれていない、即ちアプリケーションIDの値が「0」の場合)、処理ステップはS1008に進み、そうでない場合、処理ステップはS1004に進む。
S1004で、一次アプリは、検出されたデバイスのうち一次アプリがサポートするデバイス(デジタルカメラ)を画面に一覧表示する。ユーザが表示されたデジタルカメラの一覧から所望のデジタルカメラを選択すると、一次アプリは、選択されたデジタルカメラに対しての接続要求をOS311へ伝える。
S1005で、OS311は、デジタルカメラ100へ接続要求を行い、暗号化通信を確立する。暗号化通信の確立が完了したことの通知をOS311から受けた一次アプリは、S1006で、自身のアプリケーションIDをデジタルカメラ100へ送信する。
S1007で、一次アプリは、接続相手のデジタルカメラのデバイス名やBluetooth MACアドレスを、シリアル番号やサービスUUIDなどと共に記憶する。
S1008で、一次アプリは、アドバタイズ信号内のアプリケーションIDが自身のアプリケーションIDと一致しているか否かを判定することにより、一次アプリが検出されたデバイスとペアリング済みであるか否かを判定する。検出されたデバイスとペアリング済みであると一次アプリが判定した場合、処理ステップはS1009に進み、そうでない場合、処理ステップはS1001に戻る。
S1009で、一次アプリは、検出されたデジタルカメラに対しての接続要求をOSへ伝える。S1010で、OS311は、デジタルカメラ100へ接続要求を行い、暗号化通信を再確立する。
S1011で、一次アプリは、接続相手のデジタルカメラのデバイス名やBluetooth MACアドレスを、シリアル番号やサービスUUIDなどと共に記憶する。
S1012で、一次アプリは、デバイスの切断を検出したか否かを判定する。デバイスの切断を検出したと一次アプリが判定した場合、処理ステップはS1013に進み、そうでない場合、処理ステップはS1001に戻る。
S1013で、一次アプリは、記憶済みの接続中のカメラ情報を消去する。
図11は、図9に示したシーケンス図に対応する一次アプリの処理を示すフローチャートである。
S1101で、一次アプリは、接続中のデジタルカメラ100のカメラ名と共に、利用可能な機能を実行するためのメニューボタンを配置したトップメニュー画面500を表示する。
S1102で、一次アプリは、ユーザの操作により一次アプリの備える機能の開始を受け付けたか否かを判定する。一次アプリの備える機能の開始を受け付けたと一次アプリが判定した場合、処理ステップはS1107に進み、そうでない場合、処理ステップはS1003に進む。
S1103で、一次アプリは、ユーザの操作により二次アプリが備える機能の開始を受け付けたか否かを判定する。二次アプリが備える機能の開始を受け付けたと一次アプリが判定した場合、処理ステップはS1104に進み、そうでない場合、処理ステップはS1102に戻る。
S1104で、一次アプリは、現在Bluetooth通信で接続中のデジタルカメラ100の識別情報を含む各種情報を、OS311の提供するアプリ間でデータ共有するためのデータ共有領域に格納する。また、一次アプリは、開始すべき機能を示す要求IDもデータ共有領域に格納する。
S1105で、一次アプリは、二次アプリを起動するようにOS311に要求する。二次アプリが正常に起動したら、一次アプリはバックグラウンドに表示される。そこで、S1106で、一次アプリは、一次アプリがフォアグラウンドに復帰したか否かを判定する。フォアグラウンドに復帰したと一次アプリが判定するまで、処理ステップはS1106に留まる。フォアグラウンドに復帰したと一次アプリが判定した場合、処理ステップはS1101に戻る。
S1107で、一次アプリは、OS311を通じてデジタルカメラ100とBluetooth通信を行うことによりデジタルカメラ100の制御を行うなどしながら、一次アプリの機能を実行する。S1108で、一次アプリは、ユーザ操作による機能の終了を受け付けたか否かを判定する。ユーザ操作による機能の終了を受け付けたと一次アプリが判定した場合、処理ステップはS1101に戻り、そうでない場合、処理ステップはS1107に戻る。
<フローチャート:二次アプリ>
図12A及び図12Bは、図9に示したシーケンス図に対応する二次アプリの処理を示すフローチャートである。図12Aは、OS311が、一次アプリがペアリング相手のBluetooth MACアドレスを取得することを許可する場合に対応する。図12Bは、OS311が、一次アプリがペアリング相手のBluetooth MACアドレスを取得することを許可しない場合に対応する。
最初に、図12Aについて説明する。一次アプリからの要求に応じてOS311により起動された二次アプリは、S1201で、データ共有領域からデジタルカメラ100のMACアドレスを含む各種情報と、要求IDとを取得する。S1202で、二次アプリは、MACアドレスをOS311に渡すことにより、MACアドレスにより識別されるデジタルカメラ100との接続を確立するようにOS311に要求する。
S1203で、二次アプリは、デジタルカメラ100と通信可能な状態になるのを待つ。デジタルカメラ100と通信可能な状態になったと二次アプリが判定すると、処理ステップはS1204に進む。S1204で、二次アプリは、接続したデジタルカメラ100の情報として例えばカメラ名を表示すると共に、一次アプリから渡された要求IDに相当する機能の画面(例えばBLEリモート撮影画面520)を表示する。
S1205で、二次アプリは、OS311を通じてデジタルカメラ100とBluetooth通信を行うことにより、BLEリモート撮影画面520におけるユーザ操作に応じた機能を実行する。S1206で、二次アプリは、ユーザから機能終了の操作を受けたか否かを判定する。ユーザから機能終了の操作を受けたと二次アプリが判定した場合、処理ステップはS1207に進み、そうでない場合、処理ステップはS1205に戻る。S1207で、二次アプリは、OS311に対して一次アプリの起動を要求する。
次に、図12Bについて説明する。前述の通り、一次アプリがOS311からBluetoothデバイスのMACアドレスを取得できない場合、二次アプリはMACアドレスの代わりにシリアル番号をデジタルカメラの識別情報として使用する。
一次アプリからの要求に応じてOS311により起動された二次アプリは、S1211で、データ共有領域からデジタルカメラ100のシリアル番号を含む各種情報と、要求IDとを取得する。S1212で、二次アプリは、OS311に対して、二次アプリ自身がサポートする機能のサービスUUIDを指定し、接続済み対応カメラの列挙を要求し、カメラのリストを取得する。
二次アプリは、リストの先頭から順番に個別のデジタルカメラについて、S1213~S1217のループ処理を行う。具体的には、S1213で、二次アプリは、デジタルカメラに接続するようにOS311に要求する。本ステップの処理は、T916の処理に対応する。即ち、ここでの接続の要求に対し、OS311は、アプリレイヤでの接続をサポートする。
続くS1214で、二次アプリは、デジタルカメラと通信可能な状態になるのを待つ。デジタルカメラと通信可能な状態になったと二次アプリが判定すると、処理ステップはS1215に進む。
S1215で、二次アプリは、デジタルカメラに対してシリアル番号の取得要求を行う。S1216で、二次アプリは、S1215で取得されたシリアル番号が一次アプリから渡されたシリアル番号(即ち、データ共有領域から取得されたシリアル番号)と一致するか否かを判定する。2つのシリアル番号が一致すると二次アプリが判定した場合、処理ステップはS1218aに進む。2つのシリアル番号が一致しないと二次アプリが判定した場合、処理ステップはS1217に進む。
S1217で、二次アプリは、OS311へ切断要求をしてアプリレイヤでの接続を切断する。その後、二次アプリは、リストの次のデジタルカメラについて、ループの先頭(S1213)からの処理を行う。
S1218aで、二次アプリは、接続したデジタルカメラ100の情報として例えばカメラ名を表示すると共に、一次アプリから渡された要求IDに相当する機能の画面(例えばBLEリモート撮影画面520)を表示する。
S1218bで、二次アプリは、OS311を通じてデジタルカメラ100とBluetooth通信を行うことにより、BLEリモート撮影画面520におけるユーザ操作に応じた機能を実行する。S1219で、二次アプリは、ユーザから機能終了の操作を受けたか否かを判定する。ユーザから機能終了の操作を受けたと二次アプリが判定した場合、処理ステップはS1220に進み、そうでない場合、処理ステップはS1218bに戻る。S1220で、二次アプリは、OS311に対して一次アプリの起動を要求する。
以上説明したように、第1の実施形態によれば、スマートフォン200は、OS311上で動作する一次アプリ(第1のアプリケーション)及び二次アプリ(第2のアプリケーション)を含む。一次アプリは、一次アプリがデジタルカメラ100と通信するための接続を確立するようにOS311に要求し、デジタルカメラ100の識別情報を取得し、識別情報をOS311が提供するデータ共有領域に格納する。二次アプリは、データ共有領域から識別情報を取得し、識別情報に基づいて、二次アプリがデジタルカメラ100と通信するための接続を確立させるための接続制御を行う。図9を参照して説明したように、二次アプリが行う接続制御の詳細は、OS311が、一次アプリがペアリング相手のBluetooth MACアドレスを取得することを許可するか否かに応じて異なる。このような構成により、第1の実施形態によれば、スマートフォン200の複数のアプリケーション(一次アプリ及び二次アプリ)がデジタルカメラ100とスムーズに接続することが可能となる。
[第2の実施形態]
第1の実施形態では、一次アプリが二次アプリの機能開始ボタンを用意して表示し、ユーザの操作に応じて、OS311に対して二次アプリの起動を要求する構成について説明した。第2の実施形態では、一次アプリの機能開始ボタンを介さずに、二次アプリ自身がユーザ操作を受けて機能を開始できる構成を説明する。これを実現するために、第2の実施形態では、一次アプリは、一次アプリが接続中のデジタルカメラ100の識別情報を含む各種情報を、二次アプリが常に参照できるようにデータ共有領域に最新の状態で格納する。なお、第2の実施形態において、デジタルカメラ100及びスマートフォン200の基本的な構成及び動作は第1の実施形態と同様である。以下、主に第1の実施形態と異なる点について説明する。
図13は、第2の実施形態に係る一次アプリ及びOS311の処理のシーケンス図である。ここでは、図8に示したシーケンス図との差分を中心に説明する。
ペアリング時においても再接続時においても、一次アプリは、OSからの接続完了通知に含まれるデバイス情報として、デバイス名やBluetooth MACアドレスを記憶すること、OS311の種類や特徴によっては、MACアドレスを取得できない場合もあるため、シリアル番号も取得して記憶しておくことは、図8を用いて説明した通りである。また、一次アプリが、接続したカメラのサポートする機能を示すサービスUUIDも取得していることも図8を用いて説明した通りである。
本実施形態では、T1301に示すように、一次アプリは、これらの接続中のデジタルカメラ100の情報、即ちカメラ名、MACアドレス、シリアル番号、対応サービスUUID等を、デジタルカメラ100と接続したタイミングでデータ共有領域に格納する。但し、前述の通り、OS311の特徴によっては、MACアドレスは格納されない。また、T1302に示すようにデジタルカメラ100の電源オフ操作などによりデジタルカメラ100の接続が切断された場合には、T1303で、OS311は、一次アプリに対してデジタルカメラ100の切断を通知する。そして、T1304で、一次アプリは、T1301において格納した情報をデータ共有領域から削除する。
図14は、第2の実施形態に係る二次アプリ及びOS311の処理のシーケンス図である。ここでは、図9に示したシーケンス図との差分を中心に説明する。
T1401で、ユーザ操作により二次アプリが起動されるか、又は二次アプリがフォアグラウンドに表示され、ユーザ操作により二次アプリに対して機能の開始が指示される。T1402で、二次アプリは、データ共有領域に格納されている、一次アプリが接続中のデジタルカメラ100の情報、即ちカメラ名、MACアドレス、シリアル番号、対応サービスUUIDを取得する。但し、前述の通り、OS311の特徴によっては、MACアドレスは取得されない。ここで、二次アプリ自身が対応する機能を意味するサービスUUIDが取得されれば、二次アプリは、MACアドレスやシリアル番号を用いて、図9でも説明したとおりの手順でデジタルカメラ100とBluetooth通信できるように接続制御を行い、機能を開始することができる。
[第3の実施形態]
第1の実施形態及び第2の実施形態では、一次アプリがデジタルカメラ100との再接続処理を担っているため、一次アプリが起動していないと、二次アプリで機能を開始できない。第3の実施形態では、一次アプリでペアリングさえしてしまえば、デジタルカメラ100との再接続及び機能実行は二次アプリだけ起動していれば実行できる構成を説明する。
これを実現するためには、一次アプリは、デジタルカメラ100の識別情報等に加えて、一次アプリのアプリケーションIDも、二次アプリが参照できるデータ共有領域に格納する。そして、二次アプリは、Bluetoothデバイスをスキャンして再接続をできるように構成される。即ち、本実施形態では、図10で説明した一次アプリのデジタルカメラ100との再接続処理のS1001~S1003及びS1008~S1011を、二次アプリでも実行できるように構成される。
なお、その他の点については、本実施形態は、第1の実施形態又は第2の実施形態と同様である。
[第4の実施形態]
第1の実施形態では、スマートフォン200とデジタルカメラ100がBluetoothで接続した構成において、一次アプリと二次アプリとで連携して、BLEリモート撮影機能を二次アプリによりユーザに提供する構成について説明した。第4の実施形態では、スマートフォン200とデジタルカメラ100がWi-Fiで接続した構成において、一次アプリと二次アプリとで連携して、Wi-Fiリモート撮影機能を二次アプリによりユーザに提供する構成について説明する。
なお、第4の実施形態において、デジタルカメラ100及びスマートフォン200の基本的な構成及び動作は第1の実施形態、第2の実施形態、又は第3の実施形態と同様である。以下、主に前述の各実施形態と異なる点について説明する。
図5に示したアプリケーションの画面例を用いて説明を行う。本実施形態においては、図5(a)に示すトップメニュー画面500は一次アプリにより提供されるが、図5(b)に示すWi-Fiリモート撮影画面510は二次アプリにより提供されるものとする。
前述のとおり、一次アプリは、機能実行時にBluetooth通信からWi-Fi通信へ自動的に切り替える機能を有する。この機能を利用してスマートフォン200とデジタルカメラ100とを無線LAN接続(Wi-Fi接続)を確立してもよい。デジタルカメラ100がBluetoothの通信機能を備えない場合には、予めスマートフォン200とデジタルカメラ100との間で無線LAN接続を確立して、その上で一次アプリが無線LAN上でのUPnPなどのデバイス検出処理を用いてデジタルカメラ100と接続する構成を採用してもよい。
デジタルカメラ100との無線LAN接続を確立した一次アプリは、二次アプリで提供するWi-Fiリモート撮影機能のメニューボタンを表示する。ユーザ操作によりトップメニュー画面500のWi-Fiリモート撮影ボタン502の操作を受け付けたら、一次アプリは、必要に応じてデジタルカメラ100と無線LAN接続をして、無線LAN上のデジタルカメラ100のIPアドレスをデータ共有領域に格納することにより二次アプリに渡す。このデジタルカメラ100のIPアドレスは、Bluetoothを介して無線LAN接続に必要な通信パラメータ(SSIDやパスワード等)として予め、デジタルカメラ100とスマートフォン200とで共有していても良いし、無線LAN上でのUPnPなどのデバイス検出時にスマートフォン200が取得してもよい。デジタルカメラ100の識別情報としてBluetooth MACアドレスの代わりに無線LANのIPアドレスを使用すること以外は、基本的な処理は前述の各実施形態と同様である。
図11に示した一次アプリの機能実行時のフローチャートにおいて、S1104で説明したBluetooth MACアドレスやシリアル番号の代わりに、一次アプリはデジタルカメラ100のIPアドレスをデータ共有領域へ格納する。
図12Aに示した二次アプリの機能実行時のフロー図において、S1201で、二次アプリは、Bluetooth MACアドレスやシリアル番号の代わりに、デジタルカメラ100のIPアドレスを取得する。S1202で、二次アプリは、MACアドレスの代わりにIPアドレスを使用して、機能を実行するための必要なプロトコルのWi-Fi接続の確立を要求する。S1203で、二次アプリは、デジタルカメラ100との接続完了を待ち、接続完了に応じて処理ステップをS1204に進める。これにより、二次アプリは、Wi-Fi通信を使用した機能を提供することができる。
なお、Wi-Fi通信を使用した機能の場合においては、原則として、デジタルカメラ100のIP通信をベースとしたプロトコルがマルチクライアントに対応している必要がある。しかし、仮にマルチクライアントがサポートされていない場合でも、OS311は、一次アプリ側のIP通信を一度切断して、その代わりに二次アプリがIP通信を確立すればよい。その際、一度IP通信が途絶えることになるが、デジタルカメラ100が再接続を待ち合わせるモードを設けるなどして適宜必要な処理を行えばよい。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
100…デジタルカメラ、200…スマートフォン、201…制御部、203…不揮発性メモリ、204…作業用メモリ、205…操作部、206…表示部、210…記録媒体、211…通信部、212…通信部

Claims (10)

  1. オペレーティングシステム(OS)、前記OS上で動作する第1のアプリケーション、及び前記OS上で動作する第2のアプリケーションを記録した記録媒体と、
    プロセッサと、
    を備える通信装置であって、
    前記第1のアプリケーションは、前記プロセッサにより実行されると、前記プロセッサに、
    前記第1のアプリケーションが外部装置と通信するための接続を確立するように前記OSに要求することと、
    前記外部装置の識別情報を取得することと、
    前記識別情報を、前記OSが提供するデータ共有領域に格納することと、
    を実行させ、
    前記第2のアプリケーションは、前記プロセッサにより実行されると、前記プロセッサに、
    前記データ共有領域から前記識別情報を取得することと、
    前記識別情報に基づいて、前記第2のアプリケーションが前記外部装置と通信するための接続を確立させるための接続制御を行うことと、
    を実行させる
    ことを特徴とする通信装置。
  2. 前記接続制御を行うことは、前記識別情報を前記OSに渡すことにより、前記第2のアプリケーションが前記外部装置と通信するための接続を確立するように前記OSに要求することを含む
    ことを特徴とする請求項1に記載の通信装置。
  3. 前記第1のアプリケーションが前記外部装置と通信するための前記接続、及び前記第2のアプリケーションが前記外部装置と通信するための前記接続は、Bluetooth接続又はBluetooth Low Energy接続であり、
    前記識別情報は、前記外部装置のBluetooth MACアドレスである
    ことを特徴とする請求項1又は2に記載の通信装置。
  4. 前記第1のアプリケーションが前記外部装置と通信するための前記接続、及び前記第2のアプリケーションが前記外部装置と通信するための前記接続は、Wi-Fi接続であり、
    前記識別情報は、前記外部装置のIPアドレスである
    ことを特徴とする請求項1又は2に記載の通信装置。
  5. 前記データ共有領域に格納される前記識別情報は前記外部装置の第1種類の識別情報であり、
    前記接続制御を行うことは、
    前記OSから、前記OSが接続を確立している1以上の外部装置それぞれの第2種類の識別情報を取得することと、
    前記第2のアプリケーションが前記1以上の外部装置のうちの個別の外部装置と通信するための接続を確立するように前記OSに要求することと、
    前記個別の外部装置と通信するための前記接続を通じて前記個別の外部装置の第1種類の識別情報を取得することと、
    前記個別の外部装置の前記第1種類の識別情報が前記データ共有領域から取得される前記第1種類の識別情報と一致するか否かを判定することと、
    前記個別の外部装置の前記第1種類の識別情報が前記データ共有領域から取得される前記第1種類の識別情報と一致しない場合に、前記個別の外部装置と通信するための前記接続を切断するように前記OSに要求することと、
    を含む
    ことを特徴とする請求項1に記載の通信装置。
  6. 前記外部装置の前記第1種類の識別情報は、前記外部装置のシリアル番号であり、
    前記個別の外部装置の前記第1種類の識別情報は、前記個別の外部装置のシリアル番号である
    ことを特徴とする請求項5に記載の通信装置。
  7. 前記第1のアプリケーションは、前記プロセッサにより実行されると、前記プロセッサに、
    前記第2のアプリケーションを起動するように前記OSに要求すること
    を更に実行させる
    ことを特徴とする請求項1乃至6のいずれか1項に記載の通信装置。
  8. プロセッサが実行する通信制御方法であって、
    前記プロセッサが、オペレーティングシステム(OS)上で動作する第1のアプリケーションを実行することにより、
    前記第1のアプリケーションが外部装置と通信するための接続を確立するように前記OSに要求することと、
    前記外部装置の識別情報を取得することと、
    前記識別情報を、前記OSが提供するデータ共有領域に格納することと、
    前記プロセッサが、前記OS上で動作する第2のアプリケーションを実行することにより、
    前記データ共有領域から前記識別情報を取得することと、
    前記識別情報に基づいて、前記第2のアプリケーションが前記外部装置と通信するための接続を確立させるための接続制御を行うことと、
    を備えることを特徴とする通信制御方法。
  9. オペレーティングシステム(OS)上で動作する第1のアプリケーションとしてのプログラムであって、通信装置のプロセッサにより実行されると、前記プロセッサに、
    前記第1のアプリケーションが外部装置と通信するための接続を確立するように前記OSに要求することと、
    前記外部装置の識別情報を取得することと、
    前記識別情報を、前記OSが提供するデータ共有領域に格納することと、
    を実行させる
    ことを特徴とするプログラム。
  10. オペレーティングシステム(OS)上で動作する第2のアプリケーションとしてのプログラムであって、通信装置のプロセッサにより実行されると、前記プロセッサに、
    第1のアプリケーションにより前記OSが提供するデータ共有領域に格納された外部装置の識別情報を、前記データ共有領域から取得することと、
    前記識別情報に基づいて、前記第2のアプリケーションが前記外部装置と通信するための接続を確立させるための接続制御を行うことと、
    を実行させる
    ことを特徴とするプログラム。
JP2022030177A 2022-02-28 2022-02-28 通信装置、通信制御方法、及びプログラム Pending JP2023125841A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022030177A JP2023125841A (ja) 2022-02-28 2022-02-28 通信装置、通信制御方法、及びプログラム
US18/113,271 US20230276511A1 (en) 2022-02-28 2023-02-23 Communication apparatus, communication control method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022030177A JP2023125841A (ja) 2022-02-28 2022-02-28 通信装置、通信制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2023125841A true JP2023125841A (ja) 2023-09-07

Family

ID=87761481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022030177A Pending JP2023125841A (ja) 2022-02-28 2022-02-28 通信装置、通信制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US20230276511A1 (ja)
JP (1) JP2023125841A (ja)

Also Published As

Publication number Publication date
US20230276511A1 (en) 2023-08-31

Similar Documents

Publication Publication Date Title
JP6282046B2 (ja) 情報処理装置、情報処理装置の制御方法、プログラム
US11089481B2 (en) Communication apparatus communicating with external apparatus in a selected procedure from among a plurality of procedures to establish wireless connection, control method for communication apparatus, and recording medium
JP6755081B2 (ja) 通信装置およびその制御方法並びにプログラム
US10257337B2 (en) Communication apparatus connectable with use of close proximity wireless communication, method for controlling communication apparatus, and recording medium
JP7175634B2 (ja) 通信装置、制御方法およびプログラム
JP2018191134A (ja) 画像供給装置及び情報処理装置及びそれらの制御方法とプログラム
JP6400101B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP6415232B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP2018037894A (ja) 電子機器およびその制御方法
JP6399854B2 (ja) 通信装置、通信装置の制御方法、プログラム
US10142825B2 (en) Communication apparatus communicating with external apparatus by wireless communication, method for controlling communication apparatus, and storage medium
JP6385078B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP6810555B2 (ja) 無線通信装置およびその制御方法、ならびに無線通信システム
JP6656070B2 (ja) 撮像装置およびその制御方法、プログラムならびにシステム
US20210377820A1 (en) Apparatus, method of same, and storage medium for wirelessly communicating with external device via a plurality of wireless communication methods
JP6650793B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP6433231B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP2023125841A (ja) 通信装置、通信制御方法、及びプログラム
JP6877999B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP2017103650A (ja) 通信装置、通信装置の制御方法、プログラム
JP2016058970A (ja) 無線通信装置、無線通信装置の制御方法及びプログラム
JP6386862B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP2020057899A (ja) 無線通信システム、無線通信端末の制御方法
JP2017085518A (ja) 通信装置、通信装置の制御方法、プログラム
US11503656B2 (en) Communication apparatus, method for controlling communication apparatus, and storage medium