(57)【要約】      （修正有）【課題】データ保持部の空き容量が、順序データのデータ量よりも小さい場合であっても、順序データを分割してデータ保持部に格納させる電子装置及び機器検知方法を提供する。【解決手段】ＣＰＵが順序データの一部を抽出し、抽出された順序データをＭＣＵのデータ保持部に保持させる。ＭＣＵは、複数の機器の検知順序が、抽出された順序データによって規定される順序に一致するか否かを判定し、一致した場合に一致信号をＣＰＵへ送信する。順序データの抽出は、データ保持部の空き容量に基づいて実行され、ＣＰＵは、一致信号に基づきＣＰＵの消費電力を増加させる。【選択図】図８
2016025649.tif 000002
【特許請求の範囲】
【請求項１】
複数の機器を検知する機器検知部と、
前記複数の機器の第１順序を規定し、前記第１順序を示す第１順序データから、前記第１順序の一部であって前記第１順序の初段を含み前記第１順序の最終段を含まない第２順序を示す第２順序データを抽出する第１処理部と、
データ保持部を有し、前記第２順序データを前記データ保持部に保持させ、前記機器検知部での前記複数の機器の検知順序が前記第２順序に一致するか否かを判定し、前記検知順序が前記第２順序に一致する場合に、一致信号を出力する第２処理部と、
を有し、
前記第２順序データの抽出は、前記データ保持部の空き容量に基づいて実行され、前記第１処理部は、第２順序データを抽出した後に前記第１処理部の消費電力を減少させ、前記一致信号に基づき、前記第１処理部の消費電力を増加させることを特徴とする電子装置。 
【請求項２】
第２処理部が前記判定を行う際に消費する電力は、前記第１処理部が前記判定を行うために要する電力よりも低いことを特徴とする請求項１に記載の電子装置。 
【請求項３】
前記第１処理部は、前記データ保持部の前記空き容量と前記第１順序データのデータ量とを比較し、前記第１順序データのデータ量が前記空き容量よりも大きい場合に、前記第２順序データが前記空き容量よりも小さくなるよう、前記第２順序データにて規定される前記第２順序の段数を特定することを特徴とする請求項１又は２に記載の電子装置。 
【請求項４】
前記第１順序が、前記第１順序内の同一段で分岐した第１順序枝及び第２順序枝を含む場合、前記第１順序枝の初段に規定される第２機器が検知される第１確率が、前記第２順序枝の初段に規定される第３機器が検知される第２確率よりも高い場合は、前記第１処理部は、前記第１順序枝を規定する第４順序データを、前記第２順序枝を規定する第５順序データよりも優先させて、前記データ保持部に保持させることを特徴とする請求項１乃至３何れか一項に記載の電子装置。 
【請求項５】
前記機器検知部による前記複数の機器の検知順序が前記第１順序に一致した場合、前記第１処理部は、第１アプリケーションを実行するか、又は情報処理装置に対して第２アプリアプリケーションの配信要求を行うことを特徴とする請求項１乃至４何れか一項に記載の電子装置。 
【請求項６】
前記第１処理部は、前記第２順序データを抽出した後に第１動作モードに移行し、前記一致信号に基づいて、前記第１モードから、前記第１モードよりも消費電力の高い第２モードに移行することを特徴とする請求項１乃至５何れか一項に記載の電子装置。 
【請求項７】
機器検知部と、第１処理部と、データ保持部を有する第２処理部とを有する電子装置を用いた機器検知方法において、
前記機器検知部は複数の機器を検知し、
前記第１処理部は、前記複数の機器の第１順序を規定し、
前記第１処理部は、前記データ保持部の空き容量に基づいて、前記第１順序を示す第１順序データから、前記第１順序の一部であって前記第１順序の初段を含み前記第１順序の最終段を含まない第２順序を示す第２順序データを抽出し、
前記第１処理部は、前記第２順序データを抽出した後に消費電力を低下させ、
前記第２処理部は、前記データ保持部に前記第２順序データを保持させ、
前記第２処理部は、前記機器検知部による前記複数の機器の検知順序が、前記データ保持部に保持された前記第２順序に一致するか否かを判定し、
前記第２処理部は、前記複数の機器の検知順序が、前記データ保持部に保持された前記第２順序に一致した場合に、一致信号を出力し、
前記第１処理部は、前記一致信号に基づき、前記第１処理部の消費電力を増加させることを特徴とする機器検知方法。 
【請求項８】
第２処理部が前記判定を行う際に消費する電力は、前記第１処理部が前記判定処理を行うのに要する消費電力よりも低いことを特徴とする請求項７に記載の機器検知方法。 
【請求項９】
前記第１処理部は、前記データ保持部の空き容量と前記第１順序データのデータ量とを比較し、前記第１順序データのデータ量が前記空き容量よりも大きい場合に、前記第２順序データが前記空き容量よりも小さくなるよう、前記第２順序データにて規定される前記第２順序の段数を特定することを特徴とする請求項７又は８に記載の機器検知方法。 
【請求項１０】
前記第１順序が、前記第１順序内の同一段で分岐した第１順序枝及び第２順序枝を含む場合、前記第１順序枝の初段に規定される第２機器が検知される第１確率が、前記第２順序枝の初段に規定される第３機器が検知される第２確率よりも高い場合は、前記第１処理部は、前記第１順序枝を規定する第４順序データの少なくとも、前記第２順序枝を規定する第５順序データよりも優先させて、前記データ保持部に保持させることを特徴とする請求項７乃至９何れか一項に記載の機器検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電子装置及び機器検知方法に関する。
【背景技術】
【０００２】
スマートフォン等の携帯端末装置に搭載されたＮｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ（ＮＦＣ）用無線デバイスやＢｌｕｅｔｏｏｔｈ（登録商標）用無線デバイス等を用いて、ＮＦＣタグやＢｌｕｅｔｏｏｔｈ用ビーコン等からの信号を受信する技術が開発されている。携帯端末装置は、受信した信号により、特定のＮＦＣタグやＢｌｕｅｔｏｏｔｈ用ビーコンが携帯端末装置の近傍にあることを認識することができる。以下、ＮＦＣタグやＢｌｕｅｔｏｏｔｈ用ビーコン等を「機器」と称し、携帯端末装置に搭載されたＮＦＣ用無線デバイスやＢｌｕｅｔｏｏｔｈ用無線デバイス等を「センサ（機器検知装置）」と称する。携帯端末装置は、センサのセンシング結果に基づいて特定の処理を実行したり、サーバに対して自身の状況を通知し、その状況に適した情報やアプリケーションソフトウェア（以下、アプリ）をサーバから受信する。例えば携帯端末装置を保持するユーザがあるイベント会場を訪れた際、会場に設けられたＮＦＣタグやＢｌｕｅｔｏｏｔｈ用ビーコン等の機器を携帯端末装置のセンサが検知することにより、携帯端末装置は、ユーザがイベント会場を訪れたことがセンシングする。そしてセンシング結果が携帯端末装置からサーバへ送信され、サーバから携帯端末装置に、例えばイベント会場に関する案内情報等が配信される。
【０００３】
一方、このようなセンサを有する携帯端末装置の消費電力を抑制するために、例えば携帯端末装置のＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）の動作モードを、ＣＰＵがデータの処理を行っていない場合は休止モードとし、センサからの機器検知信号を受信した場合はアクティブモードとする技術が開発されている。これにより、ＣＰＵの消費電力を抑制し、それによってバッテリ駆動による携帯端末装置の動作可能時間を増加させる。
【０００４】
ここで、センサによって検知される複数の機器の検知順序が特定の順序に一致する場合に、ＣＰＵが所定の処理を実行する場合がある。これは携帯端末装置を有するユーザが、あるイベント会場内に設けられた複数のブースを所定の順路に従って回った場合にのみ、サーバが特定の情報を携帯端末装置に配信するようなケースである。例えばイベント会場内に設けられたブースＡ及びブースＢについての所定の順路が、先にブースＡ、その後にブースＢを回ることを定めていたとする。この場合は、ユーザがブースＡを訪れることによりセンサはブースＡに設けられたＮＦＣタグやＢｌｕｅｔｏｏｔｈ用ビーコン等の機器Ａを検知し、機器検知信号をＣＰＵへ伝える。ＣＰＵは、この時点で休止モードであった場合は、機器検知信号に基づいてアクティブモードへ移行する。そして受信した機器検知信号に基づき、ＣＰＵが機器Ａを検知したことを記録する。他に実行すべきデータ処理が無い場合は、ＣＰＵは休止モードへ移行する。次にユーザがブースＢを訪れることによりセンサが、ブースＢに設けられた機器Ｂを検知し、機器検知信号をＣＰＵへ伝える。ＣＰＵは、この時点で休止モードであった場合は、機器検知信号の受信に基づいてアクティブモードへ移行する。そして今回受信した機器検知信号が機器Ｂを示す信号であることと、既に機器Ａを示す機器検知信号を受信していることに基づき、ユーザが所定の順路に従ってブースＡ及びブースＢを訪れたと判断し、サーバに対して特定の情報の配信を要求する。
【０００５】
このような処理において携帯端末装置のＣＰＵは、機器Ａが検知された後に更に機器Ｂが検知された場合に初めて所定の処理を実行するにもかかわらず、機器Ａが検知された際にも休止モードからアクティブモードへ移行することになる。そのため、ＣＰＵの消費電力を十分に削減することができない。
【０００６】
そこで、ＣＰＵとは別個のプロセッサ、例えば、Ｍｉｃｒｏ−Ｃｏｎｔｒｏｌ  Ｕｎｉｔ（ＭＣＵ）を携帯端末装置に設けて、そのＭＣＵに複数の機器検知信号の順序判定を行わせ、複数の機器検知信号が所定の順序で発行されたとＭＣＵが判定した場合に、ＭＣＵがＣＰＵに通知するという技術が検討されている。この方法を用いれば、複数の機器検知信号がセンサから生成される度にＣＰＵをアクティブモードへ移行する必要がなくなり、ＣＰＵが休止モードを維持できる期間を長くすることができる。そしてＭＣＵの消費電力が、ＣＰＵの消費電力よりも低い場合は、携帯端末装置全体としての消費電力を削減することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−１３１９４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
予め定められた所定順序で複数の機器の検知がなされたか否か、という判定を、ＣＰＵとは異なる他のプロセッサに実行させる場合は、他のプロセッサに所定順序を示す順序データを通知して記憶させる必要がある。しかしながら、他のプロセッサが順序データを格納するために用いるメモリの空き容量が、順序データのデータ量よりも小さい場合は、他のプロセッサはその順序データをメモリに格納することができない。
【課題を解決するための手段】
【０００９】
開示の電子装置は、複数の機器を検知する機器検知部と、複数の機器の第１順序を規定し、第１順序を示す第１順序データから、第１順序の一部であって第１順序の初段を含み第１順序の最終段を含まない第２順序を示す第２順序データを抽出する第１処理部と、データ保持部を有し、第２順序データをデータ保持部に保持させ、機器検知部での複数の機器の検知順序が第２順序に一致するか否かを判定し、検知順序が第２順序に一致する場合に、一致信号を出力する第２処理部とを有し、第２順序データの抽出は、データ保持部の空き容量に基づいて実行され、第１処理部は、第２順序データを抽出した後に前記第１処理部の消費電力を減少させ、一致信号に基づき、第１処理部の消費電力を増加させることを特徴とする。
【発明の効果】
【００１０】
他のプロセッサが順序データを格納するために用いるメモリの空き容量が、ＣＰＵが規定する順序データのデータ量よりも小さい場合であっても、順序データを分割してデータ保持部に格納させることができる。
【図面の簡単な説明】
【００１１】
【図１】電子装置の構成例を示す図である。
【図２】第１実施例における電子装置のハードウェア構成図である。
【図３】第１実施例における電子装置の利用シーンを説明するための図である。
【図４】第１実施例における状態遷移図である。
【図５】第１実施例における順序データの内容を例示する図である。
【図６】第１実施例における電子装置の処理フローチャートである。
【図７】第１実施例におけるＣＰＵ、ＭＣＵおよびセンサ間での処理の流れを説明する図である。
【図８】第１実施例におけるＣＰＵ、ＭＣＵおよびセンサ間での処理の流れを説明する図である。
【図９】第１実施例におけるＣＰＵの機能ブロック図である。
【図１０】第１実施例におけるＭＣＵの機能ブロック図である。
【図１１】第１実施例におけるＣＰＵの処理フローチャートである。
【図１２】第１実施例におけるＭＣＵの処理フローチャートである。
【図１３】第１実施例における条件データの抽出方法を説明する図である。
【図１４】第１実施例における他の状態遷移図である。
【図１５】第２実施例における電子装置の利用シーンを示説明する図である。
【図１６】第２実施例における状態遷移図である。
【図１７】第２実施例における順序データの内容を例示する図である。
【図１８】第２実施例における電子装置の処理フローチャートである。
【図１９】第２実施例におけるＣＰＵの機能ブロック図である。
【図２０】第２実施例におけるＣＰＵの処理フローチャートである。
【図２１】第２実施例における条件データの抽出方法を説明する図である。
【図２２】第２実施例における他の状態遷移図である。
【発明を実施するための形態】
【００１２】
＜第１実施例＞
本実施例では、第１プロセッサと第２プロセッサとセンサとを有する携帯端末装置等の電子装置において、センサがＮＦＣタグやＢｌｕｅｔｏｏｔｈ用ビーコン等の機器を検知して機器検知信号を生成する。第２プロセッサは、複数の機器検知信号の発生順序が予め定められた順序に一致するか否かの判定を行う。第２プロセッサはデータ保持部を有しており、センサによる機器検知に先立ち、第１プロセッサが所定の順序を示す順序データを第２プロセッサに通知すると、第２プロセッサは順序データをデータ保持部に保持させる。第１プロセッサは、順序データを第２プロセッサに通知する際、順序データのデータ量とデータ保持部の空き容量に基づき、順序データの全部をデータ保持部に格納できるか否かを判定する。順序データは、センサで検知されるべき複数の機器の検知順序を示すデータであり、ある機器が検知された場合に次に検知されるべき機器を規定する複数の条件データが、縦列的に配置されたデータ構造を有する。順序データに含まれる複数の条件データの全てをデータ保持部が格納できない場合は、第１プロセッサは順序データに含まれる複数の条件データから一部の条件データを抽出して第２プロセッサに通知する。第１プロセッサは、一部の条件データを抽出して第２プロセッサに通知した後は休止モードに移行することができる。第２プロセッサは、第１プロセッサから受信してデータ保持部に保持した条件データに基づいて複数の機器検知信号の順序判定を行う。第２プロセッサは、データ保持部に保持された条件データによって規定される順序に基づく判定を行い、第１プロセッサへの通知が必要となった場合には、第１プロセッサに通知を行う。第２プロセッサからの通知を受けた第１プロセッサは、順序データに未判定の条件データが残っている場合には、データ保持部の空き容量に応じて、未判定の条件データの全部又は一部を抽出して更に第２プロセッサへ通知する。以下、同様の作業を繰り返すことにより、順序データの全部をデータ保持部に保持させることができない場合であっても、順序データの一部である抽出された条件データに基づく機器検知の順序判定を第２プロセッサに実行させることができる。これにより、第１プロセッサが休止モードを維持できる期間を確保し、第１プロセッサの消費電力を抑制することができる。
【００１３】
図１は、本実施例で用いる電子装置の例として、スマートフォン等のような携帯端末装置を示す図である。電子装置１の主な構成としては、音出力部５０と表示部５５とを有する。音出力部５０は例えばスピーカであり、表示部５５は例えばディスプレイである。電子装置１として、スマートフォン以外の携帯端末装置や、タブレット型のＰｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ（ＰＣ）、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ（ＰＤＡ）等を用いてもよい。
【００１４】
図２は、電子装置１のハードウェア構成図である。電子装置１は、第１プロセッサ１０、第２プロセッサ３０、センサ４０、揮発性メモリ６０、不揮発性メモリ６５、通信モジュール７０、バッテリ８０、電源制御回路８５、バス９０及び、図１にて示した音出力部５０、表示部５５を有する。第１プロセッサ１０は、電子装置１の全体の制御やデータ処理等を行う。また第１プロセッサ１０は、機器検知の順序判定に関する指示を第２プロセッサ３０に対して行う。第１プロセッサ１０は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）、Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ（ＭＣＵ）、Ｍｉｃｒｏ−Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＭＰＵ）、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（ＤＳＰ）、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（ＦＰＧＡ）等の電子回路部品である。第２プロセッサ３０は、センサ４０から受信する複数の機器検知信号の順序判定を行い、所定の順序で複数の機器検知信号を受信した場合に第１プロセッサ１０に通知する。第２プロセッサ３０は、ＣＰＵ、ＭＰＵ、ＭＣＵ、ＤＳＰ、ＦＰＧＡ等の電子回路部品である。また第２プロセッサ３０は、データ保持部としてメモリ３１を有する。メモリ３１は例えばＳＲＡＭ回路である。第２プロセッサ３０を用いて順序判定処理を行う際の消費電力は、第１プロセッサ１０を用いて同一の順序判定処理を行う際の消費電力よりも低い。本実施例の以下の部分では、第１プロセッサ１０の一例としてＣＰＵ、第２プロセッサ３０の一例としてＭＣＵを挙げて説明する。
【００１５】
センサ４０は、Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ（ＮＦＣ）用無線デバイスやＢｌｕｅｔｏｏｔｈ用無線デバイスであって、それぞれＮＦＣタグやＢｌｕｅｔｏｏｔｈ用ビーコン等の機器を検知することにより、電子装置１が特定の状況にあることを検出する。揮発性メモリ６０は、ＣＰＵ１０やＭＣＵ３０が所定の処理を行うために必要なデータや、ＣＰＵ１０やＭＣＵ３０が行ったデータ処理の結果であるデータ等を格納する。揮発性メモリ６０は、Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＤＲＡＭ）、Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＳＲＡＭ）等の電子回路部品である。不揮発性メモリ６５は、ＣＰＵ１０やＭＣＵ３０が実行するコンピュータプログラム等を格納する。不揮発性メモリ６５は、Ｍａｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（マスクＲＯＭ）や、Ｐｒｏｇｒａｍａｂｌｅ  ＲＯＭ（ＰＲＯＭ）、又はフラッシュメモリ等の電子回路部品である。
【００１６】
通信モジュール７０は、他の電子装置やサーバ等の情報処理装置との間でデータ通信を行う。データ通信は無線による通信と有線による通信の何れであってもよい。無線通信の場合、通信モジュール７０は例えば無線回路、ベースバンド回路、増幅回路、アンテナ等を含む。
【００１７】
バッテリ８０は、電子装置１の電力供給源であり、電子装置１が電源アダプタに接続されている際に電荷をチャージし、電子装置１が電源アダプタから切り離されている場合には電荷をディスチャージし、電子装置１内の回路に対して必要な電荷の供給を行う。電源制御回路８５はバッテリ８０の制御回路であり、例えばバッテリの電荷チャージ速度の制御を行い、またＣＰＵ１０からの指示に基づき、電子装置１の消費電力を抑制するために、電荷のディスチャージ量を制御する。電源制御回路８５は例えばＤｉｒｅｃｔ  Ｃｕｒｒｅｎｔ−Ｄｉｒｅｃｔ  Ｃｕｒｒｅｎｔ（ＤＣ−ＤＣ）変換回路である。バス９０はＣＰＵ１０、ＭＣＵ３０、センサ４０、揮発性メモリ６０、不揮発性メモリ６５等の回路を接続し、互いのデータ送信の経路として機能する。
【００１８】
図３は第１実施例における電子装置１の利用シーンを説明するための図である。電子装置１の利用シーンの一例として、電子装置１を携帯するユーザがイベント会場に設けられた複数のブースを所定の順序で回ったときに、サーバから電子装置１に特定の情報またはアプリが提供される場合を想定する。図３において、イベント会場１００の中にブースＡ、ブースＢ、ブースＣ及びブースＤが設けられている。それぞれのブースには、各ブースを特定するための、例えばＮＦＣタグやＢｌｕｅｔｏｏｔｈ用ビーコンのような機器Ａ、機器Ｂ、機器Ｃ及び機器Ｄが設けられている。イベント会場１００を訪れたユーザは、電子装置１を各ブースにおいて機器に近付けることにより、各機器をセンサ４０に読み取らせる。これにより、ユーザがどのブースに居るかを電子装置１は把握することができる。ここでは、ユーザが複数のブースを特定の順番、例えばブースＡ、ブースＢ、ブースＣ及びブースＤをこの順番で回った場合には、所定の情報や所定のアプリがサーバから電子装置１へ送信されるものとする。尚、本明細書の以降の部分においては、センサ４０によって検知される対象物を全て「機器」と称する。機器の例としては、ＮＦＣタグ、Ｂｌｕｅｔｏｏｔｈ用ビーコン以外にも、Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ（ＲＦ）タグを用いてもよい。またＮＦＣタグ等のタグは、電源を有するアクティブタグであっても、自らは電源を持たないパッシブタグであってもよい。
【００１９】
図４は、ユーザが図３に示すイベント会場１００の複数のブースを順に訪れた場合の状態遷移図である。電子装置１には、順路として定められた順番がブースＡ、ブースＢ、ブースＣ、ブースＤの順であることが記憶されている。「状態０」は、ユーザがまだ何れのブースも訪れていない状態を意味する。まず「状態０」においてユーザがブースＡを訪れ、ブースＡに設けられた機器Ａを電子装置１のセンサ４０が検知すると、状態は「状態０」から「状態１」へ遷移する。逆に、「状態０」において機器Ａが検知されるまでは、状態は「状態０」のまま維持される。つまり「状態１」とは、順路の最初のブースとして規定されたブースＡをユーザが訪れた状態を意味する。次にユーザがブースＢを訪れ、ブースＢに設けられた機器Ｂを電子装置１のセンサ４０が検知すると、状態は「状態１」から「状態２」へ遷移する。つまり「状態２」とは、定められた順路に沿ってユーザがブースＡ及びブースＢを訪れた状態を意味する。同様に、ユーザが定められた順路に沿って更にブースＣを訪れた場合には、状態は「状態２」から「状態３」へ遷移する。最後に、ユーザがブースＤを訪れた場合は、規定された順路に沿ってユーザが全てのブースを回ったと電子装置１は判断し、サーバに対して所定の情報やアプリ配信の要求を送信する。サーバは、電子装置１からの要求に応じて、所定の情報やアプリを電子装置１に対して配信する。尚、状態を示す状態情報は、ＭＣＵ３０に格納される。
【００２０】
図５は、電子装置１が保持する順序データの一例を示す図である。図５に示す順序データは、図４に示した状態遷移の内容に対応するものである。順序データは、第１条件データ、第２条件データ、第３条件データ、及び第４条件データを含む。各条件データは、例えば、「遷移元状態」、「状態遷移条件」、「遷移先状態」、「処理」の各項目を含む。第１条件データは、遷移元状態として「状態０」、状態が遷移する条件として「機器Ａの検知」、そして遷移先状態として「状態１」を規定する。また機器Ａを検知した時点ではサーバへの配信要求処理は実行されないため、条件データにおける処理の項には規定がされない。尚、「データ量」の欄に記載された値は、各条件データのデータ量を示す。ここでは第１条件データのデータ量が５０ｂｙｔｅであることを示している。データ量の値は、条件データの一部に含める必要はなく、条件データとは別個のデータとして、後述する条件データ量保持部１３に保持させてもよい。同様に第２条件データは、遷移元状態として「状態１」、状態が遷移する条件として「機器Ｂの検知」、そして遷移先状態として「状態２」を規定する。また、機器Ｂを検知した時点ではサーバへの配信要求処理は実行されないため、処理の項には規定がなされない。また、第２条件データのデータ量は５０ｂｙｔｅである。同様に第３条件データは、遷移元状態として「状態２」、状態が遷移する条件として「機器Ｃの検知」、そして遷移先状態として「状態３」を規定する。機器Ｃを検知した時点ではサーバへの配信要求処理は実行されないため、処理の項には規定がなされない。また、第３条件データのデータ量は５０ｂｙｔｅである。最後に第４条件データは、遷移元状態として「状態３」、状態が遷移する条件として「機器Ｄの検知」を規定する。機器Ｄは、検知されるべき機器の順序の最終段に規定される機器であるため、遷移先状態は存在せず、処理の項に、「サーバへの配信依頼」が規定されている。また、第４条件データのデータ量は５０ｂｙｔｅである。順序データのデータ量は、各条件データのデータ量の合計である。本例では順序データ量は２００ｂｙｔｅとなる。
【００２１】
このように、条件データは各状態間の遷移条件を規定するデータであり、複数の条件データの集合体が順序データに相当する。そして順序データは、各機器の検知順序、すなわち、本実施例では各ブースの順路を示すデータであり、順序データに基づき電子装置１は、各時点において自身がどの状態にあるのかを管理する。
【００２２】
図６は、図５に示した順序データに基づいて電子装置１が行う処理のフローチャートである。処理フローは処理１０００により開始される。処理１００１において電子装置１は、センサ４０が機器Ａを検知したか否かを判定する。機器Ａが検知された場合は処理１００２へ移行する。機器Ａが検知されない場合は、電子装置１は処理１００１を繰り返す。処理１００２において電子装置１は、センサ４０が機器Ｂを検知したか否かを判定する。機器Ｂが検知された場合は処理１００３へ移行する。機器Ｂが検知されない場合は、電子装置１は処理１００２を繰り返す。処理１００３において電子装置１は、センサ４０が機器Ｃを検知したか否かを判定する。機器Ｃが検知された場合は処理１００４へ移行する。機器Ｃが検知されない場合は、電子装置１は処理１００３を繰り返す。処理１００４において電子装置１は、センサが機器Ｄを検知したか否かを判定する。機器Ｄが検知された場合は処理１００５へ移行する。機器Ｄが検知されない場合は、電子装置１は処理１００４を繰り返す。処理１００５において電子装置１は、処理の実行、ここではサーバに対する所定の情報またはアプリの配信依頼を実行し、処理１００６にて処理が終了する。
【００２３】
図７は、図６に示した電子装置１による処理における、ＣＰＵ１０、ＭＣＵ３０及びセンサ４０の各々の処理例を示す図である。図７では、順序データのデータ量が、ＭＣＵ３０のメモリ３１の空き容量よりも小さい場合の例を示す。まずＣＰＵ１０は処理５００において、第１条件データ、第２条件データ、第３条件データおよび第４条件データを含む順序データをＭＣＵ３０に送信する。その後処理５０１においてＣＰＵ１０は、自身の消費電力を抑制するために、ＣＰＵ１０にて処理されるべきデータが無い場合は、省電力モード、例えば休止モードへ移行する。処理５０２においてＭＣＵ３０は、ＣＰＵ１０から送信された順序データをメモリ３１に保持する。尚、ＭＣＵ３０は、ＣＰＵ１０から送信された順序データの格納場所として、揮発性メモリ６０は利用しないものとする。その理由は、順序データが揮発性メモリ６０に格納された場合、順序データがメモリ３１に格納される場合に比べ、ＭＣＵ３０が順序判定を行う際に順序データを参照するのに要する時間が長くなり、ＭＵＣ３０の応答速度が低下するためである。ＭＣＵ３０は、メモリ３１に格納された順序データにより、自身が実行すべき処理が、｛「状態０」において機器Ａが検知された場合に「状態１」へ遷移したことを認識すること｝、｛「状態１」において機器Ｂが検知された場合に「状態２」へ遷移したことを認識すること｝、｛「状態２」において機器Ｃが検知された場合に「状態３」へ遷移したことを認識すること｝、｛「状態３」において機器Ｄが検知された場合にＣＰＵ１０へ通知すること」｝であることを認識することができる。そして処理５０３においてＭＣＵ３０は、センサ４０からの機器検知信号の待ち受けを開始する。処理５０４においてセンサ４０が機器Ａの検知を行い、ＭＣＵ３０に機器Ａが検知されたことを通知する。処理５０５においてＭＣＵ３０は、センサ４０から機器検知信号を受信し、メモリ３１に格納されている順序データのうちの第１条件データを参照する。そして第１条件データに規定される条件が満たされた、すなわち状態が「状態０」から「状態１」へ遷移したと判定する。その後、処理５０６および処理５０８においてセンサ４０が、機器Ｂを検知した旨の機器検知信号および機器Ｃを検知した旨の機器検知信号を順次ＭＣＵ３０へ送信する。処理５０７および処理５０９においてＭＣＵ３０は、各機器検知信号の受信に基づき、メモリ３１に保持された順序データに含まれる各条件データを参照し、状態が順次「状態２」、「状態３」へと遷移したと判定する。処理５１０においてセンサ４０が、機器Ｄを検知した旨の機器検知信号をＭＣＵ３０へ送信する。処理５１１においてＭＣＵ３０が、受信した機器検知信号に基づき、最後の条件データである第４条件データによって規定された第４条件が満たされたと判定する。処理５１２においてＭＣＵ３０はＣＰＵ１０への通知を行う。この通知は、ＣＰＵ１０から送信された順序データで規定される順序に沿って機器Ａ、機器Ｂ、機器Ｃ及び機器Ｄが検知された旨をＣＰＵ１０に知らせるものである。ＭＣＵ３０は、処理５１２の後、処理５１３においてセンサ４０からの機器検知信号の待ち受けを終了する。
【００２４】
処理５１４においてＣＰＵ１０は、ＭＣＵ３０からの通知に基づき自身の電力モードをアクティブモードへ切り替える。そして、処理５１５においてＣＰＵ１０は、受信した機器検知信号の内容を分析する。すなわちＣＰＵ１０は機器検知信、機器Ａ、機器Ｂ、機器Ｃ及び機器Ｄがこの順序で検知されたことを認識する。またＣＰＵ１０は、自身が行う処理を、順序データを参照することにより把握する。そして処理５１６においてＣＰＵ１０は、サーバへの情報又はアプリの配信依頼の処理を実行する。
【００２５】
図７に示したようにＣＰＵ１０は、処理５００において順序データをＭＣＵ３０に通知した後、他のデータ処理を行う必要がない場合は、処理５０１において休止モードへ移行する。そしてＣＰＵ１０は、処理５１４においてＭＣＵ３０からの通知を受けた場合にはアクティブモードへ復帰する。これにより、機器検知の順序判定をＣＰＵ１０自身が行う場合に比べ、ＣＰＵ１０の消費電力を抑制することができる。尚、ＭＣＵ３０は、処理５０３において機器検知信号の待ち受けを開始し、処理５１３において機器検知信号の待ち受けを終了することにより、自身の消費電力を抑制することができる。
【００２６】
図８は、図７と同様に、図６に示した電子装置１による処理における、ＣＰＵ１０、ＭＣＵ３０及びセンサ４０の各々の処理を示す図である。図７では、ＭＣＵ３０のメモリ３１の空き容量が、順序データの全データ量よりも大きい場合について示したが、図８は、メモリ３１の空き容量が、順序データの全データ量よりも小さい場合について示すものである。例えば、図５に示すように順序データの全データ量が２００ｂｙｔｅであり、メモリ３１の空き容量が例えば１３０ｂｙｔｅだった場合、順序データに含まれる全ての条件データをメモリ３１に格納させることができない。この場合、処理６００においてＣＰＵ１０は、順序データに含まれる複数の条件データのうちの一部である第１条件データ及び第２条件データを抽出してＭＣＵ３０へ送信し、処理６０１において休止モードへ移行する。第１条件データのデータ量及び第２条件データのデータ量は何れも５０ｂｙｔｅであるため、第１条件データと第２条件データの合計のデータ量は１００ｂｙｔｅであり、メモリ３１の空き容量である１３０ｂｙｔｅ以下となる。尚、これらの詳細処理は後述される。よって処理６０２においてＭＣＵ３０は、ＣＰＵ１０から受信した第１条件データ及び第２条件データを、メモリ３１に格納することができる。ＭＣＵ３０は、メモリ３１に格納した条件データに基づき、自身が実行すべき処理が｛「状態０」において機器Ａが検知された場合に「状態１」へ遷移したことを認識すること｝、｛「状態１」において機器Ｂが検知された場合にＣＰＵ１０へ通知すること｝であることを認識する。ここで、「状態１」において機器Ｂが検知された場合にＭＣＵ３０が行うＣＰＵ１０への通知について補足する。第２条件データでは、「状態１」において機器Ｂが検知された場合には「状態２」へ遷移することを規定している。一方、「状態２」へ移行した後にＭＣＵ３０が行う判定の内容は第３条件に示されており、第３条件データはこの時点ではＭＣＵ３０に通知されていない。そのため、「状態１」において機器Ｂが検知された場合には、ＭＣＵ３０はＣＰＵ１０へ通知を行うこととする。そしてＣＰＵ１０は、ＭＣＵ３０からの通知に基づき、後続の条件データである第３条件データを含む条件データをＭＣＵ３０へ通知する。これらの詳細処理は後述される。
【００２７】
図８において、第１条件データ及び第２条件データをＣＰＵ１０より受信したＭＣＵ３０は、処理６０３において機器検知信号の待ち受けを開始する。処理６０４においてセンサ４０が機器Ａを検知し、ＭＣＵ３０に機器検知信号を送信する。処理６０５においてＭＣＵ３０は、機器検知信号を受信し、メモリ３１に格納されている第１条件データを参照する。そしてＭＣＵ３０は、状態が「状態０」から「状態１」へ遷移したと判定する。その後、処理６０６においてセンサ４０が、機器Ｂを検知して機器検知信号をＭＣＵ４０へ送信する。処理６０７においてＭＣＵ３０は、第２条件データにて規定される条件が満たされたと判定し、処理６０８においてＣＰＵ１０への通知を行う。この通知は、ＣＰＵ１０から送信された第１条件データ及び第２条件データに沿って機器Ａ及び機器Ｂが検知された旨をＣＰＵ１０に知らせるものである。処理６０８の後、処理６０９においてＭＣＵ３０は、機器検知信号の待ち受けを終了させる。処理６１０においてＣＰＵ１０は、ＭＣＵ３０からの通知に基づき自身の電力モードをアクティブモードへ切り替える。処理６１１においてＣＰＵ１０は、ＭＣＵ３０から受信した通知が、順序データに含まれる全ての条件データに対する判定が終了したことによるものであるか、部分的な条件データに対する判定が終了したことによるものであるかを分析する。ＣＰＵ１０は、ＭＣＵ３０から受信した通知が機器Ｂの検知に起因するものであることに基づき、当該通知が部分的な条件データに対する判定が終了したことを示すものであると認定する。そして処理６１２においてＣＰＵ１０は、第３条件データ以降の条件データ、ここでは第３条件データ及び第４条件データをＭＣＵ３０へ通知し、処理６１３において自身の動作モードを休止モードに移行させる。尚、ここではメモリ３１の空き容量が、第３条件データのデータ量及び第４条件データのデータ量の合計値である１００ｂｙｔｅよりも大きい、例えば１３０ｂｙｔｅであるものとする。ＭＣＵ３０は処理６１４において、ＣＰＵ１０から送信された第３条件データ及び第４条件データをメモリ３１に保持させる。処理６１５においてＭＣＵ３０は、機器検知信号の待ち受けを開始する。処理６１６においてセンサ４０が機器Ｃの検知を行い、ＭＣＵ３０に機器検知信号を送信する。処理６１７においてＭＣＵ３０は、機器検知信号を受信し、メモリ３１に格納されている第３条件データを参照し、状態が「状態２」から「状態３」へ遷移したことを認識する。処理６１８においてセンサ４０が、機器Ｄを検知して機器検知信号をＭＣＵ３０へ送信する。ＭＣＵ３０は、処理６１９において機器検知信号を受信し、第４条件データによって規定される条件を満たしたと判定し、処理６２０においてＣＰＵ１０への通知を行う。この通知は、機器Ｃ及び機器Ｄが所定の順序で検知された旨をＣＰＵ１０に知らせるものである。処理６２１においてＭＣＵ３０は、機器検知信号の待ち受けを終了する。処理６２２においてＣＰＵ１０は、ＭＣＵ３０からの通知に基づき、自身の電力モードをアクティブモードへ切り替える。処理６２３においてＣＰＵ１０は、ＭＣＵ３０から受信した通知の内容の分析を行う。この分析においてＣＰＵ１０は、順序データにて規定される順序で機器Ａ、機器Ｂ、機器Ｃ、機器Ｄが検知されたことを認識する。そして処理６２４においてＣＰＵ１０は、サーバへの情報又はアプリの配信依頼の処理を実行する。
【００２８】
このように、ＣＰＵ１０が保持する順序データの全容量よりもメモリ３１の空き容量が小さい場合は、順序データから一部の条件データを抽出して順にＭＣＵ３０に送信する。これによりＣＰＵ１０は、複数の機器検知信号の順序判定をＭＣＵ３０に実行させることができ、その結果としてＣＰＵ１０の消費電力が増加することを抑制できる。
【００２９】
図９は、第１実施例におけるＣＰＵ１０の機能ブロック図である。ＣＰＵ１０は、不揮発性メモリ６５等に格納された所定のコンピュータプログラムを実行することにより、図９に示す各機能ブロックとして機能する。ＣＰＵ１０は、空き容量取得部１１、順序データ保持部１２、条件データ量保持部１３、条件データ抽出部１４、動作モード制御部１５、分析部１６、処理実行部１７及び送受信部１８として機能する。空き容量取得部１１は、ＭＣＵ３０のメモリ３１の空き容量を取得する。例えば空き容量取得部１１は、順序データをＭＣＵ３０に送付する際に、後述するＭＣＵ３０の空き容量算出部３２に、メモリ３１の空き容量がどの程度あるのかの問合せを行う。そして、空き容量取得部１１は、ＭＣＵ３０の空き容量算出部３２からの回答に基づき、空き容量の値を保持する。順序データ保持部１２は、順序データを保持する。順序データは、ＣＰＵ１０が特定のアプリを実行することによって生成されるデータであってもよく、またはＣＰＵ１０の外部装置が規定し、当該外部装置からＣＰＵ１０に対して指示されたデータであってもよい。条件データ量保持部１３は、順序データに含まれる各条件データのデータ量を保持する。条件データ抽出部１４は、順序データ保持部１２に保持された順序データから一部の条件データを抽出する。この条件データの抽出は、空き容量取得部１１に保持された空き容量と、条件データ量保持部１３に保持された条件データのデータ量とに基づいて実行される。複数の条件データを含む順序データから一部の条件データを抽出する方法の詳細については後述する。
【００３０】
動作モード制御部１５は、ＣＰＵ１０の動作モードの切り替えを行う。ＣＰＵ１０は、例えばアクティブモードや休止モード等の複数の動作モードを有する。アクティブモードは、ＣＰＵ１０及びバス９０が何れも電力及びクロック信号を受けて稼働するモードである。休止モードは、ＣＰＵ１０に供給されるクロック信号が停止され、かつバス９０に供給されるクロック信号も停止された状態である。ＣＰＵ１０は、その他の動作モードとして、待機モードや電源オフモード等を有していてもよい。待機モードは、ＣＰＵ１０に供給されるクロック信号が停止され、バス９０にはクロック信号が供給される状態である。電源オフモードは、ＣＰＵ１０への電力供給が停止され、かつバスへの電力供給も停止される状態である。動作モード制御部１５は、これらの複数の動作モードを適宜切り替えることにより、ＣＰＵ１０の消費電力を抑制する。尚、ここに示した４つの動作モードは、消費電力が異なる複数の動作モードについて説明するための例示であり、電子装置１がここに開示される動作モードを必須の要件として有することを意図するものではない。また各動作モードの呼称についても実施形態を限定する意図はなく、他の呼称が付されてもよい。動作モード制御部１５は、ＭＣＵ３０に条件データを通知した後、処理すべきデータが無い場合は、ＣＰＵ１０の動作モードを休止モードに切替える。この時ＣＰＵ１０は、休止モードに替えて待機モードや電源オフモードへ移行してもよい。また動作モード制御部１５は、ＭＣＵ３０からの通知に基づき、ＣＰＵ１０の動作モードをアクティブモードに切り替える。
【００３１】
分析部１６は、ＭＣＵ３０から受信した通知の内容を分析する。分析部１６による分析において、ＭＣＵ３０からの通知が、順序データによって特定される順序の最後に規定される機器が検知されたことに起因するものであると判定された場合は、分析部１６は後述の処理実行部１７へ処理の実行を指示する。また分析部１６による分析において、ＭＣＵ３０からの通知が、順序データによって特定される順序の途中に規定される機器が検知されたことに起因するものであると判定された場合は、分析部１６は条件データ抽出部１４へ、更なる条件データを抽出するよう通知する。処理実行部１７は、分析部１６からの通知に基づき、所定の処理を実行する。処理実行部１７は、ＣＰＵ１０が特定のアプリを実行することによって実現されてもよい。送受信部１８は、ＣＰＵ１０からＭＣＵ３０への条件データの送信を行い、また、ＭＣＵ３０からＣＰＵ１０へ送信された通知の受信を行う。尚、図９に示した全ての機能ブロックが、ＣＰＵ１０で実現される必要はない。例えば順序データ保持部１２は、図２に示す揮発性メモリ６０や不揮発性メモリ６５を用いて実現されてもよく、動作モード制御部１５は、少なくとも機能の一部が電源制御回路８５にて実現されてもよい。
【００３２】
図１０は、ＭＣＵ３０の機能ブロック図である。ＭＣＵ３０は不揮発性メモリ６５等に格納された所定のコンピュータプログラムを実行することにより、図１０に示す各機能ブロックとして機能する。ＭＣＵ３０は、空き容量算出部３２、条件データ書込み部３３、条件データ消去部３４、機器検知信号受信部３５、判定部３６、通知部３７及び状態情報保持部３８として機能する。空き容量算出部３２は、メモリ３１の空き容量を算出し、ＣＰＵ１０の空き容量取得部１１からの要求に応じ、算出した空き容量を空き容量取得部１１に通知する。条件データ書込み部３３は、ＣＰＵ１０から送信された条件データのメモリ３１への書込みを行う。条件データ消去部３４は、メモリ３１に書込まれた条件データの消去を行う。機器検知信号受信部３５は、センサ４０から送信された機器検知信号を受信する。判定部３６は、受信した機器検知信号が、メモリ３１に格納された条件データによって規定される条件に合致するか否かを判定する。通知部３７は、メモリ３１に格納された条件データで規定される条件のうち、最後の条件が満たされた場合、つまり条件データで規定される最後の機器が検知された場合に、ＣＰＵ１０への通知を行う。状態情報保持部３８は、メモリ３１に格納された条件データに含まれる複数の状態のうちのどの状態にあるかを示す状態情報を保持する。
【００３３】
尚、図９及び図１０において、ＭＣＵ３０の通知部３７が送信した通知を、ＣＰＵ１０の動作モード制御部１５及び分析部１６が受信するものとして説明した。これは、通知部３７が送信する通知が、ＣＰＵ１０の動作モードを切り換える指示と、検知した機器を特定する情報の両方を含むことを意味する。但し、通知部３７が、ＣＰＵ１０の動作モードを切り換える指示を含む通知と、検知した機器を特定する情報を含む通知とを個別に送信し、動作モード制御部１５と分析部１６がそれぞれの通知を個別に受信してもよい。
【００３４】
図１１は、ＣＰＵ１０が実行する処理のフローチャートである。処理フローは処理１１００により開始され、処理１１０１において空き容量取得部１１が、ＭＣＵ３０に対してメモリ３１の空き容量を問い合わせる。処理１１０２において空き容量取得部１１が、ＭＣＵ３０から通知される空き容量の値を保持する。処理１１０３において条件データ抽出部１４が、条件データ量保持部１３に保持される条件データ量の合計が、空き容量取得部１１に保持された空き容量よりも大きいか否かを判定する。条件データ量の合計が空き容量よりも大きい場合は処理１１０４へ進み、条件データ量の合計が空き容量よりも大きくない場合は処理１１０５へ進む。処理１１０４において条件データ抽出部１４が、順序データに含まれる複数の条件データから、一部の条件データを抽出する。条件データの抽出方法の詳細については後述する。処理１１０５において送受信部１８が、条件データ抽出部１４が抽出した条件データをＭＣＵ３０に送信する。処理１１０６において動作モード制御部１５が、ＣＰＵ１０の動作モードを休止モードへ移行させる。処理１１０７において送受信部１８が、ＭＣＵ３０からの通知を受信する。処理１１０８において動作モード制御部１５が、ＣＰＵ１０の動作モードをアクティブモードへ移行させる。処理１１０９において分析部１６が、ＭＣＵ３０からの通知内容を分析し、ＭＣＵ３０へ条件データを追加して通知する必要があるか否かを判定する。処理１１０９において、ＭＣＵ３０へ送信する更なる条件データがあると判定された場合は、処理１１１０へ移行する。処理１１１０において条件データ抽出部１４が、判定済の条件データをメモリ３１から削除するよう、ＭＣＵ３０へ通知して処理１１０１へ戻る。処理１１０９において、ＭＣＵ３０へ送信する更なる条件データが存在しない場合は、処理１１１１へ移行する。処理１１１１において処理実行部１７が所定の処理を実行し、処理１１１２において処理が終了する。
【００３５】
図１２は、ＭＣＵ３０が実行する処理のフローチャートである。処理フローは処理１２００により開始され、処理１２０１において空き容量算出部３２が、ＣＰＵ１０の空き容量取得部１１から空き容量について問合せを受信する。処理１２０２において空き容量算出部３２が、メモリ３１の空き容量を算出する。処理１２０３において空き容量算出部３２が、算出した空き容量をＣＰＵ１０の空き容量取得部１１へ通知する。処理１２０４において条件データ書込み部３３が、ＣＰＵ１０から送信された条件データをメモリ３１に書込み、メモリ３１が条件データを保持する。処理１２０５において機器検知信号受信部３５が、機器検知信号の待ち受けを開始する。処理１２０６において機器検知信号受信部３５が、センサ４０からの機器検知信号を受信する。処理１２０７において判定部３６が、受信した機器検知信号により特定される機器および状態情報保持部１７に記憶されている状態情報により特定される状態が、メモリ３１に格納されている条件データによって特定される条件に合致するか否かを判定する。検知機器と状態とが条件データによって特定される条件に合致する場合は処理１２０８へ移行し、検知機器と状態とが条件データによって特定される条件に合致しない場合は処理１２０６へ戻る。処理１２０８において判定部３６が、ＣＰＵ１０への通知が必要か否かを判定する。ＣＰＵ１０への通知が必要ではない場合は処理１２０９へ移行し、処理１２０９において状態情報保持部３８は、状態情報を更新して保持する。ＣＰＵ１０への通知が必要な場合は、処理１２１０において通知部３７が、ＣＰＵ１０への通知を行う。この通知には、少なくとも最後に検出された機器を特定する情報が含まれる。処理１２１１において条件データ消去部３４が、ＣＰＵ１０の条件データ抽出部１４から、判定済の条件データをメモリ３１から消去するよう通知を受け、条件データをメモリ３１から消去し、処理１２１２において処理が終了する。
【００３６】
図１３は、順序データから、ＭＣＵ３０へ送付する一部の条件データを抽出する方法について説明する図である。まずＣＰＵ１０は順序データを順序データ保持部１２に保持する。図５に示すように、順序データに含まれる複数の条件データの合計のデータ量は２００ｂｙｔｅである。ここで、メモリ３１の空き容量が１３０ｂｙｔｅだったとすると、順序データの全データをメモリ３１に書込むことはできない。そこで条件データ抽出部１４は、まず順序データ内の初段の条件データである第１条件データを抽出する。「初段の条件データ」とは、何れの条件データにおいても遷移先状態としては規定されていない状態を、遷移元状態として規定する条件データ、もしくは、順序データにおいて初段の条件データとして指定された条件データをいう。図５に示す順序データにおいては、第１条件データが初段の条件データとなる。第１条件データのデータ量は５０ｂｙｔｅであり、メモリ３１の空き容量よりも小さいため、条件データ抽出部１４は、第１条件データをＭＣＵ３０に通知する条件データとして確定させる。この様子を図１３の（ａ）に示す。次に条件データ抽出部１４は、第１条件データの遷移先状態が「状態１」であることに基づき、「状態１」を遷移元状態として規定する条件データ、つまり第２条件データを抽出する。第２条件データは、データ量が５０ｂｙｔｅであり、第１条件データと第２条件データとの合計のデータ量は１００ｂｙｔｅとなり、メモリ３１の空き容量の１３０ｂｙｔｅよりも小さい。よって、条件データ抽出部１４は、第２条件データをＭＣＵ３０に通知する条件データとして確定させる。この様子を図１３の（ｂ）に示す。次に条件データ抽出部１４は、第２条件データの遷移先状態が「状態２」であることに基づき、「状態２」を遷移元状態として規定する条件データ、つまり第３条件データを抽出する。第３条件データは、データ量が５０ｂｙｔｅであり、第１条件データと第２条件データと第３条件データの合計のデータ量は１５０ｂｙｔｅとなり、メモリ３１の空き容量の１３０ｂｙｔｅよりも大きい。よって、条件データ抽出部１４は、第３条件データはＭＣＵ３０に通知する条件データには含められないと判断する。その結果、条件データ抽出部１４は、第１条件データ及び第２条件データをＭＣＵ３０へ通知する条件データとして決定する。第１条件データと第２条件データを併せたものを部分順序データと呼ぶ。条件データ抽出部１４は更に、抽出した第２条件データの規定内容のうち、遷移先状態として規定された「状態２」を削除し、「処理」の欄の規定を「ＣＰＵへ通知」に書き換える。具体的には、条件データ抽出部１４は、確定した部分順序データに含まれる条件データの全てに対し、遷移先状態に規定される状態が、他の何れかの条件データの遷移元状態として規定されているか否かを確認する。ここでは、第１条件データの遷移先状態は「状態１」と規定され、この「状態１」は、第２条件データの遷移元状態としても規定されている。つまり、「状態０」から「状態１」へ遷移した後も、ＭＣＵ３０は機器検知の順序判定を継続することになる。これに対し、第２条件データの遷移先状態には「状態２」が規定されているが、部分順序データに含まれる何れの条件データも、この「状態２」を遷移元状態として規定していない。言い換えれば、「状態１」から「状態２」へ遷移した後は、ＭＣＵ３０は、部分順序データに基づいて順序判定を行うことができない。この場合ＣＰＵ１０は、先に指示した部分順序データに関する判定を全て終えた旨の通知をＭＣＵ３０から受け、ＭＣＵ３０に対して次の部分順序データを指示する必要がある。そのため、条件データ抽出部１４は、第２条件データの遷移先状態の「状態２」という規定を削除し、処理の欄の内容として「ＣＰＵへ通知」を規定するよう、第２条件データの内容を書き換える。この様子を図１３の（ｃ）に示す。書き換えられた部分順序データはＭＣＵ３０へ通知される。
【００３７】
このように、メモリ３１に順序データの全てを格納できない場合であっても、順序データから部分順序データを抽出してＭＣＵ３０へ通知することにより、機器検知の順序判定をＭＣＵ３０に実行させることができる。また、ＭＣＵ３０に機器検知の順序判定を実行させることにより、ＣＰＵ１０の消費電力を抑制することができる。
【００３８】
ここまで、イベント会場１００に設けられた複数のブースを、定められた順序でユーザが回った場合に、電子装置１がサーバから所定の情報やアプリの配信を受ける例を用いて説明した。しかし電子装置１がサーバに情報やアプリの配信依頼を行うことは、本実施例において必須ではない。ここで、第１実施例の他の適用例を示す。
【００３９】
例えば、互いに連携された複数の操作部を有する装置を操作する作業者に対して、適切な順序で複数の操作部の操作を行った場合には完了通知を、誤った順序で操作部の操作を行った場合にはエラー通知を、電子装置１の音出力部５０や表示部５５を用いて行う例について説明する。各操作部にはＮＦＣタグ等の機器を設け、作業者が各操作部の作業を行う際にセンサ４０が機器を検知する。操作部Ａ、操作部Ｂ、操作部Ｃ、操作部Ｄを有する装置において、それぞれの操作部に機器Ａ、機器Ｂ、機器Ｃ、機器Ｄが設けられているものとする。適切な作業手順が、操作部Ａ、操作部Ｂ、操作部Ｃ、操作部Ｄの順序で操作するものである場合の状態遷移図を図１４に示す。まず「状態０」において機器Ａが検知されると、適切な作業手順であると判断されて「状態１」へ移行するが、機器Ａ以外の機器が検知された場合は、不適切な作業手順であることをユーザに通知するために、電子装置１の例えば音出力部５０から通知音が出力される。また、「状態１」において機器Ｂが検知されると、適切な作業手順であると判断されて「状態２」へ移行するが、機器Ｂ以外の機器が検知された場合は、電子装置１の音出力部５０からエラーを通知する通知音が出力される。その後、機器Ｃ及び機器Ｄの検知が適切な順序でなされた場合には、正しく作業が終了したとして、電子装置１の例えば音出力部５０より、完了を知らせる通知音が出力される。この処理を実行する機能は、電子装置１に予め専用の機能として組み込まれたものであってもよく、または電子装置１を製造した後にダウンロードされたアプリを実行することにより実現するものであってもよい。
【００４０】
本適用例のように、所定の順序で機器が検知された場合に加え、所定の順序と異なる順序で機器が検知された場合に、電子装置１が所定の処理を実行する例に対しても、第１実施例は適用可能である。この場合でも、ＣＰＵ１０が順序データの少なくとも一部の条件データをＭＣＵ３０に通知することにより、機器検知の順序判定をＭＣＵ３０に実行させることができ、ＣＰＵ１０の消費電力を削減することができる。
【００４１】
＜第２実施例＞
第１実施例では、図４や図１４に示した様な、状態遷移図が複数の状態を一列に並べたものとして表現できる事例を挙げて説明した。第２実施例では、状態遷移図が、分岐した複数の状態遷移枝を含む事例について説明する。尚、第２実施例における電子装置１のハードウェア構成としては、図２にて説明したハードウェア構成が適用できるため、説明を省略する。
【００４２】
図１５は第２実施例における電子装置１の利用例を説明するための図である。第２実施例では、イベント会場１００が第１ブロック１０１と第２ブロック１０２に分かれており、第１ブロック１０１にはブースＡ、ブースＢ、ブースＣ及びブースＤが設けられ、第２ブロックにはブースＥ、ブースＦ、ブースＧ，ブースＨが設けられている。第１ブロック１０１に設けられた複数のブースを所定の順序、例えばブースＡ、ブースＢ、ブースＣ、ブースＤの順序で回ったときに、電子装置１に対して第１情報または第１アプリがサーバから提供されるものとする。また、第２ブロックに設けられた複数のブースを所定の順序、例えばブースＥ、ブースＦ、ブースＧ、ブースＨの順序で回ったときに、電子装置１に対して第２情報または第２アプリがサーバから提供されるものとする。それぞれのブースには、各ブースを特定するための機器（例えばＮＦＣタグ）Ａから機器Ｈが設けられている。
【００４３】
図１６は、第２実施例においてユーザが複数のブースを順に訪れた場合の状態遷移図である。状態遷移図は、ユーザが第１ブロック１０１に含まれる複数のブースを訪れた場合の状態遷移を示す状態遷移枝と、ユーザが第２ブロック１０２に含まれる複数のブースを訪れた場合の状態遷移を示す状態遷移枝とを含む。図１６において、｛「状態１」「状態２」「状態３」｝で表される状態遷移の列を、第１状態遷移枝と呼び、｛「状態４」「状態５」「状態６」｝で表される状態遷移の列を、第２状態遷移枝と呼ぶこととする。２つの状態遷移枝は、「状態０」を起点として分岐する。「状態０」において、ユーザがブースＡを訪れた場合、つまり、電子装置１のセンサ４０によって機器Ａが検知された場合には第１状態遷移枝の初段である「状態１」へ遷移し、機器Ｅが検知された場合には第２状態遷移枝の初段である「状態４」へ遷移する。「状態１」へ遷移した後は、機器Ｂ、機器Ｃ、機器Ｄが順に検知された場合に、ＣＰＵ１０はサーバへ第１情報または第１アプリの配信依頼の処理を実行し、「状態４」へ遷移した後は、機器Ｆ、機器Ｇ、機器Ｈが順に検知された場合に、ＣＰＵ１０はサーバへ第２情報または第２アプリの配信依頼の処理を実行する。尚、第１状態遷移枝によって規定される機器の順序である｛機器Ａ、機器Ｂ、機器Ｃ、機器Ｄ｝を第１順序枝と呼び、第２状態遷移枝によって規定される機器の順序である｛機器Ｅ、機器Ｆ、機器Ｇ、機器Ｈ｝を第２順序枝と呼ぶ。
【００４４】
図１７は、電子装置１が保持する順序データを示す図である。順序データは、第１条件データから第７条件データを含む。第１条件データは、遷移元状態として「状態０」を規定し、状態の遷移条件として「機器Ａの検知」及び「機器Ｅの検知」の二つの条件を規定する。そして第１条件データは、機器Ａが検知された場合の遷移先状態として「状態１」を規定し、機器Ｅが検知された場合の遷移先状態として「状態４」を規定する。第１条件データのデータ量は１００ｂｙｔｅであるものとする。このように、一つの遷移元状態に対して複数の異なる遷移条件、および複数の異なる遷移条件に対応する複数の異なる遷移先状態が規定されている場合、この順序データによって規定される順序は複数の順序枝への分岐を有することを意味する。
【００４５】
第２条件データは、遷移元状態として「状態１」、状態が遷移する条件として「機器Ｂの検知」、そして遷移先状態として「状態２」を規定する。第２条件データのデータ量は５０ｂｙｔｅである。第２条件データは、分岐を規定する第１条件データにおいて一方の遷移先状態として規定される「状態１」を遷移元状態とする条件データであるため、この第２条件データを、第１順序枝の初段の条件データと呼ぶ。
【００４６】
第３条件データは、遷移元状態として「状態２」、状態が遷移する条件として「機器Ｃの検知」、そして遷移先状態として「状態３」を規定する。第３条件データのデータ量は５０ｂｙｔｅである。第４条件データは、遷移元状態として「状態３」、状態が遷移する条件として「機器Ｄの検知」、そして処理の内容として「サーバへの配信依頼」を規定する。第４条件データにおいては遷移先状態が定められていないことから、この第４条件データを、第１順序枝の最終段の条件データと呼ぶ。第４条件データのデータ量は５０ｂｙｔｅである。第２条件データから第４条件データと同様に、第５条件データから第７条件データが、第２順序枝の条件データとして、それぞれ遷移元状態、遷移条件、遷移先状態、処理の内容を規定する。図１７に示した「遷移確率」とは、第１条件データにおいて遷移先状態として規定される２つの異なる状態への遷移確率を意味する。本実施例では、イベント会場１００を訪れたユーザが、第１ブロック１０１のブースＡと第２ブロックのブースＥのうち、ブースＡを訪れる確率とブースＥを訪れる確率を示している。ここでは、ユーザがブースＡを訪れて「状態１」へ遷移する確率が０．８（８０％）、ユーザがブース機器Ｅを訪れて「状態４」へ移行する確率が０．２（２０％）であることを示している。この遷移確率は、例えばイベント会場１００の来訪者の統計や、ブロック１０１とブロック１０２の人気の度合い等に基づいて、予め規定されるものとする。
【００４７】
第２実施例は、順序データの全データをメモリ３１に保持させることができない場合に、分岐した複数の順序枝のどの順序枝に関する条件データを優先的に抽出するか、という点について解決方法を提示するものである。
【００４８】
図１８は、図１７に示す順序データに基づいて電子装置１が行う処理のフローチャートである。処理フローは処理１３００により開始される。処理１３０１において電子装置１は、センサ４０が機器Ａを検知したか、機器Ｅを検知したか、機器Ａおよび機器Ｅの何れも検知しなかったかを判定する。機器Ａ及び機器Ｅの何れの機器も検知されない場合は、電子装置１は処理１３０１を繰り返す。機器Ａが検知された場合は処理１３０２へ進み、機器Ｅが検知された場合は処理１３０６へ進む。処理１３０２において電子装置１は、センサ４０が機器Ｂを検知したか否かを判定する。機器Ｂが検知されない場合は、電子装置１は処理１３０２を繰り返す。機器Ｂが検知された場合は処理１３０３へ移行する。処理１３０３において電子装置１は、センサ４０が機器Ｃを検知したか否かを判定する。機器Ｃが検知されない場合、電子装置１は処理１３０３を繰り返す。機器Ｃが検知された場合は処理１３０４へ移行する。処理１３０４において電子装置１は、センサ４０が機器Ｄを検知したか否かを判定する。機器Ｄが検知されない場合は、電子装置１は処理１３０４を繰り返す。機器Ｄが検知された場合は、処理１３０５へ移行する。処理１３０５において電子装置１は、処理の実行、ここではサーバに対して第１情報または第１アプリの配信依頼を行ない、処理１３１０にて処理が終了する。また、処理１３０１において機器Ｅが検知された場合は、処理１３０６から処理１３０９において電子装置１は、機器Ｆ、機器Ｇ、機器Ｈが順に検知されたか否かを判定し、処理１３０９を経て処理１３１０にて処理が終了する。
【００４９】
図１９は、第２実施例におけるＣＰＵ１０の機能ブロック図である。図９にて説明した機能ブロックと同一の機能ブロックについては同一の参照符号を付し、説明を省略する。ＣＰＵ１０は、不揮発性メモリ６５等に格納された所定のコンピュータプログラムを実行することにより、図９に示した各機能ブロックに加え、確率情報保持部１９として機能する。確率情報保持部１９は、順序データに分岐条件を規定する条件データが含まれる場合、分岐する各状態遷移枝への遷移確率を保持する。
【００５０】
図２０は、ＣＰＵ１０によって実行される処理のフローチャートである。図１１に示した処理１１０３の後、処理１１１３において条件データ抽出部１４が、順序データに含まれる条件データの何れかに分岐条件が含まれているか否かを判定する。分岐条件が含まれている場合は処理１１１４へ進み、分岐条件が含まれていない場合には処理１１０４へ進む。処理１１１４において条件データ抽出部１４は、確率情報保持部１９に保持された各状態遷移枝への遷移確率に基づき、各枝の優先順位を決定する。その後、処理１１０４において条件データ抽出部１４が、決定された優先順位に沿って条件データの抽出を行う。
【００５１】
図２１は、第２実施例における条件データの抽出方法について説明する図である。まずＣＰＵ１０は、図１７に示した順序データを順序データ保持部１２に保持する。図１７に示したように、順序データに含まれる複数の条件データの合計データ量は４００ｂｙｔｅである。ここで、ＭＣＵ３０のメモリ３１の空き容量が１８０ｂｙｔｅだったとすると、順序データに含まれる全ての条件データをメモリ３１に書込むことはできない。そこで、条件データ抽出部１４が、条件データの抽出を行う。まず順序データ内の初段の条件データである第１条件データを抽出する。第１条件データのデータ量は１００ｂｙｔｅであり、メモリ３１の空き容量よりも小さいため、条件データ抽出部１４は、第１条件データをＭＣＵ３０に通知する条件データとして確定させる。この様子を図２１の（ａ）に示す。次に条件データ抽出部１４は、「状態０」から「状態１」へ遷移する確率（８０％）が、「状態０」から「状態４」へ遷移する確率（２０％）よりも高いことから、ＭＣＵ３０へ通知する条件データとしては、「状態１」を遷移元状態として規定する第２条件データを抽出する。第２条件データは、データ量が５０ｂｙｔｅであり、第１条件データと第２条件データとの合計のデータ量は１５０ｂｙｔｅとなり、メモリ３１の空き容量の１８０ｂｙｔｅよりも小さい。よって、条件データ抽出部１４は、第２条件データをＭＣＵ３０に通知する条件データとして確定させる。この様子を図２１の（ｂ）に示す。次に条件データ抽出部１４は、第２条件データの遷移先状態が「状態２」であることに基づき、「状態２」を遷移元状態として規定する条件データ、つまり第３条件データを抽出する。第３条件データは、データ量が５０ｂｙｔｅであり、第１条件データと第２条件データと第３条件データの合計のデータ量は２００ｂｙｔｅとなり、メモリ３１の空き容量の１８０ｂｙｔｅよりも大きくなる。よって、条件データ抽出部１４は、第３条件データはＭＣＵ３０に通知する条件データには含められないと判断する。その結果、条件データ抽出部１４は、第１条件データ及び第２条件データがＭＣＵ３０へ通知する条件データであるとして決定する。条件データ抽出部１４は更に、抽出した各条件データのうち、抽出した他の条件データの遷移元状態に規定されていない状態が遷移先状態に規定されている条件データについて、遷移先状態として規定された状態を削除すると共に処理の内容として、ＣＰＵへ通知することを規定する。すなわち、条件データ抽出部１４は、抽出した第１条件データの内容のうち、機器Ｅが検知された場合の遷移先状態として規定された「状態４」を削除し、処理の内容として「ＣＰＵへ通知」を記載するよう修正する。同様に、条件データ抽出部１４は、抽出した第２条件データの内容のうち、遷移先状態として規定された「状態２」を削除し、処理の内容として「ＣＰＵへ通知」を記載するよう修正する。この様子を図２１の（ｃ）に示す。抽出及び修正された条件データはＭＣＵ３０へ通知される。これにより、「状態０」において機器Ａが検知された場合は、ＭＣＵ３０が順序判定を継続して行い、「状態０」において機器Ｅが検知された場合及び、「状態１」において機器Ｂが検知された場合は、ＭＣＵ３０からＣＰＵ１０への通知がなされる。
【００５２】
このように、順序データによって規定される順序が、分岐する複数の順序枝を含む場合であって、メモリ３１の空き容量に順序データの全データが格納できない場合は、各順序枝のうち、遷移確率の高い順序枝に関する条件データを優先的に抽出する。これにより、ＣＰＵ１０が抽出した条件データをＭＣＵ３０に指示した後に、休止モードを維持できる確率、すなわちＣＰＵ１０の消費電力を抑制することができる確率を高めることができる。
【００５３】
尚、図２１では、メモリ３１の空き容量が１８０ｂｙｔｅである場合を例として説明したが、メモリ３１の空き容量が例えば３００ｂｙｔｅであれば、更に第３条件データ及び第４条件データを加えても、合計のデータ量が２５０ｂｙｔｅであって、メモリ３１の空き容量よりも小さい。この場合は、第１順序枝に関する全ての条件データを抽出したので、遷移確率が低いために抽出されなかった第２順序枝の条件データを更に順に抽出してもよい。これにより、「状態０」において機器Ｅが検知されて第２順序枝に遷移した場合であっても、ＭＣＵ３０が条件判定を実行することができ、ＣＰＵ１０の消費電力を抑制することができる。
【００５４】
図２２は、第２実施例における状態遷移図の変形例を示す図である。図２２の例では、「状態１」から「状態２」へ遷移した後に機器Ａが検知された場合には、再度「状態１」へ戻ることを示している。このように状態遷移とは、常に一方向にのみ遷移する場合だけでなく、双方向への遷移を繰り返すような場合も含み得るものである。また「状態５」においては、機器Ｇを検知した場合には「状態６」へ遷移し、機器Ｃを検知した場合には「状態３」へ遷移する。この例に示されるように、一度分岐した状態遷移枝の中で再度の分岐が生じるような場合もあり、また、ある状態遷移枝から他の状態遷移枝へ合流する場合もある。このような場合、ＭＣＵ３０は、「状態３」において機器Ｄが検知されたことをＣＰＵ１０に通知するだけでなく、「状態０」、「状態１」、「状態２」、「状態３」という状態遷移を経由したのか、「状態０」、「状態４」、「状態５」、「状態３」という状態遷移を経由したのか、という情報をＣＰＵ１０に通知してもよい。このようにすることで、どのような状態遷移を経由したのかによって、ＣＰＵ１０が異なる処理を実行することも可能となる。
【００５５】
ここまで第１実施例及び第２実施例について開示したが、更に幾つかの変形例について説明する。
【００５６】
第２実施例においては、確率情報保持部１９には予め定められた遷移確率が保持されると説明した。しかし遷移確率は、ＣＰＵ１０またはＭＣＵ３０が、過去に検知した機器の実績に基づいて、電子装置１内にて動的に算出した値を用いてもよい。これにより、電子装置１の所有者であるユーザの行動パターンを反映して電子装置１がカスタマイズされることになり、よりＣＰＵ１０の消費電力を抑制することが可能となる。この場合、ＭＣＵ３０は機器の検知結果を統計的に保存する。例えば図１６に示した例においては「状態０」において機器Ａが検知された回数Ｘと機器Ｅが検知された回数Ｙとをカウントして保持することにより遷移確率を算出し、ＣＰＵ１０へ送信する。もしくはＭＣＵ３０が、「状態０」において機器Ａが検知された回数Ｘと機器Ｅが検知された回数ＹとをカウントしてＣＰＵ１０へ送信し、ＣＰＵ１０が遷移確率を算出してもよい。ＭＣＵ３０は、条件データの判定結果に基づいてＣＰＵ１０へ通知を行う際、遷移確率もしくは機器の検知カウント値を併せてＣＰＵ１０へ通知してもよい。これにより、ＣＰＵ１０のアクティブモードへの移行回数の増加を抑制することができる。
【００５７】
その他、イベント会場１００を訪れた複数の訪問者の各電子装置１から、機器検知情報をサーバへ集約させ、サーバにて全体の傾向を把握して遷移確率を算出し、各電子装置１に確率情報を配信してもよい。この手法によれば、例えば初めてそのイベント会場１００を訪れたユーザの電子装置１に対しても、適切な遷移確率を付与することが可能となる。
【００５８】
また第２実施例では、状態遷移図が複数の状態遷移枝を有する場合、各状態遷移枝への遷移確率に基づいて、状態遷移枝を選択する方法について説明した。状態遷移枝を選択する他の方法として、直近に遷移した状態遷移枝を選択する方法を用いてもよい。ユーザが同じ行動を繰り返す場合には、本方法を用いることにより枝選択の正解率が向上し、ＣＰＵ１０の消費電力を抑制することができる。
【００５９】
また第２実施例では、状態遷移図が複数の状態遷移枝を有する場合、一つの状態遷移枝を選択し、選択された状態遷移枝の全ての条件データがメモリ３１へ格納可能な場合に、他の状態遷移枝の条件データを追加で抽出する例を示した。条件データの他の抽出方法としては、まず各状態遷移枝の初段の条件データを抽出し、更に空き容量がある場合は、各状態遷移枝の次段の条件データ、次々段の条件データを順に抽出してもよい。これにより、ユーザの行動が予測できない場合であっても、ＣＰＵ１０を一定期間、休止モードにて制御することができる。
【００６０】
また第１実施例および第２実施例では、センサ４０とは別にＭＣＵ３０を電子装置１内に配置し、ＭＣＵ３０にて複数機器の検知順序を判定する方法について説明したが、他の変形例として、ＭＣＵ３０の機能をセンサ４０の内部に組み込み、ＭＣＵ３０を削除する構成を採用してもよい。この場合は、ＣＰＵ１０はセンサ４０に対して順序データを指示し、センサ４０が自身で条件判定を行い、所定の順序で機器の検知が行われた場合にＣＰＵ１０へ通知を行う。
【００６１】
また、第１実施例および第２実施例では、センサ４０が機器の検知を行い、どの機器を検知したのかをＭＣＵ３０へ通知する内容を示したが、他の変形例として、ＭＣＵ３０とセンサ４０の協働処理により、機器の検知を行ってもよい。例えば、センサ４０は機器から受信した電波信号をアナログの電気信号に変換してＭＣＵ３０へ送信し、ＭＣＵ３０が電気信号に基づいて所定のデータ処理を行うことにより、どの機器が検知されたのかを認識してもよい。この場合は、機器検知信号がＭＣＵ３０の内部で生成されることになる。この場合であっても、機器検知順序の判定は、ＣＰＵ１０からＭＣＵ３０へ通知された条件データに基づいてＭＣＵ３０内部にて実行される。
【００６２】
また他の変形例として、ＭＣＵ３０の空き容量算出部３２は、メモリ３１の空き容量のうち、条件データの保持に利用できる容量を算出して、ＣＰＵ１０の空き容量取得部１１へ通知してもよい。メモリ３１は、条件データを保持する以外にも、ＭＣＵ３０が実行するデータ処理におけるデータ保持部としても用いられる。そのため、空き容量の全てを条件データの保持のために用いることができない場合がある。このような場合は、空き容量の値に一定比率を乗じた値を、条件データの保持に利用できる空き容量としてＣＰＵ１０へ通知する。
【００６３】
また、ＣＰＵ１０が複数の順序データを規定する場合、例えば複数のアプリの各々が順序データを規定し、複数の順序判定を並行してＭＣＵ３０に実行させたい場合も考えられる。このような場合、例えば３つの順序判定をＭＣＵ３０に実行させる場合は、ＣＰＵ１０の条件データ抽出部１４は、空き容量取得部１１に保持された空き容量の値を「３」で除算した値を用いて、各順序データに対して条件データの抽出を行ってもよい。
【００６４】
また他の変形例として、メモリ３１に格納されているデータ消去方法について説明する。図１１および図１２では、ＣＰＵ１０からのデータ消去指示に基づき、ＭＣＵ３０がメモリ３１に格納されていた条件データを消去する手順について説明した。しかし、ＭＣＵ３０は、条件判定に基づいてＣＰＵ１０への通知を行った後、既に判定済の条件を規定する条件データを、自身の判断でメモリ３１から消去してもよい。更にＭＣＵ３０は、ＣＰＵ１０への通知の前であっても、既に判定済の条件を規定する条件データであって、消去してもよいと判断できる条件データを消去してもよい。例えば図１６に示した状態遷移図において、第１状態遷移枝に関する条件データの全て、すなわち第１条件データから第４条件データがメモリ３１に格納されていたとする。ここで機器Ａが検知されて、状態が「状態０」から「状態１」へ遷移した時点で、「状態０」から「状態１」への遷移条件を規定する第１条件データを不要データとして、ＭＣＵ３０がメモリ３１から消去する。同様に、機器Ｂが検知された場合には第２条件データを、機器Ｃが検知された場合には第３条件データを、機器Ｄが検知された場合には第４条件データを、それぞれＭＣＵ３０がメモリ３１から消去する。これにより、メモリ３１の空き容量を早期に確保することができる。
【００６５】
更に別の例として、図１６に示した状態遷移図において、第１状態遷移枝に関する条件データである第１条件データから第４条件データに加え、第２状態遷移枝に関する条件データの少なくとも一部、例えば第５データがメモリ３１に格納されていたとする。ここで機器Ａが検知されて、状態が「状態０」から「状態１」へ遷移した時点で、「状態０」から「状態１」への遷移条件を規定する第１条件データに加えて、第２状態遷移枝に関する第５条件データも、不要データとしてＭＣＵ３０がメモリ３１から消去する。逆に機器Ｅが検知されて、状態が「状態０」から「状態４」へ遷移した時点で、「状態０」から「状態４」への遷移条件を規定する第５条件データに加えて、第１状態遷移枝に関する第１条件データから第４条件データも、不要データとしてＭＣＵ３０がメモリ３１から消去する。これにより、メモリ３１の空き容量を早期に確保することができる。
【００６６】
また、第１実施例及び第２実施例では、センサ４０は機器を検知して機器検知信号を生成するものとして説明したが、センサ４０は特定の事象（イベント）を検知してイベント検知信号を生成するものであってもよい。例えば、センサ４０として電子装置１に歩行センサが設けられている場合は、電子装置１を携帯するユーザが行う「歩行」や「停止」というイベントをセンサ４０が検知する。電子装置１に、例えば歩行しているユーザが一度停止し、その後歩行を再開した場合に、所持品置き忘れを防止するためのバイブレーション機能を実行させるようなアプリを想定する。この場合、センサ４０が生成する複数のイベント検知信号である、「歩行検知信号」、「停止検知信号」、「歩行検知信号」の順序判定をＭＣＵ３０が行い、ＣＰＵ１０へ通知する。このように本発明は、センサ４０が機器だけでなく、何等かのイベントを検知する場合にも適用できるものである。この場合は、本明細書において「機器」という用語は、「機器及びイベント」の両方を含む意味の用語として用いられる。
【００６７】
尚、本発明において、センサ４０として複数のセンサを設け、複数のセンサから生成される複数の機器検知信号またはイベント検知信号の順序判定をＭＣＵ３０に実行させてもよい。例えば電子装置１に、センサ４０としてＢｌｕｅｔｏｏｔｈ用無線デバイスと歩行センサを設ける。そして、ある店舗に設けられたＢｌｕｅｔｏｏｔｈ用ビーコンをＢｌｕｅｔｏｏｔｈ用無線デバイスが検知した後に、歩行していたユーザが停止したことを歩行センサが検知した場合に、サーバへ当該店舗の店舗情報の配信要求を行うような電子装置１にも、本発明は適用可能である。
【００６８】
開示の実施例に基づき、更に以下の付記を開示する。
（付記１）
複数の機器を検知する機器検知部と、
前記複数の機器の第１順序を規定し、前記第１順序を示す第１順序データから、前記第１順序の一部であって前記第１順序の初段を含み前記第１順序の最終段を含まない第２順序を示す第２順序データを抽出する第１処理部と、
データ保持部を有し、前記第２順序データを前記データ保持部に保持させ、前記機器検知部での前記複数の機器の検知順序が前記第２順序に一致するか否かを判定し、前記検知順序が前記第２順序に一致する場合に、一致信号を出力する第２処理部と、
を有し、
前記第２順序データの抽出は、前記データ保持部の空き容量に基づいて実行され、
前記第１処理部は、前記第２順序データを抽出した後に前記第１処理部の消費電力を減少させ、前記一致信号に基づき、前記第１処理部の消費電力を増加させることを特徴とする電子装置。
（付記２）
前記第２処理部が前記判定を行う際に消費する電力は、前記第１処理部が前記判定を行うために要する電力よりも低いことを特徴とする付記１に記載の電子装置。
（付記３）
前記第１処理部は、前記データ保持部の前記空き容量と前記第１順序データのデータ量とを比較し、前記第１順序データのデータ量が前記空き容量よりも大きい場合に、前記第２順序データが前記空き容量よりも小さくなるよう、前記第２順序データにて規定される前記第２順序の段数を特定することを特徴とする付記１又は２に記載の電子装置。
（付記４）
前記第１処理部は、前記一致信号に基づき、前記第１順序データから、前記第２順序に続く第３順序を示す第３順序データを抽出し、前記データ保持部へ保持させることを特徴とする付記１乃至３何れか一つに記載の電子装置。
（付記５）
前記複数の機器のうち、前記第２順序の最終段に規定される第１機器が前記機器検知部により検知された後であって、前記データ保持部が前記第３順序データを保持する前に、前記第２処理部は、前記第２順序データを前記データ保持部から消去することを特徴とする付記４に記載の電子装置。
（付記６）
前記第１処理部はＣＰＵであり、前記第２処理部はＭＣＵであり、前記データ保持部は前記第２処理部に含まれるメモリであることを特徴とする付記１乃至５何れか一つに記載の電子装置。
（付記７）
前記第１順序が、前記第１順序内の同一段で分岐した第１順序枝及び第２順序枝を含む場合、前記第１順序枝の初段に規定される第２機器が検知される第１確率が、前記第２順序枝の初段に規定される第３機器が検知される第２確率よりも高い場合は、前記第１処理部は、前記第１順序枝を規定する第４順序データを、前記第２順序枝を規定する第５順序データよりも優先させて、前記データ保持部に保持させることを特徴とする付記１乃至６何れか一つに記載の電子装置。
（付記８）
前記第４順序データの全てが前記データ保持部に保持された場合であって、前記第５順序データの少なくとも一部を前記データ保持部に保持させることが可能な場合は、前記第１処理部は、前記第２順序枝の少なくとも初段に規定される前記第３機器を規定するデータを、前記データ保持部に保持させることを特徴とする付記７に記載の電子装置。
（付記９）
前記第２機器よりも先に前記第３機器が検知された場合は、前記第２処理部は、前記データ保持部に格納された前記第４順序データを消去することを特徴とする付記８に記載の電子装置。
（付記１０）
前記機器検知部によって検知された前記複数の機器の検知履歴に基づき、前記第１確率及び前記第２確率の算出を行うことを特徴とする付記７乃至９何れか一つに記載の電子装置。
（付記１１）
前記機器検知部による前記複数の機器の検知順序が前記第１順序に一致した場合、前記第１処理部は、第１アプリケーションを実行するか、又は情報処理装置に対して第２アプリアプリケーションの配信要求を行うことを特徴とする付記１乃至１０何れか一つに記載の電子装置。
（付記１２）
前記第１処理部は、前記第２順序データを抽出した後に第１動作モードに移行し、前記一致信号に基づいて、前記第１モードから、前記第１モードよりも消費電力の高い第２モードに移行することを特徴とする付記１乃至１１何れか一つに記載の電子装置。
（付記１３）
前記第２処理部は、前記空き容量を前記第１処理部へ通知することを特徴とする付記１乃至１２何れか一つに記載の電子装置。
（付記１４）
機器検知部と、第１処理部と、データ保持部を有する第２処理部とを有する電子装置を用いた機器検知方法において、
前記機器検知部は複数の機器を検知し、前記第１処理部は、前記複数の機器の第１順序を規定し、
前記第１処理部は、前記データ保持部の空き容量に基づいて、前記第１順序を示す第１順序データから、前記第１順序の一部であって前記第１順序の初段を含み前記第１順序の最終段を含まない第２順序を示す第２順序データを抽出し、
前記第１処理部は、前記第２順序データを抽出した後に消費電力を低下させ、前記第２処理部は、前記データ保持部に前記第２順序データを保持させ、
前記第２処理部は、前記機器検知部による前記複数の機器の検知順序が、前記データ保持部に保持された前記第２順序に一致するか否かを判定し、
前記第２処理部は、前記複数の機器の検知順序が、前記データ保持部に保持された前記第２順序に一致した場合に、一致信号を出力し、
前記第１処理部は、前記一致信号に基づき、前記第１処理部の消費電力を増加させることを特徴とする機器検知方法。
（付記１５）
前記第２処理部が前記判定を行う際に消費する電力は、前記第１処理部が前記判定処理を行うのに要する消費電力よりも低いことを特徴とする付記１４に記載の機器検知方法。
（付記１６）
前記第１処理部は、前記データ保持部の前記空き容量と前記第１順序データのデータ量とを比較し、前記第１順序データのデータ量が前記空き容量よりも大きい場合に、前記第２順序データが前記空き容量よりも小さくなるよう、前記第２順序データにて規定される前記第２順序の段数を特定することを特徴とする付記１４又は１５に記載の機器検知方法。
（付記１７）
前記第１処理部はＣＰＵであり、前記第２処理部はＭＣＵであり、前記データ保持部は前記第２処理部に含まれるメモリであることを特徴とする付記１４又は１５に記載の機器検知方法。
（付記１８）
前記第１順序が、前記第１順序内の同一段で分岐した第１順序枝及び第２順序枝を含む場合、前記第１順序枝の初段に規定される第２機器が検知される第１確率が、前記第２順序枝の初段に規定される第３機器が検知される第２確率よりも高い場合は、前記第１処理部は、前記第１順序枝を規定する第４順序データの少なくとも、前記第２順序枝を規定する第５順序データよりも優先させて、前記データ保持部に保持させることを特徴とする付記１４乃至１７何れか一つに記載の機器検知方法
（付記１９）
前記第４順序データの全てが前記データ保持部に保持された場合であって、前記第５順序データの少なくとも一部を前記データ保持部に保持させることが可能な場合は、前記第１処理部は、前記第２順序枝の少なくとも初段に規定される前記第３機器を規定するデータを、前記データ保持部に保持させることを特徴とする付記１８に記載の機器検知方法。
（付記２０）
前記機器検知部による前記複数の機器の検知順序が、前記第１順序に一致した場合、前記第１処理部は、第１アプリケーションを実行するか、又は情報処理装置に対して第２アプリケーションの配信要求を行うことを特徴とする付記１４乃至１９何れか一つに記載の機器検知方法。
【符号の説明】
【００６９】
１  電子装置
１０  第１プロセッサ（ＣＰＵ）
３０  第２プロセッサ（ＭＣＵ）
３１  メモリ
４０  センサ
５０  音出力部
５５  表示部
６０  揮発性メモリ
６５  不揮発性メモリ
７０  通信モジュール
８０  バッテリ
８５  電源制御回路
９０  バス
１００  イベント会場
１０１  第１ブロック  、１０２  第２ブロック
１１  空き容量取得部
１２  順序データ保持部
１３  条件データ量保持部
１４  条件データ抽出部
１５  動作モード制御部
１６  分析部
１７  処理実行部
１８  送受信部
１９  確率情報保持部
３２  空き容量算出部
３３  条件データ書込み部
３４  条件データ消去部
３５  機器検知信号受信部
３６  判定部
３７  通知部
３８  状態情報保持部
【図１】
2016025649.tif 000003
【図２】
2016025649.tif 000004
【図３】
2016025649.tif 000005
【図４】
2016025649.tif 000006
【図５】
2016025649.tif 000007
【図６】
2016025649.tif 000008
【図７】
2016025649.tif 000009
【図８】
2016025649.tif 000010
【図９】
2016025649.tif 000011
【図１０】
2016025649.tif 000012
【図１１】
2016025649.tif 000013
【図１２】
2016025649.tif 000014
【図１３】
2016025649.tif 000015
【図１４】
2016025649.tif 000016
【図１５】
2016025649.tif 000017
【図１６】
2016025649.tif 000018
【図１７】
2016025649.tif 000019
【図１８】
2016025649.tif 000020
【図１９】
2016025649.tif 000021
【図２０】
2016025649.tif 000022
【図２１】
2016025649.tif 000023
【図２２】
2016025649.tif 000024