JP2023026912A - プログラムおよび方法 - Google Patents
プログラムおよび方法 Download PDFInfo
- Publication number
- JP2023026912A JP2023026912A JP2021132358A JP2021132358A JP2023026912A JP 2023026912 A JP2023026912 A JP 2023026912A JP 2021132358 A JP2021132358 A JP 2021132358A JP 2021132358 A JP2021132358 A JP 2021132358A JP 2023026912 A JP2023026912 A JP 2023026912A
- Authority
- JP
- Japan
- Prior art keywords
- access point
- communication device
- information processing
- communication
- cpu
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000004891 communication Methods 0.000 claims abstract description 461
- 230000010365 information processing Effects 0.000 claims abstract description 172
- 230000008569 process Effects 0.000 claims abstract description 75
- 238000012545 processing Methods 0.000 claims description 86
- 230000006870 function Effects 0.000 claims description 36
- 230000005540 biological transmission Effects 0.000 description 16
- 238000012544 monitoring process Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
【課題】通信装置とアクセスポイントとを接続させる処理をより簡便化するプログラムを提供する。【解決手段】情報処理装置では、アクセスポイントと接続するためのパスワードに対応する二次元コードを取得し、表示部に表示された二次元コードを解析し、アクセスポイントと接続するためのパスワードを取得する。そして、取得されたパスワードを用いて、通信装置とアクセスポイントとを接続させる処理を実行する。【選択図】図4
Description
本発明は、無線通信を介した接続処理を実行可能なプログラムおよび方法に関する。
スマートホン等の情報処理装置がネットワーク対応のプリンタ等の通信装置と無線LAN通信等の通信方式によって接続する方法として、無線LANルータ等の、通信装置外のアクセスポイントを経由して接続する方法がある。この接続方法をインフラストラクチャー接続と呼ぶ。情報処理装置と通信装置は、インフラストラクチャー接続を確立することにより、例えば、双方向通信や、インターネットに接続してインターネット上のサービスを利用することが可能となる。
特許文献1には、Bluetooth(登録商標) Low Energy(BLE)を利用し、通信装置が接続可能なアクセスポイントの一覧を通信装置から取得することが記載されている。また、特許文献1では、その一覧の中から1つのアクセスポイントをユーザに選択させ、選択されたアクセスポイントを用いて通信装置とインフラストラクチャー接続することが記載されている。
特許文献1に記載されている方法により、通信装置とアクセスポイントとを接続させることができるが、通信装置とアクセスポイントとを接続させる処理をより簡便に行えるようにすることが望まれる。
本発明は、通信装置とアクセスポイントとを接続させる処理をより簡便化するプログラムおよび方法を提供することを目的とする。
上記課題を解決するため、本発明に係るプログラムは、通信装置と通信可能な情報処理装置のコンピュータを、アクセスポイントと接続するためのパスワードに対応する二次元コードを取得する第1取得手段、表示部に表示された前記二次元コードを解析し、前記アクセスポイントと接続するためのパスワードを取得する第2取得手段、前記第2取得手段により取得された前記パスワードを用いて、前記通信装置と前記アクセスポイントとを接続させる処理を実行する処理手段として機能させる。
本発明によれば、アクセスポイントを用いた通信接続をより簡便化することができる。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
本実施形態の通信システムに含まれる情報処理装置及び通信装置について説明する。情報処理装置として、本実施形態ではスマートホンを例示しているが、これに限定されず、携帯端末、ノートPC、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、種々の装置を適用可能である。また、通信装置として、本実施形態ではプリンタを例示しているが、これに限定されず、情報処理装置と無線通信を行うことが可能な装置であれば、種々の装置を適用可能である。例えば、プリンタであれば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等を適用することができる。また、プリンタのみならず複写機やファクシミリ装置、携帯端末、スマートホン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ等を適用可能である。その他、複写機能、FAX機能、印刷機能等の複数の機能を備える複合機を適用可能である。
まず、本実施形態の情報処理装置と、情報処理装置と通信可能な通信装置とを含むシステム構成について図1のブロック図を参照して説明する。また、本実施形態では以下の構成を例に説明するが、本実施形態は通信装置と通信を行うことが可能な装置であれば、図1のブロック構成に限定されるものではない。
情報処理装置101は、入力インタフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース107、表示部108、通信部111、近距離無線通信部112等を有する。
入力インタフェース102は、マウス110やキーボード109が操作されることによるユーザからのデータ入力や動作指示を受け付けるためのインタフェースである。CPU103は、システム制御部であり、情報処理装置101の全体を制御する。ROM104は、CPU103が実行する制御プログラムやデータテーブル、組み込みオペレーティングシステム(OS)プログラム等の固定データを記憶する。本実施形態では、ROM104に記憶されている各制御プログラムは、ROM104に記憶されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。
RAM105は、バックアップ電源を必要とするSRAM(Static Random Access Memory)等で構成される。なお、RAM105は、不図示のデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに記憶することが可能である。また、情報処理装置101の設定情報や情報処理装置101の管理データ等を記憶するメモリエリアもRAM105に設けられている。また、RAM105は、CPU103の主メモリとワークメモリとしても用いられる。
外部記憶装置106は、印刷実行機能を提供するアプリケーション、通信装置151が解釈可能な印刷情報を生成する印刷情報生成プログラム等を保存している。また、外部記憶装置106は、通信部111を介して接続している通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムや、これらのプログラムが使用する各種情報を保存している。
出力インタフェース107は、表示部108がデータの表示や情報処理装置101の状態の通知を行うための制御を行うインタフェースである。表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や情報処理装置101の状態の通知を行う。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等の操作部を設置することで、表示部108を介してユーザからの入力を受け付けても良い。
通信部111は、通信装置151やアクセスポイント131等の装置と接続して、データ通信を実行するための構成である。例えば、通信部111は、通信装置151内のアクセスポイント(不図示)に接続可能である。通信部111と通信装置151内のアクセスポイントが接続することで、情報処理装置101と通信装置151は相互に通信可能となる。なお、通信部111は、無線通信で通信装置151とダイレクトに通信しても良いし、情報処理装置101や通信装置151の外部に存在する外部装置を介して通信しても良い。なお、外部装置とは、情報処理装置101の外部及び通信装置151の外部に存在する外部アクセスポイント(アクセスポイント131等)や、アクセスポイント以外で通信を中継可能な装置を含む。無線通信方式としては、例えば、802.11シリーズ(すなわちWi-Fi(WirelessFidelity)(登録商標))やBluetooth(登録商標)等が挙げられる。また、アクセスポイント131としては、例えば、無線LANルータ等の機器などが挙げられる。なお、本実施形態において、情報処理装置101と通信装置151とが外部アクセスポイントを介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101と通信装置151とが外部アクセスポイントを介して接続する方式をインフラストラクチャー接続方式という。
近距離無線通信部112は、通信装置151等の装置と近距離で無線接続して、データ通信を実行するための構成であり、通信部111とは異なる通信方式によって通信を行う。近距離無線通信部112は、例えば、通信装置151内の近距離無線通信部157と接続可能である。通信方式としては、例えば、Bluetooth(登録商標) Low Energy(BLE)、WiFi Aware等が挙げられる。なお、本実施形態において、通信部111は、近距離無線通信部112よりも高速な通信を行うことができる構成とする。例えば、近距離無線通信部112は、通信部111によって通信を行うための通信情報を、通信装置151等の装置と送受信するために用いられる。
通信装置151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、近距離無線通信部157等を有する。
通信部156は、通信装置151内部のアクセスポイントとして、情報処理装置101等の装置と接続するためのアクセスポイントを有している。なお、該アクセスポイントは、情報処理装置101の通信部111に接続可能である。なお、通信部156は、無線通信で情報処理装置101とダイレクトに通信しても良いし、アクセスポイント131を介して通信しても良い。通信方式としては、例えば、Wi-Fi(登録商標)やBluetooth(登録商標)等が挙げられる。また、通信部156は、アクセスポイントとして機能するハードウェアを備えていてもよいし、アクセスポイントとして機能させるためのソフトウエアにより、アクセスポイントとして動作してもよい。
近距離無線通信部157は、情報処理装置101等の装置と近距離で無線接続するための構成であり、例えば、情報処理装置101内の近距離無線通信部112と接続可能である。通信方式としては、例えば、BLE、WiFi Aware等が挙げられる。なお、本実施形態において、通信部156は、近距離無線通信部157よりも高速な通信を行うことができる構成とする。例えば、近距離無線通信部157は、通信部156によって通信を行うための通信情報を、情報処理装置101等の装置と送受信するために用いられる。
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との処理分担を上記のように示したが、特にこの分担形態に限らず他の形態であってもよい。
通信装置151は、後述の接続設定処理により接続モードが設定され、設定された接続モードに基づいた接続形態により、情報処理装置101と通信を行う。通信装置151は、インフラストラクチャー接続により通信を行う場合は、接続モードとしてインフラストラクチャー接続モードが接続設定処理により設定される。また、通信装置151は、ダイレクト接続により通信を行う場合は、接続モードとしてダイレクト接続モードが接続設定処理により設定される。
情報処理装置101と通信装置151とがインフラストラクチャー接続する際に、情報処理装置101が、インフラストラクチャー接続に利用するアクセスポイントを通信装置151に登録する処理(接続設定処理)について説明する。本実施形態では、情報処理装置101がアクセスポイント131に接続しており、インフラストラクチャー接続に利用するアクセスポイントとしてアクセスポイント131を通信装置151に登録するものとして説明する。また、本実施形態では、近距離無線通信部112および近距離無線通信部157はBLEによって通信を行うものとして説明する。なお、本実施形態では、近距離無線通信部157が、後述のアドバタイズ情報をブロードキャストするアドバタイザ(又はスレーブ)として機能し、近距離無線通信部112が、アドバタイズ情報を受信するスキャナ(又はマスタ)として機能する。また、通信部111および通信部156は、無線LAN(Wi-Fi)によって通信を行うものとして説明する。また、接続設定処理は、情報処理装置101がアクセスポイント131に接続しており且つ通信装置151がアクセスポイント131に接続していない状態で開始されるものとして説明する。
また、本実施形態では、情報処理装置101と通信装置151間で認証を行い、装置間でGATT(Generic Attribute Profile)通信によりデータの読み書きを実行するためのペアリング処理を実施する。なお、GATTとは、BLE規格において情報の読み書き(送受信)を司るプロファイルである。そして、GATT通信とは、情報処理装置101がGATTクライアント、通信装置151がGATTサーバの役割を担い、GATTベースのプロファイルにより、情報処理装置101から通信装置151に対し情報の読み書きが行われる通信である。情報処理装置101と通信装置151間でのペアリングが実行されていない状態では、通信装置151は、GATT通信による情報の読み書きを許可しない構成とする。このようにすることで、ペアリングを行っていない情報処理装置101と通信装置151が通信を行ってしまい、例えば、通信装置151が保持する情報がペアリングを行っていない情報処理装置101に不用意に取得されてしまうことを防ぐことができる。
ペアリング処理の詳細について説明する。まず、情報処理装置101は、印刷アプリケーション(印刷アプリ)が起動され、印刷アプリによって表示される初期画面(ホーム画面)が表示部108に表示された場合、特定の装置情報を有するアドバタイズ情報のサーチを開始する。なお、特定の装置情報とは、例えば、印刷アプリに対応する装置(プリンタ等)のUUIDやMACアドレス等である。そして、情報処理装置101は、特定の装置情報を有するアドバタイズ情報を受信すると、当該アドバタイズ情報を送信した装置(ここでは、通信装置151)に、BLE接続要求(CONNECT_REQ)を送信し、装置間でBLE接続を確立する。そして、情報処理装置101は、通信装置151とのペアリングを完了していない場合は、ユーザにペアリングを促すための画面を表示部108に表示する。そして、情報処理装置101は、ペアリングの実行をユーザに指示された場合、セキュリティマネージャプロトコルによる通信により、通信装置151に、ペアリング要求を送信する。なお、ペアリングが終了するまで、装置間の通信は、セキュリティマネージャプロトコルによって行われるものとする。
通信装置151は、ペアリング要求を受信すると、通信装置151が有する表示部(不図示)に、図2(a)に示すようなPINコード表示画面200を表示する。PINコード表示画面200には、PINコード201と、ペアリング処理をキャンセルするためのCancelボタン202が表示される。そして、情報処理装置101は、ペアリング要求を送信すると、表示部108に、図2(b)に示すようなPINコード入力画面210を表示する。PINコード入力画面210には、PINコード入力領域211と、OKボタン213と、Cancelボタン212が表示される。PINコード入力領域211は、ユーザによるPINコード201の入力を受け付けるための領域である。OKボタン213は、入力されたPINコード201を通信装置151に送信するためのボタンである。Cancelボタン212は、ペアリング処理をキャンセルするためのボタンである。PINコード入力領域211にPINコード201が入力された状態で、OKボタン213が押下されると、情報処理装置101は、入力されたPINコード201を含む情報を通信装置151に送信する。
通信装置151は、受信した情報に含まれるPINコード201が、PINコード表示画面200に表示したPINコード201と一致するか否かを判定し、一致すると判定した場合は、情報処理装置101にペアリングを許可する。具体的には、通信装置151は、PINコード201に基づいて所定の方法で作成されたリンクキーを、BLE規格のSMP(Security Manager Protocol)を利用して情報処理装置101に送信する。このようにして、リンクキーは、情報処理装置101の持つ記憶領域(ROM104等)と通信装置151の持つ記憶領域(ROM152等)にそれぞれ格納される。これによりペアリングが完了し、以降、装置間でBLE通信を実行することが許可される。なお、情報処理装置101は、ペアリングが完了すると、PINコード表示画面200を非表示とし、元の画面を再度表示する。
ペアリング完了後は、情報処理装置101は、通信装置151に対してGATT通信要求を送信する際には、ペアリング処理時に記憶領域に保存したリンクキーを通信装置151に通知する。通信装置151は、GATT通信要求を受信した場合、ペアリング処理時に記憶領域に保存したリンクキーと通知されたリンクキーを比較して、GATT通信要求を発信している装置が、ペアリング済みの装置であるかを確認する。そして、通信装置151は、ペアリング済みの装置であると確認できた場合は、情報処理装置101とのGATT通信による情報の読み書きを開始する。これにより、情報処理装置101は、一旦通信装置151とのペアリング処理を完了しておけば、以降はユーザによるPINコードの入力なしに通信装置151とのGATT通信を実行することができる。
なお、上述では、PINコード入力領域211に、PINコード表示画面200に表示されているPINコード201をユーザに入力させる形態を説明したが、この形態に限定されない。例えば、PINコード201を固定の(ユーザが任意に変更できない)情報とし、印刷アプリのインストールと共に情報処理装置101に格納される形態としても良い。このようにすることで、ユーザの入力なしにPINコード201が通信装置151に通知される形態とすることができる。また、PINコードや固定の情報をユーザが入力することなく、物理キーの押下の検知後で一定期間の間、固定の情報をGATT通信により通信装置151から取得することができ、情報処理装置101に格納される形態としてもよい。また、ペアリング処理が開始されるタイミングも上述の形態に限定されず、例えば、印刷アプリを介してユーザが印刷を指示したタイミングや、後述の接続設定処理においてBLE接続が行われる前のタイミング等であっても良い。
ここで、通信装置151の接続先のアクセスポイントを登録する処理(接続設定処理)について説明する。情報処理装置101は、ROM104や外部記憶装置106等に記憶されている所定のアプリケーションが起動されているときに、接続設定処理を行う。ここで、所定のアプリケーションとは印刷アプリである。印刷アプリは、例えば、通信装置151の接続先のアクセスポイントの設定を行ったり、通信装置151に対して、情報処理装置101内に保持されている画像データ(写真データ等)や文書データ等を印刷させる。なお、印刷アプリは、通信装置151の接続先のアクセスポイントを設定する機能や印刷機能以外に、他の機能を備えていても良い。例えば、印刷アプリは、通信装置151がスキャン機能を備えている場合に、通信装置151にセットされた原稿をスキャンさせる機能や、通信装置151の他の設定を行う機能、通信装置151の状態を確認する機能等を備えていても良い。
図3は、印刷アプリの起動時に表示部108に表示されるユーザインタフェース画面の一例を示す図である。起動画面300を介して、ユーザは、所望の画像の印刷や通信装置151の設定等、通信装置151の備える機能を利用することができる。情報処理装置101は、プリントボタン301の押下を検知すると、通信装置151に印刷を実行させる。また、情報処理装置101は、スキャンボタン302の押下を検知すると、通信装置151にスキャンを実行させる。また、情報処理装置101は、プリンタセットアップボタン303の押下を検知すると、通信装置151に対して接続設定処理を開始する。なお、本実施形態では、通信装置151に対して接続設定処理を行うために、まず、通信装置151を接続設定モードに移行させる。
接続設定モードとは、通信装置151に対して接続モードを設定する場合に通信装置151に設定されるモードであり、通信装置151が備える入力インターフェース(不図示)に対してユーザから所定の入力が行われた場合等に、通信装置151に設定される。通信装置151は、接続設定モードである場合、近距離無線通信部157を介してアドバタイズ情報の送信を開始する。なお、通信装置151がアドバタイズ情報の送信を開始するタイミングは、上述の形態に限定されず、例えば、通信装置151の電源がONになったタイミングや、BLE機能を有効にするための所定の操作が行われたタイミング等であっても良い。この場合は、通信装置151に対して接続設定処理を行うために、情報処理装置101から通信装置151に接続設定モードが設定される必要はない。
図4は、情報処理装置101で実行される接続設定処理を示すフローチャートである。図4に示すフローチャートは、例えば、CPU103がROM104や外部記憶装置106等に記憶されたプログラムをRAM105に読み出して実行することにより実現される。また、図4のフローチャートが示す処理は、情報処理装置101と通信装置151との間でペアリングが完了している状態で、プリンタセットアップボタン303が押下された場合に開始されるものとする。また、このとき、通信装置151は、接続設定モードに移行しているものとする。
まず、S401にて、CPU103は、ユーザから接続設定処理の実行が指示されたことを検知し、アドバタイズ情報を受信可能な状態であるスキャニング状態となる。次に、S402では、CPU103は、通信装置151の近距離無線通信部157から送信されるアドバタイズ情報を、近距離無線通信部112が受信したか否かを判定する。具体的には、CPU103は、アドバタイズ情報を近距離無線通信部112が受信したか否かと、受信したアドバタイズ情報に通信装置151を示す識別情報が含まれているか否かを判定する。本実施形態では、情報処理装置101は、印刷アプリに対応している機種やベンダーの通信装置151と通信するものとする。そのため、CPU103は、受信したアドバタイズ情報に、印刷サービスを提供可能なことを示す情報や、印刷アプリに対応する機種やベンダに関する情報が含まれている場合に、通信装置151を示す識別情報が含まれていると判定する。
CPU103は、アドバタイズ情報を近距離無線通信部112が受信したと判定した場合、S403の処理を行う。一方、CPU103は、アドバタイズ情報を近距離無線通信部112が受信していないと判定した場合、S435の処理を行い、接続設定処理を開始してから所定の時間が経過したか否か(タイムアウトしたか否か)を判定する。CPU103は、タイムアウトしていないと判定した場合、S402の処理を再び行う。一方、CPU103は、タイムアウトしたと判定した場合、図4の処理を終了する。なお、このとき、CPU103は、タイムアウトした旨をユーザに通知するための画面を表示部108に表示しても良い。
S403では、CPU103は、受信したアドバタイズ情報に基づいてBLE接続を確立し、近距離無線通信部112を介したGATT通信により、通信部156が検索により発見した外部アクセスポイントの一覧を通信装置151に対して要求する。このとき要求される一覧は、通信部156が接続可能な外部アクセスポイントを識別するための情報の一覧であり、外部アクセスポイントを識別するための情報は、例えば、SSIDなどである。
ここで、S403の処理の内容を図5を用いて説明する。
図5は、S403の処理を示すフローチャートである。図5に示すフローチャートは、例えば、CPU103がROM104や外部記憶装置106等に記憶されたプログラムをRAM105に読み出して実行することにより実現される。
S501では、CPU103は、受信したアドバタイズ情報に基づき、GATT通信の開始要求を通信装置151に送信する。GATT通信の開始要求が通信装置151に受け付けられることで、通信装置151と情報処理装置101でGATT通信が開始される。
S502では、CPU103は、通信部156が検索により発見した外部アクセスポイントの一覧の更新指示を、近距離無線通信部112を介したGATT通信により、通信装置151に対して送信する。続いて、S503では、CPU103は、通信装置151と情報処理装置101との間のBLE接続を解除(切断)し、GATT通信を終了させる。通信装置151と情報処理装置101との間のBLE接続が解除されると、近距離無線通信部112は、アドバタイズ情報を受信可能な状態であるスキャニング状態となる。
通信装置151において、通信部156が検索により発見した外部アクセスポイントの一覧の更新が成功(完了)した場合、その旨を示すアドバタイズ情報(信号)が、近距離無線通信部157から送信される。そこで、S504では、CPU103は、通信部156が検索により発見した外部アクセスポイントの一覧の更新が成功(完了)したことを示すアドバタイズ情報(信号)を、近距離無線通信部112が受信したか否か(信号受信したか否か)を判定する。具体的には、CPU103は、アドバタイズ情報を近距離無線通信部112が受信したか否かと、受信したアドバタイズ情報に通信装置151を示す識別情報および一覧の更新が成功したことを示す情報が含まれるか否かを判定する。CPU103は、通信部156が検索により発見した外部アクセスポイントの一覧の更新が成功したことを示すアドバタイズ情報を近距離無線通信部112が受信したと判定した場合、S506の処理を行い、その後、図5の処理を終了する。
一方、CPU103は、通信部156が検索により発見した外部アクセスポイントの一覧の成功が完了したことを示すアドバタイズ情報を近距離無線通信部112が受信していないと判定した場合、S505の処理を行う。CPU103は、S505では、アクセスポイントの一覧の更新指示を送信してから所定の時間が経過したか否か(タイムアウトしたか否か)を判定する。CPU103は、タイムアウトしていないと判定した場合、S504の処理を再び行う。一方、CPU103は、タイムアウトしたと判定した場合、S507の処理を行い、その後、図5の処理を終了する。なお、このとき、CPU103は、タイムアウトした旨をユーザに通知するための画面を表示部108に表示しても良い。
S506では、CPU103は、通信部156が検索により発見した外部アクセスポイントの一覧の更新が成功したことを示す判定情報を、RAM105に格納する。また、S507では、CPU103は、通信部156が接続可能な外部アクセスポイントの一覧の更新が失敗したことを示す判定情報を、RAM105に格納する。これらの判定情報は、S404での判定処理において用いられる。
S506及びS507の後、図4に示すフローチャートの処理に戻る。S404では、CPU103は、通信部156が検索により発見した外部アクセスポイントの一覧の要求が成功したか否かを判定する。このとき、CPU103は、S403にてRAM105に保持した判定情報を読み出して判定を行う。CPU103は、更新が成功したと判定した場合は、S405の処理を行う。なおこのとき、通信装置151と情報処理装置101との間のBLE接続が解除(切断)されているので、CPU103は、S405にて、BLE接続を再度確立する。一方、CPU103は、更新が失敗したと判断した場合は、図4の処理を終了する。
S405では、CPU103は、受信したアドバタイズ情報に基づきBLE接続を確立し、GATT通信の開始要求を通信装置151に送信する。GATT通信の開始要求が通信装置151に受け付けられることで、通信装置151と情報処理装置101でGATT通信が開始される。ここで、BLE規格におけるGATT通信では、一方の装置がマスタ、もう一方の装置がスレーブとなることで、装置間での双方向の通信が可能となるが、本実施形態では、通信装置151がスレーブ側になり、情報処理装置101がマスタ側となる。
S406では、CPU103は、接続設定処理の対象となる通信装置の候補をディスカバリし、ディスカバリされた装置のリストを、表示部108に表示する。具体的にはCPU103は、まず、S405にて、BLE接続を確立した通信装置をリストに追加する。さらに、CPU103は、公知のディスカバリプロセスによって、接続設定モードとなっている通信装置をリストに加える。例えば、BLEを介した接続設定処理でなく、Wi-Fiを介した接続設定処理を実行可能な通信装置がある場合がある。そのような通信装置が接続設定モードになっている場合は、例えば、接続設定モード時のみ有効な内部アクセスポイントを有効化している。そのため、CPU103は、当該内部アクセスポイントがWi-Fi規格に則って送信しているビーコンを検知することで、接続設定モードになっている通信装置をディスカバリすることができる。また、当該内部アクセスポイントは、例えば、ユーザが任意に変更できない固定のSSIDを有している。そのため、CPU103は、検知したビーコンのうち、固定のSSIDを有しているビーコンを特定し、特定したビーコンを発している内部アクセスポイントを備える通信装置をリストに加える。すなわち、本実施形態では、接続設定処理の対象となる通信装置として、情報処理装置101がBLEによって接続している通信装置と、接続設定モードになって特定の内部アクセスポイントを有効化している通信装置とをリストに表示する。
なお、リストに追加される通信装置はそれらの形態に限定されず、例えば、接続設定モードとなって特定のアドバタイズ情報を送信している通信装置がリストに追加されても良い。また、情報処理装置101がBLEによって接続している通信装置と、接続設定モードになって特定の内部アクセスポイントを有効化している通信装置が同一である場合には、どちらか一方のみがリストに表示されるようにしても良い。また、S406の処理が実行されるタイミングはこの形態に限定されず、例えば、S402の直後にS406の処理が実行されても良い。この場合、S402にて受信されたアドバタイズ情報を送信している通信装置がリストに追加される。また、CPU103は、例えば、通信装置のディスカバリを一定時間行った結果、1つの通信装置しかリストに追加されなかった場合、リストを表示せずS407に進み、当該1つの通信装置を対象装置として特定しても良い。また、CPU103は、例えば、通信装置のディスカバリを一定時間行った結果、通信装置が1つもリストに追加されなかった場合、エラー画面を表示部108に表示して接続設定処理を終了しても良い。また、表示部108に表示されるリストには、リストに追加された通信装置に対応する情報が含まれる。例えば、通信装置に対応する情報は、通信装置のMACアドレスやIPアドレスであっても良いし、通信装置が備える内部アクセスポイントのSSIDであっても良い。
S407では、CPU103は、ユーザの選択を受け付けて、リストに追加した通信装置のうち、接続設定処理の対象となる通信装置(対象装置)を特定する。なお、例えば、通信装置のディスカバリを一定時間行った結果、1つの通信装置しかリストに追加されなかった場合、CPU103は、ユーザの選択を受け付けることなく、当該1つの通信装置を自動的に特定しても良い。CPU103は、対象装置を特定した場合、以降の接続設定処理を、特定した対象装置に対して実行する。これにより、例えば、情報処理装置101の周辺に、接続設定処理の対象となる装置の候補が複数ある場合には、接続設定処理の対象となる装置をユーザに選択させることができる。
なお、上述したように、接続設定処理の対象となる通信装置の候補のリストを表示するタイミングや、接続設定処理の対象となる通信装置の候補をディスカバリするタイミングは、上述の形態に限定されない。以下、他の形態の例について説明する。
例えば、CPU103は、通信装置とのGATT通信を開始する前に、接続設定処理の対象となる通信装置の候補のリストを表示したり、接続設定処理の対象となる通信装置の候補をディスカバリしても良い。その場合、リストには、公知のディスカバリプロセスによって検索される、接続設定モードとなっている通信装置と、情報処理装置101が受信するアドバタイズ情報の送信元の通信装置とが表示される。そして、CPU103は、リストから通信装置が選択された場合、選択された通信装置とのGATT通信を開始した後、S408以降の処理を実行する。なお、このとき、CPU103は、情報処理装置101が受信するアドバタイズ情報の送信元の通信装置全てを表示しなくても良い。
例えば、アドバタイズ情報には、当該アドバタイズ情報の送信元の通信装置が提供可能なサービスに関する情報や、当該通信装置の機種やベンダに関する情報が格納されている場合がある。その場合、例えば、CPU103は、受信したアドバタイズ情報に、印刷サービスを提供可能なことを示す情報が含まれている場合、当該アドバタイズ情報の送信元の通信装置をリストに表示し、当該情報が含まれていない場合、リストに表示しない。また、例えば、CPU103は、受信したアドバタイズ情報に、印刷アプリに対応する機種やベンダに関する情報が含まれている場合、当該アドバタイズ情報の送信元の通信装置をリストに表示し、当該情報が含まれていない場合、リストに表示しない。
また、例えば、アドバタイズ情報には、当該アドバタイズ情報の送信元の通信装置の状態に関する情報が格納されている場合がある。その場合、受信したアドバタイズ情報に、通信装置がビジー状態やエラー状態であることを示す情報が含まれていなければ、CPU103は、当該アドバタイズ情報の送信元の通信装置をリストに表示する。一方、当該情報が含まれているのであれば、CPU103は、アドバタイズ情報の送信元の通信装置をリストに表示しない。これは、通信装置がビジー状態やエラー状態である場合、通信装置は接続設定処理を実行することができないためである。なお、ビジー状態とは、例えば、通信装置が印刷やスキャン処理を実行している状態や、通信装置が備える操作部に対する操作が行われている状態である。
また、例えば、CPU103は、受信したアドバタイズ情報の送信元の通信装置がペアリング済みの通信装置である場合、当該アドバタイズ情報の送信元の通信装置をリストに表示し、ペアリング済みの通信装置でない場合、リストに表示しない。
また、例えば、公知のディスカバリプロセスによって検索される、接続設定モードとなっている通信装置が、BLEによってアドバタイズ情報を送信している場合がある。そのため、接続設定モードとなっている通信装置がリストに追加された後、アドバタイズ情報の送信元の通信装置がリストに追加される形態では、同一の通信装置がリストに重複して表示されてしまうことがある。そこで、CPU103は、同一の通信装置がリストに重複して表示されないように制御しても良い。例えば、アドバタイズ情報には、当該アドバタイズ情報の送信元の通信装置の識別情報が格納されている場合がある。また、CPU103は、公知のディスカバリプロセスによって通信装置を発見した場合、発見された通信装置の識別情報を取得することが可能である。そこで、CPU103は、当該アドバタイズ情報の送信元の通信装置の識別情報と、公知のディスカバリプロセスによって発見された通信装置の識別情報とが一致する場合、同一の通信装置がリストに重複して表示されないように制御する。
また、CPU103は、リストに表示された通信装置から、特定の内部アクセスポイントを有効化している通信装置が選択された場合は、BLEを介した接続設定処理でなく、WiFiを介した接続設定処理を実行しても良い。この場合、CPU103は、選択された通信装置に対し、特定の内部アクセスポイントと接続するための接続情報を送信する。なお、当該接続情報には、例えば、特定の内部アクセスポイントのSSIDや、特定の内部アクセスポイントと接続するためのパスワードが含まれる。なお、CPU103は、特定の内部アクセスポイントと接続するためのパスワードを、ユーザから入力を受け付けることで取得しても良いし、印刷アプリから取得することでユーザから入力を受け付けずに取得しても良い。接続情報が送信されると、情報処理装置101と、選択された通信装置とが、WiFi通信方式により、特定の内部アクセスポイントを介して接続される。そして、CPU103は、アクセスポイント131を、選択された通信装置の接続先として登録するための接続設定情報をWiFi通信により、選択された通信装置に送信する。これにより、選択された通信装置にインフラストラクチャー接続モードが設定される。このように、CPU103は、リストを介していずれの通信装置がユーザに選択されたかに応じて、BLEを介して接続設定処理を行うか、WiFiを介して接続設定処理を行うかを切り替えても良い。すなわち、情報処理装置101が受信したアドバタイズ情報の送信元の通信装置や、情報処理装置101がBLEによって接続している通信装置が選択された場合、CPU103は、BLEによって(GATT通信によって)接続設定処理を行う。そして、特定の内部アクセスポイントを有効化している通信装置が選択された場合、CPU103は、WiFiによって接続設定処理を行う。
S408では、CPU103は、S405にて開始したGATT通信によって、接続設定の開始指示を通信装置151に送信する。S409では、CPU103は、S405で確立したGATT通信によって、ネットワーク情報を、接続設定処理の対象となる通信装置151から取得する。ここで、ネットワーク情報には、通信装置151を、アクセスポイント131を介して検出するための識別情報(通信装置151のMACアドレス等)が含まれている。なお、ここではS409で取得されるネットワーク情報に識別情報が含まれている構成としているが、S402で取得されるアドバタイズ情報に、識別情報が含まれている構成としてもよい。また、S405で送信されるGATT通信の開始要求に対して通信装置151が送信するレスポンスデータ等に、識別情報が含まれている構成としてもよい。
続いて、S410では、CPU103は、通信部111が接続しているアクセスポイント131のSSID(Service Set Indentifier)を情報処理装置101にインストールされているOSから取得する。なお、通信部111が接続しているアクセスポイント131の情報は、GATT通信が開始される前に、アクセスポイント131からOSによって取得されている。通信部111が接続しているアクセスポイント131の情報は、例えば、アクセスポイント131が発するWi-Fi規格のビーコンから取得しても良い。また、当該ビーコンを取得してWi-Fi接続を確立した後に、アクセスポイント131に問い合わせて取得しても良い。なお、通信部111が接続しているアクセスポイント131の情報は、OSから取得される形態に限定されず、例えば、S410において、CPU103がアクセスポイント131に問い合わせることで取得しても良い。
S411では、CPU103は、S405で確立したGATT通信により、通信装置151から、通信部156が検索により発見したアクセスポイントの一覧(一覧情報)を取得する。S412では、CPU103は、S411で取得した、通信部156が検索により発見したアクセスポイントの一覧に、S410で取得した、通信部111が接続しているアクセスポイントがあるか否かを判定する。CPU103は、通信部111が接続しているアクセスポイントがあると判定した場合、S413にて、通信部111が接続しているアクセスポイントの情報を通信装置151に送信する。一方、CPU103は、通信部111が接続しているアクセスポイントがないと判定した場合、S423の処理を行う。
S413では、CPU103は、S410にてOSから取得したSSIDを表示する。S414では、当該SSIDに対応するアクセスポイント(ここでは、アクセスポイント131)を利用するためのパスワードの入力を受け付ける。
ここで、S414の処理について図6を用いて説明する。
図6に示すフローチャートは、例えば、CPU103がROM104や外部記憶装置106等に記憶されたプログラム、例えば印刷アプリのプログラムにより実現される。
S601において、CPU103は、情報処理装置101が接続中のアクセスポイント131がパスワード認証が必要なアクセスポイントか否かを判定する。アクセスポイント131がパスワード認証が必要ないアクセスポイントであると判定した場合、CPU103は、ユーザからのアクセスポイント131を利用するためのパスワード入力の受付や、二次元コードによるパスワード取得のための処理を実行することなく図6の処理を終了し、S415の処理を実行する。一方、アクセスポイント131がパスワード認証が必要なアクセスポイントであると判定した場合、CPU103は、S602の処理を実行する。S602において、CPU103は、情報処理装置101がアクセスポイント131の接続設定情報を含む二次元コードを生成する機能(以下、二次元コード生成機能)に対応しているか否かを判定する。具体的にはCPU103は、情報処理装置101のOSのバージョンを確認し、確認されたバージョンが、二次元コード生成機能に対応しているバージョンか否かを判定する。より具体的には例えば、CPU103は、情報処理装置101のAndroid OSのバージョンがバージョン10以降であれば二次元コード生成機能に対応していると判定し、情報処理装置101のAndroid OSのバージョンがバージョン10未満であれば二次元コード生成機能に対応していないと判定する。なお、判定方法はこの方法に限定されない。例えば、二次元コード生成機能を有するアプリケーションプログラムが情報処理装置101にインストールされているか否かを判定することによって本判定が実行されても良い。情報処理装置101が二次元コード生成機能に対応していないと判定した場合、CPU103は、二次元コードによるパスワード取得のための処理を実行することなくS603の処理を実行する。即ち、情報処理装置がS601やS602で規定される所定の条件を満たさない場合にS603の処理が実行される。S603において、CPU103は、パスワード入力画面を表示部108に表示し、ユーザからアクセスポイント131を利用するためのパスワード入力を受け付ける。このとき、パスワードの入力画面として、例えば図7に示す画面700が表示される。CPU103は、入力部701にユーザによって入力されたパスワード情報を取得する。S603の後、図6の処理を終了し、S415の処理を実行する。なお、接続設定情報には、S410で取得したアクセスポイント131のSSIDと、S414で取得したパスワード及び通信装置151の接続モードを設定するためのコマンド等が格納されている。
情報処理装置101が二次元コード生成機能に対応していると判定した場合、CPU103は、S604~S608に示すような、二次元コードによるパスワード取得のための処理を実行する。
S604で、CPU103は、情報処理装置101の表示部108の監視を開始する。表示部108の監視とは、例えば画面のキャプチャである。なお表示部108の監視は、印刷アプリにより実行されるため、キャプチャされた画像は、印刷アプリが適宜取得している。続いて、S605では、CPU103は、情報処理装置101が接続中のアクセスポイント131と接続するためのパスワードを含む(当該パスワードに対応する)二次元コードを表示するよう、ユーザに要求するための通知画面を表示する。ユーザは、その要求に応じて、情報処理装置101を操作する。その際のユーザ操作とは、例えば、二次元コード生成機能の実行操作である。より具体的には、当該実行操作とは、二次元コードの生成機能を有する、OS標準の設定アプリケーションプログラム(以下、設定アプリ)を起動する操作及び、設定アプリが表示する画面において二次元コードを表示するための操作である。ユーザからの操作に応じて、CPU103は、表示部108に、情報処理装置101が記憶領域に保有する、情報処理装置101が接続中のアクセスポイント131と接続するためのパスワードを含む二次元コードを設定アプリにより生成して表示する。このとき、印刷アプリは表示部108の監視を実行しているので、設定アプリにより生成・表示された二次元コードを印刷アプリが取得することができる。なお当該二次元コードには、パスワード以外の情報が含まれていても良い。例えば当該二次元コードには、アクセスポイントのSSIDや暗号化方式等の情報が含まれていても良い。また設定アプリは、情報処理装置101が接続中のアクセスポイント131と接続するためのパスワードを含む二次元コードだけでなく、情報処理装置101が今は接続していないが過去に接続したことがあるアクセスポイントと接続するためのパスワードを含む二次元コードを生成可能であっても良い。そのため、情報処理装置101が今は接続していないが過去に接続したことがあるアクセスポイントと接続するためのパスワードを含む二次元コードが表示された場合は、印刷アプリは、当該二次元コードを取得しても良い。なお、情報処理装置101が接続中のアクセスポイント131と接続するためのパスワードが保存されている記憶領域は、RAM153に設けられていても良いし、外付けHDDやSDカード等のメモリに設けられていても良い。
S606で、CPU103は、情報処理装置101の表示部108の監視中に、二次元コードが検出されたか否かを判定する。二次元コードが検出されなかったと判定された場合、CPU103はS607の処理を実行する。S607の処理は、S603の処理と同様であり、S607の後、図6の処理を終了し、S415の処理を実行する。二次元コードが検出されたと判定された場合、CPU103は、S608の処理を実行する。
S608で、CPU103は、検出した二次元コードを解析し、情報処理装置101が接続中のアクセスポイント131と接続するためのパスワードを取得する。なお、S606で、情報処理装置101が今は接続していないが過去に接続したことがあるアクセスポイントと接続するためのパスワードを含む二次元コードが取得された場合は、当該アクセスポイントと接続するためのパスワードが取得される。S608の後、CPU103は、情報処理装置101の表示部108の監視を終了する。なお、例えば、S606で取得された二次元コードが、パスワードを含まない二次元コードであったり、不完全な二次元コードであったりすることにより、S608においてパスワードが取得されなかった場合は、CPU103は、情報処理装置101の表示部108の監視を続けても良い。監視を終了したら、図6の処理を終了し、S409の処理を実行する。なお、検出した二次元コードの解析とは、例えば、キャプチャされた画面画像の画素値の解析である。即ち、本実施形態では、表示部108の画面上に表示された二次元コードの画像をキャプチャし、そのキャプチャ画像の画素値から、二次元コードに含まれるアクセスポイント131の接続設定情報を取得する。そのような構成により、ユーザにパスワードを入力させることがないので、利便性を向上させることができる。
なお、上述では、ユーザ操作により設定アプリが起動し、二次元コードが表示される形態を説明したが、この形態に限定されない。例えば、印刷アプリからの設定アプリの起動指示や、二次元コードの表示指示により、ユーザ操作を介さず、設定アプリが自動で起動し、二次元コードが表示される形態であっても良い。
続いて、S415では、CPU103は、アクセスポイント131を通信装置151の接続先として登録するための接続設定情報をGATT通信により、通信装置151に送信する。ここで、接続設定情報には、S410で取得したアクセスポイント131のSSIDと、S414で取得したパスワード及び通信装置151の接続モードを設定するためのコマンド等が格納されている。なお、本実施形態では、通信装置151の接続モードを設定するためのコマンドは、通信装置151にインフラストラクチャー接続モードを設定するためのコマンドである。通信装置151は、接続設定情報を受信すると、アクセスポイント131と接続する。このように、情報処理装置101及び通信装置151が同一のアクセスポイントに接続することで、情報処理装置101と通信装置151はインフラストラクチャー接続を確立し、無線LANによる高速通信が可能となる。そのため、以後、例えば、情報処理装置101がユーザから印刷ジョブの送信処理等を指示されることで、情報処理装置101と通信装置151間の無線LAN通信が行われる。
S415で接続設定情報を送信した後、CPU103は、S416にて、送信した接続設定情報により、通信装置151の接続設定が成功したか否かを判定する。具体的にはこのとき、CPU103は、通信装置151から、接続設定の成否に関する通知の受信を待機する。そして、CPU103は、当該通知を受信した場合、当該通知の内容を解析し、通信装置151の接続設定が成功したか否かを判定する。
CPU103は、通信装置151の接続設定が失敗した場合、S421にて、通信装置151の接続設定をリトライするか否かをユーザに確認するための画面を、表示部108に表示する。そして、S422にて、CPU103は、当該画面に対するユーザの入力に基づいて、通信装置151の接続設定をリトライするか否かを判定する。CPU103は、通信装置151の接続設定をリトライする場合、S413以降の処理を再度行い、通信装置151の接続設定をリトライしない場合、図4の処理を終了する。
また、CPU103は、通信装置151の接続設定が成功した場合、S417にて、いずれかの通信装置を情報処理装置101の通信先として登録するための画面(登録画面)を表示部108に表示する。登録画面には、公知のディスカバリプロセスを実行することで検出される、アクセスポイントとして動作している通信装置や、情報処理装置101が接続中のアクセスポイントに接続している通信装置のリストが表示される。登録画面に表示されたリスト(登録可能な通信装置のリスト)の中からいずれかの通信装置が選択されることで、選択された通信装置が情報処理装置101の通信先として登録される。ここで、本実施形態では、接続設定の対象となった通信装置を情報処理装置101の通信先として、ユーザの入力無しに登録する。そのために、まずCPU103は、S418にて、S409で取得したネットワーク情報に含まれている識別情報に基づき、登録可能な通信装置のリストの中から接続設定の対象となった通信装置を特定する。そして、CPU103は、S419にて、特定した通信装置(ここでは通信装置151)を、情報処理装置101の通信先として登録する。
続いて、S420では、CPU103は、通信装置151と情報処理装置101との間のGATT通信を終了させ、接続設定処理を終了する。なお、このとき、通信装置151は、通信装置151が既にアクセスポイント131と接続している場合は、改めてアクセスポイント131と接続する処理を実行しなくても良い。すなわち、通信装置151は、通信装置151がいずれのアクセスポイントとも接続していない場合や、通信装置151がアクセスポイント131以外のアクセスポイントと接続している場合に、アクセスポイント131と接続するための処理を実行しても良い。
再び、S412を参照する。S412で通信部111が接続しているアクセスポイントがないと判定した場合、S423の処理が行われる。
S423では、CPU103は、S411にて通信装置151から取得した、通信部156が検索により発見したアクセスポイントの一覧を表示部108に表示し、一覧の中のいずれかのアクセスポイントの選択をユーザから受け付ける。S424では、CPU103は、S423で選択されたアクセスポイントのSSIDを表示し、当該SSIDに対応するアクセスポイントを利用するためのパスワードの入力画面を表示部108に表示する。このとき、パスワードの入力画面として、例えば図7に示す画面700が表示される。S425では、S423で選択されたアクセスポイントを利用するためのパスワードの入力をユーザから受け付ける。このとき、CPU103は、入力部701にユーザによって入力されたパスワード情報を取得する。なお、このとき、S423で選択されたアクセスポイントが、情報処理装置101が過去に接続したことがあるアクセスポイントである場合は、CPU103は、S414で説明したように、印刷アプリによる表示部108の監視及び設定アプリによる二次元コードの生成により、パスワードを取得しても良い。
S426では、CPU103は、S423で選択されたアクセスポイントを通信装置151の接続先として登録するための接続設定情報をGATT通信により、通信装置151に送信する。
S427、S434、S433の処理は、S416、S421、S422と同様である。なお、S433の判定後、接続設定をリトライする場合にはS423からの処理を再度実行しても良いし、S424からの処理を再度実行しても良い。S427で、送信した接続設定情報により通信装置151の接続設定が成功したと判定された場合、S428では、CPU103は、通信部111の接続先を、S423で選択されたアクセスポイントに切り替える。S429、S430、S431、S432の処理は、S417、S418、S419、S420と同様である。S432の後、図4の処理を終了する。
以上のように、本実施形態では、情報処理装置101が接続中のアクセスポイント131と接続するためのパスワードを含む二次元コードを表示画面上から取得および解析し、情報処理装置101が接続中のアクセスポイント131と接続するためのパスワードを取得する。そのような構成により、ユーザに対して情報処理装置101が接続中のアクセスポイントを利用するためのパスワードの入力をユーザに要求することなく、通信装置151とのインフラストラクチャー接続を確立することができる。
次に、図4に示す接続設定処理の対象となる通信装置151において実行される処理について図8を用いて説明する。図8は、情報処理装置101から接続設定処理を受け付けている場合に通信装置151が行う処理の流れを示すフローチャートである。即ち、図8のフローチャートが示す処理は、情報処理装置101と通信装置151との間でペアリングが完了している状態であり、接続設定モードに移行した状態である場合に開始される。図8に示すフローチャートは、例えば、CPU154がROM152や通信装置151が備える外部記憶装置(不図示)等に記憶されたプログラムをRAM153に読み出して実行することにより実現される。
S801では、CPU154は、アドバタイズ情報を近距離無線通信部157によって一定期間ごとにブロードキャストするアドバタイズ状態となる。なお、ここでのブロードキャストとは、情報の送信先を特定せず一定の範囲に情報を送信することを指す。また、このときCPU154は、アドバタイズ情報の到達範囲を限定するために、所定の強度でアドバタイズ情報をブロードキャストする。ここで、BLE規格は、小さいサイズの情報を周囲の無線機器に送信する技術であるが、情報の最大到達距離は、通信装置151を略中心として30乃至100m程度の範囲である。そのため、通信装置151がアドバタイズ情報を送信する際の電波強度を制限しない場合は、情報処理装置101は、近傍にある通信装置だけでなく、遠方にある(ユーザが利用する可能性の低い)通信装置のアドバタイズ情報を検知してしまう可能性がある。また、通信装置151は、例えば、接続設定処理を許可したくない情報処理装置にまでアドバタイズ情報を到達させてしまう可能性がある。そこで、CPU154は、到達範囲を限定するために所定の強度でアドバタイズ情報を送信することで、通信装置151の近傍にある通信情報処理装置にだけ、アドバタイズ情報を検出させることができる。
続いて、S802では、CPU154は、近距離無線通信部157が、情報処理装置101からGATT通信の開始要求を受け付けたか否かを判定する。CPU154は、近距離無線通信部157がGATT通信の開始要求を受け付けたと判定した場合、S804の処理を行う。一方、CPU154は、近距離無線通信部157がGATT通信の開始要求を受け付けていないと判定した場合、S803の処理を行い、通信装置151の電源がOFFになるか否かを判定する。このとき、CPU154は、具体的には、通信装置151が備える電源ボタンが押下され、電源OFF処理の開始命令が生じたか否かを判定する。CPU154は、通信装置151の電源がOFFにならないと判定した場合、S802の処理を再び行う。一方、CPU154は、通信装置151の電源がOFFになると判定した場合、アドバタイズを停止し、その後、図8の処理を終了する。なお、CPU154は、S803では、接続設定モードの解除命令を受け付けたか否かを判定し、接続設定モードの解除命令を受け付けた場合にアドバタイズを停止して図8の処理を終了しても良い。
S804では、CPU154は、GATT通信を行うために、アドバタイズ情報の送信を一旦停止する。続いて、S805では、CPU154は、近距離無線通信部157による情報処理装置101とのGATT通信を開始させる。ここで、CPU154は、GATT通信を行う際には、アドバタイズ情報の送信時と異なり、電波の到達範囲を限定しない。そのため、アドバタイズ情報の到達範囲より、GATT通信による通信可能範囲の方が大きくなる。これは、GATT通信は、アドバタイズ情報の到達範囲内にアクセス可能であり、接続設定処理を受け付けることを許可できる情報処理装置としか開始されないため、GATT通信が開始された状態とは、すなわちセキュリティが確保された状態であるためである。これにより、通信装置151に近づきアドバタイズ情報を受信したことにより接続設定処理を開始した情報処理装置101は、通信装置151から離れても、電波の到達範囲内にいれば、接続設定処理を継続することが可能となる。
S806では、CPU154は、S805で開始したGATT通信によって受信した情報処理装置101からの指示の内容を判定する。ここでは、CPU154は、受信した指示が、アクセスポイントの一覧の更新指示、接続設定の開始指示のいずれであるかを判定するものとする。アクセスポイントの一覧の更新指示は、図4のS403で送信される指示に対応する。また、接続設定の開始指示は、図4のS408で送信される指示に対応する。接続設定の開始指示を受信したと判定した場合は、S807に進む。また、アクセスポイントの一覧の更新指示を受信したと判定した場合は、S816に進む。
S807では、CPU154は、S805で確立したGATT通信によって、情報処理装置101に、通信部156が検索により発見したアクセスポイントの一覧を送信する。なお、通信部156が検索により発見したアクセスポイントの一覧は、通信装置151内のOSに問い合わせることで取得可能である。
続いて、S808では、CPU154は、GATT通信により、通信装置151の接続先のアクセスポイントの登録のための接続設定情報を受信したか否かを判定する。上述のとおり、接続設定情報は、インフラストラクチャー接続モードを設定するためのコマンド等を含む。S808の処理は、図4のS415の処理に対応する。CPU154は、接続設定情報を受信したと判定した場合、S809の処理を行う。一方、CPU154は、接続設定情報を受信していないと判定した場合、S810の処理を行い、GATT通信を開始してから所定の時間が経過したか否か(タイムアウトしたか否か)を判定する。CPU154は、タイムアウトしていないと判定した場合、S808の処理を再び行う。一方、CPU154は、タイムアウトしたと判定した場合、S811の処理を行う。
S809では、CPU154は、受信した接続設定情報に含まれるインフラストラクチャー接続モードを設定するためのコマンドを適用して、インフラストラクチャー接続モードに移行する。このとき、CPU154は、接続設定情報に格納されたSSIDで示されるアクセスポイント(ここではアクセスポイント131)を、通信装置151の接続先として登録する処理を行う。具体的には、CPU154は、アクセスポイント131を、通信部156を介したインフラストラクチャー接続に利用するアクセスポイントとしてRAM153に設定する。また、CPU154は、アクセスポイント131を利用するためのパスワードの登録を行う。CPU154は、適切にアクセスポイントの登録が終了した場合、通信部156を介してアクセスポイント131と接続し、無線LAN(Wi-Fi)にて通信可能な状態に設定する。この結果、アクセスポイント131を介した、情報処理装置101と通信装置151とのインフラストラクチャー接続が確立される。
S811では、CPU154は、S809における、受信した接続設定情報に含まれるインフラストラクチャー接続モードを設定するためのコマンドの適用が成功したか否かを判定する。具体的には、CPU154は、接続設定情報に格納されたSSIDで示されるアクセスポイントへの接続が成功したか否かを判定する。
CPU154は、アクセスポイントへの接続が失敗した場合、S812に進む。CPU154は、S812では、通信装置151の接続設定が失敗したこと(通信装置151とアクセスポイントとの接続が失敗したこと)を示す通知を、GATT通信によって情報処理装置101に送信する。なお、例えば、接続設定情報に格納されたパスワードが間違っている場合にアクセスポイントとの接続が失敗する。その後、CPU154は、S808以降の処理を再び行い、接続設定情報の再度の受信を待機する。
一方、CPU154は、アクセスポイントへの接続が成功した場合、S813に進む。CPU154は、S813では、通信装置151の接続設定が成功したこと(通信装置151とアクセスポイントとの接続が成功したこと)を示す通知を、GATT通信によって情報処理装置101に送信する。その後、CPU154は、S814以降の処理を行う。なお、CPU154は、S814以降の処理を省略し、情報処理装置101とのBLE接続を継続させるような構成としても良い。
続いて、S814では、CPU154は、情報処理装置101と通信装置151とのGATT通信を終了させ、S815で、アドバタイズ情報の送信を再開する。その後、S802からの処理を繰り返す。
S806でアクセスポイントの一覧の更新指示を受信したと判定された場合、S816では、CPU154は、通信装置151と情報処理装置101との間のBLE接続を解除し、GATT通信を終了させる。通信装置151と情報処理装置101との間のBLE接続が解除されると、近距離無線通信部157は、アドバタイズを再開する。これにより、近距離無線通信部157は、通信部156が検索により発見したアクセスポイントの一覧の更新が行われている間に、情報処理装置101以外の装置にも、アドバタイズ情報を検出させることができる。なお、情報処理装置101以外の装置から処理の割り込みを受け付けることが無いように、このとき送信されるアドバタイズ情報によっては、情報処理装置101以外の装置とのBLE接続が確立されないような構成としても良い。具体的には、アドバタイズ情報の送信のみ有効にし、接続要求の受信を無効にしても良い。また、通信装置151と情報処理装置101との間のBLE接続が解除されても、アドバタイズを再開しないような構成としても良い。この場合、アクセスポイントの一覧の更新が行われている間に、情報処理装置101以外の装置にアドバタイズ情報を検出させることはできなくなるが、近距離無線通信部157の消費電力を抑制することができる。
S817では、CPU154は、通信部156が接続可能なアクセスポイントを検出する。具体的には、このとき、CPU154は、通信部156によって、アクセスポイントから発せられるビーコンを検出する。CPU154は、ビーコンを検出すると、そのビーコンに含まれる、アクセスポイントの機器名やSSIDなど、アクセスポイントを識別可能な情報を順次RAM153に記憶していく。こうすることで、CPU154は、通信部156が検索により発見したアクセスポイントの一覧の更新を行う。
S818では、CPU154は、S817でのアクセスポイントの一覧の更新が成功したか否かを判定する。例えば、周囲に接続可能なアクセスポイントがなくビーコンを検出しなかった場合などは、更新に失敗したと判定し、S815に進む。なお、S815では、通信部156が検索により発見した外部アクセスポイントの一覧の更新に失敗したことを示す情報を格納したアドバタイズ情報の送信を再開しても良い。
一方、CPU154は、更新に成功したと判定した場合は、S819にて、以降に送信するアドバタイズ情報の内容を、更新成功状態に設定する。具体的には、CPU154は、以降に送信するアドバタイズ情報に、通信部156が検索により発見した外部アクセスポイントの一覧の更新が成功したことを示す情報を格納する。そして、S815では、更新成功状態のアドバタイズ情報の送信を再開する。
以上のように、本実施形態によれば、情報処理装置101が接続中のアクセスポイント131と接続するためのパスワードを含む二次元コードを表示画面上から取得および解析し、情報処理装置101が接続中のアクセスポイント131と接続するためのパスワードを取得する。そのような構成により、ユーザに対して情報処理装置101が接続中のアクセスポイントを利用するためのパスワードの入力をユーザに要求することなく、通信装置151とのインフラストラクチャー接続を確立することができる。
なお、上述では、情報処理装置101が通信装置151に接続設定情報をBLEで送信する形態を説明したが、この形態に限定されず、情報処理装置101が通信装置151に接続設定情報を他の通信方式で送信する形態であっても良い。例えば、接続設定情報をWi-Fiで送信する形態であっても良い。その場合、情報処理装置101はWi-Fiによって、アクセスポイントとして動作する通信装置151と接続し、当該接続を介して接続設定情報を送信する。なおこのとき、情報処理装置101のWi-Fi接続先がアクセスポイントとして動作する通信装置151となるため、設定アプリにより生成される二次元コードは、アクセスポイントとして動作する通信装置151と接続するためのパスワードとなってしまう。そのため、この形態の場合、ユーザは設定アプリにより、情報処理装置101が今は接続していないが過去に接続したことがあるアクセスポイントと接続するためのパスワードを含む二次元コードを生成・表示させる操作を実行する。そして、印刷アプリは、当該二次元コードを取得する。あるいは、情報処理装置101が通信装置151と接続する前であり、アクセスポイント131と接続しているタイミングにおいて、印刷アプリによる表示部108の監視及び設定アプリによる二次元コードの生成によるパスワード取得を実行する。
また、上述では、印刷アプリによる表示部108に表示されている画面の監視により二次元コードを印刷アプリが取得する形態を説明したが、この形態に限定されない。例えば、二次元コードが表示されている状態で表示部108に表示されている画面のスクリーンショットを撮影することで、二次元コードを印刷アプリが取得する形態であっても良い。スクリーンショットの撮影のタイミングは、印刷アプリが自動で管理したタイミングであっても良いし、ユーザが指示したタイミングであっても良い。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
101 情報処理装置: 103、154 CPU: 104、152 ROM: 105、153 RAM: 151 通信装置
Claims (20)
- 通信装置と通信可能な情報処理装置のコンピュータを、
アクセスポイントと接続するためのパスワードに対応する二次元コードを取得する第1取得手段、
表示部に表示された前記二次元コードを解析し、前記アクセスポイントと接続するためのパスワードを取得する第2取得手段、
前記第2取得手段により取得された前記パスワードを用いて、前記通信装置と前記アクセスポイントとを接続させる処理を実行する処理手段、
として機能させるためのプログラム。 - 前記情報処理装置の表示部に表示されている画面のキャプチャを開始する開始手段、としてさらに機能させ、
前記第1取得手段は、前記開始されたキャプチャにより、前記表示部に表示された前記二次元コードを取得することを特徴とする請求項1に記載のプログラム。 - 前記情報処理装置のオペレーティングシステムの標準の設定アプリケーションプログラムにより、前記二次元コードが表示されることを特徴とする請求項1又は2に記載のプログラム。
- 所定の条件を満たす場合に、前記二次元コードによって前記パスワードを取得するための処理を実行することを特徴とする請求項1乃至3のいずれか1項に記載のプログラム。
- 前記所定の条件は、前記情報処理装置が接続しているアクセスポイントへの接続に関してパスワード認証が必要であることを含むことを特徴とする請求項4に記載のプログラム。
- 前記所定の条件は、前記情報処理装置が前記二次元コードを生成することが可能であることを含むことを特徴とする請求項4又は5に記載のプログラム。
- 前記所定の条件は、前記情報処理装置のオペレーティングシステムが、前記二次元コードを生成する機能に対応しているバージョンのオペレーティングシステムであることを含むことを特徴とする請求項4乃至6のいずれか1項に記載のプログラム。
- 前記所定の条件を満たさない場合には、前記情報処理装置が接続しているアクセスポイントへ接続するためのパスワードの入力画面を前記表示部に表示させることを特徴とする請求項4乃至7のいずれか1項に記載のプログラム。
- 前記二次元コードによって前記パスワードを取得するための処理は、前記情報処理装置の表示部に表示されている画面のキャプチャを開始する処理を含むことを特徴とする請求項4乃至8のいずれか1項に記載のプログラム。
- 前記二次元コードによって前記パスワードを取得するための処理は、前記二次元コードを表示するための操作を実行するようユーザに要求するための通知画面を前記表示部に表示させる処理を含むことを特徴とする請求項4乃至9のいずれか1項に記載のプログラム。
- 前記通信装置から、前記通信装置が検索により発見したアクセスポイントの一覧を取得する第2取得手段、
前記情報処理装置が接続しているアクセスポイントが前記一覧に含まれているか否かを判定する判定手段、としてさらに機能させ、
前記判定手段により前記情報処理装置が接続しているアクセスポイントが前記一覧に含まれていると判定された場合、前記二次元コードを取得するための処理が実行される
ことを特徴とする請求項1乃至10のいずれか1項に記載のプログラム。 - 前記判定手段により前記情報処理装置が接続しているアクセスポイントが前記一覧に含まれていないと判定された場合、前記一覧からアクセスポイントの選択を受け付ける受付手段、としてさらに機能させ、
前記選択が受け付けられた場合に、該選択されたアクセスポイントへ接続するためのパスワードの入力画面を前記表示部に表示させる、
ことを特徴とする請求項11に記載のプログラム。 - 前記一覧を更新させるよう前記通信装置に指示する指示手段、としてさらに機能させ、
前記第2取得手段は、前記指示手段による指示の後、前記一覧を取得する、
ことを特徴とする請求項11又は12に記載のプログラム。 - 前記第2取得手段による取得および前記指示手段による指示は、GATT(Generic Attribute Profile)通信により行われることを特徴とする請求項13に記載のプログラム。
- ユーザの指示を受け付ける受付手段、としてさらに機能させ、
前記ユーザの指示は、前記通信装置と前記アクセスポイントとを接続させる処理を開始させるための指示であることを特徴とする請求項1乃至14のいずれか1項に記載のプログラム。 - 前記処理手段による処理の実行により、前記情報処理装置は、前記アクセスポイントを介して前記通信装置と接続が可能となることを特徴とする請求項1乃至15のいずれか1項に記載のプログラム。
- 前記情報処理装置は、携帯端末であることを特徴とする請求項1乃至16のいずれか1項に記載のプログラム。
- 前記通信装置は、プリンタであることを特徴とする請求項1乃至17のいずれか1項に記載のプログラム。
- 前記通信装置に印刷を実行させる印刷手段としてさらに機能させることを特徴とする請求項1乃至18のいずれか1項に記載のプログラム。
- 通信装置と通信可能な情報処理装置において実行される方法であって、
アクセスポイントと接続するためのパスワードに対応する二次元コードを取得する第1取得工程と、
表示部に表示された前記二次元コードを解析し、前記アクセスポイントと接続するためのパスワードを取得する第2取得工程と、
前記第2取得工程において取得された前記パスワードを用いて、前記通信装置と前記アクセスポイントとを接続させる処理を実行する処理工程と、
を有することを特徴とする方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021132358A JP2023026912A (ja) | 2021-08-16 | 2021-08-16 | プログラムおよび方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021132358A JP2023026912A (ja) | 2021-08-16 | 2021-08-16 | プログラムおよび方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023026912A true JP2023026912A (ja) | 2023-03-01 |
Family
ID=85327299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021132358A Pending JP2023026912A (ja) | 2021-08-16 | 2021-08-16 | プログラムおよび方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023026912A (ja) |
-
2021
- 2021-08-16 JP JP2021132358A patent/JP2023026912A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6184580B1 (ja) | 情報処理装置、制御方法およびプログラム | |
JP6272381B2 (ja) | プログラム、情報処理方法、および情報処理装置 | |
JP2018124778A (ja) | 情報処理装置、制御方法およびプログラム | |
JP6891024B2 (ja) | 情報処理装置の制御方法、プログラム及びおよび通信システム | |
US11832317B2 (en) | Control method and information processing apparatus | |
JP2016143999A (ja) | 通信装置、制御方法およびプログラム | |
CN108694025B (zh) | 信息处理设备、控制方法和存储介质 | |
JP2018195886A (ja) | 情報処理装置、制御方法及びプログラム | |
JP6873660B2 (ja) | 情報処理装置、通信装置、プログラム及び制御方法 | |
JP6703059B2 (ja) | 情報処理装置、制御方法およびプログラム | |
JP2021022877A (ja) | 情報処理装置、制御方法及びプログラム | |
JP6929412B2 (ja) | 情報処理装置、制御方法およびプログラム | |
JP2023026912A (ja) | プログラムおよび方法 | |
JP7493361B2 (ja) | 情報処理装置、制御方法およびプログラム | |
JP2023034115A (ja) | 情報処理装置、その制御方法、並びにプログラム | |
JP2019149845A (ja) | 情報処理装置、制御方法及びプログラム | |
EP4161158A1 (en) | Information processing apparatus, method for controlling the same, and storage medium | |
JP6598840B2 (ja) | プログラム、情報処理方法、および情報処理装置 | |
JP6852124B2 (ja) | 情報処理装置、制御方法、プログラム | |
JP2023165326A (ja) | 通信装置、プログラム及びシステム | |
JP2023068539A (ja) | プログラムおよび方法 | |
JP2023176541A (ja) | プログラム、システムおよび方法 | |
JP2024035307A (ja) | 情報処理装置、制御方法およびプログラム | |
JP2023066227A (ja) | 情報処理装置、通信装置、通信システム、通信装置の設定方法並びにプログラム | |
JP2023183241A (ja) | プログラム、情報処理装置、制御方法、通信装置、および通信システム |