(57)【要約】【課題】更新のタイミングを、エラーが生じにくいタイミングに調整する。【解決手段】通信装置は、センサの動作に関するシナリオに基づいて処理を実行する制御部と、サーバと通信を行う通信部とを備える。制御部は、通信部を介してサーバからシナリオの更新要求を取得した場合に、センサから取得した少なくとも１つのセンサ値に応じてシナリオを更新する。【選択図】図１
2020140267.tif 000002
【特許請求の範囲】
【請求項１】
センサの動作に関するシナリオに基づいて処理を実行する制御部と、サーバと通信を行う通信部とを備える通信装置であって、
前記制御部は、前記通信部を介して前記サーバから前記シナリオの更新要求を取得した場合に、前記センサから取得した少なくとも１つのセンサ値に応じて前記シナリオを更新する通信装置。
【請求項２】
前記制御部は、前記更新要求を取得した際に、前記センサが値を検出している場合、前記センサから新たな値を前記センサ値として取得する請求項１に記載の通信装置。
【請求項３】
メモリをさらに備え、
前記制御部は、前記更新要求を取得した際に、前記センサが値を検出していなかった場合、前記メモリに保存された、前記シナリオに基づいた前回以前の処理の実行時に前記センサから取得した値の少なくとも１つを前記センサ値として利用する請求項１又は請求項２に記載の通信装置。
【請求項４】
前記シナリオに基づいて実行される処理には、前記センサから取得した値を、前記通信部を介して前記サーバに送信する処理が含まれ、
前記制御部は、ある条件下において前記更新要求を取得した場合に、前記センサ値に応じて前記シナリオを更新し、
前記条件には、前記通信部が前記サーバと通信できない場合に前記制御部が前記センサから取得した値を前記メモリに保存するという項目が、満たされるべき項目として含まれる請求項３に記載の通信装置。
【請求項５】
前記シナリオに基づいて実行される処理には、前記センサから取得した値を、前記通信部を介して前記サーバに送信する処理が含まれ、
前記制御部は、ある条件下において前記更新要求を取得した場合に、前記センサ値に応じて前記シナリオを更新し、
前記条件には、前記通信部が前記サーバと通信できるという項目が、満たされるべき項目として含まれる請求項１から請求項３のいずれか１項に記載の通信装置。
【請求項６】
前記制御部は、前記更新要求を取得した場合、前記センサ値の経時変化を分析し、分析結果に応じて前記シナリオを更新する請求項１から請求項５のいずれか１項に記載の通信装置。
【請求項７】
前記シナリオに基づいて実行される処理には周期的に実行される処理が含まれ、
前記制御部は、
前記シナリオの更新を前記周期的に実行される処理よりも低い優先度で要求された場合、前記シナリオの更新所要時間と前記周期的に実行される処理の実行周期とに応じて、前記シナリオの更新の開始時刻を、前記シナリオの更新と前記周期的に実行される処理の実行とが重ならない時刻に調整する請求項１から請求項６のいずれか１項に記載の通信装置。
【請求項８】
前記制御部は、前記通信部を介して前記サーバから前記更新所要時間を取得する請求項７に記載の通信装置。
【請求項９】
前記制御部は、前記更新要求の内容に基づいて前記更新所要時間を算出する請求項７に記載の通信装置。
【請求項１０】
前記シナリオに基づいて実行される処理には、所定の動作条件に基づいて実行される割込処理が含まれ、
前記制御部は、ある条件下において前記更新要求を取得した場合に、前記センサ値に応じて前記シナリオを更新し、
前記条件には、前記割込処理の実行が前記シナリオの更新よりも優先されるという項目が、満たされるべき項目として含まれる請求項１から請求項３のいずれか１項に記載の通信装置。
【請求項１１】
前記制御部は、
前記シナリオに基づいて処理を実行することが可能な第１モードと、前記第１モードよりも省電力で動作し、前記シナリオに基づいて処理を実行することが不可能な第２モードとを切り替えながら動作し、
前記更新要求の内容に基づいて、次に前記第２モードから前記第１モードに切り替えるときに前記シナリオを更新するかどうかを決定する請求項１から請求項１０のいずれか１項に記載の通信装置。
【請求項１２】
請求項１から請求項１１のいずれか１項に記載の通信装置と、
前記センサと
を備える電子機器。
【請求項１３】
請求項１から請求項１１のいずれか１項に記載の通信装置と、
前記通信装置に対して前記シナリオの更新を要求するサーバと
を備える通信システム。
【請求項１４】
センサの動作に関するシナリオに基づいて処理を実行する通信装置の制御方法であって、
サーバから前記シナリオの更新要求を取得した場合、前記センサから取得した少なくとも１つのセンサ値に応じて前記シナリオを更新する制御方法。
【請求項１５】
コンピュータに、
センサの動作に関するシナリオに基づいて処理を実行させ、
サーバから前記シナリオの更新要求を取得した場合、前記センサから取得した少なくとも１つのセンサ値に応じて前記シナリオを更新させる
制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信装置、電子機器、通信システム、制御方法、及び制御プログラムに関する。
【背景技術】
【０００２】
特許文献１には、設備の動作制御に関する制御スケジュール情報、設備の運用に関するカレンダ情報、設備の動作実績に関する履歴情報、およびソフトウェアの更新の所要時間を取得し、各情報を解析することで、設備の動作制御を行うコントローラが停止可能な時間帯の中からコントローラのソフトウェアを更新可能な更新可能時間帯を推測する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１９１５０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ソフトウェア更新のタイミングを、動作制御にエラーが生じないようなタイミングに調整する技術には改善の余地がある。
【０００５】
本開示の目的は、更新のタイミングを、エラーが生じにくいタイミングに調整することである。
【課題を解決するための手段】
【０００６】
本開示の一実施形態に係る通信装置は、センサの動作に関するシナリオに基づいて処理を実行する制御部と、サーバと通信を行う通信部とを備える。前記制御部は、前記通信部を介して前記サーバから前記シナリオの更新要求を取得した場合に、前記センサから取得した少なくとも１つのセンサ値に応じて前記シナリオを更新する。
【０００７】
本開示の一実施形態に係る通信装置の制御方法では、センサの動作に関するシナリオに基づいて処理を実行し、サーバから前記シナリオの更新要求を取得した場合、前記センサから取得した少なくとも１つのセンサ値に応じて前記シナリオを更新する。
【０００８】
本開示の一実施形態に係る制御プログラムは、コンピュータに、センサの動作に関するシナリオに基づいて処理を実行させ、サーバから前記シナリオの更新要求を取得した場合、前記センサから取得した少なくとも１つのセンサ値に応じて前記シナリオを更新させる。
【発明の効果】
【０００９】
本開示の一実施形態によれば、更新のタイミングを、エラーが生じにくいタイミングに調整することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】本開示の一実施形態に係る通信システムの構成を示すブロック図である。
【図２】本開示の一実施形態に係る通信システムの動作の例を示すシーケンス図である。
【図３】本開示の一実施形態に係る通信システムの動作の例を示すシーケンス図である。
【図４】本開示の一実施形態に係る電子機器の動作を示すフローチャートである。
【図５】本開示の一実施形態に係る電子機器の動作を示すフローチャートである。
【図６】本開示の一実施形態に係る電子機器の動作を示すフローチャートである。
【図７】本開示の一実施形態に係る電子機器の動作を示すフローチャートである。
【図８】本開示の一実施形態に係る電子機器の動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本開示の実施形態について、図を参照して説明する。
【００１２】
各図中、同一又は相当する部分には、同一符号を付している。また、同一又は相当する部分については、説明を適宜省略又は簡略化する。
【００１３】
図１を参照して、一実施形態の概要を説明する。
【００１４】
通信システム１０は、電子機器１１及びサーバ１２を備える。通信システム１０に含まれる電子機器１１は、１つであってもよいし、複数であってもよい。
【００１５】
電子機器１１及びサーバ１２は、移動体通信網及びインターネットなどのネットワーク１３を介して互いに通信可能である。ネットワーク１３の通信で用いられる通信方式は、Ｗｉ−Ｆｉ（登録商標）、ＬＴＥ（Long Term Evolution）、及びＬＰＷＡ（Low Power Wide Area）などの種々の通信方式を含む。ＬＰＷＡ方式は、例えば、セルラＬＰＷＡ、ＳＩＧＦＯＸ（登録商標）、又はＬｏＲａＷＡＮ（登録商標）である。セルラＬＰＷＡは、３ＧＰＰ（登録商標）（3rd Generation Partnership Project）規格において規定されたｅＭＴＣ（enhanced Machine Type Communications）又はＮＢ−ＩｏＴ（Narrow Band-Internet of Things）であってもよい。
【００１６】
電子機器１１は、一実施形態においてＩｏＴ機器であるが、スマートフォン、タブレット、又はＰＣなどの情報機器でもよい。「ＩｏＴ」は、Internet of Thingsの略語である。「ＰＣ」は、Personal Computerの略語である。電子機器１１は、通信装置２０及びセンサ３０を備える。
【００１７】
サーバ１２は、一実施形態においてクラウドサーバであるが、企業の社内サーバなど、他の種類のサーバでもよい。
【００１８】
通信装置２０は、シナリオを実行する。言い換えると、通信装置２０は、シナリオに基づいて処理を実行する。シナリオは、例えば情報が記述されたファイルであってもよいが、通信装置２０が実行可能なものであれば、形式はこれに限定されない。シナリオは、センサ３０の動作に関する情報、または通信装置２０の動作に関する情報を含む。具体的には、シナリオには、例えばセンサ３０が実行する処理の内容を示す情報が記述される。センサ３０が実行する処理の内容は、複数のセンサ３０のうちどのセンサ３０が値を検出するか、センサ３０がどのような周期で値を検出するか、センサ３０が検出した値をどのように処理するか、また、どのような条件を満たすとセンサ３０が値の検出を開始するか、といった内容を含む。また、シナリオには、例えば通信装置２０がセンサ３０から取得した値を用いて行う任意の処理の内容を示す情報が記述される。任意の処理は、通信装置２０がセンサ３０から取得した値をサーバ１２に送信する処理を含む。この処理の代わりに、又はこの処理に加えて、任意の処理には、例えば、通信装置２０がセンサ３０からの値に応じて設備の動作制御を行う処理が含まれてもよい。その他、一実施形態において、シナリオは、センサ３０が実行する処理及び通信装置２０がセンサ３０から取得した値を用いて行う任意の処理以外の通信装置２０の種々の動作または設定に関する情報を含んでもよい。また、一実施形態において、シナリオは、センサ３０が実行する処理及び通信装置２０がセンサ３０から取得した値を用いて行う任意の処理以外の通信装置２０の種々の動作または設定に関する情報のみを含んでもよい。
【００１９】
サーバ１２は、通信装置２０から送信された値を、ネットワーク１３を介して受信する。
【００２０】
サーバ１２は、受信した値を用いてサービスを提供する。提供されるサービスには、サーバ１２が通信装置２０から受信した値を用いて提供する任意のサービスが含まれる。そのような任意のサービスとしては、例えば、サーバ１２が通信装置２０から受信した値をウェブサイト上で公開するか、又はユーザに通知するサービスが含まれる。あるいは、任意のサービスには、サーバ１２が通信装置２０から受信した値を統計処理し、統計処理結果を蓄積するサービスが含まれる。
【００２１】
サーバ１２は、通信装置２０に対してシナリオの更新を要求する。通信装置２０は、シナリオの更新を要求された場合、センサ３０から取得した値であるセンサ値に応じてシナリオを更新する。
【００２２】
一実施形態において、シナリオを更新するかどうかがセンサ値に応じて決定されることで、電子機器１１は、シナリオの更新のタイミングを柔軟に調整することが可能になる。その結果、電子機器１１は、更新のタイミングを、エラーが生じにくいタイミングに調整することが可能になる。
【００２３】
一実施形態において、電子機器１１は、ユーザの工場の設備に取り付けられたＩｏＴ機器である。また、一実施形態において、サーバ１２は、ユーザの社内サーバ、又は社内サーバを代替するクラウドサーバなどの任意のサーバである。一実施形態において、ユーザは、ウェブサイト上で電子機器１１の振舞をシナリオに記述する。電子機器１１は、シナリオをダウンロードし、シナリオに記述された振舞の定義に従って動作する。電子機器１１は、サーバ１２に任意の仕様で接続できる。本開示の実施形態に係る電子機器１１およびサーバ１２によれば、例えば「社内サーバに接続できるようＩｏＴ機器を１０台だけカスタマイズしてほしい」、又は「２週間後にＩｏＴ機器を社内サーバに接続して試験したい」などのユーザの要望に応えることができる。すなわち、ユーザ自身でＩｏＴ機器の振舞を制御できるため、ユーザの要求を満たすことができる。
【００２４】
図１をさらに参照して、一実施形態に係る通信システム１０の電子機器１１の構成を説明する。
【００２５】
電子機器１１の通信装置２０は、１つ以上のマイクロコンピュータ若しくはＳｏＣ、又は１つ以上のマイクロコンピュータ若しくはＳｏＣを搭載した回路を含む。「ＳｏＣ」は、System on a Chipの略語である。通信装置２０は、制御部２１、記憶部２２、通信部２３、及び測位部２４を備える。
【００２６】
制御部２１は、１つ以上のプロセッサを含む。プロセッサとしては、ＣＰＵなどの汎用プロセッサ、又は特定の処理に特化した専用プロセッサを使用できる。「ＣＰＵ」は、Central Processing Unitの略語である。制御部２１には、１つ以上の専用回路が含まれてもよいし、又は制御部２１において、１つ以上のプロセッサを１つ以上の専用回路に置き換えてもよい。専用回路としては、例えば、ＦＰＧＡ又はＡＳＩＣを使用できる。「ＦＰＧＡ」は、Field-Programmable Gate Arrayの略語である。「ＡＳＩＣ」は、Application Specific Integrated Circuitの略語である。制御部２１は、通信装置２０を含む電子機器１１の各部を制御しながら、通信装置２０の動作に関わる情報処理を実行する。
【００２７】
記憶部２２は、１つ以上のメモリを含む。メモリとしては、例えば、半導体メモリ、磁気メモリ、又は光メモリを使用できる。半導体メモリとしては、例えば、ＲＡＭ又はＲＯＭを使用できる。「ＲＡＭ」は、Random Access Memoryの略語である。「ＲＯＭ」は、Read Only Memoryの略語である。ＲＡＭとしては、例えば、ＳＲＡＭ又はＤＲＡＭを使用できる。「ＳＲＡＭ」は、Static Random Access Memoryの略語である。「ＤＲＡＭ」は、Dynamic Random Access Memoryの略語である。ＲＯＭとしては、例えば、ＥＥＰＲＯＭを使用できる。「ＥＥＰＲＯＭ」は、Electrically Erasable Programmable Read Only Memoryの略語である。メモリは、主記憶装置、補助記憶装置、又はキャッシュメモリとして機能する。記憶部２２には、シナリオなど、通信装置２０の動作に用いられる情報と、センサ値など、通信装置２０の動作によって得られた情報とが記憶される。
【００２８】
通信部２３は、１つ以上の通信インタフェースおよび通信回路を含む。通信インタフェースは、有線信号または無線信号の送受信に用いられる。通信インタフェースは、アンテナを含む。通信回路は、通信インタフェースにより受信された無線信号に対して増幅処理及びフィルタ処理等を行い、無線信号をベースバンド信号に変換して制御部２１に出力する。また、通信回路は、制御部２１から入力されたベースバンド信号を無線信号に変換し、増幅処理等を行って通信インタフェースから送信する。無線通信を行うアンテナとしては、例えば、上述した種々の通信方式に対応したアンテナ、４Ｇ又は５Ｇに対応したアンテナなどを使用できる。「４Ｇ」は、4th Generationの略語である。「５Ｇ」は、5th Generationの略語である。通信部２３は、シナリオなど、通信装置２０の動作に用いられる情報を受信し、またセンサ値など、通信装置２０の動作によって得られる情報を送信する。通信部２３は、サーバ１２と通信を行う。
【００２９】
測位部２４は、１つ以上のアンテナおよび測位回路を含む。測位部２４は、例えば、ＧＮＳＳに対応する。「ＧＮＳＳ」は、Global Navigation Satellite Systemの略語である。ＧＮＳＳには、例えば、ＧＰＳ、ＱＺＳＳ、ＧＬＯＮＡＳＳ、及びＧａｌｉｌｅｏの少なくともいずれかが含まれる。「ＧＰＳ」は、Global Positioning Systemの略語である。「ＱＺＳＳ」は、Quasi-Zenith Satellite Systemの略語である。ＱＺＳＳの衛星は、準天頂衛星と呼ばれる。「ＧＬＯＮＡＳＳ」は、Global Navigation Satellite Systemの略語である。測位部２４は、通信装置２０を含む電子機器１１の位置情報を取得する。測位部２４は、制御部２１の指示に応じて値を検出する。すなわち、測位部２４は値を検出している状態と値を検出していない状態を有する。
【００３０】
通信装置２０の機能は、一実施形態に係る制御プログラムを、制御部２１に含まれるプロセッサで実行することにより実現される。すなわち、通信装置２０の機能は、ソフトウェアにより実現される。制御プログラムは、通信装置２０の動作に含まれるステップの処理をコンピュータに実行させることで、当該ステップの処理に対応する機能をコンピュータに実現させるためのプログラムである。すなわち、制御プログラムは、コンピュータを通信装置２０として機能させるためのプログラムである。
【００３１】
プログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、又は半導体メモリを使用できる。プログラムの流通は、例えば、プログラムを記録したＤＶＤ又はＣＤ−ＲＯＭなどの可搬型記録媒体を販売、譲渡、又は貸与することによって行う。「ＤＶＤ」は、Digital Versatile Discの略語である。「ＣＤ−ＲＯＭ」は、Compact Disc Read Only Memoryの略語である。プログラムをサーバのストレージに格納しておき、ネットワークを介して、サーバから他のコンピュータにプログラムを転送することにより、プログラムを流通させてもよい。プログラムをプログラムプロダクトとして提供してもよい。
【００３２】
コンピュータは、例えば、可搬型記録媒体に記録されたプログラム又はサーバから転送されたプログラムを、一旦、メモリに格納する。そして、コンピュータは、メモリに格納されたプログラムをプロセッサで読み取り、読み取ったプログラムに従った処理をプロセッサで実行する。コンピュータは、可搬型記録媒体から直接プログラムを読み取り、プログラムに従った処理を実行してもよい。コンピュータは、コンピュータにサーバからプログラムが転送される度に、逐次、受け取ったプログラムに従った処理を実行してもよい。サーバからコンピュータへのプログラムの転送は行わず、実行指示及び結果取得のみによって機能を実現する、いわゆるＡＳＰ型のサービスによって処理を実行してもよい。「ＡＳＰ」は、Application Service Providerの略語である。プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるものが含まれる。例えば、コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータは、「プログラムに準ずるもの」に該当する。
【００３３】
通信装置２０の一部又は全ての機能が、制御部２１に含まれる専用回路により実現されてもよい。すなわち、通信装置２０の一部又は全ての機能が、ハードウェアにより実現されてもよい。
【００３４】
電子機器１１のセンサ３０には、温度センサ３１、湿度センサ３２、気圧センサ３３、照度センサ３４、加速度センサ３５、角速度センサ３６、及び地磁気センサ３７が含まれる。電子機器１１のセンサ３０には、電子機器１１の物理的な状態または電子機器１１の周囲の物理的な状態を検出するその他の種々のセンサが含まれてもよい。センサ３０は、制御部２１の指示に応じて値を検出する。すなわち、センサ３０は値を検出している状態と値を検出していない状態を有する。
【００３５】
通信装置２０がシナリオで行う処理のためにセンサ３０から取得する値は、一実施形態において、温度センサ３１、湿度センサ３２、気圧センサ３３、照度センサ３４、加速度センサ３５、角速度センサ３６、及び地磁気センサ３７でそれぞれ得られる温度、湿度、気圧、照度、加速度、角速度、及び地磁気の測定値を少なくとも含む。
【００３６】
図２及び図３を参照して、一実施形態に係る通信システム１０の動作の例を説明する。通信システム１０の動作は、一実施形態に係る通信方法に相当する。
【００３７】
電子機器１１は、シナリオに基づいて処理を実行する。一実施形態において、シナリオに基づいて実行される処理は、周期的な動作条件に基づいて実行される処理を含む。すなわち、本実施形態では、シナリオに基づいて実行される処理の少なくとも一部は周期的に実行される。電子機器１１は、複数のシナリオを同時に実行してもよい。
【００３８】
電子機器１１がシナリオに基づいて実行する処理には、所定の動作条件に応じて実行される割込処理が含まれてもよい。割込処理は、周期的な動作条件とは異なる動作条件に基づいて実行されてもよい。周期的な動作条件とは異なる動作条件とは、センサ３０のうちの少なくとも一部が取得した値が条件を満たすことであってもよい。センサ３０のうちの少なくとも一部とは、例えば加速度センサ３５、または照度センサ３４などであってもよいがこれらに限られない。周期的な動作条件とは異なる動作条件の判定に用いられるセンサ３０は、常時値を検出し続けてもよい。割込処理は、周期的に実行される処理と同様に、通信装置２０がセンサ３０から取得した値を用いて行う処理である。割込処理で使用されるセンサ３０の種類は、周期的に実行される処理で使用されるセンサ３０の種類と一部または全部が同一でもよいし、異なってもよい。割込処理で使用されるセンサ３０の数は、周期的に実行される処理で使用されるセンサ３０の数と同一であってもよいし、異なってもよい。割込処理で使用されるセンサ３０の数は、周期的に実行される処理で使用されるセンサ３０の数よりも少なくてもよい。
【００３９】
電子機器が実行するシナリオの一例として、高齢者が観察され、かつ高齢者が転倒したと推定される場合には、観察周期にかかわらず情報が取得される場合がある。周期的に実行される処理では、加速度、角速度、位置情報が取得され、時刻とともにサーバ１２へ送信される。割込処理では、周期的に実行される処理においても、加速度、角速度、及び位置情報が取得され、時刻とともにサーバ１２へ送信される。周期的な処理の動作条件は、例えば１時間ごとである。割込処理の動作条件は、例えば加速度センサ３５により取得された値が閾値以上になることである。電子機器が実行するシナリオの他の例として、輸送中の荷物が周期的に観察され、かつ荷物が落下したと推定される場合には、観察周期にかかわらず情報が取得される場合がある。周期的に実行される処理では、温度、湿度、位置情報が取得され、時刻とともにサーバ１２へ送信される。割込処理では、加速度、角速度、及び位置情報が取得され、時刻とともにサーバ１２へ送信される。周期的な処理の動作条件は、例えば１時間ごとである。割込処理の動作条件は、例えば加速度センサ３５により取得された値が閾値以上になることである。
【００４０】
電子機器１１は、第１モードと第２モードとを切り替えながら動作する。第２モードは、第１モードよりも消費電流が小さいモードである。第２モードでは、電子機器１１の通信装置２０及びセンサ３０のうち、割込処理の実行に必要な機能のみが動作する。一実施形態において、第２モードでは、ＲＴＣ（Real Time Clock）以外のパワーオフ処理がなされていてもよい。すなわち、第２モードでは、ＲＴＣ以外に電力が供給されなくてもよい。また、一実施形態において、第２モードでは、センサ３０に含まれる加速度センサ以外のパワーオフ処理がなされていてもよい。一実施形態において、第１モード及び第２モードは、基地局との接続の態様で区別される。第１モードは、接続状態、間欠受信状態、及びスリープ状態を含んでもよい。なお、所定の条件に基づいて間欠受信状態とスリープ状態とが繰り返される状態は、ｅＤＲＸ（extended Discontinuous Reception）と呼ばれることがある。第２モードは、通常状態、間欠受信状態、及びスリープ状態のいずれにも属さない状態であってもよい。通常状態、間欠受信状態、及びスリープ状態のいずれにも属さない状態は、ＰＳＭ（Power Saving Mode）と呼ばれることがある。
【００４１】
シナリオのうち周期的に実行される処理は、第１モードで実行され、第２モードでは実行されない。シナリオのうち割込処理は、一実施形態において、第１モード及び第２モードの両方で実行が開始されるが、第１モードでは実行が開始されなくてもよい。第１モードから第２モードへの切替、及び第２モードから第１モードへの切替のタイミングは、電子機器１１が周期的に実行される処理の実行周期に第１モードで動作するように設定される。周期的に実行されるシナリオは、電子機器１１が第２モードから第１モードに切り替わった後、第２モードに再び切り替わるまでの期間内に１回しか実行されなくてもよいし、又は２回以上実行されてもよい。
【００４２】
図２の例では、周期的に実行される処理及び割込処理を含むシナリオが実行される場合において、サーバ１２は、新シナリオ及びシナリオ更新要求を電子機器１１に送信する。シナリオ更新要求には、要求されるシナリオ更新開始時刻、シナリオの更新処理の開始から終了までに要する時間を示すシナリオ更新所要時間、第１更新優先度、及び第２更新優先度の設定が含まれる。
【００４３】
電子機器１１は、シナリオ更新要求を受信すると、シナリオ更新要求に含まれる第１更新優先度を参照する。電子機器１１は、周期的に実行される処理の実行がシナリオの更新よりも優先される場合は、シナリオに基づく処理の実行周期と重ならないタイミングでシナリオを更新する。すなわち、電子機器１１は、センサ３０による測定周期と重ならないタイミングで要求された振舞を有効化する。
【００４４】
具体的には、電子機器１１は、シナリオ稼動開始時刻に関する情報を取得または特定する。シナリオ稼動開始時刻に関する情報は、記憶部２２に記憶された過去のシナリオ稼動時刻を含む。なお、一実施形態において、周期的に実行されるシナリオの動作条件そのものが時刻情報であり得る。この場合、シナリオ稼動開始時刻に関する情報は、シナリオの動作条件が示す時刻情報であってもよい。また、電子機器１１は、周期的に実行されるシナリオの動作条件、シナリオに記述された内容、及びシナリオを実行するセンサ３０の種別などに基づき、周期的に実行される処理の１回の実行にかかる時間であるシナリオ稼動時間を計算する。シナリオ稼動時間を示す情報は、シナリオ更新要求に含まれてもよい。すなわち、電子機器１１は、サーバ１２からシナリオ稼動時間を示す情報を取得してもよい。電子機器１１は、シナリオ稼動開始時刻に関する情報及びシナリオ稼動時間に基づき、次にシナリオが実行される時刻であるシナリオ稼動時刻を計算する。シナリオ稼動時刻は、シナリオ稼動開始時刻とシナリオ稼動終了時刻を含む。電子機器１１は、シナリオ稼動時刻に基づいて、シナリオ更新要求に含まれるシナリオ更新開始時刻にシナリオが実行される予定かを少なくとも判定する。電子機器１１は、シナリオ更新開始時刻にシナリオが実行されると判定した場合、シナリオ更新開始時刻を、後の時間帯にずらす。電子機器１１は、シナリオ稼動時刻に基づいて、シナリオ更新開始時刻にシナリオが実行されず、かつそのシナリオ更新開始時刻から、シナリオ更新要求に含まれるシナリオ更新所要時間が経過するまでシナリオが実行されない予定かを判定してもよい。電子機器１１は、シナリオ更新開始時刻からシナリオ更新所要時間が経過するまでの間にシナリオが実行されると判定した場合、シナリオ更新開始時刻を、シナリオ更新開始時刻からシナリオ更新所要時間が経過するまでの間にシナリオが実行されない時間帯にずらす。
【００４５】
例えば、電子機器１１は、シナリオを更新する処理に５分かかると推定される場合、シナリオが実行されない５分間でシナリオを更新する。
【００４６】
一実施形態において、電子機器１１は、シナリオ更新要求を受信すると、シナリオ更新要求に含まれる第２更新優先度も参照する。電子機器１１は、割込処理の実行がシナリオの更新よりも優先される場合は、割込処理の実行タイミングと重ならないタイミングでシナリオを更新する。
【００４７】
周期的に実行される処理の実行周期と異なり、割込処理の実行タイミングは事前に推測できない。そのため、電子機器１１は、シナリオ更新要求に含まれるシナリオ更新開始時刻になったときに、割込処理が実行されているかを判定する。電子機器１１は、割込処理が実行されていれば、割込処理の実行にかかる時間である割込処理稼動時間に基づき、シナリオ更新開始時刻を割込処理の実行が終了する時刻よりも後の時間帯にずらす。なお、電子機器１１は、シナリオ内の割込処理に関して記述された内容、及び割込処理を実行するセンサ３０の種別などに基づき、割込処理の実行にかかる時間である割込処理稼動時間を計算できる。割込処理稼動時間とは、割込処理の動作条件が一回満たされることに応答して実行される割込処理の実行時間であってよい。また、詳細は後述するが、電子機器１１は、割込処理の実行がシナリオの更新よりも優先される場合かつ割込処理が実行されている場合であっても、センサ３０から取得したセンサ値に応じて、シナリオを更新するかどうかを決定してもよい。
【００４８】
図３の例では、第１モード及び第２モードの双方が実行される場合において、サーバ１２は、新シナリオを電子機器１１に送信する。
【００４９】
電子機器１１は、通信装置２０の記憶部２２に含まれるＲＡＭに展開済みの現シナリオを実行している間に、サーバ１２から新シナリオをダウンロードする。電子機器１１は、まず、ダウンロードした新シナリオを、通信装置２０の記憶部２２に含まれるＲＯＭに展開する。電子機器１１は、現シナリオの実行が終わって第２モードに入った後、第１モードへの切替時に新シナリオをＲＡＭに展開する。
【００５０】
なお、図２の例では、シナリオが更新される際、電子機器１１は一旦再起動される場合がある。すなわち、第１モードを実行している間に、第２モードに切り替わることなくシナリオが更新される際、電子機器１１は一旦再起動される場合がある。再起動は、電子機器１１が新シナリオを通信装置２０の記憶部２２に含まれるＲＡＭに展開するために必要な処理であり得る。一方、図３の例では、一実施形態において、シナリオが更新される際に、電子機器１１が再起動される必要はない。一実施形態において、第２モードは、電源ＯＦＦの状態ではないものの、新シナリオを通信装置２０の記憶部２２に含まれるＲＡＭに展開可能な状態であってもよい。このような場合、第２モードに切り替わった後にシナリオが更新される際に、電子機器１１が再起動されることはなく、第１モードへの切替時にシナリオが更新される。つまり、図３の例では、再起動が不要であるため、他のいくつかの実施形態に比べ、消費電力が低減されうる。
【００５１】
なお、サーバ１２は、新シナリオを電子機器１１に送信する際、シナリオ更新要求を送信しないか、又は少なくともシナリオ更新開始時刻が設定されないシナリオ更新要求を電子機器１１に送信してもよい。このとき、電子機器１１は、シナリオ更新要求に含まれる設定とは関係なく、任意の時刻にシナリオを更新することができる。
【００５２】
図４、図５、図６、及び図７を参照して、一実施形態に係る通信装置２０の動作を説明する。図４、図５、図６、及び図７は、一実施形態に係る電子機器１１の動作を示すフローチャートである。通信装置２０の動作は、一実施形態に係る制御方法に相当する。
【００５３】
以下、図４について詳細に説明する。
【００５４】
ステップＳ１００において、制御部２１は、新シナリオ及びシナリオ更新要求を、通信部２３を介してサーバ１２から受信する。
【００５５】
ステップＳ２００において、制御部２１は、ステップＳ１００で受信したシナリオ更新要求に含まれるシナリオ更新開始時刻、シナリオ更新所要時間、第１更新優先度、及び第２更新優先度の設定を確認する。
【００５６】
ステップＳ３００において、制御部２１は、シナリオ更新処理を実行する。
【００５７】
図５から図７は、図４のステップＳ３００のシナリオ更新処理の詳細な手順を示している。以下、図５について詳細に説明する。
【００５８】
ステップＳ３０１において、制御部２１は、シナリオ更新要求に含まれる第１更新優先度の内容、または第１更新優先度の設定の有無に基づき、周期的な処理の実行がシナリオの更新よりも優先されるかどうかを判定する。ステップＳ３０１において、制御部２１が、周期的な処理の実行がシナリオの更新よりも優先されると判定した場合（ステップＳ３０１でＹＥＳ）、処理はステップＳ３０２に進む。一方、ステップＳ３０１において、制御部２１が、周期的な処理の実行がシナリオの更新よりも優先されないと判定した場合（ステップＳ３０１でＮＯ）、処理はステップＳ３０５に進む。
【００５９】
ステップＳ３０２において、制御部２１は、シナリオ更新開始時刻の設定の有無に基づき、シナリオの更新タイミングが第２モードから第１モードへの切替時で問題ないかどうかを判定する。ステップＳ３０２において、シナリオ更新開始時刻が設定されていなければ、制御部２１は、第２モードから第１モードへの切替時にシナリオを更新すればよいと判定し（ステップＳ３０２でＹＥＳ）、処理はステップＳ３０３に進む。一方、シナリオ更新開始時刻が設定されていれば、制御部２１は、第２モードから第１モードへの切替時にシナリオを更新すべきでないと判定し（ステップＳ３０２でＮＯ）、処理はステップＳ３０６に進む。
【００６０】
ステップＳ３０３において、制御部２１は、記憶部２２に含まれるＲＡＭに展開済みの現シナリオの実行を終了し、設定されたタイミングで動作モードを第１モードから第２モードに切り替える。
【００６１】
ステップＳ３０５において、制御部２１は、新シナリオを記憶部２２に含まれるＲＡＭに展開することで、シナリオを更新する。
【００６２】
ステップＳ３０６において、制御部２１は、シナリオ稼動開始時刻に関する情報及びシナリオ稼動時間に基づき、次にシナリオが実行される時刻であるシナリオ稼動時刻を計算する。
【００６３】
ステップＳ３０７において、制御部２１は、シナリオ稼動時刻に基づいて、シナリオ更新開始時刻から、シナリオ更新要求に含まれるシナリオ更新所要時間が経過するまでシナリオに基づく周期的な処理が実行されない予定かを判定する。すなわち、ステップＳ３０７において、制御部２１は、シナリオ更新要求で設定されたシナリオの更新のタイミングが、現在のシナリオに基づく処理の実行周期と重複するかどうかを判定する。ステップＳ３０７において、制御部２１が、シナリオ更新要求で設定されたシナリオの更新のタイミングが、現在のシナリオに基づく処理の実行周期と重複すると判定した場合（ステップＳ３０７でＹＥＳ）、処理はステップＳ３０８に進む。一方、ステップＳ３０７において、制御部２１が、シナリオ更新要求で設定されたシナリオの更新のタイミングが、現在のシナリオに基づく処理の実行周期と重複しないと判定した場合（ステップＳ３０７でＮＯ）、処理はステップＳ３１１に進む。
【００６４】
ステップＳ３０８において、制御部２１は、シナリオ更新開始時刻を、現在のシナリオに基づく処理の実行周期と重複しない時刻に変更する。
【００６５】
以下、図６について詳細に説明する。
【００６６】
ステップＳ３０８の処理が実行された後、ステップＳ３１１において、制御部２１は、現在時刻がシナリオ更新開始時刻に達したかどうかを判定する。ステップＳ３１１において、制御部２１が、現在時刻がシナリオ更新開始時刻に達したと判定した場合（ステップＳ３１１でＹＥＳ）、処理はステップＳ３１２に進む。一方、ステップＳ３１１において、制御部２１が、現在時刻がシナリオ更新開始時刻に達していないと判定した場合（ステップＳ３１１でＮＯ）、制御部２１は、ステップＳ３１１の処理を繰り返す。
【００６７】
ステップＳ３１２において、制御部２１は、ネットワーク１３の状況を確認する。具体的には、制御部２１は、通信部２３がネットワーク１３に含まれる移動体通信網の通信圏内であるかどうかを判定する。ステップＳ３１２において、制御部２１が、通信部２３が通信圏外であると判定した場合（ステップＳ３１２でＮＯ）、処理はステップＳ３１３に進む。一方、制御部２１が、通信部２３が通信圏内であると判定した場合（ステップＳ３１２でＹＥＳ）、処理はステップＳ３１５に進む。
【００６８】
ステップＳ３１３において、制御部２１は、シナリオの実行中にセンサ３０により得られた測定値または測位部２４により得られた位置情報の送信に失敗したときに測定値または位置情報を記憶部２２に含まれるメモリに保存するかどうかという測定値保存設定が有効かどうかを判定する。ステップＳ３１３において、制御部２１が、測定値保存設定が無効であると判定した場合（ステップＳ３１３でＮＯ）、処理はステップＳ３０５に進む。一方、ステップＳ３１３において、制御部２１が、測定値保存設定が有効であると判定した場合（ステップＳ３１３でＹＥＳ）、処理はステップＳ３１４に進む。なお、ステップＳ３１２以降で判定される事項は、測定値保存設定が有効かどうかに限られない。例えば、制御部２１は、新たなシナリオの内容から、新たなシナリオに基づいて実行される処理に割込処理が含まれているかどうかを判定してもよい。このとき、新たなシナリオに基づいて実行される処理に割込処理が含まれていない場合、制御部２１は、現在のシナリオに割込処理が含まれるか否かにかかわらず、処理をステップＳ３０５に進めてもよい。
【００６９】
ステップＳ３１４において、制御部２１は、メモリに保存されている測定値又は位置情報があるかどうか判定する。ステップＳ３１４において、制御部２１が、メモリに保存されている測定値又は位置情報がないと判定した場合（ステップＳ３１４でＮＯ）、処理は図５のステップＳ３０５に進む。一方、ステップＳ３１４において、制御部２１が、メモリに保存されている測定値又は位置情報があると判定した場合（ステップＳ３１４でＹＥＳ）、処理はステップＳ３１２に戻る。
【００７０】
ステップＳ３１５において、制御部２１は、シナリオ更新要求に含まれる第２更新優先度の内容、または第２更新優先度の設定の有無に基づき、割込処理の実行がシナリオの更新よりも優先されるかどうかを判定する。ステップＳ３１５において、制御部２１が、割込処理の実行がシナリオの更新よりも優先されると判定した場合（ステップＳ３１５でＹＥＳ）、処理はステップＳ３１６に進む。一方、ステップＳ３１５において、制御部２１が、割込処理の実行がシナリオの更新よりも優先されないと判定した場合、（ステップＳ３１５でＮＯ）、処理はステップＳ３１７に進む。
【００７１】
ステップＳ３１６において、制御部２１は、割込処理が実行されているかどうかを判定する。ステップＳ３１６において、制御部２１が、割込処理が実行されていると判定した場合（ステップＳ３１６でＹＥＳ）、処理はステップ３２１に進む。一方、ステップＳ３１６において、制御部２１が、割込処理が実行されていないと判定した場合（ステップＳ３１６でＮＯ）、処理はステップＳ３１７に進む。
【００７２】
ステップＳ３１７において、制御部２１は、記憶部２２に含まれるＲＡＭに展開済みの現シナリオの実行を停止する。
【００７３】
以下、図７について詳細に説明する。
【００７４】
ステップＳ３２１において、制御部２１は、センサ３０または測位部２４が値を検出しているかどうか判定する。ステップＳ３２１において、制御部２１が、センサ３０または測位部２４が値を検出していると判定した場合（ステップＳ３２１でＹＥＳ）、処理はステップＳ３２２に進む。一方、ステップＳ３２１において、制御部２１が、センサ３０または測位部２４が値を検出していないと判定した場合（ステップＳ３２１でＮＯ）、処理はステップＳ３２５に進む。
【００７５】
ステップＳ３２２において、制御部２１は、センサ３０の新たな測定値、または測位部２４の新たな位置情報を一定時間Ｐ１内に複数回取得する。
【００７６】
ステップＳ３２３において、制御部２１は、ステップＳ３２２で取得した測定値または位置情報を用いて、更新可否判定処理を実行する。ステップＳ３２３において、制御部２１が、更新可と判定した場合（ステップＳ３２３でＹＥＳ）、処理はステップＳ３２５に進む。一方、ステップＳ３２３において、制御部２１が、更新不可と判定した場合（ステップＳ３２３でＮＯ）、処理はステップＳ３２４に進む。なお、更新可否判定処理の詳細は後述する。
【００７７】
ステップＳ３２４において、制御部２１は、割込処理の実行にかかる時間である割込処理稼動時間に基づき、シナリオ更新開始時刻を、割込処理の実行が完了した後の時刻に変更する。
【００７８】
ステップＳ３２５において、制御部２１は、センサ３０により得られた測定値または測位部２４により得られた位置情報の送信に失敗したときに測定値または位置情報をそれぞれ記憶部２２に含まれるメモリに保存するかどうかという測定値保存設定が有効かどうかを判定する。ステップＳ３２５において、制御部２１が、測定値保存設定が有効であると判定した場合（ステップＳ３２５でＹＥＳ）、処理はステップＳ３２６に進む。一方、ステップＳ３２５において、制御部２１が、測定値保存設定が無効であると判定した場合（ステップＳ３２５でＮＯ）、処理は図６のステップＳ３１７に進む。
【００７９】
ステップＳ３２６において、制御部２１は、メモリに保存されている測定値又は位置情報があるかどうか判定する。ステップＳ３２６において、制御部２１が、メモリに保存されている測定値又は位置情報がないと判定した場合（ステップＳ３２６でＮＯ）、処理は図６のステップＳ３１７に進む。一方、ステップＳ３２６において、制御部２１が、メモリに保存されている測定値又は位置情報があると判定した場合（ステップＳ３２６でＹＥＳ）、ステップＳ３２７に進む。
【００８０】
ステップＳ３２７において、制御部２１は、メモリに保存されている複数回分の測定値又は位置情報を取得する。複数回分の測定値は、一定時間Ｐ２以内に取得されたものに限られてもよい。時間Ｐ２は、時間Ｐ１よりも長くてもよい。例えば、時間Ｐ１は１０秒程度、時間Ｐ２は５分程度である。
【００８１】
ステップＳ３２８において、制御部２１は、ステップＳ３２７で取得した測定値または位置情報を用いて、更新可否判定処理を実行する。ステップＳ３２８において、制御部２１が、更新可と判定した場合（ステップＳ３２８でＹＥＳ）、処理は図６のステップＳ３１７に進む。一方、ステップＳ３２８において、制御部２１が、更新不可と判定した場合（ステップＳ３２８でＮＯ）、処理はステップＳ３２４に進む。なお、更新可否判定処理の詳細は後述する。
【００８２】
図８は、ステップＳ３２３及びステップＳ３２８の更新可否判定処理の一例を示している。
【００８３】
制御部２１は、ステップＳ３４１からステップＳ３４４の処理と、ステップＳ３５１からステップＳ３５４の処理と、ステップＳ３６１からステップＳ３６４の処理とを順番に実行してもよいし、並列に実行してもよい。
【００８４】
ステップＳ３４１において、制御部２１は、照度センサ３４により得られた測定値に基づく照度判定処理を実行する。照度判定処理は、例えば、電子機器１１が室内に設置される場合に実行される。
【００８５】
ステップＳ３４２において、制御部２１は、取得した複数回分の照度の測定値の全て、一部、または平均値が閾値よりも低いかどうかに基づいて、電子機器１１の周囲が一定時間暗いかどうかを判定する。ステップＳ３４２において、制御部２１が、電子機器１１の周囲が一定時間暗いと判定した場合（ステップＳ３４２でＹＥＳ）、処理はステップＳ３４３に進む。一方、制御部２１が、電子機器１１の周囲が一定時間暗いと判定しなかった場合（ステップＳ３４２でＮＯ）、処理はステップＳ３４４に進む。
【００８６】
ステップＳ３４３において、制御部２１は、シナリオの更新が可能であると判定する。
【００８７】
ステップＳ３４４において、制御部２１は、シナリオの更新が不可能であると判定する。
【００８８】
ステップＳ３５１において、制御部２１は、加速度センサ３５により得られた測定値に基づく加速度判定処理を実行する。加速度判定処理は、例えば、電子機器１１が人若しくは動物により保持される場合、または車両などの移動体に設置される場合に実行される。
【００８９】
ステップＳ３５２において、制御部２１は、取得した加速度に基づいて、電子機器１１の移動状態を判定する。制御部２１は、取得した複数回分の加速度のパターンまたは周期性などに基づいて、電子機器１１の移動状態を判定することができる。ステップＳ３５２において、制御部２１が、電子機器１１を保持している人又は動物が歩行していると判定しなかった場合（ステップＳ３５２でＮＯ）、処理はステップＳ３５３に進む。一方、ステップＳ３５２において、制御部２１が、電子機器１１を保持している人又は動物が歩行していると判定した場合（ステップＳ３５２でＹＥＳ）、処理はステップＳ３５４に進む。なお、判定される移動状態は、歩行に限られず、走行、自転車での移動、電車での移動、車両での移動などであってもよい。
【００９０】
ステップＳ３５３において、制御部２１は、シナリオの更新が可能であると判定する。
【００９１】
ステップＳ３５４において、制御部２１は、シナリオの更新が不可能であると判定する。
【００９２】
ステップＳ３６１において、制御部２１は、測位部２４により得られた位置情報に基づくＧＮＳＳ判定処理を実行する。ＧＮＳＳ判定処理は、特に、電子機器１１が人若しくは動物により保持される場合、又は車両などの移動体に設置される場合に実行される。
【００９３】
ステップＳ３６２において、制御部２１は、取得した複数回分の位置情報が一定方向に変化しているかどうかに基づいて、電子機器１１が移動しているかどうかを判定する。ステップＳ３６２において、制御部２１が、電子機器１１が移動していると判定しなかった場合（ステップＳ３６２でＮＯ）、処理はステップＳ３６３に進む。一方、ステップＳ３６２において、制御部２１が、電子機器１１が移動していると判定した場合（ステップＳ３６２でＹＥＳ）、処理はステップＳ３６４に進む。なお、制御部２１は、位置情報が一定時間内に所定量変化したかに基づいて電子機器１１が移動しているかどうかを判定してもよい。
【００９４】
ステップＳ３６３において、制御部２１は、シナリオの更新が可能であると判定する。
【００９５】
ステップＳ３６４において、制御部２１は、シナリオの更新が不可能であると判定する。
【００９６】
上述のように、一実施形態において、センサ３０から値を取得して処理を行うシナリオを実行する制御部２１は、シナリオの更新を要求された場合、センサ３０から取得した値であるセンサ値に応じて、シナリオを更新するかどうかを決定する。したがって、本実施形態によれば、シナリオの更新のタイミングを柔軟に調整することが可能になる。その結果、更新のタイミングを、エラーが生じにくいタイミングに調整することが可能になる。
【００９７】
一実施形態において、制御部２１は、シナリオを周期的に実行する。制御部２１は、シナリオの更新をシナリオに基づく処理の実行よりも低い優先度で要求された場合、シナリオの更新の所要時間とシナリオに基づく処理の実行周期とに応じて、シナリオの更新の開始時刻を、シナリオの更新とシナリオに基づく処理の実行とが重ならない時刻に調整する。したがって、本実施形態によれば、シナリオの更新に起因して重要なデータが喪失するといった事態が生じにくくなる。
【００９８】
なお、上述の実施形態では、制御部２１は、シナリオの更新の開始時刻を、周期的に実行されるシナリオに基づく処理の実行とシナリオの更新とが重ならない時刻に調整した上で、シナリオの一部である割込処理の実行中にセンサ３０から取得した値であるセンサ値に応じて、シナリオを更新するかどうかを決定する。しかしながら、センサ値に応じてシナリオを更新するかどうかを決定する処理は、シナリオの実行とは無関係に実行されてもよい。例えば、制御部２１は、周期的に実行されるシナリオを実行中であっても、センサ３０が検出しているセンサ値に応じてシナリオを更新するかどうかを決定してもよい。
【００９９】
一実施形態において、制御部２１は、シナリオの更新を要求された場合、センサ３０が値を検出していれば、現在のシナリオに基づく次回の処理の実行前にセンサ３０から新たな値をセンサ値として取得する。具体的には、制御部２１は、現在のシナリオに基づく次回の処理の実行前にセンサ３０から新たな値を複数回取得する。そして、制御部２１は、更新可否判定処理において、取得した複数回分の新たな値をセンサ値として利用する。
【０１００】
一実施形態において、制御部２１は、シナリオの更新を要求された場合、センサ３０が値を検出していなくても、現在のシナリオに基づく前回以前の処理の実行時にセンサ３０から取得した値がメモリに保存されていれば、メモリに保存されている値をセンサ値として利用する。具体的には、制御部２１は、更新可否判定処理において、現在のシナリオに基づく前回以前の処理の実行時にセンサ３０から取得した複数回分の値をセンサ値として利用する。したがって、本実施形態によれば、センサ３０が値を検出していなくても、センサ値に応じた更新可否の判定が可能になる。
【０１０１】
一実施形態において、制御部２１は、シナリオの更新を要求された場合、図８に示した更新可否判定処理により、センサ値の経時変化を分析し、分析結果に応じて、現在のシナリオに基づく次回の処理の実行前にシナリオを更新するかどうかを決定する。変形例として、制御部２１は、センサ値の経時変化を分析する代わりに、センサ値の過去一定期間の合計又は平均を計算し、計算結果に応じて、現在のシナリオに基づく次回の処理の実行前にシナリオを更新するかどうかを決定してもよい。
【０１０２】
一実施形態において、制御部２１は、シナリオの更新の要求に含まれる設定に応じて、次に第２モードから第１モードに切り替えるときにシナリオを更新するかどうかを決定する。第２モードから第１モードに切り替わる際にシナリオが更新される処理は、再起動を必要としないため、第１モードの中でシナリオが更新される場合に比べて電力消費を抑えることができる。
【０１０３】
上述した実施形態では、通信装置２０及びセンサ３０が一体化されているが、通信装置２０とセンサ３０とが別体であってもよい。例えば、通信装置２０は、離れた場所に設置されたセンサ３０と通信を行ってセンサ値を取得してもよい。
【０１０４】
センサ３０には、温度センサ３１、湿度センサ３２、気圧センサ３３、照度センサ３４、加速度センサ３５、角速度センサ３６、及び地磁気センサ３７のうち１種類又は数種類のセンサのみが含まれていてもよい。センサ３０には、振動センサ又は赤外線センサなど、他の種類のセンサが含まれていてもよい。
【０１０５】
本開示は上述の実施形態に限定されるものではない。例えば、ブロック図に記載の複数のブロックを統合してもよいし、又は１つのブロックを分割してもよい。フローチャートに記載の複数のステップを記述に従って時系列に実行する代わりに、各ステップを実行する装置の処理能力に応じて、又は必要に応じて、並列的に又は異なる順序で実行してもよい。その他、本開示の趣旨を逸脱しない範囲での変更が可能である。
【符号の説明】
【０１０６】
１０  通信システム
１１  電子機器
１２  サーバ
１３  ネットワーク
２０  通信装置
２１  制御部
２２  記憶部
２３  通信部
２４  測位部
３０  センサ
３１  温度センサ
３２  湿度センサ
３３  気圧センサ
３４  照度センサ
３５  加速度センサ
３６  角速度センサ
３７  地磁気センサ
【図１】
2020140267.tif 000003
【図２】
2020140267.tif 000004
【図３】
2020140267.tif 000005
【図４】
2020140267.tif 000006
【図５】
2020140267.tif 000007
【図６】
2020140267.tif 000008
【図７】
2020140267.tif 000009
【図８】
2020140267.tif 000010