JP7358074B2 - 情報処理装置、制御方法及びプログラム - Google Patents

情報処理装置、制御方法及びプログラム Download PDF

Info

Publication number
JP7358074B2
JP7358074B2 JP2019102861A JP2019102861A JP7358074B2 JP 7358074 B2 JP7358074 B2 JP 7358074B2 JP 2019102861 A JP2019102861 A JP 2019102861A JP 2019102861 A JP2019102861 A JP 2019102861A JP 7358074 B2 JP7358074 B2 JP 7358074B2
Authority
JP
Japan
Prior art keywords
information
communication device
information processing
acquired
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.)
Active
Application number
JP2019102861A
Other languages
English (en)
Other versions
JP2020198504A (ja
Inventor
楓 古市
大貴 ▲高▼橋
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 JP2019102861A priority Critical patent/JP7358074B2/ja
Priority to US16/884,659 priority patent/US11386464B2/en
Publication of JP2020198504A publication Critical patent/JP2020198504A/ja
Application granted granted Critical
Publication of JP7358074B2 publication Critical patent/JP7358074B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0269Targeted advertisements based on user profile or attribute
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1209Improving or facilitating administration, e.g. print management resulting in adapted or bridged legacy communication protocols, e.g. emulation, protocol extension
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1226Discovery of devices having required properties
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1268Job submission, e.g. submitting print job order or request not the print data itself
    • G06F3/1269Job submission, e.g. submitting print job order or request not the print data itself by broadcasting server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0261Targeted advertisements based on user location
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/1221Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to power consumption
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Description

本発明は、情報処理装置、制御方法及びプログラムムに関するものである。
Bluetooth Low Energy(登録商標)(以下、BLE)によって通信を行う装置が知られている。特許文献1には、スマートホン等の情報処理装置とプリンタ等の通信装置との間で、BLEによる通信を行うことが記載されている。
特願2016-251834
ところでBLEでは、通信装置が有するGATT(Generic Attribute Profile)データに対する読み書きを行うことでデータ通信をするGATT通信と呼ばれる通信方法が用いられる。そして情報処理装置は、GATTデータ内の特定の情報(ハッシュ値等)を取得して、当該特定の情報を用いた処理を実行可能である。
GATTデータ内の情報を取得する装置が普及するにつれ、GATTデータ内の情報の取得をより適切に実行することが要望されている。
上述の課題を解決するために、本発明は、GATTデータ内の情報の取得をより適切に実行することを目的とする。
本発明は、通信装置とBluetooth Low Energy(BLE)によって通信する情報処理装置のコンピュータに、前記通信装置と前記情報処理装置との間で、BLEによって第1の接続が確立されることに応じて、前記通信装置が有するGeneric Attribute Profile(GATT)データの構造を示す情報を取得する第1取得ステップと、前記通信装置が有するGATTデータ内の、ハッシュ値である所定の種類の情報を取得する第2取得ステップと、前記通信装置と前記情報処理装置との間で、BLEによって第2の接続が確立されることに応じて、前記通信装置が有するGATTデータ内の前記所定の種類の情報が格納されている領域を特定可能になるまで、前記通信装置が有するGATTデータの構造を示す情報の少なくとも一部を取得する第3取得ステップと、前記通信装置が有するGATTデータの構造を示す情報の少なくとも一部に基づいて、前記所定の種類の情報を取得する第4取得ステップと、前記第2取得ステップで取得された前記所定の種類の情報と、前記第4取得ステップで取得された前記所定の種類の情報とが一致する場合、前記通信装置が有するGATTデータの構造を示す情報のうち前記第3取得ステップで取得されていない情報を新たに取得せず、前記第2取得ステップで取得された前記所定の種類の情報と、前記第4取得ステップで取得された前記所定の種類の情報とが異なる場合、前記通信装置が有するGATTデータの構造を示す情報のうち前記第3取得ステップで取得されていない情報を新たに取得する第5取得ステップと、を実行させることを特徴とする。
また本発明は、通信装置とBluetooth Low Energy(BLE)によって通信する情報処理装置のコンピュータに、前記通信装置と前記情報処理装置との間で、BLEによって第1の接続が確立されることに応じて、前記通信装置が有するGeneric Attribute Profile(GATT)データの構造を示す情報を取得する第1取得ステップと、前記通信装置が有するGATTデータ内の所定の情報を取得する第2取得ステップと、前記第1取得ステップで取得された前記通信装置が有するGATTデータの構造を示す情報に基づいて、前記第1の接続において前記情報処理装置が接続した前記通信装置が有するGATTデータ内の前記所定の情報が格納されていた領域を特定するための領域情報を特定する特定ステップと、前記通信装置と前記情報処理装置との間で、BLEによって第2の接続が確立されることに応じて、前記第2の接続において前記情報処理装置が接続する前記通信装置が有するGATTデータ内の領域のうち前記領域情報に対応する領域から特定の情報を取得する第3取得ステップと、前記第2取得ステップで取得された前記所定の情報と、前記第3取得ステップで取得された前記特定の情報とが一致する場合、前記通信装置が有するGATTデータの構造を示す情報を新たに取得せず、前記第2取得ステップで取得された前記所定の情報と、前記第3取得ステップで取得された前記特定の情報とが異なる場合、前記通信装置が有するGATTデータの構造を示す情報を新たに取得する第4取得ステップと、を実行させることを特徴とする
本発明によれば、GATTデータ内の情報の取得をより適切に実行することが可能となる。
情報処理装置及び通信装置の構成の図例である。 アドバタイズ情報のブロードキャスト及び接続要求情報の受信の処理を説明するための図である。 BLEにおけるアドバタイズを説明するための図である。 GATT構成データをキャッシュするための処理を示すフローチャートである。 登録機能を示すフローチャートである。 GATT構成データをキャッシュするための処理を示すフローチャートである。 GATT構成データをキャッシュするための処理を示すフローチャートである。 登録機能を示すフローチャートである。 アドバタイズ情報の構造を示す図である。 GATTのデータ形式を示す図である。 近距離無線通信部に保存されるGATTデータの一例を示す表である。 GATT構成データをキャッシュするための処理を示すシーケンス図である。 登録機能を示すシーケンス図である。
以下に図面を参照して、本発明の好適な実施形態を例示的に説明する。ただし、本発明については、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて、以下に記載する実施形態に対して適宜変更、改良が加えられたものについても本発明の範囲に入ることが理解されるべきである。
(第1実施形態)
本実施形態の通信システムに含まれる情報処理装置及び通信装置について説明する。情報処理装置として、本実施形態ではスマートホンを例示しているが、これに限定されず、携帯端末、ノートPC、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、種々のものを適用可能である。また、通信装置として、本実施形態ではプリンタを例示しているが、これに限定されず、情報処理装置と無線通信を行うことが可能な装置であれば、種々のものを適用可能である。例えば、プリンタであれば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等に適用することができる。また、プリンタのみならず複写機やファクシミリ装置、携帯端末、スマートホン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ等にも適用可能である。その他、複写機能、FAX機能、印刷機能等の複数の機能を備える複合機にも適用可能である。
まず、本実施形態の情報処理装置と、本実施形態の情報処理装置と通信可能な通信装置の構成について図1のブロック図を参照して説明する。また、本実施形態では以下の構成を例に記載するが、本実施形態は通信装置と通信を行うことが可能な装置に関して適用可能なものであり、特にこの図のとおりに機能を限定するものではない。
情報処理装置101は、本実施形態の情報処理装置である。情報処理装置101は、入力インタフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース107、表示部108、通信部109、近距離無線通信部110等を有する。
入力インタフェース102は、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースであり、物理キーボードやボタン、タッチパネル等で構成される。なお、後述の出力インタフェース107と入力インタフェース102とを同一の構成とし、画面の出力とユーザからの操作の受け付けを同一の構成で行うような形態としても良い。
CPU103は、システム制御部であり、情報処理装置101の全体を制御する。
ROM104は、CPU103が実行する制御プログラムやデータテーブル、組み込みオペレーティングシステム(以下、OSという。)プログラム等の固定データを格納する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。
RAM105は、バックアップ電源を必要とするSRAM(Static Random Access Memory)等で構成される。なお、RAM105は、図示しないデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、情報処理装置101の設定情報や情報処理装置101の管理データ等を格納するメモリエリアもRAM105に設けられている。また、RAM105は、CPU103の主メモリとワークメモリとしても用いられる。
外部記憶装置106は、印刷実行機能を提供するアプリケーション、通信装置151が解釈可能な印刷情報を生成する印刷情報生成プログラム等を保存している。また、外部記憶装置106は、通信部109を介して接続している通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムや、これらのプログラムが使用する各種情報を保存している。
出力インタフェース107は、表示部108がデータの表示や情報処理装置101の状態の通知を行うための制御を行うインタフェースである。
表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や情報処理装置101の状態の通知を行う。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを設置することで、表示部108を介してユーザからの入力を受け付けても良い。
通信部109は、通信装置151等の装置と接続して、データ通信を実行するための構成である。例えば、通信部109は、通信装置151内のアクセスポイント(不図示)に接続可能である。通信部109と通信装置151内のアクセスポイントが接続することで、情報処理装置101と通信装置151は相互に通信可能となる。なお、通信部109は無線通信で通信装置151とダイレクトに通信しても良いし、情報処理装置101や通信装置151の外部に存在する外部アクセスポイント(アクセスポイント131)を介して通信しても良い。無線通信方式としては、例えば、Wi-Fi(WirelessFidelity)(登録商標)やBluetooth(登録商標)等が挙げられる。また、アクセスポイント131としては、例えば、無線LANルーター等の機器などが挙げられる。なお、本実施形態において、情報処理装置101と通信装置151とが外部アクセスポイントを介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101と通信装置151とが外部アクセスポイントを介して接続する方式をインフラストラクチャー接続方式という。
近距離無線通信部110は、通信装置151等の装置と近距離で無線接続して、データ通信を実行するための構成であり、通信部109とは異なる通信方式によって通信を行う。近距離無線通信部110は、通信装置151内の近距離無線通信部157と接続可能である。なお、本実施形態では、近距離無線通信部110の通信方式として、Bluetooth5.1が用いられるものとする。なお、Bluetooth5.1には、Classic Bluetoothと、Bluetooth Low Energy(BLE)の両規格が含まれるが、本実施形態では近距離無線通信部157の通信方式として、BLEが用いられるものとする。
通信装置151は、本実施形態の通信装置である。通信装置151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、近距離無線通信部157等を有する。
通信部156は、通信装置151内部のアクセスポイントとして、情報処理装置101等の装置と接続するためのアクセスポイントを有している。なお、該アクセスポイントは、情報処理装置101の通信部109に接続可能である。なお、通信部156は無線通信で情報処理装置101とダイレクトに通信しても良いし、アクセスポイント131を介して通信しても良い。通信方式としては、例えば、Wi-Fi(登録商標)やBluetooth(登録商標)等が挙げられる。また、通信部156は、アクセスポイントとして機能するハードウェアを備えていてもよいし、アクセスポイントとして機能させるためのソフトウエアにより、アクセスポイントとして動作してもよい。
近距離無線通信部157は、情報処理装置101等の装置と近距離で無線接続するための構成である。本実施形態では、近距離無線通信部157の通信方式として、Bluetooth5.1が用いられるものとする。より具体的には、本実施形態では近距離無線通信部157の通信方式として、BLEが用いられるものとする。
RAM153は、バックアップ電源を必要とするSRAM等で構成される。なお、RAM153は、図示しないデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、通信装置151の設定情報や通信装置151の管理データ等を格納するメモリエリアもRAM153に設けられている。また、RAM153は、CPU154の主メモリとワークメモリとしても用いられ、情報処理装置101等から受信した印刷情報を一旦保存するための受信バッファや各種の情報を保存する。
ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。本実施形態では、ROM152に格納されている各制御プログラムは、ROM152に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。
CPU154は、システム制御部であり、通信装置151の全体を制御する。
プリントエンジン155、RAM153に保存された情報や情報処理装置101等から受信した印刷ジョブに基づき、インク等の記録剤を用いて紙等の記録媒体上に画像形成し、印刷結果を出力する。この時、情報処理装置101等から送信される印刷ジョブは、送信データ量が大きく、高速な通信が求められるため、近距離無線通信部157よりも高速に通信可能な通信部156を介して受信する。
なお、通信装置151には、外付けHDDやSDカード等のメモリがオプション機器として装着されてもよく、通信装置151に保存される情報は、当該メモリに保存されても良い。
また、本実施形態の通信装置は、接続設定処理により接続モードが設定され、設定された接続モードに基づいた接続形態により、情報処理装置と通信を行う。本実施形態の通信装置は、インフラストラクチャー接続により通信を行う場合は、接続モードとしてインフラストラクチャー接続モードが設定され、ダイレクト接続により通信を行う場合は、接続モードとしてダイレクト接続モードが設定される。
ここでは、例として情報処理装置101と通信装置151との処理分担を上記のように示したが、特にこの分担形態に限らず他の形態であってもよい。
本実施形態では、情報処理装置101は、ROM104や外部記憶装置106等に所定のアプリケーションを格納しているものとする。所定のアプリケーションとは、例えば、情報処理装置101内の画像データや文書データ等を印刷させるための印刷ジョブを、通信装置151に送信するためのアプリケーションプログラムである。このような機能を有するアプリケーションを、以後印刷アプリという。なお、印刷アプリは、印刷機能以外に、他の機能を備えていても良い。例えば、印刷アプリは、通信装置151がスキャン機能を備えている場合に、通信装置151にセットされた原稿をスキャンさせる機能や、通信装置151の他の設定を行う機能、通信装置151の状態を確認する機能等を備えていても良い。すなわち、印刷アプリは、印刷ジョブ以外に、スキャンジョブや設定ジョブを通信装置151に送信する機能を有していても良い。また、所定のアプリケーションは、印刷アプリに限定されず、印刷以外の機能を備えているアプリケーションプログラムであっても良い。
また、本実施形態では、近距離無線通信部110および近距離無線通信部157はBLEによって通信を行うものとして説明する。なお、本実施形態では、近距離無線通信部157が、後述のアドバタイズ情報を所定の間隔でブロードキャストするアドバタイザ(又はスレーブ)として機能し、近距離無線通信部110が、アドバタイズ情報を受信するスキャナ(又はマスタ)として機能する。また、通信部109および通信部156は無線LAN(Wi-Fi)によって通信を行うものとして説明する。ここで、BLE規格におけるアドバタイズ情報の送信及びBLE接続要求の受信の処理について説明する。本実施形態では、上述したように近距離無線通信部157がスレーブ機器として動作するため、近距離無線通信部157が上記処理を行うものとする。近距離無線通信部157は、2.4GHzの周波数帯を40チャネル(0~39ch)に分割して通信を行う。近距離無線通信部157は、そのうち、37~39番目のチャネルをアドバタイズ情報の送信やBLE接続要求の受信に利用し、0~36番目のチャネルをBLE接続後のデータ通信に利用している。図2では、縦軸が近距離無線通信部157の消費電力を、横軸が時間を示しており、1つのチャネルを利用してアドバタイズ情報を送信する際の消費電力を各処理別に示している。Tx205は、アドバタイズ情報をブロードキャストする処理である送信処理における総消費電力を、Rx206は、BLE接続要求を受信するための受信器を有効にしておく処理である受信処理における総消費電力を示している。送信電力202は送信処理による瞬間消費電力を示している。また、受信電力203は受信処理による瞬間消費電力を示している。また、マイコン動作電力201は、近距離無線通信部157内のマイコンが動作している場合の瞬間消費電力を示している。なお、Tx205とRx206の前後や間にもマイコンが動作しているのは、送信・受信処理の実行や停止のためには事前にマイコンが起動している必要があるからである。また、アドバタイズ情報の送信を複数チャネルで行う場合は、アドバタイズ情報の送信を行うチャネルの数だけ消費電力が増えることになる。また、マイコンが動作を行っておらず、近距離無線通信部157が省電力状態となっている間は、スリープ電力204が近距離無線通信部157の瞬間消費電力となる。このように、近距離無線通信部157は、所定のチャネルを用いて送信処理を行った後、同一のチャネルを用いて一定時間受信処理を行うことで、情報処理装置101からBLE接続要求が送信されるのを待つ。
また、近距離無線通信部157は、図3に示すように、アドバタイズ情報の送信処理と受信処理を、チャネル別に3回繰り返した後、マイコンの動作を停止させ一定時間省電力状態になる。以下、所定のチャネルによるアドバタイズ情報の送信処理と受信処理の組み合わせをアドバタイズと言う。また、所定のチャネルによってアドバタイズ情報を送信する時間間隔をアドバタイズ間隔という。なお、1回目のアドバタイズを行ってから省電力状態になるまでに繰り返すアドバタイズの回数は、3回以下であれば任意に変更可能である。また、図3ではアドバタイズ時のチャネルは37、38、39番目のチャネルの順番で順次使用しているが、この順番はランダムであってもよく、順番は1回目のアドバタイズと2回目のアドバタイズ、3回目以降のアドバタイズとでそれぞれ異なっていてもよい。
図9は、近距離無線通信部157が通信装置151の周辺にブロードキャストするアドバタイズ情報の構造の一例である。
近距離無線通信部157は、電力の供給が開始されると初期化処理を行い、アドバタイジング状態となる。近距離無線通信部157は、アドバタイジング状態となると、アドバタイズ間隔に基づいて定期的にアドバタイズ情報を周辺にブロードキャストする。アドバタイズ情報とは、基本的なヘッダ情報(当該アドバタイズ情報を送信する装置を識別するための識別情報等)を含む信号であり、ヘッダ901とペイロード902から構成される。情報処理装置101は、このアドバタイズ情報を受信することで、通信装置151の存在を認識することができる。さらに、情報処理装置101は、通信装置151にBLE接続要求を送信することで通信装置151とBLE接続することができる。ヘッダ901は、アドバタイズ情報のタイプやペイロード902の大きさの情報などを格納する領域である。ペイロード902は、識別情報としてのデバイス名903や搭載プロファイル情報、通信装置151とBLE接続するための接続情報904、アドバタイズ情報の送信電力(Tx Power)905等の情報を格納する。なお、通信装置の識別情報906をアドバタイズ情報に含めても良い。通信装置の識別情報906としては、通信装置のMACアドレスや、通信装置のサービス情報、通信装置内のアクセスポイントのSSID、パスワード等が該当する。
本実施形態では、近距離無線通信部157は、通信装置151の電源がONになった場合にアドバタイジング状態となり、アドバタイズ情報の送信を開始するものとする。ただし、近距離無線通信部157がアドバタイズ情報の送信を開始するタイミングは、上述の形態に限定されず、例えば、BLE機能を有効にするための所定の操作が行われたタイミング等であっても良い。
なお例えば、近距離無線通信部157は、第1アドバタイズ情報を送信し、第1アドバタイズ情報に対するスキャンレスポンスを情報処理装置101から受け取った場合、第1アドバタイズ情報と内容が異なる第2アドバタイズ情報を送信する形態であっても良い。なお例えば、第1アドバタイズ情報は、アドバタイズ情報の送信電力に関する情報や近距離無線通信部157の識別情報等を含むものとする。そして、第2アドバタイズ情報は、通信装置151の識別情報や、通信装置151が備えている機能やハードウェアに関する情報等を含むものとする。このような形態の場合、例えば印刷アプリは、第2アドバタイズ情報をハンドリングするものとして設計される。そのため、以下の説明において印刷アプリがハンドリングするアドバタイズ情報は、第2アドバタイズ情報であるものとする。
ここで、BLE規格におけるGATT(Generic Attribute Profile)通信の概要について説明する。GATTとは、BLE規格において情報の読み書き(送受信)を司るプロファイルである。
GATT通信においては、データの転送元と転送先に基づいて、GATTクライアントとGATTサーバの2つのロールが定義されている。
GATTクライアントはGATTサーバにリクエストを送信し、GATTサーバからの応答を受信する。本実施形態では、情報処理装置101がGATTクライアントとなる。GATTクライアントは、GATTサーバの近距離無線通信部内の記憶領域に保持されている情報の読み取り(リード)及び、当該記憶領域に対する情報の書き込み(ライト)を実行することが出来る。
GATTサーバは、GATTクライアントからの要求を受信すると、GATTクライアントに対して応答を返す。本実施形態では、通信装置151がGATTサーバとなり、情報処理装置101がGATTクライアントとなる。なお、GATTサーバは、GATTサーバの状態情報等の情報を格納するデバイスとして動作する。
次に、GATTのデータ形式について説明する。GATTのデータは、図10に示すような階層構造を持っており、サービス、キャラクタリスティック、ディスクリプタと呼ばれる3つの要素から構成される。ただし、ディスクリプタは存在していなくても良く、本実施形態では、近距離無線通信部157が構成するGATTデータにはディスクリプタは存在しないものとする。サービス、キャラクタリスティック、ディスクリプタは32桁で表現されるUUID(Universally Unique Identifier)で識別することができる。ここで言う、UUIDとは、ソフトウエア上でオブジェクトを一意に識別するための識別子として使用されるものである。UUIDは128ビットの数値だが、通常は16進数で550e8400-e29b-41d4-a716-446655440000のように表現される。なお、サービス、キャラクタリスティック、ディスクリプタには、Bluetooth SIG の標準で定義されているものやベンダー固有のもの等がある。ベンダー固有のもののUUIDは、上述のように32桁で表現されるが、Bluetooth SIG の標準で定義されているもののUUIDについては4桁で表現される。すなわち、例えば、Bluetooth SIG の標準で定義されているもののUUIDは、2A49のように表現される。
サービスは、GATTのデータ中のアトリビュートを共通区分ごとにグループ化したものであり、各サービスには1以上のキャラクタリスティックが含まれる。キャラクタリスティックには、キャラクタリスティック毎に単一の値が設定されている。ディスクリプタは、キャラクタリスティックに付加情報が必要な際に用いられる属性値が設定されている。サービス、キャラクタリスティック、ディスクリプタには、それぞれ、GATTクライアントにリードやライトを許可するか否かを示す設定値であるリード・ライトの属性を設定することが出来る。
GATTクライアントは、サービス、キャラクタリスティックそれぞれのUUIDを指定することで、指定したキャラクタリスティックに設定されている値に対して、リード・ライトを実行することが出来る。ただし、リード・ライトが実行できるか否かは、各サービス、キャラクタリスティックに設定されているリード・ライト属性に基づく。
近距離無線通信部157によって構築されているGATTデータの例を、図11に示す。図11のGATTデータにおいて、「Service UUID」は、各サービスに割り振られているUUIDを示す。「Service名」は、各サービスの名前を示す。「Charactaristic UUID」は、各キャラクタリスティックに割り振られているUUIDを示す。「Charactaristic名」は、各キャラクタリスティックの名前を示す。「Service リード可能」は、各サービスに関する値を情報処理装置101がリード(読み取り)可能か否かを示す。「Service ライト可能」は、各サービスに関する値を情報処理装置101がライト(書き込み)可能か否かを示す。「Charactaristic リード可能」は、各キャラクタリスティックに関する値を情報処理装置101がリード可能か否かを示す。「Charactaristic ライト可能」は、各キャラクタリスティックに関する値を情報処理装置101がライト(書込み)可能か否かを示す。「Charactaristic インディケイト可能」は、各キャラクタリスティックに関する値を通信装置151が更新した場合に情報処理装置101へインディケイト(通知)可能か否かを示す。「ペアリング必要」は、各キャラクタリスティックに関する値をペアリング済みでなければ情報処理装置101にライトもしくはリードを許可しないか否かを示す。情報処理装置101は、「Service リード可能」がリード可能(○)を示し且つ「Charactaristic リード可能」がリード可能を示(○)している場合、対応するキャラクタリスティックに関する値を読み取ることができる。また、情報処理装置101は、「Service リード可能」がリード可能(○)を示し且つ「Charactaristic リード可能」がリード不可能(空欄)を示している場合、対応するキャラクタリスティックに関する値を読み取ることができない。「値」は、各キャラクタリスティックに設定された値を示す。また、「ペアリング必要」がペアリング不必要(空欄)を示している場合、情報処理装置101は、通信装置151とペアリングをしていない状態でも、対応するキャラクタリスティックに関する値を読み書きすることができる。一方、「ペアリング必要」がペアリング必要(○)を示している場合、情報処理装置101は、通信装置151とペアリングをしている状態でなければ、対応するキャラクタリスティックに関する値を読み書きすることができない。
情報処理装置101は、通信装置151とBLEによってGATT通信を行うためには、通信装置151が保持する上記のGATTデータの構成に関する情報(以下、GATT構成データ)を把握する必要がある。GATT構成データとは例えば、GATTデータ内のサービスの数、キャラクタリスティックの数、それぞれのUUIDの値、リードの可否を示す属性等であり、各キャラクタリスティックの値は含まれない。通信装置151が保持するGATT構成データを取得する処理を、サービスディスカバリという。
ところで、サービスディスカバリが完了する(通信装置151が保持するGATT構成データが完全に情報処理装置101によって取得される)までにはいくらかの時間を要する。また本実施形態では例えば、通信装置151に対する印刷データの送信指示がユーザから行われた場合に情報処理装置101が通信装置151とBLEによるGATT通信を行う。ユーザ指示に応じて情報処理装置101が通信装置151とBLEによるGATT通信を行おうとする度に、サービスディスカバリを完了させる形態は、ユーザ指示に応じたGATT通信が実行されるまでに時間がかかるという課題がある。
そこで本実施形態では、情報処理装置101は、既にサービスディスカバリを完了させており、通信装置151のGATT構成データを把握している場合は、サービスディスカバリを最後まで実行しない。またさらに本実施形態では、情報処理装置101は、ユーザからサービスディスカバリの実行を指示されることなく、最初のサービスディスカバリを自動で完了させる。これにより、ユーザ指示に応じて情報処理装置101が通信装置151とBLEによるGATT通信を行おうとする場合、ユーザ指示に応じたGATT通信を迅速に開始させることができる。
図12は、情報処理装置101と通信装置151との間における、GATT構成データをキャッシュするための処理を示すシーケンス図である。なおこの処理シーケンスが示す通信装置151の処理は、CPU154が、ROM152又は通信装置151が備えるHDD(不図示)に記憶されている制御プログラムをRAM153にロードし、その制御プログラムを実行することで実現される。また、情報処理装置101の処理は、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムや印刷用アプリをRAM105にロードし、その制御プログラムを実行することで実現される。また情報処理装置101の処理は、情報処理装置101において印刷用アプリが起動したことに応じて自動で実行される。すなわち、印刷用アプリが起動すると、情報処理装置101は、印刷用アプリによるアドバタイズ情報の受信を開始する。
以下の説明において、通信装置151がアドバタイザであり、情報処理装置101がスキャナであるものとする。
S1201~S1203で、通信装置151内の近距離無線通信部157は、アドバタイズ情報の送信を行う。情報処理装置101は、近距離無線通信部110が近距離無線通信部157から送信されたアドバタイズ情報を受信することで、通信装置151の存在を認識する。なお情報処理装置101は、S1201~S1203でアドバタイズ情報を受信した場合に、S1204以降の処理を実行するか否かを判定しても良い。すなわち情報処理装置101は、受信されたすべてのアドバタイズ情報に対して、S1204以降の解析を行わなくともよい。具体的には情報処理装置101は、アドバタイズ情報に、印刷用アプリに対応する情報が含まれるか否かを判定する。印刷用アプリに対応する情報とは例えば、アドバタイズ情報の送信元の装置が印刷機能を有していることを示す情報や、印刷用アプリを提供するベンダーを示す情報である。また例えば、アドバタイズ情報の送信元の装置が印刷用アプリによって印刷指示が可能な機種であることを示す情報である。情報処理装置101は、アドバタイズ情報を受信して通信装置151を認識すると、受信したアドバタイズ情報に含まれる個体識別情報を取得する。本実施例では個体識別情報は、BDアドレス(Bluetooth Device Address)と呼ばれるBluetooth対応デバイスを識別するための一意のアドレスを使用しているがこの限りではない。例えば、通信装置151のMACアドレスやシリアルナンバー、デバイス名、型番、ベンダーの独自フォーマットに従った情報などでも構わない。
S1204では、情報処理装置101は、S1201~S1203で取得したアドバタイズ情報の送信元の装置が、情報処理装置101が取得済みのGATT構成データに対応する装置か否かを判定する。情報処理装置101が取得済みのGATT構成データに対応する装置とは例えば、情報処理装置101が過去にBLEによって接続したことがある装置である。また情報処理装置101が取得済みのGATT構成データに対応する装置とは例えば、過去にBLEによって接続したことがある装置とは異なる装置であるが、過去にBLEによって接続したことがある装置が有する識別情報と同じ識別情報を有する装置である。ここで識別情報とは例えば、型番、名前、ベンダー名、サービス名、MACアドレスである。S1204では具体的には、情報処理装置101は、上述のようにして新たに取得した個体識別情報と、情報処理装置101が備えるメモリ(ROM104等)に保存されており、且つ情報処理装置101が取得済みのGATT構成データに対応する装置から取得済みである個体識別情報とを比較する。比較した結果、2つの個体識別情報が一致した場合は、S1204の判定処理においてYESと判定される。そして、その場合は、S1201~S1203で取得したアドバタイズ情報の送信元の装置(あるいは、当該装置に対応する装置)に対するサービスディスカバリを既に実行しているため、新たにサービスディスカバリを実行することなく、処理を終了する。一方、2つの個体識別情報が一致しなかった場合は、S1204の判定処理においてNOと判定され、S1205以降の処理が実行される。なお、新たに取得した個体識別情報が通信装置151においてランダムに生成されたBDアドレスである場合がある。その場合は、取得されたBDアドレスが、情報処理装置101が備えるメモリに保存されているIRK(Identity Resolution Key)と呼ばれるキーを使用して復号可能か否かにより、S1204による判定が実行されても良い。復号可能である場合、S1204の判定処理においてYESと判定され、復号可能でない場合、S1204の判定処理においてNOと判定される。
S1205では、情報処理装置101は、BLEによって接続したことがないと判定された装置(ここでは通信装置151)とBLEによって接続するための処理を実行する。具体的には、近距離無線通信部110が、BLEによるネットワーク接続を確立する接続イベントに遷移するための要求であるCONNECT_REQを送信する。近距離無線通信部157がCONNECT_REQを受信すると、情報処理装置101及び通信装置151は、接続イベントに遷移する準備をする。具体的には、近距離無線通信部110及び近距離無線通信部157が、それぞれCPU103及びCPU154にGATT通信のための接続処理が完了した旨を通知する。
その後、情報処理装置101及び通信装置151はそれぞれスキャナとアドバタイザからマスタとスレーブに遷移し、マスタである情報処理装置101とスレーブである通信装置151は、GATT通信のための接続(BLE接続)を確立する。
上述したように、情報処理装置101は、GATT通信により通信装置151のGATTデータにアクセスする前に、通信装置151がどのような構成のGATTデータを有しているかを把握する必要がある。
そこで情報処理装置101は、S1205でBLE接続が確立された後に、S1206で、サービスディスカバリを開始する。具体的には情報処理装置101は、通信装置151のGATT構成データを要求するためのディスカバリ要求を通信装置151へと送信する。これにより、ディスカバリ要求の応答として、通信装置151は、情報処理装置101へGATT構成データの一部を送信する。受信された一部のGATT構成データに基づき、情報処理装置101は、通信装置151のGATTデータ内の、ハッシュ値と呼ばれる種類の情報が格納されている領域を特定し、ハッシュ値のリードを行う。なおハッシュ値は、図11のCharacteristic UUIDが0x2B2AのDatabase Hashキャラクタリスティックに格納されている値である。通信装置151は、Database Hashキャラクタリスティックの値として、通信装置151があらかじめGATTデータの構成から算出したハッシュ値を格納している。すなわちハッシュ値とは、通信装置151のGATTデータの構成に応じて一意に定められる値である。
なお、情報処理装置101は、過去に情報処理装置101がBLEによって接続したことがある装置からリードしたハッシュ値を、情報処理装置101が備えるメモリ(ROM104等)に格納している。そこでS1207で、情報処理装置101は、S1206でリードしたハッシュ値が、過去にリードしたハッシュ値(情報処理装置101が備えるメモリに格納されているハッシュ値)と一致するものがあるかを比較する。すなわち情報処理装置101は、通信装置151が、過去に情報処理装置101がBLEによって接続したことがある端末か否かを判定する。このとき情報処理装置101は、ハッシュ値だけでなく、通信装置151のBDアドレスなどの個体識別情報等の他の情報を判定条件に加えてもよい。
S1207でNOと判定された場合、情報処理装置101は、通信装置151のGATT構成データの残りを把握するために、サービスディスカバリを継続する。そのためS1208で情報処理装置101は、通信装置151のGATT構成データを要求するためのディスカバリ要求を通信装置151へと送信する。当該要求を受け付けた通信装置151は、S1209で、情報処理装置101へGATT構成データの残りを送信する。なお、ディスカバリ要求の送受信及びGATT構成データの送受信は、GATTデータ内のサービス、キャラクタリスティック、ディスクリプタの数の分だけ繰り返される。そのため、S1210では、すべてのGATT構成データの送信が完了されるまで、ディスカバリ要求の送受信及びGATT構成データの送受信が繰り返される。
すべてのGATT構成データの送信が完了されると、S1211で、情報処理装置101は、通信装置151のGATT構成データをキャッシュとして情報処理装置101が備えるメモリに格納(保存)する。このとき情報処理装置101は、通信装置151のGATT構成データのキャッシュと通信装置151から得たハッシュ値とを対応付けてメモリへの格納を行う。なお情報処理装置101は、通信装置151のMACアドレスなどの個体識別情報等の他の情報をさらに対応付けてメモリへの格納を行ってもよい。また、情報処理装置101は、キャッシュした時刻の情報を対応付けてメモリへの格納を行ってもよい。なお、サービスディスカバリは、キャラクタリスティックの値を取得する処理ではないため、情報処理装置101と通信装置151との間でペアリングが実行されていない状態でも実行可能な処理である。
なお、S1207でYESと判定された場合、情報処理装置101は、通信装置151のGATT構成データを既にキャッシュしていることになるため、S1208~S1211までの処理を省略する。すなわち情報処理装置101は、サービスディスカバリを完了させず、中断する。
通信装置151のGATT構成データを取得することにより、以降、情報処理装置101は、通信装置151との任意のGATT通信を実行することが可能となる。そのため、情報処理装置101は、S1212で、通信装置151との任意のGATT通信を実行する。
GATT通信が完了した後、情報処理装置101は、S1213にて、解放要求を送信する。解放要求を受け取った通信装置151は、S1214にて解放応答を送信し、装置間のBLE接続を終了する。装置間のBLE接続が終了すると、情報処理装置101と通信装置151はそれぞれスキャナとアドバタイザに戻り、通信装置151は、アドバタイズ情報の送信を再開する。
図4は、情報処理装置101が実行する、GATT構成データをキャッシュするための処理を示すフローチャートである。本処理は、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムや印刷用アプリをRAM105にロードし、それらのプログラムを実行することで実現される。また本処理は、情報処理装置101において印刷用アプリの起動が指示されたことに基づいて開始される。
S401では、CPU103は、印刷用アプリをフォアグラウンドで起動する。
S402では、CPU103は、アドバタイズ情報を受信する。
S403では、CPU103は、受信されたアドバタイズ情報の送信元の装置が、情報処理装置101が取得済みのGATT構成データに対応する装置か否かを判定する。CPU103は、NO判定の場合、S404に進み、YES判定の場合、受信されたアドバタイズ情報の送信元の装置に対するサービスディスカバリを実行することなく、S402で他の装置からのアドバタイズ情報の受信を待つ。本処理は、S1204の処理に対応する。
S404では、CPU103は、受信されたアドバタイズ情報の送信元の装置とのBLE接続を確立し、サービスディスカバリを開始する。本処理は、S1205の処理に対応する。
S405では、CPU103は、受信されたアドバタイズ情報の送信元の装置からハッシュ値の取得を行う。本処理は、S1206の処理に対応する。
S406では、CPU103は、S405で取得されたハッシュ値が、既に取得済みのハッシュ値と同じか否かを判定する。CPU103は、NO判定の場合、S407に進み、YES判定の場合、受信されたアドバタイズ情報の送信元の装置に対するサービスディスカバリを中断し、S408に進む。本処理は、S1207の処理に対応する。なお、既に取得済みのハッシュ値がない場合は、本判定はNO判定として扱われる。
S407では、CPU103は、サービスディスカバリを継続し、残りのGATT構成データを取得し、キャッシュする。本処理は、S1208~S1211の処理に対応する。
S408では、CPU103は、受信されたアドバタイズ情報の送信元の装置とのBLE接続を解除する。本処理は、S1213、S1214の処理に対応する。その後CPU103は、S402で他の装置からのアドバタイズ情報の受信を待つ。
このように、本実施形態では情報処理装置101は、印刷用アプリが起動した後のユーザ操作無しに、自動で情報処理装置101と通信装置151との間におけるBLE接続を確立し、自動でサービスディスカバリを実行する。そして、情報処理装置101は、自動で、通信装置151のGATTデータ構造に関する情報をキャッシュしておく。そのため本実施形態では、情報処理装置101と通信装置151との間のGATT通信を始めて指示した場合であっても、サービスディスカバリの少なくとも一部を省略させることができ、ユーザが指示するGATT通信を迅速に開始することができる。
なお印刷用アプリが自動で情報処理装置101と通信装置151との間におけるBLE接続を確立し、自動でサービスディスカバリを実行するタイミングは、上述の形態に限定されない。情報処理装置101と通信装置151との間におけるBLE接続を確立させるための指示(ハンドオーバーの指示等)をユーザが意図して行う前であれば、どのタイミングであってもかまわない。例えば、印刷用アプリに対して、印刷対象の画像を選択するための画面を表示するための指示が行われたことに応じて、上記の処理が自動で実行されても良い。
また情報処理装置101は、複数の装置からアドバタイズ情報を受信する場合は、複数の装置それぞれに対して、サービスディスカバリを行い、複数の装置それぞれのGATTデータ構造に関する情報をキャッシュして良い。
また本実施形態では、S405~S407の処理は、情報処理装置101のOSによって実行される処理であるものとする。すなわちS404にて、情報処理装置101のOSに対し、印刷用アプリによりBLE接続の確立が指示された場合、ハッシュ値の取得やサービスディスカバリを、OSが自動で実行するものとする。しかしながらこの形態に限定されず、S405~S407の処理が例えば印刷用アプリの指示のもと実行されても良い。
本実施形態では上述のようにして、印刷アプリが自動で、情報処理装置101にサービスディスカバリを実行させ、通信装置151のGATTデータ構成に関する情報をキャッシュしておく。これにより、以後、ユーザによって情報処理装置101と通信装置151との間のBLE接続の確立が指示されたとしても、サービスディスカバリの実行を省略することができる。ひいては、BLE接続の確立によって実行される処理を、迅速に開始することができる。
本実施形態では、BLE接続の確立によって実行される処理の一例として、印刷アプリに対して通信装置151の情報を登録する登録機能が実行される。図13は、情報処理装置101と通信装置151との間における、登録機能を示すシーケンス図である。なおこの処理シーケンスが示す通信装置151の処理は、CPU154が、ROM152又は通信装置151が備えるHDD(不図示)に記憶されている制御プログラムをRAM153にロードし、その制御プログラムを実行することで実現される。また、情報処理装置101の処理は、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムや印刷用アプリをRAM105にロードし、その制御プログラムを実行することで実現される。また情報処理装置101の処理は、情報処理装置101において印刷用アプリが起動している状態で開始されるものとする。また本処理は、情報処理装置101と通信装置151との間でBLEのペアリングが実行されていない状態で開始されるものとする。
以下の説明においても、通信装置151がアドバタイザであり、情報処理装置101がスキャナであるものとする。
S1301では、情報処理装置101は、ユーザから、登録機能の実行指示を受け付ける。具体的には例えば、印刷アプリによって表示される画面において、登録機能の実行指示のための操作(ボタン押下等)がユーザから受け付けられる。これにより、情報処理装置101は、印刷用アプリによるアドバタイズ情報の受信を開始する。
S1302~S1304で、通信装置151内の近距離無線通信部157は、アドバタイズ情報の送信を行う。情報処理装置101は、近距離無線通信部110が近距離無線通信部157から送信されたアドバタイズ情報を受信することで、通信装置151の存在を認識する。なおこのとき、情報処理装置101は、通信装置151からだけでなく、通信装置151以外の装置からも、アドバタイズ情報を受信することがある。
S1305で情報処理装置101は、登録機能の対象となる装置の選択を受け付けるための選択画面を表示部108に表示する。具体的には情報処理装置101は、S1302~S1304で受信したアドバタイズ情報の送信元の装置の識別情報のリストを表示部108に表示する。なお識別情報は、アドバタイズ情報に含まれているものであり、例えばBDアドレスやMACアドレス、IPアドレス、型番、機種名である。そして、情報処理装置101は、登録機能の対象となる装置の選択を、選択画面を介してユーザから受け付け、選択された装置を登録機能の対象として特定する。以下では、登録機能の対象として、通信装置151が選択されたものとして説明する。なお情報処理装置101は、S1302~S1304の間に、1つの装置からしかアドバタイズ情報を受信しなかった場合は、選択画面を表示部108に表示することなく、当該1つの装置を登録機能の対象として特定しても良い。
S1306で情報処理装置101は、通信装置151とBLEによって接続するための処理を実行する。具体的には、近距離無線通信部110が、BLEによるネットワーク接続を確立する接続イベントに遷移するための要求であるCONNECT_REQを送信する。
その後、情報処理装置101及び通信装置151はそれぞれスキャナとアドバタイザからマスタとスレーブに遷移し、マスタである情報処理装置101とスレーブである通信装置151は、GATT通信のための接続(BLE接続)を確立する。
情報処理装置101は、S1306でBLE接続が確立された後に、S1307で、サービスディスカバリを開始する。具体的には情報処理装置101は、通信装置151のGATT構成データを要求するためのディスカバリ要求を通信装置151へと送信する。これにより、ディスカバリ要求の応答として、通信装置151は、情報処理装置101へGATT構成データの一部を送信する。情報処理装置101は、受信された一部のGATT構成データに基づき、通信装置151のGATTデータ内の、ハッシュ値が格納されている領域を特定できるか否かを判定する。そして情報処理装置101は、YESと判定した場合、特定した領域に含まれる情報を要求することで、ハッシュ値のリードを行う。一方、情報処理装置101は、NOと判定した場合、ハッシュ値が格納されている領域を特定できるGATT構成データを受信するまで、ディスカバリ要求及び一部のGATT構成データの受信を繰り返す。
なお、情報処理装置101は、過去に情報処理装置101がBLEによって接続したことがある端末から取得したハッシュ値を、情報処理装置101が備えるメモリ(ROM104等)に格納している。そこでS1308で、情報処理装置101は、S1306でリードしたハッシュ値が、過去に取得したキャッシュ済みのハッシュ値(情報処理装置101が備えるメモリに格納されているハッシュ値)と一致するものがあるかを比較する。このとき情報処理装置101は、ハッシュ値だけでなく、通信装置151のMACアドレスなどの個体識別情報等の他の情報を判定条件に加えてもよい。
なお本実施形態では情報処理装置101は、図12に示したように、自動で予めサービスディスカバリを行っている。そのため、登録対象の装置が登録機能の直前にBLEを起動させた等のケースでなければ、情報処理装置101は、S1308の判定でYESと判定し、サービスディスカバリの後段の処理を省略することができる。ひいては、BLE接続を用いた処理をユーザが意図して実行する時(BLEを用いた登録機能を実行する時)に、情報処理装置101は、ユーザを待たせることなく、当該処理を迅速に開始することができる。なお情報処理装置101は、S1308の判定でNOと判定された場合は、図12に示すようにして残りのサービスディスカバリが実行し、サービスディスカバリを完了させた後、S1309の処理に進む。
なお上述では、情報処理装置101が、S1306でBLE接続が確立された後に、S1307で、サービスディスカバリを開始し、ハッシュ値の読み込みまでを行う形態を説明した。このように、サービスディスカバリを開始してハッシュ値の取得を試みる方法を、以下、第1取得方法という。しかしながら、第1取得方法を実行する形態に限定されない。他の取得方法(第2取得方法)でハッシュ値を取得する形態について以下に具体的に説明する。
情報処理装置101は、S1307で、サービスディスカバリを開始せず、キャッシュ済みのGATT構成データに基づいて、当該GATT構成データに対応するGATTデータのうちハッシュ値が含まれていた領域を特定するための識別子を特定する。当該識別子は例えば、ハンドル値である。そして情報処理装置101は、通信装置151に対し、特定した識別子に対応する領域に含まれる値を直接要求し、当該値を取得する。このようにして、サービスディスカバリを開始せずにハッシュ値の取得を試みる方法を、以下、第2取得方法という。このとき情報処理装置101は、情報処理装置101がキャッシュ済みのGATT構成データと同じGATT構成データを通信装置151が有する場合は、キャッシュ済みのハッシュ値と同じ値を取得することになる。一方、情報処理装置101は、情報処理装置101がキャッシュ済みのGATT構成データと同じでないGATT構成データを通信装置151が有する場合は、キャッシュ済みのハッシュ値と異なる値を取得することになる。なおこのとき取得される値は、ハッシュ値ではあるがキャッシュ済みのハッシュ値と異なる値である場合もあるし、そもそもハッシュ値でない場合もある。そして情報処理装置101は、S1308では、このとき取得された情報と、キャッシュ済みのハッシュ値とが一致するか否かを判定する。そして情報処理装置101は、YESと判定された場合、サービスディスカバリを完全に省略する。一方、情報処理装置101は、NOと判定された場合、サービスディスカバリを完了させた後、S1309の処理に進む。なお情報処理装置101は、キャッシュ済みのGATT構成データが複数ある場合、GATT構成データに基づく識別子の特定や当該識別子による情報の取得を、YES判定となるまで、最大でキャッシュ済みのGATT構成データの数分、複数回行っても良い。あるいは情報処理装置101は、キャッシュ済みのGATT構成データが複数ある場合、キャッシュ済みの複数のGATT構成データのうちBLE接続した通信装置151に対応するGATT構成データのみに基づいて上述の特定と取得を行っても良い。BLE接続した通信装置151に対応するGATT構成データとは、言い換えれば、BLE接続した通信装置151のGATT構成データである可能性が高いGATT構成データである。具体的には例えば、BLE接続した通信装置151と同じ識別子を有する装置から取得されたGATT構成データである。識別子は例えば、装置の名称や機種名、装置のベンダー、装置が提供するサービス等を示す情報である。この形態であれば、キャッシュ済みのGATT構成データを有する装置に対するサービスディスカバリを完全に省略することが可能である。なお第2取得方法において取得される情報は、ハッシュ値でなくとも良い。例えば情報処理装置101は、キャッシュ済みのGATT構成データに基づいて、当該GATT構成データに対応するGATTデータのうちハッシュ値と異なる特定の値が含まれていた領域を特定するための識別子を特定しても良い。そして情報処理装置101は、通信装置151に対し、特定した識別子に対応する領域に含まれる値を直接要求し、当該値を取得しても良い。そして情報処理装置101は、このとき取得された情報と、キャッシュ済みの特定の値とが一致するか否かを判定しても良い。しかしながら、ハッシュ値以外の値は、GATTデータの構成が変わっていないにもかかわらず変更される可能性があるため、正確な判定が実行されるためには、ハッシュ値が用いられることが好ましい。
通信装置151のGATT構成データを使用することにより、情報処理装置101は、通信装置151との任意のGATT通信を実行することが可能となる。そこで情報処理装置101は、S1309で、通信装置151のGATT構成データに基づくGATT通信により、各種情報の通信を行う。具体的には情報処理装置101は、APモード1として動作している通信装置151とWi-Fi接続するための第1の接続情報や、APモード2として動作している通信装置151とWi-Fi接続するための第2の接続情報、通信装置151の識別情報等を取得する。なおAPモードとは、情報処理装置101内の所定のアクセスポイント(AP)を有効化し、情報処理装置101がAPとして動作するモードである。接続情報とは、具体的には例えば、SSIDやパスワードである。また、通信装置151の識別情報は、例えば、通信装置151のシリアルナンバーや、通信装置151のMACアドレス、通信装置151のBonjour名等である。なお情報処理装置101は、第2の接続情報を、S1309におけるBLE通信ではなく、後述のS1313におけるWi-Fi通信によって取得しても良い。なお情報処理装置101は、通信装置151とのペアリングをまだ行っていない場合は、上述の各種情報を取得する前に、通信装置151とのペアリングを行っても良い。また情報処理装置101は、上述の各種情報を取得した後、通信装置151をAPモード1として動作させるための指示を、GATT通信により通信装置151に送信する。これにより、通信装置151は、APモード1としての動作を開始する。なお本実施形態では、通信装置151は、APモード1として動作する場合、Wi-Fi接続には2.4GHzの周波数帯を用いるものとするが、5GHzの周波数帯が用いても良い。
S1310では、情報処理装置101は、解放要求を送信する。解放要求を受け取った通信装置151は、S1311にて解放応答を送信し、装置間のBLE接続を終了する。装置間のBLE接続が終了すると、情報処理装置101と通信装置151はそれぞれスキャナとアドバタイザに戻り、通信装置151は、アドバタイズ情報の送信を再開する。なおここでは、GATT通信後にBLE接続を解除する形態を説明したが、この形態に限定されない。このとき、S1310とS1311の処理が省略され、BLE接続が維持されても良い。
S1312では、情報処理装置101は、S1309で取得した第1の接続情報を用いることで、APモード1として動作している通信装置151と情報処理装置101との間のWi-Fi接続を確立する。なお、情報処理装置101は、APモード1として動作している通信装置151と情報処理装置101との間のWi-Fi接続を確立する前に、当該Wi-Fi接続を確立する前の情報処理装置101のWi-Fi設定を保存しておく。
S1313では、情報処理装置101は、通信装置151を印刷用アプリ上に登録するためのWi-Fi通信を実行する。具体的にはまず、情報処理装置101は、通信装置151を印刷用アプリ上に登録するための情報を、Wi-Fi接続を介して通信装置151から取得する。通信装置151を印刷用アプリ上に登録するための情報とは、例えば、通信装置151のケーパビリティに関する情報や、通信装置151のシリアルナンバー、MACアドレス等である。また、通信装置151のケーパビリティに関する情報とは、例えば、通信装置151が印刷に使用可能な記録媒体に関する情報や、通信装置151が両面印刷を実行可能か否かを示す情報、通信装置151がカラー印刷を実行可能か否かを示す情報である。印刷用アプリ上に通信装置151が登録されることで、ユーザからジョブの送信指示を受け付けるためのボタンが有効化される。すなわち、情報処理装置101は、印刷用アプリ上に登録された通信装置151に対し、印刷用アプリによってジョブを送信することができる。また、印刷用アプリは、受信された通信装置151のケーパビリティに関する情報に基づいて、印刷設定画面を表示することができる。そして、印刷用アプリは、印刷設定画面において入力された印刷設定に基づいて、印刷ジョブを生成することができる。
その後Wi-Fi通信において、情報処理装置101は、APモード1としての動作を停止させるための指示を、通信装置151に、Wi-Fi接続を介して送信する。通信装置151は、当該指示を受信することにより、APモード1としての動作を停止し、通信装置151のWi-Fi設定を、APモード1として動作する前の状態に戻す。なおこのとき、情報処理装置101も、情報処理装置101のWi-Fi設定を、S1312にてWi-Fi接続を確立する前の状態に戻す。具体的には、CPU103は、S1312で保存した情報に基づき、情報処理装置101のWi-Fiの接続先を、S1312にてWi-Fi接続を確立する前の接続先に戻す。なお情報処理装置101は、S1312にてWi-Fi接続を確立する前に他のWi-Fi接続が確立されていなかった場合は、単に、通信装置151と情報処理装置101との間のWi-Fi接続を切断する。
このようにして、印刷アプリ上に、通信対象の通信装置151を登録することで、以後、情報処理装置101は、通信対象の通信装置151に対して、ジョブを送信することが可能となる。なお登録機能によって、通信装置151はAPモード2としての動作を開始する。そのため情報処理装置101は、ユーザからジョブの送信が指示された場合、第2の接続情報を用いて、APモード2として動作する通信装置151とWi-Fi接続し、当該Wi-Fi接続を介してジョブを通信装置151に送信する。
図5は、情報処理装置101が実行する登録機能を示すフローチャートである。本処理は、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムや印刷用アプリをRAM105にロードし、それらのプログラムを実行することで実現される。また本処理は、情報処理装置101において印刷用アプリが起動している状態で開始されるものとする。また本処理は、情報処理装置101と通信装置151との間でBLEのペアリングが実行されていない状態で開始されるものとする。
S501では、CPU103は、ユーザから、登録機能の実行指示を受け付ける。本処理は、S1301の処理に対応する。
S502では、CPU103は、アドバタイズ情報を受信する。なおこのとき、情報処理装置101は、通信装置151からだけでなく、通信装置151以外の装置からも、アドバタイズ情報を受信することがある。本処理は、S1302~S1304の処理に対応する。
S503では、CPU103は、登録機能の対象となる装置の選択を受け付けるための選択画面を表示部108に表示する。本処理は、S1305の処理に対応する。
S504では、CPU103は、選択画面に対して行われた入力に基づき、登録機能の対象となる装置を特定する。
S505では、CPU103は、S504で特定された登録機能の対象となる装置とのBLE接続を確立し、サービスディスカバリを開始する。本処理は、S1306の処理に対応する。
S506では、CPU103は、S504で特定された登録機能の対象となる装置からハッシュ値の取得を行う。本処理は、S1307の処理に対応する。
S507では、CPU103は、S506で取得されたハッシュ値が、既に取得済みのハッシュ値と同じか否かを判定する。CPU103は、NO判定の場合、S508に進み、YES判定の場合、S504で特定された登録機能の対象となる装置に対するサービスディスカバリを中断し、S509に進む。本処理は、S1308の処理に対応する。
S508では、CPU103は、サービスディスカバリを継続し、残りのGATT構成データを取得し、キャッシュする。
S509では、CPU103は、S504で特定された登録機能の対象となる装置のGATT構成データに基づき、登録機能を実行する。本処理は、S1309~S1313の処理に対応する。
このように本実施形態では、情報処理装置101が予め自動でサービスディスカバリを行っている。そのため、登録機能のようなGATT通信を含む機能において、情報処理装置101と通信装置151との間でBLEのペアリングが実行されていない状態であっても、少なくとも一部のサービスディスカバリを省略できる。ひいては、GATT通信を含む機能を迅速に進めることができる。
なお上述では、GATT通信を含む機能として、登録機能を説明したが、これに限定されない。ユーザの指示に応じてGATT通信が行われる機能であれば、いずれの機能であっても良い。
例えば、GATT通信を含む機能として、ハンドオーバー機能が実行されても良い。ハンドオーバー機能は、ユーザからジョブの送信が指示された場合に実行される処理である。ハンドオーバー機能において、情報処理装置101は、通信装置151とBLE接続を確立し、GATT通信によって通信装置151とWi-Fi接続するための情報(例えば上述の第1の接続情報)を受信する。そして情報処理装置101は、受信した情報を用いて、通信装置151とWi-Fi接続し、当該Wi-Fi接続を介してジョブを通信装置151に送信する。このようにハンドオーバー機能においても、本発明を適用することで、サービスディスカバリを省略することができる。
また例えば、GATT通信を含む機能として、Wi-Fiのセットアップ機能が実行されても良い。Wi-Fiのセットアップ機能において、情報処理装置101は、通信装置151とBLE接続を確立し、GATT通信によって通信装置151に対して、外部アクセスポイントとWi-Fi接続するための情報を送信する。これにより、通信装置151は、当該情報を用いて、外部アクセスポイントとWi-Fi接続する。このとき通信装置151に接続させる外部アクセスポイントは、情報処理装置101がWi-Fi接続している外部アクセスポイントであっても良いし、通信装置151が接続可能な外部アクセスポイントのリストから選択されたアクセスポイントであっても良い。後者の場合、情報処理装置101は、GATT通信によって、通信装置151が接続可能な外部アクセスポイントのリストを通信装置151から取得し、取得したリストを表示部に108に表示することで、選択を受け付ける。このようにWi-Fiのセットアップ機能においても、本発明を適用することで、少なくとも一部のサービスディスカバリを省略することができる。
また本実施形態では、S506~S508の処理は、情報処理装置101のOSによって実行される処理であるものとする。すなわちS505にて、情報処理装置101のOSに対し、印刷用アプリによりBLE接続の確立が指示された場合、ハッシュ値の取得やサービスディスカバリを、OSが自動で実行するものとする。しかしながらこの形態に限定されず、S506~S508の処理が例えば印刷用アプリの指示のもと実行されても良い。
(第2実施形態)
上述したように情報処理装置101は、自動でGATT構成データを取得する処理においては、アドバタイズ情報を受信した場合、当該アドバタイズ情報の送信元の装置から既にGATT構成データを取得しているか否かを判定する。そして情報処理装置101は、当該アドバタイズ情報の送信元の装置から既にGATT構成データを取得している場合は、ハッシュ値やGATT構成データの取得を行わない。しかしながら、通信装置151において、例えばファームアップデート等により、GATTデータの構造が変更されることがある。GATTデータの構造が変更された場合、情報処理装置101においてキャッシュしていた情報が使えなくなってしまう。そして、GATT構成データがキャッシュされてから時間が経過している場合、GATTデータの構造が変更されている可能性が高い。そこで本実施形態では、GATT構成データをキャッシュしてから一定時間経過している場合、ハッシュ値の取得やGATT構成データのキャッシュを再度実行する形態について説明する。なお、特に記載しない限り、本実施形態の通信システムの構成は、第1実施形態の通信システムの構成と同様であるものとする。
図6は、情報処理装置101が実行する、GATT構成データをキャッシュするための処理を示すフローチャートである。本処理は、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムや印刷用アプリをRAM105にロードし、それらのプログラムを実行することで実現される。また本処理は、情報処理装置101において印刷用アプリの起動が指示されたことに基づいて開始される。
S601~S608までの処理は、S401~S408までの処理と同様であるため説明を省略する。なおS607では、GATT構成データに加え、GATT構成データを取得した時間に関する情報もキャッシュされるものとする。
S603がNO判定だった場合に実行されるS609では、CPU103は、S602で受信されたアドバタイズ情報の送信元の装置からGATT構成データを取得してから、所定の時間が経過したか否かを判定する。所定の時間とは例えば、一か月に相当する時間等である。CPU103は、YES判定の場合、S604以降の処理を実行する。すなわちCPU103は、S602で受信されたアドバタイズ情報の送信元の装置からハッシュ値を取得し、当該装置のGATT構成データを取得済みかどうかを詳細に確認する。そしてCPU103は、時間経過により当該装置のGATT構成データが変更されていたら、改めて当該装置からGATT構成データを取得する。なおこの時CPU103は、当該装置から以前に取得されて(最新でない)GATT構成データを破棄しても良い。一方、NO判定の場合、S602に進み、当該装置から新たにハッシュ値やGATT構成データを取得することなく、他の装置からのアドバタイズ情報の受信を待つ。
このような形態とすることで、前回GATT構成データを取得してから時間が経過しており、通信装置151のGATTデータの構成が変化している場合に、GATT構成データを取得し直すことができる。
(第3実施形態)
上述したように情報処理装置101は、自動でGATT構成データを取得する処理においては、アドバタイズ情報を受信した場合、当該アドバタイズ情報の送信元の装置から既にGATT構成データを取得しているか否かを判定する。そして情報処理装置101は、当該アドバタイズ情報の送信元の装置から既にGATT構成データを取得している場合は、ハッシュ値やGATT構成データの取得を行わない。通信装置151において、例えばファームアップデート等により、GATTデータの構造が変更されることがある。GATTデータの構造が変更された場合、情報処理装置101においてキャッシュしていた情報が使えなくなってしまう。そして、通信装置151が送信するアドバタイズ情報が、GATT構成データが取得されたときに送信されていたアドバタイズ情報から変更されていた場合、GATTデータの構造が変更されている可能性が高い。そこで本実施形態では、通信装置151が送信するアドバタイズ情報が、GATT構成データが取得されたときに送信されていたアドバタイズ情報から変更されていた場合、ハッシュ値の取得やGATT構成データのキャッシュを再度実行する形態について説明する。なお、特に記載しない限り、本実施形態の通信システムの構成は、第1実施形態の通信システムの構成と同様であるものとする。
図7は、情報処理装置101が実行する、GATT構成データをキャッシュするための処理を示すフローチャートである。本処理は、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムや印刷用アプリをRAM105にロードし、それらのプログラムを実行することで実現される。また本処理は、情報処理装置101において印刷用アプリの起動が指示されたことに基づいて開始される。
S701~S708までの処理は、S401~S408までの処理と同様であるため説明を省略する。なおS707では、GATT構成データの取得元の装置が送信していたアドバタイズ情報も、GATT構成データに紐づけてキャッシュされるものとする。
S703がNO判定だった場合に実行されるS709では、CPU103は、S702で受信されたアドバタイズ情報と、S702で受信されたアドバタイズ情報の送信元の装置から過去に受信したアドバタイズ情報とが一致するか否かを判定する。上述したように、キャッシュされているGATT構成データには、アドバタイズ情報が紐づけられている。そのため、S702で受信されたアドバタイズ情報の送信元の装置から過去に受信したアドバタイズ情報として、すでにキャッシュ済みのアドバタイズ情報が用いられる。CPU103は、YES判定の場合、S704以降の処理を実行する。すなわちCPU103は、S602で受信されたアドバタイズ情報の送信元の装置からハッシュ値を取得し、当該装置のGATT構成データを取得済みかどうかを詳細に確認する。そしてCPU103は、時間経過により当該装置のGATT構成データが変更されていたら、改めて当該装置からGATT構成データを取得する。なおこの時CPU103は、当該装置から以前に取得されて(最新でない)GATT構成データを破棄しても良い。一方、NO判定の場合、S702に進み、当該装置から新たにハッシュ値やGATT構成データを取得することなく、他の装置からのアドバタイズ情報の受信を待つ。
このような形態とすることで、前回GATT構成データを取得した時に送信されていたアドバタイズ情報が変更されており、通信装置151のGATTデータの構成が変化している場合に、GATT構成データを取得し直すことができる。
(第4実施形態)
第1実施形態において、ハッシュ値の確認方法として第1取得方法と第2取得方法の2つを説明した。本実施形態では、いずれの方法を用いるかを状況に応じて適切に制御する形態について説明する。なお、特に記載しない限り、本実施形態の通信システムの構成は、第1実施形態の通信システムの構成と同様であるものとする。
図8は、情報処理装置101が実行する登録機能を示すフローチャートである。本処理は、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムや印刷用アプリをRAM105にロードし、それらのプログラムを実行することで実現される。また本処理は、情報処理装置101において印刷用アプリが起動している状態で開始される。
S801~S805、S806~S809までの処理は、S501~S505、S506~S509までの処理と同様であるため説明を省略する。
S805の後に実行されるS810では、CPU103は、S805で情報処理装置101とBLE接続した通信装置151が、情報処理装置101がキャッシュ済みのGATT構成データに対応する装置か否かを判定する。情報処理装置101がキャッシュ済みのGATT構成データに対応する装置とは、例えば、キャッシュ済みのGATT構成データの取得元の装置と同じ識別子を有する装置である。識別子は例えば、装置の名称や機種名、装置のベンダー、装置が提供するサービス等を示す情報である。本実施形態では情報処理装置101は、GATT構成データのキャッシュ時に、キャッシュされるGATT構成データに紐づけて、GATT構成データの取得元が有する識別子も保存するものとする。CPU103は、NO判定の場合、S811に進み、YES判定の場合、S812に進む。なおCPU103は、キャッシュ済みのGATT構成データを複数有している場合、複数のキャッシュ済みのGATT構成データそれぞれを用いて、本判定を行う。そして、通信装置151が、複数のキャッシュ済みのGATT構成データのうちいずれか1つでも対応していた場合は、YES判定となり、通信装置151が、複数のキャッシュ済みのGATT構成データのうち全てに対応していない場合は、NO判定となる。
情報処理装置101とBLE接続した通信装置151が、キャッシュ済みのGATT構成データの取得元の装置と同じ識別子を有しない装置である場合、情報処理装置101は、通信装置151のGATT構成データを既にキャッシュしていない可能性が高い。また情報処理装置101が複数のGATT構成データをキャッシュしている場合、情報処理装置101は、当該複数のGATT構成データのうち、通信装置151のGATT構成データである可能性が高いGATT構成データを特定できない。通信装置151のGATT構成データである可能性が高いGATT構成データを特定できない状態で、第2取得方法を実行する場合は、通信装置151のGATT構成データをキャッシュ済みかどうかの判定に時間がかかってしまう。これは、この形態ではCPU103は、いずれかのGATT構成データを用いてハッシュ値の取得を試みた結果、ハッシュ値が取得できなかった場合、他のGATT構成データを用いて再びハッシュ値の取得を試みる必要があるためである。そのため、最大で、情報処理装置101がキャッシュしているGATT構成データの数だけ、第2取得方法によるハッシュ値の取得の試みを繰り返さなければならないためである。
そのためS810がNO判定の場合に実行されるS811では、CPU103は、第1取得方法によってハッシュ値を取得する。すなわちCPU103は、サービスディスカバリを実行し、サービスディスカバリによって取得された少なくとも一部のGATT構成データに基づきハッシュ値が含まれる領域を特定してから、ハッシュ値の取得を試みる。その後、S807に進み、S811で取得された値と、既にキャッシュ済みのハッシュ値とが一致するか否かを判定する。
一方、情報処理装置101とBLE接続した通信装置151が、キャッシュ済みのGATT構成データの取得元の装置と同じ識別子を有する装置である場合、情報処理装置101は、通信装置151のGATT構成データを既にキャッシュしている可能性が高い。また情報処理装置101が複数のGATT構成データをキャッシュしている場合、情報処理装置101は、当該複数のGATT構成データのうち、通信装置151のGATT構成データである可能性が高いGATT構成データを特定可能である。通信装置151のGATT構成データである可能性が高いGATT構成データを特定できる状態で、第2取得方法を実行すると、通信装置151からハッシュ値を迅速に取得することができる。
そのためS810がNO判定の場合に実行されるS811では、CPU103は、第2取得方法によってハッシュ値を取得する。すなわちCPU103は、サービスディスカバリを実行せず、通信装置151のGATT構成データである可能性が高いキャッシュ済みのGATT構成データに基づきハッシュ値が含まれる領域を特定してから、ハッシュ値の取得を試みる。その後、S807に進み、S811で取得された値と、既にキャッシュ済みのハッシュ値とが一致するか否かを判定する。
S807以降の処理は、S507以降の処理と同様である。
このような形態とすることで、ハッシュ値の取得をより適切な方法で実行することができる。
なお、S810の判定は、第1取得方法を用いるか第2取得方法を用いるかの判定に相当するが、当該判定が実行されるタイミングは限定されない。具体的には例えば、S804とS805の処理の間に、当該判定が実行されても良い。この場合CPU103は、S804で登録対象として特定された装置が、情報処理装置101がキャッシュ済みのGATT構成データに対応する装置か否かを判定する。そしてCPU103は、YES判定であれば、S805の後にS812を実行し、NO判定であれば、S805の後にS811を実行する。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 情報処理装置
151 通信装置

Claims (31)

  1. 通信装置とBluetooth Low Energy(BLE)によって通信する情報処理装置のコンピュータに、
    前記通信装置と前記情報処理装置との間で、BLEによって第1の接続が確立されることに応じて、前記通信装置が有するGeneric Attribute Profile(GATT)データの構造を示す情報を取得する第1取得ステップと、
    前記通信装置が有するGATTデータ内の、ハッシュ値である所定の種類の情報を取得する第2取得ステップと、
    前記通信装置と前記情報処理装置との間で、BLEによって第2の接続が確立されることに応じて、前記通信装置が有するGATTデータ内の前記所定の種類の情報が格納されている領域を特定可能になるまで、前記通信装置が有するGATTデータの構造を示す情報の少なくとも一部を取得する第3取得ステップと、
    前記通信装置が有するGATTデータの構造を示す情報の少なくとも一部に基づいて、前記所定の種類の情報を取得する第4取得ステップと、
    前記第2取得ステップで取得された前記所定の種類の情報と、前記第4取得ステップで取得された前記所定の種類の情報とが一致する場合、前記通信装置が有するGATTデータの構造を示す情報のうち前記第3取得ステップで取得されていない情報を新たに取得せず、前記第2取得ステップで取得された前記所定の種類の情報と、前記第4取得ステップで取得された前記所定の種類の情報とが異なる場合、前記通信装置が有するGATTデータの構造を示す情報のうち前記第3取得ステップで取得されていない情報を新たに取得する第5取得ステップと、
    を実行させることを特徴とするプログラム。
  2. 前記第1の接続において前記情報処理装置と接続する前記通信装置と、前記第2の接続において前記情報処理装置と接続する前記通信装置が同じである場合、前記第2取得ステップで取得された前記所定の種類の情報と、前記第4取得ステップで取得された前記所定の種類の情報とが一致し、
    前記第1の接続において前記情報処理装置と接続する前記通信装置と、前記第2の接続において前記情報処理装置と接続する前記通信装置が同じでない場合、前記第2取得ステップで取得された前記所定の種類の情報と、前記第4取得ステップで取得された前記所定の種類の情報とが異なることを特徴とする請求項1に記載のプログラム。
  3. 前記第1の接続において前記情報処理装置と接続する前記通信装置が有する所定の識別情報と、前記第2の接続において前記情報処理装置と接続する前記通信装置が有する前記所定の識別情報が同じである場合、前記第2取得ステップで取得された前記所定の種類の情報と、前記第4取得ステップで取得された前記所定の種類の情報とが一致し、
    前記第1の接続において前記情報処理装置と接続する前記通信装置が有する前記所定の識別情報と、前記第2の接続において前記情報処理装置と接続する前記通信装置が有する前記所定の識別情報が同じでない場合、前記第2取得ステップで取得された前記所定の種類の情報と、前記第4取得ステップで取得された前記所定の種類の情報とが異なることを特徴とする請求項1又は2に記載のプログラム。
  4. 前記所定の種類の情報は、Characteristic UUIDが所定の値であるDatabase Hashキャラクタリスティックに格納されている値であることを特徴とする請求項1乃至3のいずれか1項に記載のプログラム。
  5. 通信装置とBluetooth Low Energy(BLE)によって通信する情報処理装置のコンピュータに、
    前記通信装置と前記情報処理装置との間で、BLEによって第1の接続が確立されることに応じて、前記通信装置が有するGeneric Attribute Profile(GATT)データの構造を示す情報を取得する第1取得ステップと、
    前記通信装置が有するGATTデータ内の所定の情報を取得する第2取得ステップと、
    前記第1取得ステップで取得された前記通信装置が有するGATTデータの構造を示す情報に基づいて、前記第1の接続において前記情報処理装置が接続した前記通信装置が有するGATTデータ内の前記所定の情報が格納されていた領域を特定するための領域情報を特定する特定ステップと、
    前記通信装置と前記情報処理装置との間で、BLEによって第2の接続が確立されることに応じて、前記第2の接続において前記情報処理装置が接続する前記通信装置が有するGATTデータ内の領域のうち前記領域情報に対応する領域から特定の情報を取得する第3取得ステップと、
    前記第2取得ステップで取得された前記所定の情報と、前記第3取得ステップで取得された前記特定の情報とが一致する場合、前記通信装置が有するGATTデータの構造を示す情報を新たに取得せず、前記第2取得ステップで取得された前記所定の情報と、前記第3取得ステップで取得された前記特定の情報とが異なる場合、前記通信装置が有するGATTデータの構造を示す情報を新たに取得する第4取得ステップと、
    を実行させることを特徴とするプログラム。
  6. 前記第1の接続において前記情報処理装置と接続する前記通信装置と、前記第2の接続において前記情報処理装置と接続する前記通信装置が同じである場合、前記第2取得ステップで取得された前記所定の情報と、前記第3取得ステップで取得された前記特定の情報とが一致し、
    前記第1の接続において前記情報処理装置と接続する前記通信装置と、前記第2の接続において前記情報処理装置と接続する前記通信装置が同じでない場合、前記第2取得ステップで取得された前記所定の情報と、前記第3取得ステップで取得された前記特定の情報とが異なることを特徴とする請求項5に記載のプログラム。
  7. 前記第1の接続において前記情報処理装置と接続する前記通信装置が有する所定の識別情報と、前記第2の接続において前記情報処理装置と接続する前記通信装置が有する前記所定の識別情報が同じである場合、前記第2取得ステップで取得された前記所定の情報と、前記第3取得ステップで取得された前記特定の情報とが一致し、
    前記第1の接続において前記情報処理装置と接続する前記通信装置が有する前記所定の識別情報と、前記第2の接続において前記情報処理装置と接続する前記通信装置が有する前記所定の識別情報が同じでない場合、前記第2取得ステップで取得された前記所定の情報と、前記第3取得ステップで取得された前記特定の情報とが異なることを特徴とする請求項5又は6に記載のプログラム。
  8. 前記所定の情報は、ハッシュ値であることを特徴とする請求項5乃至7のいずれか1項に記載のプログラム。
  9. 前記領域情報は、ハンドル値であることを特徴とする請求項5乃至8のいずれか1項に記載のプログラム。
  10. アドバタイズ情報を受信する受信ステップと、
    前記受信された前記アドバタイズ情報の送信元の装置が、すでに取得されたGATTデータの構造を示す情報に対応する装置である場合、前記通信装置と前記情報処理装置との間で、BLEによって第2の接続が確立されることに応じて、前記通信装置が有するGATTデータ内の前記特定の情報が格納されている領域を特定可能になるまで、前記通信装置が有するGATTデータの構造を示す情報の少なくとも一部を取得する第5取得ステップと、
    前記通信装置が有するGATTデータの構造を示す情報の少なくとも一部に基づいて、前記特定の情報を取得する第6取得ステップと、をさらに有し、
    前記受信された前記アドバタイズ情報の送信元の装置が、すでに取得されたGATTデータの構造を示す情報に対応する装置でない場合、前記通信装置と前記情報処理装置との間で、BLEによって第2の接続が確立されることに応じて、前記第2の接続において前記情報処理装置が接続する前記通信装置が有するGATTデータ内の領域のうち前記領域情報に対応する領域から前記特定の情報が取得されることを特徴とする請求項5乃至9のいずれか1項に記載のプログラム。
  11. 前記通信装置と前記情報処理装置との間のBLEによる接続を確立する処理を含む所定の機能の実行指示がユーザから受け付けられることなく、前記第1の接続が確立され、
    前記所定の機能の実行指示がユーザから受け付けられることに応じて、前記第2の接続が確立されることを特徴とする請求項1乃至10のいずれか1項に記載のプログラム。
  12. 前記所定の機能は、前記第2の接続において前記情報処理装置と接続する前記通信装置に関する情報を、前記所定の機能を実行可能な所定のプログラムに登録する処理を含むことを特徴とする請求項11に記載のプログラム。
  13. 前記所定の機能は、前記第2の接続において前記情報処理装置と接続する前記通信装置とBLE以外の通信方式により接続するための接続情報を、前記第2の接続を介して取得する処理を含むことを特徴とする請求項11又は12に記載のプログラム。
  14. 前記所定の機能はさらに、前記接続情報により確立される接続を介して、所定の情報を送信する処理を含むことを特徴とする請求項13に記載のプログラム。
  15. 前記所定の情報は、前記通信装置に印刷を実行させるための印刷ジョブであることを特徴とする請求項14に記載のプログラム。
  16. 前記所定の機能は、前記第2の接続において前記情報処理装置と接続する前記通信装置と、前記通信装置の外部且つ前記情報処理装置の外部の装置とを、BLE以外の通信方式により接続させるための情報を、前記第2の接続を介して送信する処理を含むことを特徴とする請求項11乃至15のいずれか1項に記載のプログラム。
  17. BLE以外の通信方式は、Wi-Fiであることを特徴とする請求項16に記載のプログラム。
  18. 前記プログラムが前記情報処理装置において起動されたことに応じて、前記第1の接続が確立されることを特徴とする請求項1乃至17のいずれか1項に記載のプログラム。
  19. アドバタイズ情報を受信する受信ステップをさらに実行させ、
    前記アドバタイズ情報が受信された場合、前記受信された前記アドバタイズ情報の送信元の前記通信装置と前記情報処理装置との間のBLEによる前記第1の接続が確立されることを特徴とする請求項1乃至18のいずれか1項に記載のプログラム。
  20. 前記アドバタイズ情報が受信された場合、前記受信された前記アドバタイズ情報の送信元の前記通信装置が、前記情報処理装置がBLEによって接続したことがある装置か否かを判定するための判定処理を実行する接続判定ステップをさらに実行させ、
    前記受信された前記アドバタイズ情報の送信元の前記通信装置が、前記情報処理装置がBLEによって接続したことがある装置であると判定された場合、前記受信された前記アドバタイズ情報の送信元の前記通信装置が有するGATTデータの構造を示す情報が新たに取得されず、
    前記受信された前記アドバタイズ情報の送信元の前記通信装置が、前記情報処理装置がBLEによって接続したことがある装置でないと判定された場合、前記受信された前記アドバタイズ情報の送信元の前記通信装置が有するGATTデータの構造を示す情報が新たに取得されることを特徴とする請求項19に記載のプログラム。
  21. 前記受信された前記アドバタイズ情報の送信元の前記通信装置が、前記情報処理装置がBLEによって接続したことがある装置であると判定された場合、前記受信された前記アドバタイズ情報の送信元の前記通信装置からGATTデータの構造を示す情報を取得してから所定の時間が経過したか否かを判定するための判定処理を実行する時間判定ステップをさらに実行させ、
    前記受信された前記アドバタイズ情報の送信元の前記通信装置からGATTデータの構造を示す情報を取得してから前記所定の時間が経過していないと判定された場合、前記受信された前記アドバタイズ情報の送信元の前記通信装置が有するGATTデータの構造を示す情報が新たに取得されず、
    前記受信された前記アドバタイズ情報の送信元の前記通信装置からGATTデータの構造を示す情報を取得してから前記所定の時間が経過したと判定された場合、前記受信された前記アドバタイズ情報の送信元の前記通信装置が有するGATTデータの構造を示す情報が新たに取得されることを特徴とする請求項20に記載のプログラム。
  22. 前記受信された前記アドバタイズ情報の送信元の前記通信装置が、前記情報処理装置がBLEによって接続したことがある装置であると判定された場合、前記受信された前記アドバタイズ情報と、前記受信された前記アドバタイズ情報の送信元の前記通信装置から前に受信された前記アドバタイズ情報とが一致するか否かを判定するための判定処理を実行する情報判定ステップをさらに実行させ、
    前記受信された前記アドバタイズ情報と、前記受信された前記アドバタイズ情報の送信元の前記通信装置から前に受信された前記アドバタイズ情報とが一致すると判定された場合、前記受信された前記アドバタイズ情報の送信元の前記通信装置が有するGATTデータの構造を示す情報が新たに取得されず、
    前記受信された前記アドバタイズ情報と、前記受信された前記アドバタイズ情報の送信元の前記通信装置から前に受信された前記アドバタイズ情報とが一致しないと判定された場合、前記受信された前記アドバタイズ情報の送信元の前記通信装置が有するGATTデータの構造を示す情報が新たに取得されることを特徴とする請求項21に記載のプログラム。
  23. 前記第1の接続が確立されたことに応じてGATTデータの構造を示す情報が取得された後、前記第1の接続が解除されることを特徴とする請求項1乃至22のいずれか1項に記載のプログラム。
  24. GATTデータの構造を示す情報は、BLEによるサービスディスカバリによって取得されることを特徴とすることを特徴とする請求項1乃至23のいずれか1項に記載のプログラム。
  25. 前記第2の接続が、前記通信装置と前記情報処理装置との間のBLEによるペアリングが行われていない状態において確立されるとしても、前記第2の接続において前記情報処理装置と接続する前記通信装置が有するGATTデータの構造を示す情報のうち少なくとも一部は新たに取得されないことを特徴とする請求項1乃至24のいずれか1項に記載のプログラム。
  26. 前記情報処理装置は、前記通信装置と、Bluetooth5.1の規格に含まれるBLEによって通信することを特徴とする請求項1乃至25のいずれか1項に記載のプログラム。
  27. 前記通信装置に印刷を実行させるための印刷ジョブを送信する送信ステップをさらに実行させることを特徴とする請求項1乃至26のいずれか1項に記載のプログラム。
  28. 通信装置とBluetooth Low Energy(BLE)によって通信する情報処理装置であって、
    前記通信装置と前記情報処理装置との間で、BLEによって第1の接続が確立されることに応じて、前記通信装置が有するGeneric Attribute Profile(GATT)データの構造を示す情報を取得する第1取得手段と、
    前記通信装置が有するGATTデータ内の、ハッシュ値である所定の種類の情報を取得する第2取得手段と、
    前記通信装置と前記情報処理装置との間で、BLEによって第2の接続が確立されることに応じて、前記通信装置が有するGATTデータ内の前記所定の種類の情報が格納されている領域を特定可能になるまで、前記通信装置が有するGATTデータの構造を示す情報の少なくとも一部を取得する第3取得手段と、
    前記通信装置が有するGATTデータの構造を示す情報の少なくとも一部に基づいて、前記所定の種類の情報を取得する第4取得手段と、
    前記第2取得手段で取得された前記所定の種類の情報と、前記第4取得手段で取得された前記所定の種類の情報とが一致する場合、前記通信装置が有するGATTデータの構造を示す情報のうち前記第3取得手段で取得されていない情報を新たに取得せず、前記第2取得手段で取得された前記所定の種類の情報と、前記第4取得手段で取得された前記所定の種類の情報とが異なる場合、前記通信装置が有するGATTデータの構造を示す情報のうち前記第3取得手段で取得されていない情報を新たに取得する第5取得手段と、
    を実行させることを特徴とする情報処理装置。
  29. 通信装置とBluetooth Low Energy(BLE)によって通信する情報処理装置であって、
    前記通信装置と前記情報処理装置との間で、BLEによって第1の接続が確立されることに応じて、前記通信装置が有するGeneric Attribute Profile(GATT)データの構造を示す情報を取得する第1取得手段と、
    前記通信装置が有するGATTデータ内の所定の情報を取得する第2取得手段と、
    前記第1取得手段で取得された前記通信装置が有するGATTデータの構造を示す情報に基づいて、前記第1の接続において前記情報処理装置が接続した前記通信装置が有するGATTデータ内の前記所定の情報が格納されていた領域を特定するための領域情報を特定する特定手段と、
    前記通信装置と前記情報処理装置との間で、BLEによって第2の接続が確立されることに応じて、前記第2の接続において前記情報処理装置が接続する前記通信装置が有するGATTデータ内の領域のうち前記領域情報に対応する領域から特定の情報を取得する第3取得手段と、
    前記第2取得手段で取得された前記所定の情報と、前記第3取得手段で取得された前記特定の情報とが一致する場合、前記通信装置が有するGATTデータの構造を示す情報を新たに取得せず、前記第2取得手段で取得された前記所定の情報と、前記第3取得手段で取得された前記特定の情報とが異なる場合、前記通信装置が有するGATTデータの構造を示す情報を新たに取得する第4取得手段と、
    を有することを特徴とする情報処理装置。
  30. 通信装置とBluetooth Low Energy(BLE)によって通信する情報処理装置の制御方法であって、
    前記通信装置と前記情報処理装置との間で、BLEによって第1の接続が確立されることに応じて、前記通信装置が有するGeneric Attribute Profile(GATT)データの構造を示す情報を取得する第1取得ステップと、
    前記通信装置が有するGATTデータ内の、ハッシュ値である所定の種類の情報を取得する第2取得ステップと、
    前記通信装置と前記情報処理装置との間で、BLEによって第2の接続が確立されることに応じて、前記通信装置が有するGATTデータ内の前記所定の種類の情報が格納されている領域を特定可能になるまで、前記通信装置が有するGATTデータの構造を示す情報の少なくとも一部を取得する第3取得ステップと、
    前記通信装置が有するGATTデータの構造を示す情報の少なくとも一部に基づいて、前記所定の種類の情報を取得する第4取得ステップと、
    前記第2取得ステップで取得された前記所定の種類の情報と、前記第4取得ステップで取得された前記所定の種類の情報とが一致する場合、前記通信装置が有するGATTデータの構造を示す情報のうち前記第3取得ステップで取得されていない情報を新たに取得せず、前記第2取得ステップで取得された前記所定の種類の情報と、前記第4取得ステップで取得された前記所定の種類の情報とが異なる場合、前記通信装置が有するGATTデータの構造を示す情報のうち前記第3取得ステップで取得されていない情報を新たに取得する第5取得ステップと、
    を有することを特徴とする制御方法。
  31. 通信装置とBluetooth Low Energy(BLE)によって通信する情報処理装置の制御方法であって、
    前記通信装置と前記情報処理装置との間で、BLEによって第1の接続が確立されることに応じて、前記通信装置が有するGeneric Attribute Profile(GATT)データの構造を示す情報を取得する第1取得ステップと、
    前記通信装置が有するGATTデータ内の所定の情報を取得する第2取得ステップと、
    前記第1取得ステップで取得された前記通信装置が有するGATTデータの構造を示す情報に基づいて、前記第1の接続において前記情報処理装置が接続した前記通信装置が有するGATTデータ内の前記所定の情報が格納されていた領域を特定するための領域情報を特定する特定ステップと、
    前記通信装置と前記情報処理装置との間で、BLEによって第2の接続が確立されることに応じて、前記第2の接続において前記情報処理装置が接続する前記通信装置が有するGATTデータ内の領域のうち前記領域情報に対応する領域から特定の情報を取得する第3取得ステップと、
    前記第2取得ステップで取得された前記所定の情報と、前記第3取得ステップで取得された前記特定の情報とが一致する場合、前記通信装置が有するGATTデータの構造を示す情報を新たに取得せず、前記第2取得ステップで取得された前記所定の情報と、前記第3取得ステップで取得された前記特定の情報とが異なる場合、前記通信装置が有するGATTデータの構造を示す情報を新たに取得する第4取得ステップと、
    を有することを特徴とする制御方法。
JP2019102861A 2019-05-31 2019-05-31 情報処理装置、制御方法及びプログラム Active JP7358074B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019102861A JP7358074B2 (ja) 2019-05-31 2019-05-31 情報処理装置、制御方法及びプログラム
US16/884,659 US11386464B2 (en) 2019-05-31 2020-05-27 Control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019102861A JP7358074B2 (ja) 2019-05-31 2019-05-31 情報処理装置、制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2020198504A JP2020198504A (ja) 2020-12-10
JP7358074B2 true JP7358074B2 (ja) 2023-10-10

Family

ID=73549928

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019102861A Active JP7358074B2 (ja) 2019-05-31 2019-05-31 情報処理装置、制御方法及びプログラム

Country Status (2)

Country Link
US (1) US11386464B2 (ja)
JP (1) JP7358074B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117528477A (zh) * 2022-07-27 2024-02-06 华为技术有限公司 一种设备间连接的管理方法、设备及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009523328A (ja) 2005-10-03 2009-06-18 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 無線通信システムにおけるハッシュ値を用いた接続設定
JP2017184166A (ja) 2016-03-31 2017-10-05 キヤノン株式会社 プログラム、情報処理方法、および情報処理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9064390B1 (en) * 2014-09-27 2015-06-23 Anthony L. Clark System and method for a novelty mood sensing sharing device
JP6184580B1 (ja) 2016-01-29 2017-08-23 キヤノン株式会社 情報処理装置、制御方法およびプログラム
US10496508B2 (en) * 2017-06-02 2019-12-03 Apple Inc. Accessory communication control
US10827334B2 (en) * 2017-06-02 2020-11-03 Lg Electronics Inc. Method and apparatus for connecting devices using Bluetooth LE technology

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009523328A (ja) 2005-10-03 2009-06-18 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 無線通信システムにおけるハッシュ値を用いた接続設定
JP2017184166A (ja) 2016-03-31 2017-10-05 キヤノン株式会社 プログラム、情報処理方法、および情報処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
足立 英治,保存版 最新Bluetooth Low Energy通信規格,Interface 第41巻 第8号 ,日本,CQ出版株式会社 CQ Publishing Co.,Ltd.,2015年08月01日,第41巻

Also Published As

Publication number Publication date
US11386464B2 (en) 2022-07-12
JP2020198504A (ja) 2020-12-10
US20200380566A1 (en) 2020-12-03

Similar Documents

Publication Publication Date Title
US11973913B2 (en) Wireless communication processing in an information processing device
US10387089B2 (en) Information processing apparatus, control method thereof, and non-transitory computer readable medium using authentication processing
KR102202283B1 (ko) 정보 처리 방법, 저장 매체 및 정보 처리 장치
KR102191208B1 (ko) 제어 방법
CN109218552B (zh) 通信装置及其控制方法
JP6914697B2 (ja) プログラム、情報処理装置、および通信システム
JP6667476B2 (ja) 通信装置、制御方法及びプログラム
JP6866209B2 (ja) 情報処理装置、制御方法、プログラム
JP7358074B2 (ja) 情報処理装置、制御方法及びプログラム
US11284237B2 (en) Information processing apparatus and control method
JP2020197870A (ja) 情報処理装置、表示制御方法およびプログラム
JP6674413B2 (ja) 通信装置、制御方法、及びプログラム
KR102617025B1 (ko) 정보 처리 장치 및 제어 방법
JP2020205497A (ja) 通信システム
US11917414B2 (en) Information processing method and information processing system
US11405178B2 (en) Communication apparatus and control method
JP2022155052A (ja) 通信装置、制御方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220527

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230616

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230927

R151 Written notification of patent or utility model registration

Ref document number: 7358074

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151