(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022190546
(43)【公開日】2022-12-26
(54)【発明の名称】通信装置、制御方法およびプログラム
(51)【国際特許分類】
G06F 1/3209 20190101AFI20221219BHJP
G06F 1/3287 20190101ALI20221219BHJP
H04N 1/00 20060101ALI20221219BHJP
【FI】
G06F1/3209
G06F1/3287
H04N1/00 885
H04N1/00 127B
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2021098917
(22)【出願日】2021-06-14
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】小野 楓
【テーマコード(参考)】
5B011
5C062
【Fターム(参考)】
5B011EA10
5B011EB08
5B011KK11
5B011LL11
5C062AA02
5C062AA05
5C062AA13
5C062AA37
5C062AB22
5C062AB38
5C062AB42
5C062AB49
5C062AC04
5C062AC22
5C062AC34
5C062AC58
5C062AE07
5C062AE15
5C062AF00
(57)【要約】
【課題】装置の電力状態を適切に制御する通信装置を提供する。
【解決手段】第1の電力状態と、前記第1の電力状態よりも消費電力が抑えられた第2の電力状態を有する通信装置であって、外部装置から近距離無線通信を介してアクセス可能な記憶手段と、前記通信装置の電力状態の遷移を制御する制御手段とを備える。前記制御手段は、前記通信装置が前記第2の電力状態であるときに前記記憶手段が前記外部装置からアクセスされた場合、前記記憶手段の記憶領域のうちアクセスされた第1の記憶領域が条件を満たす領域であれば、前記通信装置を前記第2の電力状態から前記第1の電力状態に復帰させる。
【選択図】
図8
【特許請求の範囲】
【請求項1】
第1の電力状態と、前記第1の電力状態よりも消費電力が抑えられた第2の電力状態を有する通信装置であって、
外部装置から近距離無線通信を介してアクセス可能な記憶手段と、
前記通信装置の電力状態の遷移を制御する制御手段と、
を備え、
前記制御手段は、前記通信装置が前記第2の電力状態であるときに前記記憶手段が前記外部装置からアクセスされた場合、前記記憶手段の記憶領域のうちアクセスされた第1の記憶領域が条件を満たす領域であれば、前記通信装置を前記第2の電力状態から前記第1の電力状態に復帰させる、
ことを特徴とする通信装置。
【請求項2】
前記制御手段は、前記第1の記憶領域が前記条件を満たさない領域であれば、前記通信装置を前記第2の電力状態から前記第1の電力状態に復帰させないことを特徴とする請求項1に記載の通信装置。
【請求項3】
前記条件とは、前記第1の記憶領域が、前記第2の電力状態から前記第1の電力状態へ復帰する領域として設定されていることであることを特徴とする請求項1又は2に記載の通信装置。
【請求項4】
前記第1の記憶領域を含む複数の記憶領域それぞれについて、前記第2の電力状態から前記第1の電力状態へ復帰するか否かを設定する設定手段、をさらに備えることを特徴とする請求項3に記載の通信装置。
【請求項5】
前記制御手段は、前記通信装置が前記第2の電力状態であるときに、前記記憶手段の第2の記憶領域に前記外部装置からの第1のアクセスを受け、後続して、前記記憶手段の前記第1の記憶領域に前記外部装置からの第2のアクセスを受けた場合、前記第1の記憶領域が前記条件を満たす領域であれば、前記通信装置を前記第2の電力状態から前記第1の電力状態に復帰させることを特徴とする請求項1乃至4のいずれか1項に記載の通信装置。
【請求項6】
前記制御手段は、前記第1のアクセスにより前記第2の記憶領域に格納されたデータが予め定められたデータである場合、前記第1の記憶領域が前記条件を満たす領域であれば、前記通信装置を前記第2の電力状態から前記第1の電力状態に復帰させることを特徴とする請求項5に記載の通信装置。
【請求項7】
前記予め定められたデータは、所定の外部装置を識別するためのデータであることを特徴とする請求項6に記載の通信装置。
【請求項8】
前記予め定められたデータは、所定のフォーマットに沿ったデータであることを特徴とする請求項6に記載の通信装置。
【請求項9】
前記制御手段は、前記第2の記憶領域に格納された前記データが前記予め定められたデータでない場合、前記第1の記憶領域が前記条件を満たす領域であっても、前記通信装置を前記第2の電力状態から前記第1の電力状態に復帰させないことを特徴とする請求項6乃至8のいずれか1項に記載の通信装置。
【請求項10】
前記条件とは、前記第1の記憶領域が、前記通信装置が前記第2の電力状態であるときに、前記記憶手段の第2の記憶領域に前記外部装置からの第1のアクセスを受け、後続して、前記記憶手段の前記第1の記憶領域に前記外部装置からの第2のアクセスを受けた領域である、ことを特徴とする請求項1又は2に記載の通信装置。
【請求項11】
前記記憶手段は、GATT(Generic Attribute Profile)データを記憶するための複数の記憶領域を有することを特徴とする請求項1乃至10のいずれか1項に記載の通信装置。
【請求項12】
前記第1の記憶領域は、サービス、キャラクタリスティックの少なくともいずれかに対応する記憶領域であることを特徴とする請求項11に記載の通信装置。
【請求項13】
前記第1の記憶領域に対応する処理を実行する実行手段、をさらに備えることを特徴とする請求項1乃至12のいずれか1項に記載の通信装置。
【請求項14】
前記通信装置は、プリンタであることを特徴とする請求項1乃至13のいずれか1項に記載の通信装置。
【請求項15】
前記第1の電力状態は、プリントエンジンに給電されている状態であり、前記第2の電力状態は、前記プリントエンジンに給電されていない状態であることを特徴とする請求項13に記載の通信装置。
【請求項16】
第1の電力状態と、前記第1の電力状態よりも消費電力が抑えられた第2の電力状態を有する通信装置において実行される制御方法であって、
前記通信装置の電力状態の遷移を制御する制御工程、を有し、
前記制御工程は、前記通信装置が前記第2の電力状態であるときに外部装置から近距離無線通信を介して記憶手段にアクセスされた場合、前記記憶手段の記憶領域のうちアクセスされた第1の記憶領域が条件を満たす領域であれば、前記通信装置を前記第2の電力状態から前記第1の電力状態に復帰させる、
ことを特徴とする制御方法。
【請求項17】
請求項1乃至15のいずれか1項に記載の通信装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の電力状態を有する通信装置、その通信装置を制御する制御方法およびプログラムに関する。
【背景技術】
【0002】
Bluetooth Low Energy(登録商標)(以下、BLE)によって通信を行う装置が知られている。特許文献1には、スマートフォン等の情報処理装置とプリンタ等の通信装置との間で、BLEによる通信を行うことが記載されている。
【0003】
一方、通信装置では、複数の電源状態が存在することが知られている。複数の電源状態としては、例えば、電源が投入されていないハードオフ状態、電源は投入されているがメインプログラムが起動されていないソフトオフ状態がある。また、例えば、メインプログラムは起動しているが消費電力を抑えるように制御している省電力状態、通常にプログラムが起動している通常起動状態がある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
BLEによる近距離無線通信を行い、情報処理装置から通信装置にコマンドを送り、所定の処理を実行させる場合、まず、通信装置を省電力状態から通常起動状態へと復帰させる。
【0006】
しかしながら、設定変更指示など、消費電力を抑えた省電力状態でも処理を実行可能なコマンドを送る場合にも、省電力状態から通常起動状態へ復帰させてしまうと消費電力が大きくなってしまう。
【0007】
本発明は、装置の電力状態を適切に制御する通信装置、制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明に係る通信装置は、第1の電力状態と、前記第1の電力状態よりも消費電力が抑えられた第2の電力状態を有する通信装置であって、外部装置から近距離無線通信を介してアクセス可能な記憶手段と、前記通信装置の電力状態の遷移を制御する制御手段と、を備え、前記制御手段は、前記通信装置が前記第2の電力状態であるときに前記記憶手段が前記外部装置からアクセスされた場合、前記記憶手段の記憶領域のうちアクセスされた第1の記憶領域が条件を満たす領域であれば、前記通信装置を前記第2の電力状態から前記第1の電力状態に復帰させることを特徴とする。
【発明の効果】
【0009】
本発明によれば、装置の電力状態を適切に制御することができる。
【図面の簡単な説明】
【0010】
【
図1】情報処理装置と通信装置の構成を示す図である。
【
図3】GATTデータのデータ形式を示す図である。
【
図5】GATTデータの登録処理を示すフローチャートである。
【
図6】GATTデータの登録処理を示すフローチャートである。
【
図7】通信装置と情報処理装置の接続処理を示すフローチャートである。
【
図8】通信装置の省電力状態からの復帰制御処理を示すフローチャートである。
【
図9】対応付けが行われたテーブルを示す図である。
【
図10】S803以降の処理を説明するための図である。
【
図11】S803以降の他の処理を説明するための図である。
【
図12】通信装置の省電力状態からの復帰制御処理を示すフローチャートである。
【
図14】通信装置の省電力状態からの復帰制御処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0012】
[第1実施形態]
本実施形態の通信システムに含まれる情報処理装置及び通信装置について説明する。情報処理装置として、本実施形態ではスマートフォンを例示しているが、これに限定されず、携帯端末、ノートPC、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、種々のものを適用可能である。また、通信装置として、本実施形態ではプリンタを例示しているが、これに限定されず、情報処理装置と無線通信を行うことが可能な装置であれば、種々のものを適用可能である。例えば、プリンタであれば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等を適用可能である。また、プリンタのみならず複写機やファクシミリ装置、携帯端末、スマートフォン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ、スマートスピーカ等を適用可能である。その他、複写機能、FAX機能、印刷機能等の複数の機能を備える複合機を適用可能である。
【0013】
まず、本実施形態の情報処理装置と、本実施形態の情報処理装置と通信可能な通信装置の構成について
図1のブロック図を参照して説明する。また、本実施形態では以下の構成を一例として説明するが、各装置が実行可能な機能に応じた構成を適宜含み得る。
【0014】
情報処理装置101は、入力インタフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース107、表示部108、通信部109、近距離無線通信部110、撮影装置111を有する。入力インタフェース102は、ユーザーからのデータ入力や動作指示を受け付けるためのインタフェースであり、物理キーボードやボタン、タッチパネル等で構成される。なお、後述の出力インタフェース107と入力インタフェース102とを同一の構成とし、画面の出力とユーザーからの操作の受付けを同一の構成で行うような形態としても良い。
【0015】
CPU103は、システム制御部であり、情報処理装置101の全体を統括的に制御する。ROM104は、CPU103が実行する制御プログラムやデータテーブル、組み込みオペレーティングシステム(以下、OSという。)プログラム等の固定データを記憶する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に記憶されている組込みOSの管理下で、スケジューリングやタスクスイッチ、割込み処理等のソフトウエア実行制御を行う。
【0016】
RAM105は、バックアップ電源を必要とするSRAM(Static Random Access Memory)等で構成される。なお、RAM105は、不図示のデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに記憶することが可能である。また、情報処理装置101の設定情報や情報処理装置101の管理データ等を記憶するメモリエリアもRAM105に設けられている。また、RAM105は、CPU103の主メモリとワークメモリとしても用いられる。
【0017】
外部記憶装置106は、印刷実行機能を提供するアプリケーション(以降、印刷アプリと記載する)を記憶している。また、外部記憶装置106は、通信装置151が解釈可能な印刷情報を生成する印刷情報生成プログラム、通信部109を介して接続している通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムを記憶している。また、外部記憶装置106は、これらのプログラムが使用する各種情報を記憶している。また、外部記憶装置106は、通信部109を介して他の情報処理装置や、インターネット等の外部から得た画像データを記憶している。
【0018】
出力インタフェース107は、表示部108がデータの表示や情報処理装置101の状態の通知を行うための制御インタフェースである。表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や情報処理装置101の状態の通知を行う。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを設置することで、表示部108を介してユーザーからの入力を受け付けるように構成しても良い。
【0019】
通信部109は、通信装置151等の装置と接続して、データ通信を実行するための構成である。例えば、通信部109は、通信装置151内のアクセスポイント(不図示)に接続可能である。通信部109と通信装置151内のアクセスポイントが接続することで、情報処理装置101と通信装置151は相互に通信可能となる。なお、通信部109は、無線通信で通信装置151とダイレクトに通信しても良いし、情報処理装置101や通信装置151の外部に存在する外部アクセスポイント(アクセスポイント131)を介して通信しても良い。無線通信方式としては、例えば、Wi-Fi(WirelessFidelity)(商標登録)やBluetooth(商標登録)等が挙げられる。また、アクセスポイント131としては、例えば、無線LANルータ等の機器などが挙げられる。なお、本実施形態において、情報処理装置101と通信装置151とが外部アクセスポイントを介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101と通信装置151とが外部アクセスポイントを介して接続する方式をインフラストラクチャー接続方式という。
【0020】
近距離無線通信部110は、通信装置151等の装置と近距離で無線接続して、データ通信を実行するための構成であり、通信部109とは異なる通信方式によって通信を行う。近距離無線通信部110は、通信装置151内の近距離無線通信部157と接続可能である。なお、本実施形態では、近距離無線通信部110の通信方式として、Bluetooth Low Energy(BLE)が用いられる。撮影装置111は撮影素子で撮影した画像をデジタルデータに変換する装置である。デジタルデータは一旦RAM105に格納される。その後、CPU103が実行するプログラムで所定の画像フォーマットに変換され、画像データとして外部記憶装置106に格納される。
【0021】
通信装置151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、近距離無線通信部157、入力インタフェース158、出力インタフェース159、表示部160を有する。
【0022】
ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを記憶する。通信部156は、通信装置151内部のアクセスポイントとして、情報処理装置101等の装置と接続するためのアクセスポイントを有している。なお、該アクセスポイントは、情報処理装置101の通信部109に接続可能である。なお、通信部156は、無線通信で情報処理装置101とダイレクトに通信しても良いし、アクセスポイント131を介して通信しても良い。通信方式としては、例えば、Wi-Fi(商標登録)やBluetooth(登録商標)等が挙げられる。また、通信部156は、アクセスポイントとして機能するハードウェアを備えていても良いし、アクセスポイントとして機能させるためのソフトウエアにより、アクセスポイントとして動作しても良い。
【0023】
RAM153は、バックアップ電源を必要とするDRAM等で構成される。なお、RAM153は、不図示のデータバックアップ用の電源が供給されることによってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに記憶することが可能である。また、RAM153は、CPU154の主メモリとワークメモリとしても用いられ、情報処理装置101等から受信した印刷情報等を一旦保存するための受信バッファとしても機能する。ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを記憶する。本実施形態では、ROM152に記憶されている各制御プログラムは、ROM152に記憶されている組込みOSの管理下で、スケジューリングやタスクスイッチ、割込み処理等のソフトウエア実行制御を行う。また、通信装置151の設定情報や通信装置151の管理データ等、電源供給がされていない場合も保持する必要があるデータを記憶するメモリエリアもROM152に設けられている。
【0024】
CPU154は、システム制御部であり、通信装置151の全体を統括的に制御する。プリントエンジン155、RAM153に記憶された情報や情報処理装置101等から受信した印刷ジョブに基づき、インク等の記録剤を用いて紙等の記録媒体上に画像形成し、印刷成果物として出力する。この時、情報処理装置101等から送信される印刷ジョブは、送信データ量が大きく、高速な通信が求められるため、近距離無線通信部157よりも高速に通信可能な通信部156を介して受信する。
【0025】
入力インタフェース158は、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースであり、物理キーボードやボタン、タッチパネル等で構成される。なお、後述の出力インタフェース159と入力インタフェース158とを同一の構成とし、画面の出力とユーザーからの操作の受付けを同一の構成で行うような形態としても良い。出力インタフェース159は、表示部160がデータの表示や通信装置151の状態の通知を行うための制御インタフェースである。
【0026】
表示部160は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や通信装置151の状態の通知を行う。なお、表示部160上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを設置することで、表示部160を介してユーザーからの入力を受け付けるように構成しても良い。
【0027】
図2は、近距離無線通信部157の構成の一例を示す図である。近距離無線通信部157は、情報処理装置101等の装置と近距離で無線接続するための構成である。本実施形態では、近距離無線通信部157の通信方式として、Bluetooth Low Energy(BLE)が用いられる。近距離無線通信部157とCPU154は、I2C(Inter-Integrated Circuit)等のバスインタフェースを介して通信を行う。また、近距離無線通信部157内には、CPU201と記憶領域202とROM203とRAM204が設けられている。記憶領域202は、CPU154からアクセス可能であり、近距離無線通信部110を介して情報処理装置101からアクセス可能である。RAM204は、バックアップ電源を必要とするDRAM等で構成される。なお、RAM204は、不図示のデータバックアップ用の電源が供給されることによってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに記憶することが可能である。また、RAM204は、CPU201の主メモリとワークメモリとしても用いられる。ROM203は、CPU201が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを記憶する。なお、通信装置151には、外付けHDDやSDカード等のメモリがオプション機器として装着されても良く、通信装置151に保存される情報は、当該メモリに記憶されても良い。
【0028】
ここでは、一例として、情報処理装置101と通信装置151の構成を上記のように示したが、他の構成であっても良い。例えば、近距離無線通信部110が、
図2に示すように構成されても良い。
【0029】
ここで、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サーバの状態情報等を記憶するデバイスとして動作する。
【0030】
次に、GATTのデータ形式について説明する。GATTのデータは、
図3に示すように、サービス、キャラクタリスティック、ディスクリプタと呼ばれる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」のように表現される。
【0031】
サービスは、GATTのデータ中のアトリビュートを共通区分ごとにグループ化したものであり、各サービスには1以上のキャラクタリスティックが含まれる。キャラクタリスティックには、キャラクタリスティック毎に単一の値が設定されている。ディスクリプタは、キャラクタリスティックに付加情報が必要な際に用いられる属性値が設定されている。サービス、キャラクタリスティック、ディスクリプタにはそれぞれ、GATTクライアントにリードやライトを許可するか否かを示す設定値であるリード・ライトの属性を設定することができる。
【0032】
GATTクライアントは、サービス、キャラクタリスティックそれぞれのUUIDを指定することで、指定したキャラクタリスティックに設定されている値に対して、リード・ライトを実行することができる。但し、リード・ライトが実行できるか否かは、各サービス、キャラクタリスティックに設定されているリード・ライト属性に基づく。
【0033】
図4は、近距離無線通信部157において構築されているGATTデータの一例を示す図である。
図4に示すGATTデータにおいて、「Service UUID」項目401は、各サービスに割り振られているUUIDを示す。「Service名」項目402は、各サービスの名称を示す。「Charactaristic UUID」項目403は、各キャラクタリスティックに割り振られているUUIDを示す。「Charactaristic名」項目404は、各キャラクタリスティックの名称を示す。「Serviceリード可能」項目405は、各サービスに関する値を情報処理装置101がリード(読み取り)可能か否かを示す。「Serviceライト可能」項目406は、各サービスに関する値を情報処理装置101がライト(書き込み)可能か否かを示す。「Charactaristicリード可能」項目407は、各キャラクタリスティックに関する値を情報処理装置101がリード可能か否かを示す。「Charactaristicライト可能」項目408は、各キャラクタリスティックに関する値を情報処理装置101がライト(書込み)可能か否かを示す。図中の「〇」は、ライトもしくはリードが可能であることを示し、空欄であればライトもしくはリードが可能でないことを示している。「Charactaristicインディケイト可能」項目409は、各キャラクタリスティックに関する値を通信装置151が更新した場合に情報処理装置101へインディケイト(通知)可能か否かを示す。図中の「〇」は、インディケイト可能であることを示し、空欄であればインディケイト可能でないことを示している。
【0034】
「ペアリング必要」項目411は、各キャラクタリスティックに関する値をペアリング済みでなければ情報処理装置101にライトもしくはリードを許可しないか否かを示す。「Serviceリード可能」項目405がリード可能を示し且つ「Charactaristicリード可能」項目407がリード可能を示している場合、情報処理装置101は、対応するキャラクタリスティックに関する値を読み取ることができる。また、「Serviceリード可能」項目がリード可能を示し且つ「Charactaristicリード可能」項目がリード可能でないことを示している場合、情報処理装置101は、対応するキャラクタリスティックに関する値を読み取ることができない。
【0035】
「値」項目410は、各キャラクタリスティックに設定された値を示す。また、「ペアリング必要」項目411がペアリング不必要(空欄表示)を示している場合、情報処理装置101は、通信装置151とペアリングをしていない状態でも、対応するキャラクタリスティックに関する値を読み書きすることができる。一方、「ペアリング必要」項目がペアリング必要(「○」表示)を示している場合、情報処理装置101は、通信装置151とペアリングをしている状態でなければ、対応するキャラクタリスティックに関する値を読み書きすることができない。
【0036】
以下、ペアリング処理の一例について説明する。まず、情報処理装置101は、印刷アプリが起動され、印刷アプリを介してユーザからペアリング処理の実行指示を受け付けた場合に、特定の装置情報を有するアドバタイズ情報のサーチを開始する。なお、特定の装置情報とは、例えば、印刷アプリに対応する装置(プリンタ等)のUUIDやMACアドレスである。そして、情報処理装置101は、特定の装置情報を有するアドバタイズ情報を受信すると、特定の装置情報を有するアドバタイズ情報の送信元の装置のリストを表示部108に表示し、ペアリング対象となる装置の選択をユーザから受け付ける。ここでは、通信装置151が選択されたものとして説明する。
【0037】
そして、情報処理装置101は、ペアリング対象となる装置の選択を受け付けた場合、セキュリティマネージャプロトコルによる通信により、通信装置151に、ペアリング要求を送信する。なお、ペアリングが終了するまで、装置間の通信は、セキュリティマネージャプロトコルによって行われる。通信装置151は、ペアリング要求を受信すると、表示部160にPINコード表示画面を表示する。PINコード表示画面には、PINコードと、ペアリング処理をキャンセルするためのCancelボタンが表示される。そして、情報処理装置101は、ペアリング要求を送信すると、表示部108にPINコード入力画面を表示する。PINコード入力画面には、ユーザによるPINコードの入力を受け付けるためのPINコード入力領域と、入力されたPINコードを通信装置151に送信するためのOKボタンと、ペアリング処理をキャンセルするためのCancelボタンが表示される。PINコード入力領域にPINコードが入力された状態で、OKボタンが押下されると、情報処理装置101は、入力されたPINコードを含む情報を通信装置151に送信する。通信装置151は、受信した情報に含まれるPINコードが、PINコード表示画面に表示したPINコードと一致するか否かを判定し、一致すると判定した場合は、情報処理装置101にペアリングを許可する。例えば、通信装置151は、PINコードに基づいて所定の方法で作成されたリンクキー(認証情報)を、BLE規格のSMP(Security Manager Protocol)を利用して情報処理装置101と交換する。交換されたリンクキーは、情報処理装置101の記憶領域(例えばROM104)と通信装置151の記憶領域(例えばROM152)にそれぞれ保存される。これによりペアリングが完了し、以降、装置間でBLE通信を実行することが許可される。
【0038】
ペアリング完了後、情報処理装置101は、通信装置151に対してGATT通信要求を送信する際には、ペアリング処理時に記憶領域に保存したリンクキーを通信装置151に通知する。通信装置151は、GATT通信要求を受信した場合、ペアリング処理時に記憶領域に保存したリンクキーと通知されたリンクキーを比較して、GATT通信要求を発信している装置が、ペアリング済みの装置であるかを確認する。そして、通信装置151は、ペアリング済みの装置であると確認できた場合は、情報処理装置101とのGATT通信による情報の読み書きを開始する。これにより、情報処理装置101は、一旦通信装置151とのペアリング処理を完了しておけば、以降はユーザによるPINコードの入力なしに通信装置151とのGATT通信を実行することができる。
【0039】
なお、ペアリング処理は、上記のようなPINコード入力式に限られず、他のペアリング方法が用いられても良い。また上述では、BLE規格に基づくペアリング方法によってペアリング処理が実行されるものとしたが、この形態に限定されない。ペアリング処理は、通信装置151がBLEによって情報処理装置101を認証する処理であれば、BLE規格に基づくペアリング方法ではなく、例えば通信装置151のベンダー独自のペアリング方法が用いられても良い。
【0040】
図5は、通信装置151において実行される、近距離無線通信部157へのGATTデータの登録処理を示すフローチャートである。
図5の処理シーケンスが示す通信装置151の処理は、例えば、CPU154が、ROM152又は通信装置151が備えるHDD(不図示)に記憶されている制御プログラムをRAM153にロードし、その制御プログラムを実行することで実現される。本実施形態では、通信装置151の電源がOFFになった場合には、近距離無線通信部157の電源もOFFになり、GATTデータの構成がリセットされる。そのため、通信装置151の電源がONになったタイミングで毎回、
図5に示すGATTデータの登録処理を実行するものとする。
【0041】
S501において、通信装置151のCPU154は、近距離無線通信部157に対して、GATTデータとして構成される1つ目のサービスの登録を指示する。S502において、近距離無線通信部157のCPU201は、S501で登録指示を受けた1つ目のサービスの登録を行う。なお、サービスの登録とは、例えば、
図4に示すようなGATTデータのサービスに対応するデータを構築することをいう。S503において、近距離無線通信部157のCPU201は、S502で登録を行ったサービスについてハンドル番号を付与し、そのハンドル番号をCPU154に通知する。
【0042】
S504において、CPU154は、S501で登録指示をしたサービスと、S503で通知されたハンドル番号とを対応付ける。サービスとハンドル番号の対応付けは、例えば、サービスごとに独自のIDを割り振り、IDとハンドル番号をテーブル形式で登録することにより行われても良い。また、サービスのUUIDとハンドル番号をテーブル形式で登録することにより行われても良く、サービスと近距離無線通信部157におけるGATTデータの構成を対応付け可能であれば、他の方法が用いられても良い。
【0043】
S505において、CPU154は、近距離無線通信部157に対して、S501で登録指示を行ったサービスの中の1つ目のキャラクタリスティックの登録を指示する。S506において、近距離無線通信部157のCPU201は、S505で登録指示を受けた1つ目のキャラクタリスティックの登録を行う。なお、キャラクタリスティックの登録とは、例えば、
図4に示すようなGATTデータのキャラクタリスティックに対応するデータを構築することをいう。S507において、近距離無線通信部157のCPU201は、CPU154に対して、S506で登録を行ったキャラクタリスティックについてハンドル番号を付与し、そのハンドル番号をCPU154に通知する。
【0044】
S508において、CPU154は、S505で登録指示をしたキャラクタリスティックと、S507で通知されたハンドル番号とを対応付ける。キャラクタリスティックとハンドル番号の対応付けは、例えば、キャラクタリスティックごとに独自のIDを割り振り、IDとハンドル番号をテーブル形式で登録することにより行われても良い。また、キャラクタリスティックのUUIDとハンドル番号をテーブル形式で登録することにより行われても良く、キャラクタリスティックと近距離無線通信部157におけるGATTデータの構成を対応付け可能であれば、他の方法が用いられても良い。
【0045】
CPU154及びCPU201は、全てのサービスとキャラクタリスティックの登録が完了するまで、S501~S508の処理を繰り返す。本実施形態では、近距離無線通信部157が構成するGATTデータにはディスクリプタは存在しないものとしているが、ディスクリプタを登録し、登録指示をしたディスクリプタとハンドル番号とを対応付ける処理が実行されても良い。
【0046】
S509において、CPU154は、GATTデータの構成の登録を完了する。登録されたGATTデータは、例えば、
図4に示すように構成される。
【0047】
図9は、
図5の処理で対応付けが行われたテーブル901の一例を示している。例えば、S505でキャラクタリスティックの登録指示が行われると、S506でキャラクタリスティック「Manufacturer Name String」の値が登録される。そして、S507でキャラクタリスティック「Manufacturer Name String」のハンドル番号「3」が通知される。そして、その通知されたハンドル番号「3」とキャラクタリスティック「Manufacturer Name String」とがテーブル901で対応付けられる。同様に、通知されたハンドル番号「5」とキャラクタリスティック「Hardware Revision String」とがテーブル901で対応付けられる。サービス「Device Information」について全てのキャラクタリスティックについて対応付けが行われると、他のサービス「IJ Original」についても同様に行われる。即ち、通知されたハンドル番号「8」とキャラクタリスティック「装置設定1」とがテーブル901で対応付けられ、通知されたハンドル番号「10」とキャラクタリスティック「装置設定2」とがテーブル901で対応付けられる。また、通知されたハンドル番号「12」とキャラクタリスティック「装置設定3」とがテーブル901で対応付けられる。テーブル901では、キャラクタリスティックとハンドル番号とが対応付けられているが、サービスとハンドル番号とが対応付けられても良い。また、サービスとキャラクタリスティックの両方とハンドル番号とが対応付けられても良い。
【0048】
S510において、CPU154は、GATTデータの構成とハンドル番号との対応付けに対して、省電力状態から通常起動状態への復帰が必要であるかを示す情報をさらに対応づける。本実施形態では、通常起動状態とは、ROM152等のメモリにも、プリントエンジン155にも給電されている状態である。また省電力状態とは、メインプログラムが起動しているが消費電力を抑えるように制御されている状態とする。そのような状態では、例えば、ROM152等のメモリには給電されているが、プリントエンジン155には給電されていない。そのため、印刷を実行する場合には、省電力状態から通常起動状態に復帰する必要がある。一方、例えばメモリに記憶されている印刷設定を変更する場合には、省電力状態から通常起動状態に復帰する必要はない。なお省電力状態や通常起動状態は、上述した形態に限定されない。例えば省電力状態と通常起動状態の関係性として、省電力状態が、通常起動状態よりも省電力な状態であれば良い。また省電力状態が、通常起動状態では給電されている少なくとも一部の構成に給電がされていない状態であれば良い。
【0049】
省電力状態からの復帰が必要であるかを示す情報としては、「必要」もしくは「不要」の2値であっても良い。例えば、
図9のテーブル901では、キャラクタリスティック「装置設定1」と「省電力復帰必要」とが対応付けられている。これは、情報処理装置101からキャラクタリスティック「装置設定1」への書込みがあった場合、通信装置151は、省電力状態から通常起動状態へ復帰することを示している。キャラクタリスティック「装置設定1」とは、例えば、印刷実行を指示するためのキャラクタリスティックである。また、
図9のテーブル901では、キャラクタリスティック「装置設定3」と「省電力復帰不要」とが対応付けられている。これは、情報処理装置101からキャラクタリスティック「装置設定3」への書込みがあっても、通信装置151は、省電力状態が維持されることを示している。キャラクタリスティック「装置設定3」とは、例えば、プリンタの設定変更を指示するためのキャラクタリスティックである。
【0050】
また、装置の一部のみについて省電力状態からの復帰が必要であることを示す「一部復帰」の情報があっても良い。一部復帰とは、例えば、省電力状態で給電されていたブロックに加えてLANモジュールのみに給電を行うようにすることをいう。
図9のテーブル901では、キャラクタリスティック「装置設定2」と「省電力復帰必要(一部)」とが対応付けられている。これは、情報処理装置101からキャラクタリスティック「装置設定2」への書込みがあった場合、通信装置151の一部、例えばLANモジュールに給電されるように制御することを示している。
【0051】
図5では、GATTデータの構成の登録が完了した時点で、省電力状態からの復帰が必要であるかを示す情報との対応付けが行われていると説明した。しかしながら、S501の前に、キャラクタリスティックと省電力状態からの復帰が必要であるかを示す情報との対応付けを予め行うようにしても良い。また、S504、S508の時点で、近距離無線通信部157におけるGATTデータの構成を対応付けるごとに、省電力状態からの復帰が必要であるかを示す情報との対応付けを行うようにしても良い。
【0052】
図6は、
図5の通信装置151の処理を示すフローチャートである。S601は、S501の処理と同じであるので、その説明を省略する。S602において、通信装置151のCPU154は、近距離無線通信部157のCPU201から通知されたハンドル番号が、S601で指示したサービスのハンドル番号であるか否かを判定する。S602の処理は、S601で指示したサービスのハンドル番号であると判定されるまで繰り返される。S601で指示したサービスのハンドル番号であると判定された場合、S603に進み、S504の処理が行われる。
【0053】
S604は、S505の処理と同じであるので、その説明を省略する。S605において、CPU154は、近距離無線通信部157のCPU201から通知されたハンドル番号が、S604で指示したキャラクタリスティックのハンドル番号であるか否かを判定する。S605の処理は、S604で指示したキャラクタリスティックのハンドル番号であると判定されるまで繰り返される。S604で指示したキャラクタリスティックのハンドル番号であると判定された場合、S606に進み、S508の処理が行われる。
【0054】
S607において、CPU154は、登録指示を行ったサービス内の最後のキャラクタリスティックについてS606の処理が実行された否かを判定する。ここで、最後のキャラクタリスティックについてS606の処理が実行されていないと判定された場合、S604からの処理を繰り返す。一方、最後のキャラクタリスティックについてS606の処理が実行されたと判定された場合、S608に進む。
【0055】
S608において、CPU154は、GATTデータにおける最後のサービスについてS603の処理が実行されたか否かを判定する。ここで、最後のサービスについてS603の処理が実行されていないと判定された場合、S601からの処理を繰り返す。一方、最後のサービスについてS603の処理が実行されたと判定された場合、S609に進む。その後、S609においてS509の処理が実行され、S610において、S510の処理が実行される。
【0056】
以上のように、本実施形態においては、ベンダー領域の各キャラクタリスティック領域それぞれについて、情報処理装置101から書込みがあった場合に情報処理装置101のを省電力状態から復帰させるか否かの情報が対応付けられて管理される。そのような構成により、情報処理装置101からキャラクタリスティックに書込みがあっても、省電力状態から復帰させないように制御することが可能となり、消費電力を抑えることができる。
【0057】
図7は、通信装置151と情報処理装置101の接続処理を示すフローチャートである。
図7の通信装置151の処理は、例えば、CPU154が、ROM152又は通信装置151が備えるHDD(不図示)に記憶されている制御プログラムをRAM153にロードし、その制御プログラムを実行することで実現される。また、
図7の情報処理装置101の処理は、例えば、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムをRAM105にロードし、その制御プログラムを実行することで実現される。
【0058】
以下の説明において、通信装置151は、所定の間隔でアドバタイズ情報を送信するアドバタイザとする。また、情報処理装置101は、周辺にあるアドバタイザから送信されるアドバタイズ情報を待機するスキャナとする。まず、通信装置151内の近距離無線通信部157は、アドバタイズ情報の送信を行う(S701~S703)。情報処理装置101は、近距離無線通信部110が近距離無線通信部157から送信されたアドバタイズ情報を受信することで、通信装置151の存在を認識することができる。
【0059】
情報処理装置101は、通信装置151を認識し、通信装置151と接続する場合には、接続要求情報を通信装置151に送信する。例えば、近距離無線通信部110は、BLEによるネットワーク接続を確立する接続イベントに遷移するための要求であるCONNECT_REQを送信する(S704)。近距離無線通信部157がCONNECT_REQを受信すると、情報処理装置101及び通信装置151は、接続イベントへの遷移を開始する。例えば、近距離無線通信部110及び近距離無線通信部157が、それぞれCPU103及びCPU154にGATT通信のための接続処理が完了した旨を通知する。その後、情報処理装置101及び通信装置151はそれぞれスキャナとアドバタイザからマスタとスレーブに遷移し、マスタである情報処理装置101とスレーブである通信装置151は、GATT通信のための接続(BLE接続)を確立する。なお、BLE規格では、マスタは、スレーブと「1:多」のスター型のトポロジーを形成することができる。情報処理装置101と通信装置151は、BLE接続を確立すると、以後、GATT通信方式によってデータ通信を行うことができる。
【0060】
情報処理装置101は、GATT通信により通信装置151のGATTデータにアクセスする前に、通信装置151がどのような構成のGATTデータを有しているかを取得する必要がある。GATTデータの構成とは、例えば、GATTデータ内のサービスの数、キャラクタリスティックの数、それぞれのUUIDの値やリードの可否を示す属性等である。GATTデータの構成を情報処理装置101が取得する構成をディスカバリと呼ぶ。
【0061】
情報処理装置101は、S704でBLE接続が確立された後、S705で、ディスカバリを開始する。例えば、情報処理装置101は、通信装置151のGATTデータの構成を示す情報を要求するためのディスカバリ要求を通信装置151へ送信する。これにより、ディスカバリ要求の応答として、通信装置151は、情報処理装置101へGATTデータの構成を示す情報を送信する。GATTデータの構成を示す情報を受信した情報処理装置101は、通信装置151のGATTデータ内の、ハッシュ値が格納されている領域を特定し、ハッシュ値のリードを行う。なお、ハッシュ値とは、例えば、
図4のCharacteristicUUIDが0x2B2AのDatabase Hashキャラクタリスティックに格納されている値である。通信装置151は、Database Hashキャラクタリスティックの値として、GATTデータの構成から予め算出したハッシュ値を格納している。即ち、ハッシュ値とは、通信装置151のGATTデータの構成に応じて一意に定められる値である。
【0062】
なお、情報処理装置101は、過去に情報処理装置101がBLEによって接続したことがある端末からリードしたハッシュ値を、情報処理装置101が備えるメモリ(例えばROM104)に格納している。そこで、S706で、情報処理装置101は、S705でリードしたハッシュ値を、過去にリードしたハッシュ値(情報処理装置101が備えるメモリに格納されているハッシュ値)と比較し、一致するか(既にキャッシュ済みであるか)を判定する。即ち、情報処理装置101は、通信装置151が過去に情報処理装置101がBLEによって接続したことがある端末か否かを判定する。その判定において、情報処理装置101は、ハッシュ値だけでなく、通信装置151のMACアドレスなどの個体識別情報等、他の情報を判定条件に加えても良い。
【0063】
S706で一致しないと判定された場合、情報処理装置101は、通信装置151のGATTデータの残りの構成を把握するために、ディスカバリを継続する。そのため、S707で、情報処理装置101は、通信装置151のGATTデータの構成を示す情報を要求するためのディスカバリ要求を通信装置151へ送信する。ディスカバリ要求を受け付けた通信装置151は、S708で、情報処理装置101へGATTデータの構成を示す情報を送信する(レスポンス)。なお、ディスカバリ要求の送受信及びGATTデータの構成を示す情報の送受信は、GATTデータ内のサービス、キャラクタリスティック、ディスクリプタの数の分だけ繰り返される。そのため、S709では、GATTデータの構成を示す全ての情報の送信が完了されるまで、ディスカバリ要求の送受信及びGATTデータの構成を示す情報の送受信が繰り返される。
【0064】
GATTデータの構成を示す全ての情報の送信が完了すると、S710で、情報処理装置101は、通信装置151のGATTデータの構成をキャッシュとして情報処理装置101が備えるメモリに格納する。このとき、情報処理装置101は、通信装置151のGATTデータの構成のキャッシュと通信装置151から得たハッシュ値とを対応付けてメモリへの格納を行う。なお、情報処理装置101は、通信装置151のMACアドレスなどの個体識別情報等の他の情報をさらに対応付けてメモリへの格納を行っても良い。なお、S706で一致すると判定された場合、情報処理装置101は、通信装置151のGATTデータの構成を既にキャッシュしていることになるので、S707~S710までの処理をスキップする。通信装置151のGATTデータの構成を取得することにより、以降、情報処理装置101は、通信装置151との任意のGATT通信を実行することが可能となる。情報処理装置101は、S711で、通信装置151との任意のGATT通信を実行する。
【0065】
なお、GATT通信とは、BLE接続を確立した後にGATTプロファイルを用いて行われる通信であり、それぞれの装置の近距離無線処理部を介して行われる通信である。また、通信装置151は、BLE接続を確立した場合、アドバタイズを停止しても良いし、送信するアドバタイズ情報の内容を切り替えても良い。例えば、通信装置151は、受信した装置が接続要求を送信可能なアドバタイズ情報(ADV_IND)から、受信した装置が接続要求を送信できないアドバタイズ情報(ADV_SCAN_INDやADV_NONCONN_IND)に切替えても良い。
【0066】
GATT通信が完了した後、情報処理装置101は、S712で、解放要求を送信する。解放要求を受信した通信装置151は、S713にて解放応答を送信し、装置間のBLE接続を終了する。装置間のBLE接続が終了すると、情報処理装置101と通信装置151は、それぞれスキャナとアドバタイザに戻り、通信装置151は、アドバタイズ情報の送信を再開する。
【0067】
図8は、通信装置151の省電力状態からの復帰制御処理を示すフローチャートである。
図8の処理シーケンスが示す通信装置151の処理は、例えば、CPU154が、ROM152又は通信装置151が備えるHDD(不図示)に記憶されている制御プログラムをRAM153にロードし、その制御プログラムを実行することで実現される。また、
図8の情報処理装置101の処理は、例えば、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムをRAM105にロードし、その制御プログラムを実行することで実現される。
図8の処理は、S701~S711において、情報処理装置101と通信装置151がBLE接続を確立し、GATT通信方式によってデータ通信を行うことができるようになった状態で行われる。また、
図8の処理は、通信装置151がテーブル901で設定されている省電力状態である場合に開始される。
【0068】
S801において、情報処理装置101のCPU103は、ユーザから所定の動作要求を受けたことにより、近距離無線通信部110を介して、近距離無線通信部157の所定のキャラクタリスティックに動作要求コマンドを書き込む。ここで、動作要求コマンドとは、所定のキャラクタリスティックへの書込みである。ベンダーオリジナルのキャラクタリスティックとして複数の領域が設けられており、例えば、印刷実行を指示するためのキャラクタリスティックや、プリンタの設定変更を指示するためのキャラクタリスティックが設けられている。それらのキャラクタリスティックには、
図5の処理によりGATTデータが登録されたときには「0」の値が格納されている。情報処理装置101のCPU103は、例えば、印刷実行を指示するためのキャラクタリスティックに対して「1」を書き込む。本実施形態では、上記のようなキャラクタリスティックに対する書込みを動作要求コマンドの書込みとして説明している。
【0069】
S802において、近距離無線通信部157のCPU201は、S801で書込みが行われたキャラクタリスティックのハンドル番号を通信装置151のCPU154に送信する。
【0070】
S803において、CPU154は、
図9のテーブル901を参照し、近距離無線通信部157から送信されたハンドル番号に対応付けられているキャラクタリスティックは省電力状態からの復帰が必要であるかを判定する。ここで、省電力状態からの復帰が必要であるかは、キャラクタリスティックのハンドル番号に基づいて判定されても良いし、他の条件に基づいて判定されても良い。例えば、サービスのハンドル番号に基づいて判定されても良いし、サービスとキャラクタリスティックの両方のハンドル番号に基づいて判定されても良い。
【0071】
S803で省電力状態からの復帰が必要であると判定された場合、S804において、CPU154は、通信装置151を省電力状態から復帰させる。一方、S803で省電力状態からの復帰が必要でないと判定された場合、S805において、CPU154は、通信装置151を省電力状態から復帰させず、省電力状態を維持する。
【0072】
図10は、
図8のS803以降の処理を説明するための図である。例えば、省電力状態からの復帰が必要であることを示す情報と対応付けられているキャラクタリスティック「装置設定1」に対して情報処理装置101から書き込みがあった場合、S804において通信装置151は省電力状態から復帰する。例えば、キャラクタリスティック「装置設定1」は、印刷実行を指示するためのキャラクタリスティックである。そのキャラクタリスティックに情報処理装置101から書込みがあった場合、CPU154は、CPU201からハンドル番号「8」の通知を受け、テーブル901を参照し、通信装置151を省電力状態から復帰させるか否かを判定する。CPU154は、テーブル901に基づいて、通信装置151を省電力状態から復帰させると判定する。そして、S806において、CPU154は、S801で情報処理装置101から動作要求コマンドが書き込まれたキャラクタリスティックに対応する処理、例えば印刷処理を実行する。
【0073】
また、省電力状態からの復帰が不要であることを示す情報と対応付けられているキャラクタリスティック「装置設定3」に対して情報処理装置101から書き込みがあった場合、S805において通信装置151は省電力から復帰せず、省電力状態を維持する。例えば、キャラクタリスティック「装置設定3」は、プリンタの設定変更を指示するためのキャラクタリスティックである。そのキャラクタリスティックに情報処理装置101から書込みがあった場合、CPU154は、CPU201からハンドル番号「12」の通知を受け、テーブル901を参照し、通信装置151を省電力状態から復帰させるか否かを判定する。CPU154は、テーブル901に基づいて、通信装置151を省電力状態から復帰させないと判定する。そして、S806において、CPU154は、S801で情報処理装置101から動作要求コマンドが書き込まれたキャラクタリスティックに対応する処理、例えばプリンタの設定変更を実行する。
【0074】
また、省電力状態からの復帰が一部必要であることを示す情報と対応付けられているキャラクタリスティック「装置設定2」に対して情報処理装置101から書き込みがあった場合、S804において通信装置151は省電力状態から一部復帰する。そのキャラクタリスティックに情報処理装置101から書込みがあった場合、CPU154は、CPU201からハンドル番号「10」の通知を受け、テーブル901を参照し、通信装置151を省電力状態から一部復帰させると判定する。そして、S806において、CPU154は、S801で情報処理装置101から動作要求コマンドが書き込まれたキャラクタリスティックに対応する処理を実行する。
【0075】
以上のように、本実施形態によれば、省電力状態から復帰させる必要のある領域に動作要求コマンドが書き込まれた場合にのみ通信装置151を省電力状態から復帰させるので、消費電力を抑えることができる。
【0076】
本実施形態では、
図10に示すように、動作要求コマンドの書込み先のキャラクタリスティックと、対応する処理とが1:1で設定されていた。しかしながら、他の構成でも良い。例えば、本実施形態では、動作要求コマンドとして「1」を書き込むとして説明したが、印刷実行やプリンタの設定変更等、各処理に対応する値を書き込むようにしても良い。その場合、
図11に示すように、省電力状態からの復帰が必要であることに対応するキャラクタリスティックと、省電力状態からの復帰が不要であることに対応するキャラクタリスティックを用意する。そして、情報処理装置101側で書込み先のキャラクタリスティックを都度切り替えるようにしても良い。例えば、情報処理装置101から、プリンタの設定変更に対応する値が省電力状態からの復帰が必要であることに対応するキャラクタリスティックに書き込まれた場合には、通信装置151は省電力状態から復帰する。一方、上記の値が省電力状態からの復帰が不要であることに対応するキャラクタリスティックに書き込まれた場合には、通信装置151は省電力状態から復帰せずに省電力状態を維持する。
【0077】
このように、同じ動作要求コマンドである場合にも、通信装置151または情報処理装置101の状態や動作要求コマンドの送信タイミングによって省電力状態からの復帰が必要であるか否かを切り替えることができる。
【0078】
図5で説明したように、
図9のテーブル901は、通信装置151のCPU154により作成される。S510で省電力状態からの復帰が必要であるかの対応付けが設定された内容は、ユーザ操作等によって変更可能であっても良い。例えば、表示部160を介してユーザ操作を受け付けるようにしても良いし、情報処理装置101のCPU103が、表示部108で受け付けたユーザ操作の内容をCPU154に送信することにより、テーブル901の設定内容を変更可能にしても良い。
【0079】
[第2実施形態]
以下、第1実施形態と異なる点について第2実施形態を説明する。
図12は、本実施形態における、通信装置151における省電力状態からの復帰制御処理を示すフローチャートである。本実施形態では、近距離無線通信部157のキャラクタリスティック「装置名称」に情報処理装置101から事前に値が書き込まれていることを、省電力状態から通常起動状態への復帰条件としている。
図12の通信装置151の処理は、例えば、CPU154が、ROM152又は通信装置151が備えるHDD(不図示)に記憶されている制御プログラムをRAM153にロードし、その制御プログラムを実行することで実現される。また、
図12の情報処理装置101の処理は、例えば、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムをRAM105にロードし、その制御プログラムを実行することで実現される。本実施形態では、
図12の処理A(但しS1204でYesと判定)と処理B(但しS1208でNoと判定)がその順序で行われた場合に、通信装置151の省電力状態からの復帰が行われる。
図12の処理は、S701~S711において、情報処理装置101と通信装置151がBLE接続を確立し、GATT通信方式によってデータ通信を行うことができるようになった状態から行われる。
【0080】
S1201において、情報処理装置101のCPU103は、近距離無線通信部110を介して近距離無線通信部157に対して、近距離無線通信部157で構築されているGATTデータのキャラクタリスティック「装置名称」に書き込む。書き込まれる値は、例えば、「1」等の所定の値であっても良いし、情報処理装置101を識別可能な値でも良い。また、キャラクタリスティック「装置名称」は、ベンダーオリジナルのキャラクタリスティック領域である。
【0081】
S1202において、近距離無線通信部157のCPU201は、S1201で書込みが行われたキャラクタリスティックのハンドル番号を通信装置151のCPU154に送信する。その送信は、CPU154に対する割り込みの構成でも良いし、CPU154が近距離無線通信部157の状態をポーリングする構成でも良い。
【0082】
S1203において、CPU154は、
図9のテーブル901を参照し、S1202で送信されたハンドル番号が、所定のキャラクタリスティックのハンドル番号であるか否かを判定する。例えば、所定のキャラクタリスティックとは、上記のキャラクタリスティック「装置名称」である。S1202で送信されたハンドル番号が所定のキャラクタリスティックのハンドル番号であると判定された場合、S1204に進む。一方、所定のキャラクタリスティックのハンドル番号でないと判定された場合、S1209に進む。S1209に進む場合とは、動作要求コマンドが書き込まれた場合であり、それについては後述する。
【0083】
S1204において、CPU154は、S1201で所定のキャラクタリスティックに書き込まれた値を取得し、取得した値が正常値であるかもしくは異常値であるかを判定する。
【0084】
CPU154は、例えば、取得した値が、
図13に示すデータフォーマットに沿った値であるか否かに基づいて、正常値であるかもしくは異常値であるかを判定する。また、正常値であるかもしくは異常値であるかの判定として、他の条件が用いられても良い。例えば、通信装置151に入力インタフェース158を介して予め入力された値と、所定のキャラクタリスティックに書き込まれた値とを比較し、一致した場合に正常値であると判定しても良い。ここで、通信装置151に入力インタフェース158を介して予め入力された値は複数の値でも良い。また、所定のキャラクタリスティックに書き込まれたことに基づいて正常値であると判定しても良い。また、ROM152にデータリストを予め格納しておき、そのデータリストに含まれる値と、所定のキャラクタリスティックに書き込まれた値とを比較し、一致した場合に正常値であると判定しても良い。データリストには、例えば、近距離無線通信部157に構築されたGATTデータへのアクセスが承認されている装置の識別情報の一覧が記述されている。そのような識別情報としては、例えば、情報処理装置101の装置名称、MACアドレス、型番でも良い。S1204で正常値であると判定された場合、S1205に進み、異常値であると判定された場合、
図12の処理Aを終了する。
【0085】
S1205において、CPU154は、RAM153等の通信装置151内の記憶領域に、後続して動作要求コマンドが書き込まれた場合には省電力状態からの復帰を許可することを示す情報を格納する。この情報は例えばフラグでも良く、記憶領域に「1」を示すフラグを格納する。CPU154は、タイマにより「1」の時間を監視しており、所定時間の経過に伴ってCPU154により「0」にリセットされる。また、所定時間の経過に伴ってフラグ自体が削除されるようにしても良い。
【0086】
本実施形態では、省電力状態からの復帰を許可することを示す情報が格納されていれば、所定時間内に後続して省電力状態からの復帰が必要であるキャラクタリスティックに動作要求コマンドが書込まれると、通信装置151は省電力状態から復帰する。一方、省電力状態からの復帰を許可することを示す情報が格納されていなければ、所定時間内に後続して、上記のキャラクタリスティックにコマンドが書き込まれた場合であっても、通信装置151は省電力状態から復帰しない。このように、省電力状態からの復帰についてさらに条件を付加するので、予期しない外部の装置からのキャラクタリスティックへの書込みによって省電力状態から復帰することを防ぐことができる。
【0087】
上記では、S1204で異常値であると判定された場合には
図12の処理Aを終了すると説明したが、他の処理が実行されても良い。例えば、CPU154は、省電力状態からの復帰を許可しないことを示す情報をRAM153等の記憶領域に格納するようにしても良い。
【0088】
【0089】
S1206において、情報処理装置101のCPU103は、近距離無線通信部110を介して近距離無線通信部157のキャラクタリスティックに対して、動作要求コマンドを書き込む。
【0090】
S1207において、近距離無線通信部157のCPU201は、S1206で書込みが行われたキャラクタリスティックのハンドル番号を通信装置151のCPU154に送信する。その送信は、CPU154に対する割り込みの構成でも良いし、CPU154が近距離無線通信部157の状態をポーリングする構成でも良い。
【0091】
S1208において、CPU154は、S1207で送信されたハンドル番号が、所定のキャラクタリスティックのハンドル番号であるか否かを判定する。S1208の処理は、S1203の処理と同様である。S1207で送信されたハンドル番号が所定のキャラクタリスティックのハンドル番号でないと判定された場合、S1209に進む。一方、所定のキャラクタリスティックのハンドル番号であると判定された場合、上述したS1204からの処理が行われる。
【0092】
S1209において、CPU154は、
図9のテーブル901を参照して、S1207で送信されたハンドル番号に対応付けられているキャラクタリスティックについて、省電力状態からの復帰が必要であるか否かを判定する。本実施形態では、省電力状態からの復帰が必要であるか否かをキャラクタリスティックのハンドル番号に基づいて判定している。しかしながら、他の条件に基づいて判定しても良い。例えば、サービスのハンドル番号に基づいて判定されても良いし、サービスとキャラクタリスティックの両方のハンドル番号に基づいて判定されても良い。
【0093】
S1209で省電力状態からの復帰が必要であると判定された場合、S1210に進む。一方、S1209で省電力状態からの復帰が必要でないと判定された場合、S1213において、CPU154は、通信装置151を省電力状態から復帰させず、S1212において、書き込まれた動作要求コマンドに応じた処理を実行する。その後、処理Bを終了する。
【0094】
S1209で省電力状態からの復帰が必要であると判定された場合、S1210において、CPU154は、省電力状態からの復帰を許可する情報がRAM153等の記憶領域に格納されているかを判定する。省電力状態からの復帰を許可する情報が格納されていると判定された場合、S1211において、CPU154は、通信装置151を省電力状態から通常電力状態から復帰させる。そして、S1212において、CPU154は、動作要求コマンドが書き込まれたキャラクタリスティックに対応する処理を実行し、処理Bを終了する。一方、S1210で省電力状態からの復帰を許可する情報が格納されていないと判定された場合、S1214において、CPU154は、通信装置151を省電力状態から復帰させず、処理Bを終了する。その場合、動作要求コマンドが書き込まれたキャラクタリスティックに対応する処理を実行しない。なお、情報処理装置101がキャラクタリスティック「装置名称」に書き込んだ後、所定時間の経過後にS1206で動作要求コマンドをキャラクタリスティックに書き込んだ場合、省電力状態からの復帰を示す情報が削除された(例えばフラグ「1」がリセットされた)状態となっている。その場合にも、S1210では、省電力状態からの復帰を許可する情報が格納されていないと判定される。
【0095】
このように、本実施形態では、動作要求コマンドの書込みがあった場合に所定の条件を満たしていれば、通信装置151は、省電力状態から復帰する。所定の条件とは、動作要求コマンドの書込み先のキャラクタリスティックが省電力状態からの復帰が必要である領域であること、動作要求コマンドの書込みの前に所定のキャラクタリスティック(「装置名称」領域)に書込みがあること、である。所定の条件を満たさなかった場合には、動作要求コマンドが書き込まれた場合であっても、通信装置151は、省電力状態から復帰しない。
【0096】
そのような構成により、通信装置151に意図外の動作要求コマンドが書き込まれた場合、例えば近距離無線通信部157のGATTデータへのアクセスが承認されていない装置から動作要求コマンドが書き込まれた場合には、省電力状態から復帰しない。その結果、不要な消費電力を抑えることができる。
【0097】
本実施形態では、正常値であるかもしくは異常値であるかの判定をS1204で行い、S1205で省電力状態からの復帰を許可することを示す情報を記憶領域に格納するとして説明した。しかしながら、正常値であるかもしくは異常値であるかの判定を、動作要求コマンドが書き込まれたタイミングで行うようにしても良い。例えば、S1210でCPU154は「装置名称」領域の値を取得し、取得した値が正常値であると判定した場合、S1211の処理を実行し、異常値であると判定した場合、S1214の処理を実行するようにしても良い。
【0098】
また、S1205で記憶領域に格納された省電力状態からの復帰を許可することを示す情報は、通信装置151と情報処理装置101の接続が切断された場合には削除等によって初期化するようにしても良い。
【0099】
[第3実施形態]
以下、第1実施形態及び第2実施形態と異なる点について第3実施形態を説明する。
図14は、本実施形態における、通信装置151における省電力状態からの復帰制御処理を示すフローチャートである。
【0100】
図9のテーブル901がメモリの制約上、保持されていないケースが想定され得る。そのようなケースにおいて、近距離無線通信部157に動作要求コマンドが書き込まれると、一律に通信装置151を省電力状態から復帰する。例えば意図しない情報処理装置101からの動作要求コマンドの書込みがあった場合でも、省電力状態からの復帰が行われ、電力を不要に消費してしまう。
【0101】
本実施形態においては、近距離無線通信部157のキャラクタリスティック「装置名称」に情報処理装置101から事前に値を書き込まれていることに基づいて、通信装置151を省電力状態から復帰させる。そして、動作要求コマンドが書き込まれたキャラクタリスティックに対応する処理を実行する。そのような構成により、意図しない情報処理装置101からの動作要求コマンドの書込みが行われた場合には、省電力状態からの復帰は行われない。その結果、不要な消費電力を抑制することができる。
【0102】
図14の通信装置151の処理は、例えば、CPU154が、ROM152又は通信装置151が備えるHDD(不図示)に記憶されている制御プログラムをRAM153にロードし、その制御プログラムを実行することで実現される。また、
図14の情報処理装置101の処理は、例えば、CPU103が、ROM104又は情報処理装置101が備えるHDD(不図示)に記憶されている制御プログラムをRAM105にロードし、その制御プログラムを実行することで実現される。本実施形態では、
図16の処理Aと処理Bがその順序で行われた場合に、通信装置151の省電力状態からの復帰が行われる。
図14の処理は、S701~S711において、情報処理装置101と通信装置151がBLE接続を確立し、GATT通信方式によってデータ通信を行うことができるようになった状態から行われる。
【0103】
S1401において、情報処理装置101のCPU103は、近距離無線通信部110を介して近距離無線通信部157に対して、近距離無線通信部157で構築されているGATTデータのキャラクタリスティック「装置名称」に書き込む。書き込まれる値は、例えば、「1」等の所定の値であっても良いし、情報処理装置101を識別可能な値でも良い。また、キャラクタリスティック「装置名称」は、ベンダーオリジナルのキャラクタリスティック領域である。
【0104】
S1402において、近距離無線通信部157のCPU201は、キャラクタリスティック「装置名称」に書き込みが実行されたことを、通信装置151のCPU154に対して通知する。その通知は、CPU154に対する割り込みの構成でも良いし、CPU154が近距離無線通信部157の状態をポーリングする構成でも良い。
【0105】
S1403において、CPU154は、キャラクタリスティック「装置名称」に書き込まれた値を取得し、取得した値が正常値であるかもしくは異常値であるかを判定する。CPU154は、例えば、取得した値が、
図13に示すデータフォーマットに沿った値であるか否かに基づいて、正常値であるかもしくは異常値であるかを判定する。また、正常値であるかもしくは異常値であるかの判定として、他の条件が用いられても良い。例えば、通信装置151に入力インタフェース158を介して予め入力された値と、所定のキャラクタリスティックに書き込まれた値とを比較し、一致した場合に正常値であると判定しても良い。ここで、通信装置151に入力インタフェース158を介して予め入力された値は複数の値でも良い。また、所定のキャラクタリスティックに書き込まれたことに基づいて正常値であると判定しても良い。また、ROM152にデータリストを予め格納しておき、そのデータリストに含まれる値と、所定のキャラクタリスティックに書き込まれた値とを比較し、一致した場合に正常値であると判定しても良い。データリストには、例えば、近距離無線通信部157に構築されたGATTデータへのアクセスが承認されている装置の識別情報の一覧が記述されている。そのような識別情報としては、例えば、情報処理装置101の装置名称、MACアドレス、型番でも良い。S1403で正常値であると判定された場合、S1404において、CPU154は、通信装置151内のRAM153等の記憶領域に、省電力状態からの復帰を許可することを示す情報を格納する。この情報は例えばフラグでも良く、記憶領域に「1」を示すフラグを格納する。CPU154は、タイマにより「1」の時間を監視しており、所定時間の経過に伴ってCPU154により「0」にリセットされる。また、所定時間の経過に伴ってフラグ自体が削除されるようにしても良い。また、S1404では、S1603で異常値であると判定された場合、CPU154は、省電力状態からの復帰を許可しないことを示す情報を格納しても良い。S1404の後、
図14の処理Aを終了する。
【0106】
【0107】
S1405において、情報処理装置101のCPU103は、近距離無線通信部110を介して近距離無線通信部157のキャラクタリスティックに対して、動作要求コマンドを書き込む。
【0108】
S1406において、近距離無線通信部157のCPU201は、動作要求コマンドがキャラクタリスティックに書き込まれたことを、通信装置151のCPU154に対して通知する。動作要求コマンドが書き込まれたことを通知する方法としては、CPU154に対する割り込みの構成でも良いし、CPU154が近距離無線通信部157の状態をポーリングする構成でも良い。
【0109】
S1407において、CPU154は、省電力状態からの復帰を許可する情報がRAM153等の記憶領域に格納されているかを判定する。省電力状態からの復帰を許可する情報が格納されていると判定された場合、S1408において、CPU154は、通信装置151を省電力状態から復帰させる。そして、S1409において、CPU154は、動作要求コマンドが書き込まれたキャラクタリスティックに対応する処理を実行し、処理Bを終了する。一方、S1407で省電力状態からの復帰を許可する情報が格納されていないと判定された場合、S1410において、CPU154は、通信装置151を省電力状態から復帰させず、処理Bを終了する。その場合、動作要求コマンドが書き込まれたキャラクタリスティックに対応する処理を実行しない。
【0110】
そのような構成により、通信装置151に意図外の動作要求コマンドが書き込まれた場合、例えば近距離無線通信部157に構築されたGATTデータへのアクセスが承認されていない装置から動作要求コマンドが書き込まれた場合、省電力状態から復帰しない。その結果、不要な消費電力を抑えることができる。
【0111】
本実施形態では、正常値であるかもしくは異常値であるかの判定をS1403で行い、S1404で省電力状態からの復帰を許可することを示す情報を記憶領域に格納するとして説明した。しかしながら、正常値であるかもしくは異常値であるかの判定を、実行要求コマンドが書き込まれたタイミングで行うようにしても良い。例えば、S1407でCPU154はキャラクタリスティック「装置名称」の値を取得し、取得した値が正常値であると判定した場合、S1408の処理を実行し、異常値であると判定した場合、S1410の処理を実行するようにしても良い。
【0112】
以上のように、本実施形態によれば、近距離無線通信部157のキャラクタリスティック「装置名称」に情報処理装置101から事前に値を書き込まれていることに基づいて、通信装置151を省電力状態から復帰させる。そのような構成により、
図9のテーブル901がない構成においても、意図しない情報処理装置101からの動作要求コマンドの書込みが行われた場合には省電力状態からの復帰は行われないので、不要な消費電力を抑制することができる。また、省電力状態から復帰させる必要がある処理に対応する動作要求コマンドが多数であっても、情報処理装置101側で、キャラクタリスティック「装置名称」に書き込む手順を認識しておけば良い。即ち、通信装置151側の不揮発性メモリ等に記憶させておく必要がないので、記憶領域の増大を防ぐことができる。また、同一の動作要求コマンドであっても、情報処理装置101の状態や、動作要求コマンドの送信タイミングによって、省電力状態から復帰させるか否かを切替えることが可能となる。
【0113】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0114】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0115】
101 情報処理装置: 103、154、201 CPU: 104、152 ROM: 105、153 RAM: 110、157 近距離無線通信部: 151 通信装置