JP2020140267A - 通信装置、電子機器、通信システム、制御方法、及び制御プログラム - Google Patents
通信装置、電子機器、通信システム、制御方法、及び制御プログラム Download PDFInfo
- Publication number
- JP2020140267A JP2020140267A JP2019033381A JP2019033381A JP2020140267A JP 2020140267 A JP2020140267 A JP 2020140267A JP 2019033381 A JP2019033381 A JP 2019033381A JP 2019033381 A JP2019033381 A JP 2019033381A JP 2020140267 A JP2020140267 A JP 2020140267A
- Authority
- JP
- Japan
- Prior art keywords
- scenario
- sensor
- control unit
- update
- communication device
- 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
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
Abstract
【課題】更新のタイミングを、エラーが生じにくいタイミングに調整する。【解決手段】通信装置は、センサの動作に関するシナリオに基づいて処理を実行する制御部と、サーバと通信を行う通信部とを備える。制御部は、通信部を介してサーバからシナリオの更新要求を取得した場合に、センサから取得した少なくとも1つのセンサ値に応じてシナリオを更新する。【選択図】図1
Description
本開示は、通信装置、電子機器、通信システム、制御方法、及び制御プログラムに関する。
特許文献1には、設備の動作制御に関する制御スケジュール情報、設備の運用に関するカレンダ情報、設備の動作実績に関する履歴情報、およびソフトウェアの更新の所要時間を取得し、各情報を解析することで、設備の動作制御を行うコントローラが停止可能な時間帯の中からコントローラのソフトウェアを更新可能な更新可能時間帯を推測する技術が開示されている。
ソフトウェア更新のタイミングを、動作制御にエラーが生じないようなタイミングに調整する技術には改善の余地がある。
本開示の目的は、更新のタイミングを、エラーが生じにくいタイミングに調整することである。
本開示の一実施形態に係る通信装置は、センサの動作に関するシナリオに基づいて処理を実行する制御部と、サーバと通信を行う通信部とを備える。前記制御部は、前記通信部を介して前記サーバから前記シナリオの更新要求を取得した場合に、前記センサから取得した少なくとも1つのセンサ値に応じて前記シナリオを更新する。
本開示の一実施形態に係る通信装置の制御方法では、センサの動作に関するシナリオに基づいて処理を実行し、サーバから前記シナリオの更新要求を取得した場合、前記センサから取得した少なくとも1つのセンサ値に応じて前記シナリオを更新する。
本開示の一実施形態に係る制御プログラムは、コンピュータに、センサの動作に関するシナリオに基づいて処理を実行させ、サーバから前記シナリオの更新要求を取得した場合、前記センサから取得した少なくとも1つのセンサ値に応じて前記シナリオを更新させる。
本開示の一実施形態によれば、更新のタイミングを、エラーが生じにくいタイミングに調整することが可能になる。
以下、本開示の実施形態について、図を参照して説明する。
各図中、同一又は相当する部分には、同一符号を付している。また、同一又は相当する部分については、説明を適宜省略又は簡略化する。
図1を参照して、一実施形態の概要を説明する。
通信システム10は、電子機器11及びサーバ12を備える。通信システム10に含まれる電子機器11は、1つであってもよいし、複数であってもよい。
電子機器11及びサーバ12は、移動体通信網及びインターネットなどのネットワーク13を介して互いに通信可能である。ネットワーク13の通信で用いられる通信方式は、Wi−Fi(登録商標)、LTE(Long Term Evolution)、及びLPWA(Low Power Wide Area)などの種々の通信方式を含む。LPWA方式は、例えば、セルラLPWA、SIGFOX(登録商標)、又はLoRaWAN(登録商標)である。セルラLPWAは、3GPP(登録商標)(3rd Generation Partnership Project)規格において規定されたeMTC(enhanced Machine Type Communications)又はNB−IoT(Narrow Band-Internet of Things)であってもよい。
電子機器11は、一実施形態においてIoT機器であるが、スマートフォン、タブレット、又はPCなどの情報機器でもよい。「IoT」は、Internet of Thingsの略語である。「PC」は、Personal Computerの略語である。電子機器11は、通信装置20及びセンサ30を備える。
サーバ12は、一実施形態においてクラウドサーバであるが、企業の社内サーバなど、他の種類のサーバでもよい。
通信装置20は、シナリオを実行する。言い換えると、通信装置20は、シナリオに基づいて処理を実行する。シナリオは、例えば情報が記述されたファイルであってもよいが、通信装置20が実行可能なものであれば、形式はこれに限定されない。シナリオは、センサ30の動作に関する情報、または通信装置20の動作に関する情報を含む。具体的には、シナリオには、例えばセンサ30が実行する処理の内容を示す情報が記述される。センサ30が実行する処理の内容は、複数のセンサ30のうちどのセンサ30が値を検出するか、センサ30がどのような周期で値を検出するか、センサ30が検出した値をどのように処理するか、また、どのような条件を満たすとセンサ30が値の検出を開始するか、といった内容を含む。また、シナリオには、例えば通信装置20がセンサ30から取得した値を用いて行う任意の処理の内容を示す情報が記述される。任意の処理は、通信装置20がセンサ30から取得した値をサーバ12に送信する処理を含む。この処理の代わりに、又はこの処理に加えて、任意の処理には、例えば、通信装置20がセンサ30からの値に応じて設備の動作制御を行う処理が含まれてもよい。その他、一実施形態において、シナリオは、センサ30が実行する処理及び通信装置20がセンサ30から取得した値を用いて行う任意の処理以外の通信装置20の種々の動作または設定に関する情報を含んでもよい。また、一実施形態において、シナリオは、センサ30が実行する処理及び通信装置20がセンサ30から取得した値を用いて行う任意の処理以外の通信装置20の種々の動作または設定に関する情報のみを含んでもよい。
サーバ12は、通信装置20から送信された値を、ネットワーク13を介して受信する。
サーバ12は、受信した値を用いてサービスを提供する。提供されるサービスには、サーバ12が通信装置20から受信した値を用いて提供する任意のサービスが含まれる。そのような任意のサービスとしては、例えば、サーバ12が通信装置20から受信した値をウェブサイト上で公開するか、又はユーザに通知するサービスが含まれる。あるいは、任意のサービスには、サーバ12が通信装置20から受信した値を統計処理し、統計処理結果を蓄積するサービスが含まれる。
サーバ12は、通信装置20に対してシナリオの更新を要求する。通信装置20は、シナリオの更新を要求された場合、センサ30から取得した値であるセンサ値に応じてシナリオを更新する。
一実施形態において、シナリオを更新するかどうかがセンサ値に応じて決定されることで、電子機器11は、シナリオの更新のタイミングを柔軟に調整することが可能になる。その結果、電子機器11は、更新のタイミングを、エラーが生じにくいタイミングに調整することが可能になる。
一実施形態において、電子機器11は、ユーザの工場の設備に取り付けられたIoT機器である。また、一実施形態において、サーバ12は、ユーザの社内サーバ、又は社内サーバを代替するクラウドサーバなどの任意のサーバである。一実施形態において、ユーザは、ウェブサイト上で電子機器11の振舞をシナリオに記述する。電子機器11は、シナリオをダウンロードし、シナリオに記述された振舞の定義に従って動作する。電子機器11は、サーバ12に任意の仕様で接続できる。本開示の実施形態に係る電子機器11およびサーバ12によれば、例えば「社内サーバに接続できるようIoT機器を10台だけカスタマイズしてほしい」、又は「2週間後にIoT機器を社内サーバに接続して試験したい」などのユーザの要望に応えることができる。すなわち、ユーザ自身でIoT機器の振舞を制御できるため、ユーザの要求を満たすことができる。
図1をさらに参照して、一実施形態に係る通信システム10の電子機器11の構成を説明する。
電子機器11の通信装置20は、1つ以上のマイクロコンピュータ若しくはSoC、又は1つ以上のマイクロコンピュータ若しくはSoCを搭載した回路を含む。「SoC」は、System on a Chipの略語である。通信装置20は、制御部21、記憶部22、通信部23、及び測位部24を備える。
制御部21は、1つ以上のプロセッサを含む。プロセッサとしては、CPUなどの汎用プロセッサ、又は特定の処理に特化した専用プロセッサを使用できる。「CPU」は、Central Processing Unitの略語である。制御部21には、1つ以上の専用回路が含まれてもよいし、又は制御部21において、1つ以上のプロセッサを1つ以上の専用回路に置き換えてもよい。専用回路としては、例えば、FPGA又はASICを使用できる。「FPGA」は、Field-Programmable Gate Arrayの略語である。「ASIC」は、Application Specific Integrated Circuitの略語である。制御部21は、通信装置20を含む電子機器11の各部を制御しながら、通信装置20の動作に関わる情報処理を実行する。
記憶部22は、1つ以上のメモリを含む。メモリとしては、例えば、半導体メモリ、磁気メモリ、又は光メモリを使用できる。半導体メモリとしては、例えば、RAM又はROMを使用できる。「RAM」は、Random Access Memoryの略語である。「ROM」は、Read Only Memoryの略語である。RAMとしては、例えば、SRAM又はDRAMを使用できる。「SRAM」は、Static Random Access Memoryの略語である。「DRAM」は、Dynamic Random Access Memoryの略語である。ROMとしては、例えば、EEPROMを使用できる。「EEPROM」は、Electrically Erasable Programmable Read Only Memoryの略語である。メモリは、主記憶装置、補助記憶装置、又はキャッシュメモリとして機能する。記憶部22には、シナリオなど、通信装置20の動作に用いられる情報と、センサ値など、通信装置20の動作によって得られた情報とが記憶される。
通信部23は、1つ以上の通信インタフェースおよび通信回路を含む。通信インタフェースは、有線信号または無線信号の送受信に用いられる。通信インタフェースは、アンテナを含む。通信回路は、通信インタフェースにより受信された無線信号に対して増幅処理及びフィルタ処理等を行い、無線信号をベースバンド信号に変換して制御部21に出力する。また、通信回路は、制御部21から入力されたベースバンド信号を無線信号に変換し、増幅処理等を行って通信インタフェースから送信する。無線通信を行うアンテナとしては、例えば、上述した種々の通信方式に対応したアンテナ、4G又は5Gに対応したアンテナなどを使用できる。「4G」は、4th Generationの略語である。「5G」は、5th Generationの略語である。通信部23は、シナリオなど、通信装置20の動作に用いられる情報を受信し、またセンサ値など、通信装置20の動作によって得られる情報を送信する。通信部23は、サーバ12と通信を行う。
測位部24は、1つ以上のアンテナおよび測位回路を含む。測位部24は、例えば、GNSSに対応する。「GNSS」は、Global Navigation Satellite Systemの略語である。GNSSには、例えば、GPS、QZSS、GLONASS、及びGalileoの少なくともいずれかが含まれる。「GPS」は、Global Positioning Systemの略語である。「QZSS」は、Quasi-Zenith Satellite Systemの略語である。QZSSの衛星は、準天頂衛星と呼ばれる。「GLONASS」は、Global Navigation Satellite Systemの略語である。測位部24は、通信装置20を含む電子機器11の位置情報を取得する。測位部24は、制御部21の指示に応じて値を検出する。すなわち、測位部24は値を検出している状態と値を検出していない状態を有する。
通信装置20の機能は、一実施形態に係る制御プログラムを、制御部21に含まれるプロセッサで実行することにより実現される。すなわち、通信装置20の機能は、ソフトウェアにより実現される。制御プログラムは、通信装置20の動作に含まれるステップの処理をコンピュータに実行させることで、当該ステップの処理に対応する機能をコンピュータに実現させるためのプログラムである。すなわち、制御プログラムは、コンピュータを通信装置20として機能させるためのプログラムである。
プログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、又は半導体メモリを使用できる。プログラムの流通は、例えば、プログラムを記録したDVD又はCD−ROMなどの可搬型記録媒体を販売、譲渡、又は貸与することによって行う。「DVD」は、Digital Versatile Discの略語である。「CD−ROM」は、Compact Disc Read Only Memoryの略語である。プログラムをサーバのストレージに格納しておき、ネットワークを介して、サーバから他のコンピュータにプログラムを転送することにより、プログラムを流通させてもよい。プログラムをプログラムプロダクトとして提供してもよい。
コンピュータは、例えば、可搬型記録媒体に記録されたプログラム又はサーバから転送されたプログラムを、一旦、メモリに格納する。そして、コンピュータは、メモリに格納されたプログラムをプロセッサで読み取り、読み取ったプログラムに従った処理をプロセッサで実行する。コンピュータは、可搬型記録媒体から直接プログラムを読み取り、プログラムに従った処理を実行してもよい。コンピュータは、コンピュータにサーバからプログラムが転送される度に、逐次、受け取ったプログラムに従った処理を実行してもよい。サーバからコンピュータへのプログラムの転送は行わず、実行指示及び結果取得のみによって機能を実現する、いわゆるASP型のサービスによって処理を実行してもよい。「ASP」は、Application Service Providerの略語である。プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるものが含まれる。例えば、コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータは、「プログラムに準ずるもの」に該当する。
通信装置20の一部又は全ての機能が、制御部21に含まれる専用回路により実現されてもよい。すなわち、通信装置20の一部又は全ての機能が、ハードウェアにより実現されてもよい。
電子機器11のセンサ30には、温度センサ31、湿度センサ32、気圧センサ33、照度センサ34、加速度センサ35、角速度センサ36、及び地磁気センサ37が含まれる。電子機器11のセンサ30には、電子機器11の物理的な状態または電子機器11の周囲の物理的な状態を検出するその他の種々のセンサが含まれてもよい。センサ30は、制御部21の指示に応じて値を検出する。すなわち、センサ30は値を検出している状態と値を検出していない状態を有する。
通信装置20がシナリオで行う処理のためにセンサ30から取得する値は、一実施形態において、温度センサ31、湿度センサ32、気圧センサ33、照度センサ34、加速度センサ35、角速度センサ36、及び地磁気センサ37でそれぞれ得られる温度、湿度、気圧、照度、加速度、角速度、及び地磁気の測定値を少なくとも含む。
図2及び図3を参照して、一実施形態に係る通信システム10の動作の例を説明する。通信システム10の動作は、一実施形態に係る通信方法に相当する。
電子機器11は、シナリオに基づいて処理を実行する。一実施形態において、シナリオに基づいて実行される処理は、周期的な動作条件に基づいて実行される処理を含む。すなわち、本実施形態では、シナリオに基づいて実行される処理の少なくとも一部は周期的に実行される。電子機器11は、複数のシナリオを同時に実行してもよい。
電子機器11がシナリオに基づいて実行する処理には、所定の動作条件に応じて実行される割込処理が含まれてもよい。割込処理は、周期的な動作条件とは異なる動作条件に基づいて実行されてもよい。周期的な動作条件とは異なる動作条件とは、センサ30のうちの少なくとも一部が取得した値が条件を満たすことであってもよい。センサ30のうちの少なくとも一部とは、例えば加速度センサ35、または照度センサ34などであってもよいがこれらに限られない。周期的な動作条件とは異なる動作条件の判定に用いられるセンサ30は、常時値を検出し続けてもよい。割込処理は、周期的に実行される処理と同様に、通信装置20がセンサ30から取得した値を用いて行う処理である。割込処理で使用されるセンサ30の種類は、周期的に実行される処理で使用されるセンサ30の種類と一部または全部が同一でもよいし、異なってもよい。割込処理で使用されるセンサ30の数は、周期的に実行される処理で使用されるセンサ30の数と同一であってもよいし、異なってもよい。割込処理で使用されるセンサ30の数は、周期的に実行される処理で使用されるセンサ30の数よりも少なくてもよい。
電子機器が実行するシナリオの一例として、高齢者が観察され、かつ高齢者が転倒したと推定される場合には、観察周期にかかわらず情報が取得される場合がある。周期的に実行される処理では、加速度、角速度、位置情報が取得され、時刻とともにサーバ12へ送信される。割込処理では、周期的に実行される処理においても、加速度、角速度、及び位置情報が取得され、時刻とともにサーバ12へ送信される。周期的な処理の動作条件は、例えば1時間ごとである。割込処理の動作条件は、例えば加速度センサ35により取得された値が閾値以上になることである。電子機器が実行するシナリオの他の例として、輸送中の荷物が周期的に観察され、かつ荷物が落下したと推定される場合には、観察周期にかかわらず情報が取得される場合がある。周期的に実行される処理では、温度、湿度、位置情報が取得され、時刻とともにサーバ12へ送信される。割込処理では、加速度、角速度、及び位置情報が取得され、時刻とともにサーバ12へ送信される。周期的な処理の動作条件は、例えば1時間ごとである。割込処理の動作条件は、例えば加速度センサ35により取得された値が閾値以上になることである。
電子機器11は、第1モードと第2モードとを切り替えながら動作する。第2モードは、第1モードよりも消費電流が小さいモードである。第2モードでは、電子機器11の通信装置20及びセンサ30のうち、割込処理の実行に必要な機能のみが動作する。一実施形態において、第2モードでは、RTC(Real Time Clock)以外のパワーオフ処理がなされていてもよい。すなわち、第2モードでは、RTC以外に電力が供給されなくてもよい。また、一実施形態において、第2モードでは、センサ30に含まれる加速度センサ以外のパワーオフ処理がなされていてもよい。一実施形態において、第1モード及び第2モードは、基地局との接続の態様で区別される。第1モードは、接続状態、間欠受信状態、及びスリープ状態を含んでもよい。なお、所定の条件に基づいて間欠受信状態とスリープ状態とが繰り返される状態は、eDRX(extended Discontinuous Reception)と呼ばれることがある。第2モードは、通常状態、間欠受信状態、及びスリープ状態のいずれにも属さない状態であってもよい。通常状態、間欠受信状態、及びスリープ状態のいずれにも属さない状態は、PSM(Power Saving Mode)と呼ばれることがある。
シナリオのうち周期的に実行される処理は、第1モードで実行され、第2モードでは実行されない。シナリオのうち割込処理は、一実施形態において、第1モード及び第2モードの両方で実行が開始されるが、第1モードでは実行が開始されなくてもよい。第1モードから第2モードへの切替、及び第2モードから第1モードへの切替のタイミングは、電子機器11が周期的に実行される処理の実行周期に第1モードで動作するように設定される。周期的に実行されるシナリオは、電子機器11が第2モードから第1モードに切り替わった後、第2モードに再び切り替わるまでの期間内に1回しか実行されなくてもよいし、又は2回以上実行されてもよい。
図2の例では、周期的に実行される処理及び割込処理を含むシナリオが実行される場合において、サーバ12は、新シナリオ及びシナリオ更新要求を電子機器11に送信する。シナリオ更新要求には、要求されるシナリオ更新開始時刻、シナリオの更新処理の開始から終了までに要する時間を示すシナリオ更新所要時間、第1更新優先度、及び第2更新優先度の設定が含まれる。
電子機器11は、シナリオ更新要求を受信すると、シナリオ更新要求に含まれる第1更新優先度を参照する。電子機器11は、周期的に実行される処理の実行がシナリオの更新よりも優先される場合は、シナリオに基づく処理の実行周期と重ならないタイミングでシナリオを更新する。すなわち、電子機器11は、センサ30による測定周期と重ならないタイミングで要求された振舞を有効化する。
具体的には、電子機器11は、シナリオ稼動開始時刻に関する情報を取得または特定する。シナリオ稼動開始時刻に関する情報は、記憶部22に記憶された過去のシナリオ稼動時刻を含む。なお、一実施形態において、周期的に実行されるシナリオの動作条件そのものが時刻情報であり得る。この場合、シナリオ稼動開始時刻に関する情報は、シナリオの動作条件が示す時刻情報であってもよい。また、電子機器11は、周期的に実行されるシナリオの動作条件、シナリオに記述された内容、及びシナリオを実行するセンサ30の種別などに基づき、周期的に実行される処理の1回の実行にかかる時間であるシナリオ稼動時間を計算する。シナリオ稼動時間を示す情報は、シナリオ更新要求に含まれてもよい。すなわち、電子機器11は、サーバ12からシナリオ稼動時間を示す情報を取得してもよい。電子機器11は、シナリオ稼動開始時刻に関する情報及びシナリオ稼動時間に基づき、次にシナリオが実行される時刻であるシナリオ稼動時刻を計算する。シナリオ稼動時刻は、シナリオ稼動開始時刻とシナリオ稼動終了時刻を含む。電子機器11は、シナリオ稼動時刻に基づいて、シナリオ更新要求に含まれるシナリオ更新開始時刻にシナリオが実行される予定かを少なくとも判定する。電子機器11は、シナリオ更新開始時刻にシナリオが実行されると判定した場合、シナリオ更新開始時刻を、後の時間帯にずらす。電子機器11は、シナリオ稼動時刻に基づいて、シナリオ更新開始時刻にシナリオが実行されず、かつそのシナリオ更新開始時刻から、シナリオ更新要求に含まれるシナリオ更新所要時間が経過するまでシナリオが実行されない予定かを判定してもよい。電子機器11は、シナリオ更新開始時刻からシナリオ更新所要時間が経過するまでの間にシナリオが実行されると判定した場合、シナリオ更新開始時刻を、シナリオ更新開始時刻からシナリオ更新所要時間が経過するまでの間にシナリオが実行されない時間帯にずらす。
例えば、電子機器11は、シナリオを更新する処理に5分かかると推定される場合、シナリオが実行されない5分間でシナリオを更新する。
一実施形態において、電子機器11は、シナリオ更新要求を受信すると、シナリオ更新要求に含まれる第2更新優先度も参照する。電子機器11は、割込処理の実行がシナリオの更新よりも優先される場合は、割込処理の実行タイミングと重ならないタイミングでシナリオを更新する。
周期的に実行される処理の実行周期と異なり、割込処理の実行タイミングは事前に推測できない。そのため、電子機器11は、シナリオ更新要求に含まれるシナリオ更新開始時刻になったときに、割込処理が実行されているかを判定する。電子機器11は、割込処理が実行されていれば、割込処理の実行にかかる時間である割込処理稼動時間に基づき、シナリオ更新開始時刻を割込処理の実行が終了する時刻よりも後の時間帯にずらす。なお、電子機器11は、シナリオ内の割込処理に関して記述された内容、及び割込処理を実行するセンサ30の種別などに基づき、割込処理の実行にかかる時間である割込処理稼動時間を計算できる。割込処理稼動時間とは、割込処理の動作条件が一回満たされることに応答して実行される割込処理の実行時間であってよい。また、詳細は後述するが、電子機器11は、割込処理の実行がシナリオの更新よりも優先される場合かつ割込処理が実行されている場合であっても、センサ30から取得したセンサ値に応じて、シナリオを更新するかどうかを決定してもよい。
図3の例では、第1モード及び第2モードの双方が実行される場合において、サーバ12は、新シナリオを電子機器11に送信する。
電子機器11は、通信装置20の記憶部22に含まれるRAMに展開済みの現シナリオを実行している間に、サーバ12から新シナリオをダウンロードする。電子機器11は、まず、ダウンロードした新シナリオを、通信装置20の記憶部22に含まれるROMに展開する。電子機器11は、現シナリオの実行が終わって第2モードに入った後、第1モードへの切替時に新シナリオをRAMに展開する。
なお、図2の例では、シナリオが更新される際、電子機器11は一旦再起動される場合がある。すなわち、第1モードを実行している間に、第2モードに切り替わることなくシナリオが更新される際、電子機器11は一旦再起動される場合がある。再起動は、電子機器11が新シナリオを通信装置20の記憶部22に含まれるRAMに展開するために必要な処理であり得る。一方、図3の例では、一実施形態において、シナリオが更新される際に、電子機器11が再起動される必要はない。一実施形態において、第2モードは、電源OFFの状態ではないものの、新シナリオを通信装置20の記憶部22に含まれるRAMに展開可能な状態であってもよい。このような場合、第2モードに切り替わった後にシナリオが更新される際に、電子機器11が再起動されることはなく、第1モードへの切替時にシナリオが更新される。つまり、図3の例では、再起動が不要であるため、他のいくつかの実施形態に比べ、消費電力が低減されうる。
なお、サーバ12は、新シナリオを電子機器11に送信する際、シナリオ更新要求を送信しないか、又は少なくともシナリオ更新開始時刻が設定されないシナリオ更新要求を電子機器11に送信してもよい。このとき、電子機器11は、シナリオ更新要求に含まれる設定とは関係なく、任意の時刻にシナリオを更新することができる。
図4、図5、図6、及び図7を参照して、一実施形態に係る通信装置20の動作を説明する。図4、図5、図6、及び図7は、一実施形態に係る電子機器11の動作を示すフローチャートである。通信装置20の動作は、一実施形態に係る制御方法に相当する。
以下、図4について詳細に説明する。
ステップS100において、制御部21は、新シナリオ及びシナリオ更新要求を、通信部23を介してサーバ12から受信する。
ステップS200において、制御部21は、ステップS100で受信したシナリオ更新要求に含まれるシナリオ更新開始時刻、シナリオ更新所要時間、第1更新優先度、及び第2更新優先度の設定を確認する。
ステップS300において、制御部21は、シナリオ更新処理を実行する。
図5から図7は、図4のステップS300のシナリオ更新処理の詳細な手順を示している。以下、図5について詳細に説明する。
ステップS301において、制御部21は、シナリオ更新要求に含まれる第1更新優先度の内容、または第1更新優先度の設定の有無に基づき、周期的な処理の実行がシナリオの更新よりも優先されるかどうかを判定する。ステップS301において、制御部21が、周期的な処理の実行がシナリオの更新よりも優先されると判定した場合(ステップS301でYES)、処理はステップS302に進む。一方、ステップS301において、制御部21が、周期的な処理の実行がシナリオの更新よりも優先されないと判定した場合(ステップS301でNO)、処理はステップS305に進む。
ステップS302において、制御部21は、シナリオ更新開始時刻の設定の有無に基づき、シナリオの更新タイミングが第2モードから第1モードへの切替時で問題ないかどうかを判定する。ステップS302において、シナリオ更新開始時刻が設定されていなければ、制御部21は、第2モードから第1モードへの切替時にシナリオを更新すればよいと判定し(ステップS302でYES)、処理はステップS303に進む。一方、シナリオ更新開始時刻が設定されていれば、制御部21は、第2モードから第1モードへの切替時にシナリオを更新すべきでないと判定し(ステップS302でNO)、処理はステップS306に進む。
ステップS303において、制御部21は、記憶部22に含まれるRAMに展開済みの現シナリオの実行を終了し、設定されたタイミングで動作モードを第1モードから第2モードに切り替える。
ステップS305において、制御部21は、新シナリオを記憶部22に含まれるRAMに展開することで、シナリオを更新する。
ステップS306において、制御部21は、シナリオ稼動開始時刻に関する情報及びシナリオ稼動時間に基づき、次にシナリオが実行される時刻であるシナリオ稼動時刻を計算する。
ステップS307において、制御部21は、シナリオ稼動時刻に基づいて、シナリオ更新開始時刻から、シナリオ更新要求に含まれるシナリオ更新所要時間が経過するまでシナリオに基づく周期的な処理が実行されない予定かを判定する。すなわち、ステップS307において、制御部21は、シナリオ更新要求で設定されたシナリオの更新のタイミングが、現在のシナリオに基づく処理の実行周期と重複するかどうかを判定する。ステップS307において、制御部21が、シナリオ更新要求で設定されたシナリオの更新のタイミングが、現在のシナリオに基づく処理の実行周期と重複すると判定した場合(ステップS307でYES)、処理はステップS308に進む。一方、ステップS307において、制御部21が、シナリオ更新要求で設定されたシナリオの更新のタイミングが、現在のシナリオに基づく処理の実行周期と重複しないと判定した場合(ステップS307でNO)、処理はステップS311に進む。
ステップS308において、制御部21は、シナリオ更新開始時刻を、現在のシナリオに基づく処理の実行周期と重複しない時刻に変更する。
以下、図6について詳細に説明する。
ステップS308の処理が実行された後、ステップS311において、制御部21は、現在時刻がシナリオ更新開始時刻に達したかどうかを判定する。ステップS311において、制御部21が、現在時刻がシナリオ更新開始時刻に達したと判定した場合(ステップS311でYES)、処理はステップS312に進む。一方、ステップS311において、制御部21が、現在時刻がシナリオ更新開始時刻に達していないと判定した場合(ステップS311でNO)、制御部21は、ステップS311の処理を繰り返す。
ステップS312において、制御部21は、ネットワーク13の状況を確認する。具体的には、制御部21は、通信部23がネットワーク13に含まれる移動体通信網の通信圏内であるかどうかを判定する。ステップS312において、制御部21が、通信部23が通信圏外であると判定した場合(ステップS312でNO)、処理はステップS313に進む。一方、制御部21が、通信部23が通信圏内であると判定した場合(ステップS312でYES)、処理はステップS315に進む。
ステップS313において、制御部21は、シナリオの実行中にセンサ30により得られた測定値または測位部24により得られた位置情報の送信に失敗したときに測定値または位置情報を記憶部22に含まれるメモリに保存するかどうかという測定値保存設定が有効かどうかを判定する。ステップS313において、制御部21が、測定値保存設定が無効であると判定した場合(ステップS313でNO)、処理はステップS305に進む。一方、ステップS313において、制御部21が、測定値保存設定が有効であると判定した場合(ステップS313でYES)、処理はステップS314に進む。なお、ステップS312以降で判定される事項は、測定値保存設定が有効かどうかに限られない。例えば、制御部21は、新たなシナリオの内容から、新たなシナリオに基づいて実行される処理に割込処理が含まれているかどうかを判定してもよい。このとき、新たなシナリオに基づいて実行される処理に割込処理が含まれていない場合、制御部21は、現在のシナリオに割込処理が含まれるか否かにかかわらず、処理をステップS305に進めてもよい。
ステップS314において、制御部21は、メモリに保存されている測定値又は位置情報があるかどうか判定する。ステップS314において、制御部21が、メモリに保存されている測定値又は位置情報がないと判定した場合(ステップS314でNO)、処理は図5のステップS305に進む。一方、ステップS314において、制御部21が、メモリに保存されている測定値又は位置情報があると判定した場合(ステップS314でYES)、処理はステップS312に戻る。
ステップS315において、制御部21は、シナリオ更新要求に含まれる第2更新優先度の内容、または第2更新優先度の設定の有無に基づき、割込処理の実行がシナリオの更新よりも優先されるかどうかを判定する。ステップS315において、制御部21が、割込処理の実行がシナリオの更新よりも優先されると判定した場合(ステップS315でYES)、処理はステップS316に進む。一方、ステップS315において、制御部21が、割込処理の実行がシナリオの更新よりも優先されないと判定した場合、(ステップS315でNO)、処理はステップS317に進む。
ステップS316において、制御部21は、割込処理が実行されているかどうかを判定する。ステップS316において、制御部21が、割込処理が実行されていると判定した場合(ステップS316でYES)、処理はステップ321に進む。一方、ステップS316において、制御部21が、割込処理が実行されていないと判定した場合(ステップS316でNO)、処理はステップS317に進む。
ステップS317において、制御部21は、記憶部22に含まれるRAMに展開済みの現シナリオの実行を停止する。
以下、図7について詳細に説明する。
ステップS321において、制御部21は、センサ30または測位部24が値を検出しているかどうか判定する。ステップS321において、制御部21が、センサ30または測位部24が値を検出していると判定した場合(ステップS321でYES)、処理はステップS322に進む。一方、ステップS321において、制御部21が、センサ30または測位部24が値を検出していないと判定した場合(ステップS321でNO)、処理はステップS325に進む。
ステップS322において、制御部21は、センサ30の新たな測定値、または測位部24の新たな位置情報を一定時間P1内に複数回取得する。
ステップS323において、制御部21は、ステップS322で取得した測定値または位置情報を用いて、更新可否判定処理を実行する。ステップS323において、制御部21が、更新可と判定した場合(ステップS323でYES)、処理はステップS325に進む。一方、ステップS323において、制御部21が、更新不可と判定した場合(ステップS323でNO)、処理はステップS324に進む。なお、更新可否判定処理の詳細は後述する。
ステップS324において、制御部21は、割込処理の実行にかかる時間である割込処理稼動時間に基づき、シナリオ更新開始時刻を、割込処理の実行が完了した後の時刻に変更する。
ステップS325において、制御部21は、センサ30により得られた測定値または測位部24により得られた位置情報の送信に失敗したときに測定値または位置情報をそれぞれ記憶部22に含まれるメモリに保存するかどうかという測定値保存設定が有効かどうかを判定する。ステップS325において、制御部21が、測定値保存設定が有効であると判定した場合(ステップS325でYES)、処理はステップS326に進む。一方、ステップS325において、制御部21が、測定値保存設定が無効であると判定した場合(ステップS325でNO)、処理は図6のステップS317に進む。
ステップS326において、制御部21は、メモリに保存されている測定値又は位置情報があるかどうか判定する。ステップS326において、制御部21が、メモリに保存されている測定値又は位置情報がないと判定した場合(ステップS326でNO)、処理は図6のステップS317に進む。一方、ステップS326において、制御部21が、メモリに保存されている測定値又は位置情報があると判定した場合(ステップS326でYES)、ステップS327に進む。
ステップS327において、制御部21は、メモリに保存されている複数回分の測定値又は位置情報を取得する。複数回分の測定値は、一定時間P2以内に取得されたものに限られてもよい。時間P2は、時間P1よりも長くてもよい。例えば、時間P1は10秒程度、時間P2は5分程度である。
ステップS328において、制御部21は、ステップS327で取得した測定値または位置情報を用いて、更新可否判定処理を実行する。ステップS328において、制御部21が、更新可と判定した場合(ステップS328でYES)、処理は図6のステップS317に進む。一方、ステップS328において、制御部21が、更新不可と判定した場合(ステップS328でNO)、処理はステップS324に進む。なお、更新可否判定処理の詳細は後述する。
図8は、ステップS323及びステップS328の更新可否判定処理の一例を示している。
制御部21は、ステップS341からステップS344の処理と、ステップS351からステップS354の処理と、ステップS361からステップS364の処理とを順番に実行してもよいし、並列に実行してもよい。
ステップS341において、制御部21は、照度センサ34により得られた測定値に基づく照度判定処理を実行する。照度判定処理は、例えば、電子機器11が室内に設置される場合に実行される。
ステップS342において、制御部21は、取得した複数回分の照度の測定値の全て、一部、または平均値が閾値よりも低いかどうかに基づいて、電子機器11の周囲が一定時間暗いかどうかを判定する。ステップS342において、制御部21が、電子機器11の周囲が一定時間暗いと判定した場合(ステップS342でYES)、処理はステップS343に進む。一方、制御部21が、電子機器11の周囲が一定時間暗いと判定しなかった場合(ステップS342でNO)、処理はステップS344に進む。
ステップS343において、制御部21は、シナリオの更新が可能であると判定する。
ステップS344において、制御部21は、シナリオの更新が不可能であると判定する。
ステップS351において、制御部21は、加速度センサ35により得られた測定値に基づく加速度判定処理を実行する。加速度判定処理は、例えば、電子機器11が人若しくは動物により保持される場合、または車両などの移動体に設置される場合に実行される。
ステップS352において、制御部21は、取得した加速度に基づいて、電子機器11の移動状態を判定する。制御部21は、取得した複数回分の加速度のパターンまたは周期性などに基づいて、電子機器11の移動状態を判定することができる。ステップS352において、制御部21が、電子機器11を保持している人又は動物が歩行していると判定しなかった場合(ステップS352でNO)、処理はステップS353に進む。一方、ステップS352において、制御部21が、電子機器11を保持している人又は動物が歩行していると判定した場合(ステップS352でYES)、処理はステップS354に進む。なお、判定される移動状態は、歩行に限られず、走行、自転車での移動、電車での移動、車両での移動などであってもよい。
ステップS353において、制御部21は、シナリオの更新が可能であると判定する。
ステップS354において、制御部21は、シナリオの更新が不可能であると判定する。
ステップS361において、制御部21は、測位部24により得られた位置情報に基づくGNSS判定処理を実行する。GNSS判定処理は、特に、電子機器11が人若しくは動物により保持される場合、又は車両などの移動体に設置される場合に実行される。
ステップS362において、制御部21は、取得した複数回分の位置情報が一定方向に変化しているかどうかに基づいて、電子機器11が移動しているかどうかを判定する。ステップS362において、制御部21が、電子機器11が移動していると判定しなかった場合(ステップS362でNO)、処理はステップS363に進む。一方、ステップS362において、制御部21が、電子機器11が移動していると判定した場合(ステップS362でYES)、処理はステップS364に進む。なお、制御部21は、位置情報が一定時間内に所定量変化したかに基づいて電子機器11が移動しているかどうかを判定してもよい。
ステップS363において、制御部21は、シナリオの更新が可能であると判定する。
ステップS364において、制御部21は、シナリオの更新が不可能であると判定する。
上述のように、一実施形態において、センサ30から値を取得して処理を行うシナリオを実行する制御部21は、シナリオの更新を要求された場合、センサ30から取得した値であるセンサ値に応じて、シナリオを更新するかどうかを決定する。したがって、本実施形態によれば、シナリオの更新のタイミングを柔軟に調整することが可能になる。その結果、更新のタイミングを、エラーが生じにくいタイミングに調整することが可能になる。
一実施形態において、制御部21は、シナリオを周期的に実行する。制御部21は、シナリオの更新をシナリオに基づく処理の実行よりも低い優先度で要求された場合、シナリオの更新の所要時間とシナリオに基づく処理の実行周期とに応じて、シナリオの更新の開始時刻を、シナリオの更新とシナリオに基づく処理の実行とが重ならない時刻に調整する。したがって、本実施形態によれば、シナリオの更新に起因して重要なデータが喪失するといった事態が生じにくくなる。
なお、上述の実施形態では、制御部21は、シナリオの更新の開始時刻を、周期的に実行されるシナリオに基づく処理の実行とシナリオの更新とが重ならない時刻に調整した上で、シナリオの一部である割込処理の実行中にセンサ30から取得した値であるセンサ値に応じて、シナリオを更新するかどうかを決定する。しかしながら、センサ値に応じてシナリオを更新するかどうかを決定する処理は、シナリオの実行とは無関係に実行されてもよい。例えば、制御部21は、周期的に実行されるシナリオを実行中であっても、センサ30が検出しているセンサ値に応じてシナリオを更新するかどうかを決定してもよい。
一実施形態において、制御部21は、シナリオの更新を要求された場合、センサ30が値を検出していれば、現在のシナリオに基づく次回の処理の実行前にセンサ30から新たな値をセンサ値として取得する。具体的には、制御部21は、現在のシナリオに基づく次回の処理の実行前にセンサ30から新たな値を複数回取得する。そして、制御部21は、更新可否判定処理において、取得した複数回分の新たな値をセンサ値として利用する。
一実施形態において、制御部21は、シナリオの更新を要求された場合、センサ30が値を検出していなくても、現在のシナリオに基づく前回以前の処理の実行時にセンサ30から取得した値がメモリに保存されていれば、メモリに保存されている値をセンサ値として利用する。具体的には、制御部21は、更新可否判定処理において、現在のシナリオに基づく前回以前の処理の実行時にセンサ30から取得した複数回分の値をセンサ値として利用する。したがって、本実施形態によれば、センサ30が値を検出していなくても、センサ値に応じた更新可否の判定が可能になる。
一実施形態において、制御部21は、シナリオの更新を要求された場合、図8に示した更新可否判定処理により、センサ値の経時変化を分析し、分析結果に応じて、現在のシナリオに基づく次回の処理の実行前にシナリオを更新するかどうかを決定する。変形例として、制御部21は、センサ値の経時変化を分析する代わりに、センサ値の過去一定期間の合計又は平均を計算し、計算結果に応じて、現在のシナリオに基づく次回の処理の実行前にシナリオを更新するかどうかを決定してもよい。
一実施形態において、制御部21は、シナリオの更新の要求に含まれる設定に応じて、次に第2モードから第1モードに切り替えるときにシナリオを更新するかどうかを決定する。第2モードから第1モードに切り替わる際にシナリオが更新される処理は、再起動を必要としないため、第1モードの中でシナリオが更新される場合に比べて電力消費を抑えることができる。
上述した実施形態では、通信装置20及びセンサ30が一体化されているが、通信装置20とセンサ30とが別体であってもよい。例えば、通信装置20は、離れた場所に設置されたセンサ30と通信を行ってセンサ値を取得してもよい。
センサ30には、温度センサ31、湿度センサ32、気圧センサ33、照度センサ34、加速度センサ35、角速度センサ36、及び地磁気センサ37のうち1種類又は数種類のセンサのみが含まれていてもよい。センサ30には、振動センサ又は赤外線センサなど、他の種類のセンサが含まれていてもよい。
本開示は上述の実施形態に限定されるものではない。例えば、ブロック図に記載の複数のブロックを統合してもよいし、又は1つのブロックを分割してもよい。フローチャートに記載の複数のステップを記述に従って時系列に実行する代わりに、各ステップを実行する装置の処理能力に応じて、又は必要に応じて、並列的に又は異なる順序で実行してもよい。その他、本開示の趣旨を逸脱しない範囲での変更が可能である。
10 通信システム
11 電子機器
12 サーバ
13 ネットワーク
20 通信装置
21 制御部
22 記憶部
23 通信部
24 測位部
30 センサ
31 温度センサ
32 湿度センサ
33 気圧センサ
34 照度センサ
35 加速度センサ
36 角速度センサ
37 地磁気センサ
11 電子機器
12 サーバ
13 ネットワーク
20 通信装置
21 制御部
22 記憶部
23 通信部
24 測位部
30 センサ
31 温度センサ
32 湿度センサ
33 気圧センサ
34 照度センサ
35 加速度センサ
36 角速度センサ
37 地磁気センサ
Claims (15)
- センサの動作に関するシナリオに基づいて処理を実行する制御部と、サーバと通信を行う通信部とを備える通信装置であって、
前記制御部は、前記通信部を介して前記サーバから前記シナリオの更新要求を取得した場合に、前記センサから取得した少なくとも1つのセンサ値に応じて前記シナリオを更新する通信装置。 - 前記制御部は、前記更新要求を取得した際に、前記センサが値を検出している場合、前記センサから新たな値を前記センサ値として取得する請求項1に記載の通信装置。
- メモリをさらに備え、
前記制御部は、前記更新要求を取得した際に、前記センサが値を検出していなかった場合、前記メモリに保存された、前記シナリオに基づいた前回以前の処理の実行時に前記センサから取得した値の少なくとも1つを前記センサ値として利用する請求項1又は請求項2に記載の通信装置。 - 前記シナリオに基づいて実行される処理には、前記センサから取得した値を、前記通信部を介して前記サーバに送信する処理が含まれ、
前記制御部は、ある条件下において前記更新要求を取得した場合に、前記センサ値に応じて前記シナリオを更新し、
前記条件には、前記通信部が前記サーバと通信できない場合に前記制御部が前記センサから取得した値を前記メモリに保存するという項目が、満たされるべき項目として含まれる請求項3に記載の通信装置。 - 前記シナリオに基づいて実行される処理には、前記センサから取得した値を、前記通信部を介して前記サーバに送信する処理が含まれ、
前記制御部は、ある条件下において前記更新要求を取得した場合に、前記センサ値に応じて前記シナリオを更新し、
前記条件には、前記通信部が前記サーバと通信できるという項目が、満たされるべき項目として含まれる請求項1から請求項3のいずれか1項に記載の通信装置。 - 前記制御部は、前記更新要求を取得した場合、前記センサ値の経時変化を分析し、分析結果に応じて前記シナリオを更新する請求項1から請求項5のいずれか1項に記載の通信装置。
- 前記シナリオに基づいて実行される処理には周期的に実行される処理が含まれ、
前記制御部は、
前記シナリオの更新を前記周期的に実行される処理よりも低い優先度で要求された場合、前記シナリオの更新所要時間と前記周期的に実行される処理の実行周期とに応じて、前記シナリオの更新の開始時刻を、前記シナリオの更新と前記周期的に実行される処理の実行とが重ならない時刻に調整する請求項1から請求項6のいずれか1項に記載の通信装置。 - 前記制御部は、前記通信部を介して前記サーバから前記更新所要時間を取得する請求項7に記載の通信装置。
- 前記制御部は、前記更新要求の内容に基づいて前記更新所要時間を算出する請求項7に記載の通信装置。
- 前記シナリオに基づいて実行される処理には、所定の動作条件に基づいて実行される割込処理が含まれ、
前記制御部は、ある条件下において前記更新要求を取得した場合に、前記センサ値に応じて前記シナリオを更新し、
前記条件には、前記割込処理の実行が前記シナリオの更新よりも優先されるという項目が、満たされるべき項目として含まれる請求項1から請求項3のいずれか1項に記載の通信装置。 - 前記制御部は、
前記シナリオに基づいて処理を実行することが可能な第1モードと、前記第1モードよりも省電力で動作し、前記シナリオに基づいて処理を実行することが不可能な第2モードとを切り替えながら動作し、
前記更新要求の内容に基づいて、次に前記第2モードから前記第1モードに切り替えるときに前記シナリオを更新するかどうかを決定する請求項1から請求項10のいずれか1項に記載の通信装置。 - 請求項1から請求項11のいずれか1項に記載の通信装置と、
前記センサと
を備える電子機器。 - 請求項1から請求項11のいずれか1項に記載の通信装置と、
前記通信装置に対して前記シナリオの更新を要求するサーバと
を備える通信システム。 - センサの動作に関するシナリオに基づいて処理を実行する通信装置の制御方法であって、
サーバから前記シナリオの更新要求を取得した場合、前記センサから取得した少なくとも1つのセンサ値に応じて前記シナリオを更新する制御方法。 - コンピュータに、
センサの動作に関するシナリオに基づいて処理を実行させ、
サーバから前記シナリオの更新要求を取得した場合、前記センサから取得した少なくとも1つのセンサ値に応じて前記シナリオを更新させる
制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019033381A JP2020140267A (ja) | 2019-02-26 | 2019-02-26 | 通信装置、電子機器、通信システム、制御方法、及び制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019033381A JP2020140267A (ja) | 2019-02-26 | 2019-02-26 | 通信装置、電子機器、通信システム、制御方法、及び制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020140267A true JP2020140267A (ja) | 2020-09-03 |
Family
ID=72265109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019033381A Pending JP2020140267A (ja) | 2019-02-26 | 2019-02-26 | 通信装置、電子機器、通信システム、制御方法、及び制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020140267A (ja) |
-
2019
- 2019-02-26 JP JP2019033381A patent/JP2020140267A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3017321B1 (en) | Methods and apparatuses for use in providing location parameters to mobile applications | |
US9191897B2 (en) | Mobile device power management while providing location services | |
US9749794B2 (en) | Scalability and reliability of hardware geo-fencing with failover support | |
EP2776900B1 (en) | Sensor api framework for cloud based applications | |
JP5815890B2 (ja) | 選択可能な電力モードを有するデバイスにおけるタイミング回路較正 | |
US9323314B1 (en) | System and method for reducing energy usage in a mobile communications device | |
JP2015507402A (ja) | 選択可能な電力モードを有するデバイスにおける電力節約技術 | |
US10849073B2 (en) | Electronic device for supporting user state-based geofencing services | |
US9103901B2 (en) | Position determination methodology selection | |
JP2011507460A (ja) | 無線ネットワーク信号獲得レートを定める方法及び装置 | |
JP7032970B2 (ja) | 通信システム、通信モジュール、サーバ、制御方法、及び制御プログラム | |
JP5864780B2 (ja) | モバイル装置のためのスマートデータ接続 | |
JP2020140267A (ja) | 通信装置、電子機器、通信システム、制御方法、及び制御プログラム | |
EP4002891A1 (en) | Method and apparatus for selectively utilizing an online positioning system to determine a reference position associated with fingerprint data | |
JP2016066907A (ja) | 端末装置、位置取得方法、及び、位置取得制御用プログラム | |
JP6396534B2 (ja) | 装置、位置取得方法、及び、位置取得制御用プログラム | |
JP2014037993A (ja) | 測位装置、測位方法、および測位プログラム | |
JP2024030813A (ja) | 位置管理端末、プログラム、及び管理方法 | |
WO2024170903A1 (en) | Method and apparatus for generating a predictive model |