(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】送信装置
(51)【国際特許分類】
G01D 9/00 20060101AFI20241203BHJP
【FI】
G01D9/00 A
(21)【出願番号】P 2021016242
(22)【出願日】2021-02-04
【審査請求日】2024-01-09
(73)【特許権者】
【識別番号】501398606
【氏名又は名称】FCLコンポーネント株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】小山 利哉
【審査官】藤澤 和浩
(56)【参考文献】
【文献】特開2010-271190(JP,A)
【文献】特開2006-323440(JP,A)
【文献】特開2018-92232(JP,A)
【文献】特開平7-128084(JP,A)
【文献】特開2007-93424(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01D 1/00-21/02
G08C 13/00-25/04
(57)【特許請求の範囲】
【請求項1】
取得したデータを記録し、送信する送信装置であって、
環状バッファで構成されるデータ記録用の複数の記録ブロックと、
前記記録ブロックにおける記録が一巡するタイミングで、当該記録ブロックに記録されているデータの代表値を、当該記録ブロックとは異なる他の記録ブロックに記録するデータ管理部と、
前記複数の記録ブロックに重み付けし、前記重み付けに基づいて前記複数の記録ブロックに記録されているデータを送信するデータ送信部と、
を有
し、
前記データ送信部は、前記送信するデータを、前記重み付けに基づいてランダムに決定する、送信装置。
【請求項2】
前記データ送信部は、前記データとともに、当該データの取得時間又は取得期間を示す付加情報を送信する、請求項
1に記載の送信装置。
【請求項3】
前記複数の記録ブロックは、第(N+1)の記録ブロックの重みが、第Nの記録ブロックの重みのX倍となるように設定されており、
Nは1以上の整数であり、Xは1未満の有理数である、請求項1
又は2に記載の送信装置。
【請求項4】
前記データ送信部は、前記複数の記録ブロックに記録されているデータを、無線通信で受信装置、又は前記受信装置に前記データを転送する中継装置に送信する、請求項1乃至
3のいずれか一項に記載の送信装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、送信装置に関する。
【背景技術】
【0002】
各種のセンサで計測した温度、湿度、気圧、照度、加速度、音量等の計測データを記録する装置が実用化されており、「データロガー」等の名称で市販されている。
【0003】
また、記録データを記録する複数段のリングバッファを有し、リングバッファに所定数の記録データが書き込まれる毎に平均値を算出し、算出した平均値を次段のリングバッファに書き込む記録装置が知られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
測定した計測データをBluetooth(登録商標) Low Energy(以下BLEと呼ぶ)等の低消費電力の無線通信で送信する送信装置も知られている。しかし、このような送信装置には、受信装置が送信装置から過去のデータを取得することができないという問題がある。
【0006】
過去のデータを取得できるように送信装置に計測データを蓄積しておくことも考えられるが、BLEのような低消費電力の無線通信は通信速度が遅いため、蓄積したデータを送信先に送信するためには時間を要する。また、このような送信装置はバッテリからの供給電力で動作するため、消費電力が大きい比較的高速な無線通信を利用することは望ましくない。
【0007】
このように、取得したデータを記録しつつ送信先に送信する送信装置において、最新の計測データだけではなく過去のデータを取得可能とすることには困難を伴っていた。
【0008】
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、取得したデータを記録しつつ送信先に送信する送信装置において、最新の計測データだけではなく、過去のデータも容易に取得できるようにする。
【課題を解決するための手段】
【0009】
上記の課題を解決するため、本発明の一実施形態に係る送信装置は、取得したデータを記録し、送信する送信装置であって、環状バッファで構成されるデータ記録用の複数の記録ブロックと、前記記録ブロックにおける記録が一巡するタイミングで、当該記録ブロックに記録されているデータの代表値を、当該記録ブロックとは異なる他の記録ブロックに記録するデータ管理部と、前記複数の記録ブロックに重み付けし、前記重み付けに基づいて前記複数の記録ブロックに記録されているデータを送信するデータ送信部と、を有し、 前記データ送信部は、前記送信するデータを、前記重み付けに基づいてランダムに決定する。
【発明の効果】
【0010】
本発明の一実施形態によれば、取得したデータを記録しつつ送信する送信装置において、最新の計測データだけではなく、過去のデータも容易に取得できるようになる。
【図面の簡単な説明】
【0011】
【
図1】一実施形態に係るデータ通信システムのシステム構成を示す図である。
【
図2】一実施形態に係る送信装置の処理を説明する図である。
【
図3】一実施形態に係る送信装置及び受信装置のハードウェア構成を示す図である。
【
図4】一実施形態に係る送信装置の機能構成を示す図である。
【
図5】一実施形態に係る受信装置の機能構成を示す図である。
【
図6】一実施形態に係る送信装置の処理を示すフローチャートである。
【
図7】一実施形態に係る計測処理を示すフローチャートである。
【
図8】一実施形態に係る送信処理を示すフローチャートである。
【
図9】一実施形態に係るブロック選択処理を示すフローチャートである。
【
図10】第1の実施形態に係る記録ブロック及びデータの重み付けを示す図である。
【
図11】第2の実施形態に係る記録ブロック及びデータの重み付けを示す図である。
【
図12】第3の実施形態に係る記録ブロック及びデータの重み付けを示す図である。
【
図13】一実施形態に係る送信データのフォーマットを示す図である。
【
図14】第4の実施形態に係る記録ブロック及びデータの重み付けを示す図である。
【
図15】一実施形態に係る受信装置の処理を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、添付図面を参照しながら実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【0013】
<システム構成>
図1は、一実施形態に係るデータ通信システムのシステム構成を示す図である。
図1(A)に示すデータ通信システム100は、データを送信する送信装置101と、送信装置101が送信したデータを受信する受信装置102とを含む。
【0014】
送信装置101は、温度、湿度、気圧、照度、加速度、音量等の計測データを含む送信データを、例えばBLE通信等の低消費電力の無線通信103で送信する。例えば、送信装置101は、BLE通信のアドバタイズデータ(ビーコン)を用いて、送信データをブロードキャスト送信する。
【0015】
また、送信装置101は、取得した計測データを記憶部等に記憶しておき、最新の計測データだけではなく過去のデータも送信する機能を有している。好ましくは、送信装置101は、過去のデータを、古いほど低頻度で送信する。また、送信装置101は、過去のデータをデータ処理(例えば平均化)して送信する。
【0016】
図1(B)は、一実施形態に係るデータ通信システム100のシステム構成の別の一例を示している。
図1(B)に示すように、送信装置101は、データを受信装置(受信サーバ)102に転送するゲートウェイ111や情報端末112等を介して、送信データを受信装置102に送信するものであっても良い。
【0017】
ゲートウェイ111は、例えばBLE通信等の低消費電力の無線通信103で、送信装置101が送信した送信データを受信し、通信ネットワーク113を介して受信装置102に転送する中継装置である。
【0018】
情報端末112は、例えば、PC、タブレット端末、スマートフォン等の情報処理装置であり、BLE通信等の低消費電力の無線通信103で、送信装置101が送信した送信データを受信し、受信装置102に転送する機能を有している。情報端末112は例えば、データ通信システム100に対応するアプリケーションを実行することにより、送信装置101から受信した送信データを、無線WAN(Wide Area Network)等の無線通信114を介して受信装置102に転送する。
受信装置102は、1つ以上の情報処理装置で構成されるデータ受信サーバや、クラウドシステム等であっても良い。
【0019】
なお、
図1に示すデータ通信システムのシステム構成は一例である。送信装置101は、Zigbee(登録商標)、Wirepas(登録商標) Mesh等のBLE以外の無線通信方式で送信データを送信するものであっても良い。また、送信装置101は、PLC(Power Line Communication)等の比較的低速な有線通信方式で送信データを送信するものでも良い。
【0020】
<処理の概要>
図2は、一実施形態に係る送信装置の処理を説明する図である。送信装置101は、
図2に示すように、データ記録用の複数の記録ブロック(ブロックA201、ブロックB202、ブロックC203、・・・)を有している。
【0021】
各記録ブロックは、送信装置101の記録領域に設けられ、論理的な環状バッファとして機能する。なお、各記録ブロックは、記録順序を管理可能であり、古いデータを順次に上書きする制御ができるものであれば良く、物理的な構成は任意である。ブロックA201、ブロックB202、ブロックC203には、それぞれ10個のデータを書き込むことができる。
【0022】
図2において、送信装置101が取得した計測データは、まずブロックA201に順次格納される。送信装置101は、ブロックA201のアドレスA_0に計測データを記録すると、次の書き込み位置を示すポインタをインクリメントしてアドレスA_1に進め、次の計測データをアドレスA_1に記録する。また、送信装置101は、末尾のアドレスA_9に計測データを記録すると、書き込みポインタを先頭のアドレスA_0に戻す。
【0023】
送信装置101は、ブロックA201における記録が一巡するタイミングで、ブロックA201に格納されている10データの代表値を算出して、ブロックB202に記録する。例えば、送信装置101は、ブロックA201の書き込みポインタをアドレスA_0に戻すときに、アドレスA_0~A_9に格納されている計測データを平均化した平均値を、代表値としてブロックB202の次の書き込み位置に記録する。次に取得された計測データはブロックA201のアドレスA_0に上書きされる。
【0024】
同様に、送信装置101は、ブロックB202における記録が一巡するタイミングで、ブロックB202に格納されている10データの代表値を算出して、ブロックC203の次の書き込み位置に記録する。
【0025】
このように、比較的新しく取得されたデータは加工せずに元データのままブロックA201に蓄積され、古いデータは代表値として次段以降のブロックB202、ブロックC203に蓄積される。このため、送信装置101では、古いデータほど記憶領域を節約して計測データを蓄積することができる。
【0026】
また、送信装置101は、複数のブロックA201、ブロックB202、ブロックC203に重み付けし、重み付けに基づいて複数の記録ブロックに記録されているデータを選択・送信する。
【0027】
例えば、送信装置101は、ブロックB202(第2記録ブロック)の重みがブロックA201(第1記録ブロック)の重みより小さくなるように重み付けする。また、送信装置101は、ブロックC203(第3記録ブロック)の重みがブロックB202の重みより小さくなるように重み付けする。
【0028】
重みづけの大きいブロックに格納されているデータの送信頻度を高くすることにより、送信装置101は、比較的最近のデータを加工なしでより高頻度で送信し、比較的古いデータを、例えば平均化により加工し、より低頻度で送信することができる。
【0029】
送信装置101は、送信先に送信するデータを、上記の重み付けに基づいてランダムに決定することができる。
【0030】
送信装置101はまた、送信先に、データとともに、当該データの取得時間(時刻等)、データの取得期間などを示す付加情報を送信する。なお、付加情報は送信先に送信するデータに含まれていても良いし、データとは別に送信しても良い。
【0031】
一方、受信装置102は、送信装置101から送信データ(又は送信データと付加情報)を受信すると、送信データ(又は付加情報)に含まれる取得時間、取得期間などに基づいて、送信データに含まれるデータ(計測データ、代表値)を記憶部に記憶する。例えば、受信装置102は、送信装置101が送信した送信データを、付加情報が示す取得時間、又は取得期間に対応する記憶部の記憶領域に記憶する。
【0032】
受信装置102は、記憶部に記憶したデータに基づいて、計測データの推移をグラフ化などにより表示する機能を有している。
【0033】
このように、本実施形態に係るデータ通信システム100によれば、送信装置101は、比較的最近のデータをより多いデータ量で記録するとともに、古いデータをより少ないデータ量で記録することができる。従って、送信装置101の限られたメモリ容量で、より長期間のデータを記録することができる。
【0034】
送信装置101は、例えば、モニタリングやデモンストレーション等の用途で比較的重要度が高い「直近」のデータをより高頻度で、比較的重要度が低い過去のデータを低頻度で送信することができる。また、受信装置102は、古いデータをより少ないデータ量で記憶するので、過去から現在に至るまでの、計測データの推移の概要/アウトラインを比較的短時間で、取得し把握することができる。
【0035】
<ハードウェア構成>
図3は、一実施形態に係る送信装置及び受信装置のハードウェア構成を示す図である。
【0036】
(送信装置のハードウェア構成)
図3(A)に示す送信装置101は、CPU(Central Processing Unit)301、メモリ302、ストレージデバイス303、無線通信デバイス304、センサ305、外部接続I/F(Interface)、バス307を有する。
【0037】
CPU301は、ストレージデバイス303、メモリ302等に記憶したプログラムを実行することにより、送信装置101の様々な機能を実現するプロセッサ(演算装置)である。メモリ302には、例えば、CPU301のワークエリアとして用いられるRAM(Random Access Memory)、CPU301の起動用のプログラム等を予め記憶したROM(Read Only memory)が含まれる。ストレージデバイス303は、例えば、OS(Operating System)、アプリケーション等のプログラムや各種のデータを記憶する、大容量の記憶装置である。
【0038】
無線通信デバイス304は、BLE等の無線通信を行うための無線回路、無線モジュール、又は無線IC(Integrated Circuit)である。なお、無線通信デバイス304は、Zigbee、Wirepas Mesh等のBLE以外の無線通信方式を採用しても良い。
【0039】
センサ305は、温度センサ、湿度センサ、気圧センサ、照度センサ、加速度センサ、音量センサ等の各種センサである。外部接続I/F306は、送信装置101に外部装置を接続するためのインタフェースである。送信装置101は、1つ以上のセンサ305、又は外部接続I/F306に接続された外部センサから、計測データを取得する。
【0040】
バス307は、上記の各構成要素に共通に接続され、例えば、アドレス信号、データ信号、各種の制御信号等を伝送する。
【0041】
(受信装置のハードウェア構成)
図3(B)に示す受信装置102は、CPU311、メモリ312、ストレージデバイス313、ネットワークI/F314、表示装置315、入力装置316、無線通信デバイス317、バス318を有する。
【0042】
CPU311は、ストレージデバイス313、メモリ312等に記憶したプログラムを実行することにより、受信装置102の様々な機能を実現するプロセッサである。メモリ312には、CPU311のワークエリアとして用いられるRAM、及びCPU311の起動用のプログラム等を予め記憶したROM等が含まれる。ストレージデバイス313は、OS、アプリケーション等のプログラムや、各種データを記憶する大容量の記憶装置である。
【0043】
ネットワークI/F314は、受信装置102を通信ネットワークに接続し、例えばゲートウェイ111や情報端末112と通信するための通信インタフェースである。
【0044】
表示装置315は、各種の表示画面を表示する、液晶ディスプレイ、有機ELディスプレイ等の表示デバイスである。入力装置は、ユーザの入力操作を受け付ける、タッチパネル、キーボード、操作ボタン等の入力デバイスである。なお、表示装置315、及び入力装置316は、タッチパネルディスプレイ等の表示入力装置であっても良い。
【0045】
無線通信デバイス317は、無線通信デバイス304と同じ無線通信方式で送信装置101と無線通信を行うための無線回路、無線モジュール、無線IC等である。
【0046】
バス318は、上記の各構成要素に共通に接続され、例えば、アドレス信号、データ信号、各種の制御信号等を伝送する。
【0047】
<機能構成>
続いて、送信装置101、及び受信装置の機能構成について説明する。
【0048】
(送信装置の機能構成)
図4は、一実施形態に係る送信装置の機能構成を示す図である。送信装置101は、CPU301で所定のプログラムを実行することにより、データ取得部401、データ管理部402、データ送信部403、記憶部404等の機能を実現している。なお、上記の各機能のうち、少なくとも一部はハードウェアによって実現されるものであっても良い。
【0049】
データ取得部401は、センサ305等から計測データを取得する。好ましくは、データ取得部401は、センサ305等から所定の間隔(例えば、数秒から数十分程度)で計測データを取得する。なお、データ取得部401は、外部接続I/F306に接続された外部センサから計測データを取得しても良い。
【0050】
データ管理部402は、
図2で説明したように、ブロックA201における記録が一巡するタイミングで、ブロックA201に記録されているデータの代表値(例えば平均値)を算出し、ブロックB202に記録する。また、データ管理部402は、ブロックB202における記録が一巡するタイミングで、ブロックB202に記録されているデータの代表値を算出し、ブロックC203に記録する。
【0051】
データ送信部403は、複数の記録ブロック(ブロックA201~ブロックC203)に重み付けし、重み付けに基づいて記録ブロックに記録されているデータを送信する。例えば、データ送信部403は、
図3(A)の無線通信デバイスを用いて、データを送信する。データ送信部403は、ブロードキャストにデータを送信しても良いし、受信装置102にデータを送信しても良い。或いは、データ送信部403は、ゲートウェイ111、又は情報端末112を介して受信装置102にデータを送信しても良い。
【0052】
複数の記録ブロックの重み付けの方法、及び送信するデータの選択方法のバリエーションは、複数の実施形態を例示して後述する。
【0053】
記憶部404の機能は、CPU301で実行されるプログラム、及びストレージデバイス303、メモリ302等によって実現され、ブロックA201~ブロックC203等の機能を実現している。
【0054】
(受信装置の機能構成)
図5は、一実施形態に係る受信装置の機能構成を示す図である。受信装置102は、CPU311で所定のプログラムを実行することにより、データ受信部501、データ処理部502、表示制御部503、操作受付部504、及び記憶部505の機能を実現する。なお、上記の各機能構成のうち一部は、ハードウェアによって実現されても良い。
【0055】
データ受信部501は、送信装置101から、計測データや代表値のようなデータと、当該データの取得時間又は取得期間を示す付加情報とを含む送信データを受信する。データ受信部501はまた、無線通信デバイス317を用いて、送信装置101が送信した送信データを受信する。或いは、データ受信部501は、ネットワークI/F314を用いて、送信装置101が送信した送信データをゲートウェイ111、情報端末112等を介して受信する。
【0056】
データ処理部502は、データ受信部501が受信した送信データに含まれるデータを記憶部505等に記憶する。
図5に示すデータ処理部502は、第1処理部502a及び第2処理部502bを含む。
【0057】
第1処理部502aは、データ受信部501が受信した送信データに、データと、当該データを取得した取得時間(例えばタイムスタンプ)とが含まれる場合、当該データを計測データとして取得時間と対応付けて記憶部505に記憶する。
【0058】
第2処理部502bは、データ受信部501が受信した送信データに、データと、当該データの取得期間が含まれる場合、送信データに含まれるデータを当該取得期間の代表値として、当該取得期間に含まれる取得時間と対応付けて、記憶部505等に記憶する。なお、第1処理部502a及び第2処理部502bの処理は、1つのデータ処理部502で実行するものであっても良い。
【0059】
表示制御部503は、データ処理部502が記憶部505等に記憶した計測データとその取得時間に基づいて、例えば、過去から現在までの計測データの推移をグラフ化して、表示装置315等に表示する。例えば、表示制御部503は、横軸を取得時間とし、縦軸を計測データの値とした折れ線グラフ、又は棒グラフ等を表示装置315に表示する。
【0060】
操作受付部504は、入力装置316等を用いてユーザによる入力操作を受け付ける。
【0061】
記憶部505の機能は、CPU311で実行されるプログラム、及びストレージデバイス313、メモリ312等によって実現され、データ処理部502が記憶する計測データ、取得日時の情報等の様々な情報やデータを記憶する。
【0062】
<処理の流れ>
続いて、本実施形態に係るデータ通信方法の処理の流れについて説明する。
【0063】
(送信装置の処理)
図6は、一実施形態に係る送信装置の処理を示すフローチャートである。
図6は、送信装置101が計測データを取得し送信先に送信する処理の全体の流れを示している。
【0064】
S601において、データ管理部402は、例えば、
図2に示すように、格納可能なデータ数がそれぞれ10の3つの記録ブロック(ブロックA201、ブロックB202、ブロックC203)を定義して、各ブロックの次の記録位置を示すポインタを初期化する。
【0065】
なお、
図2に示す記録ブロックの数「3」、及び各記録ブロック内のデータの数「10」は一例である。記録ブロックの数は2つ以上の他の数であっても良い。各記録ブロック内に記録可能なデータの数は、2以上の他の数であっても良いし、記録ブロック毎に異なる数であっても良い。
【0066】
S602において、データ管理部402は、記憶部404内に、
図2に示すような3つのブロックA201、ブロックB202、及びブロックC203の記憶領域を確保する。
【0067】
S603において、データ管理部402は、記憶部404内に、3つの各記録ブロックに対応する3つの付加情報の記憶領域を確保する。なお、付加情報の記憶領域は、3つの記録ブロックに含まれていても良い。
【0068】
S604において、送信装置101は現在の時刻を取得する。
【0069】
S605において、送信装置101は、取得した現在の時刻に基づいて、計測タイミングであるか否かを判断する。例えば、送信装置101は、前回の計測データの取得から予め設定された第1の時間を経過している場合、計測タイミングであると判断する。
【0070】
計測タイミングである場合、送信装置101は、S606において、
図7で後述する計測処理を実行する。一方、計測タイミングでない場合、送信装置101は、計測処理を行わず処理をS607に移行させる。
【0071】
S607に移行すると、送信装置101は、取得した現在の時刻に基づいて、送信タイミングであるか否かを判断する。送信装置101は例えば、前回のデータ送信から予め設定された第2の時間を経過している場合、記録ブロックに格納されているデータを送信するタイミングであると判断する。
【0072】
送信タイミングである場合、送信装置101は、S608において
図8で後述する送信処理を実行する。一方、送信タイミングでない場合、送信装置101は送信処理を行わずに処理をS609に移行させる。
【0073】
S609において、送信装置101は、処理を終了するか否かを判断する。送信装置101は、予め設定された処理終了時刻になった場合、又はユーザによる終了操作を受け付けた場合等に、処理を終了すると判断し、
図6の処理を終了する。
【0074】
処理を終了しないと判断した場合、送信装置101は処理をS604に戻して、S604以降の処理を再び実行する。
【0075】
(計測処理)
図7は、一実施形態に係る計測処理を示すフローチャートである。この処理は、S606において送信装置101が実行する計測処理の例を示している。計測処理では、センサからの計測データ取得と、取得した計測データの記録ブロックへの格納の処理が行われる。
【0076】
S701において、データ管理部402は、記録ブロック用のカウンタであるblock_countに「0」を設定し、ブロックA201を選択する。
【0077】
S702において、データ取得部401は、計測データを取得して、最新データを格納する領域current_dataに格納する。
【0078】
S703において、データ管理部402は、block_countで示される記録ブロックの次の書き込み位置であるdata_count[bloclk_count]に、current_dataに格納された計測データを記録する。
【0079】
この処理により、block_countが「0」である場合、block_count=0に対応するブロックA201の次の書き込み位置data_count[bloclk_count]に計測データが記録される。
【0080】
S704において、データ管理部402は、S703で記録した計測データの取得時間を取得し、取得時間を含む付加情報を、当該計測データに対応するブロックA201の付加情報の記憶領域に記録する。
【0081】
S705において、data_count[block_count]の値をインクリメントする。
【0082】
S706において、データ管理部402は、data_count[bloc_count]の値が当該記録ブロックの最大データ数(N_MAX_DATA)より小さいか否かを判断する。
【0083】
data_count[bloc_count]の値がN_MAX_DATAより小さい場合(S706YES)、データ管理部402は
図7の処理を終了する。一方、data_count[bloc_count]の値がN_MAX_DATA以上である場合(S706NO)、データ管理部402は環状バッファである記録ブロックの末尾までデータを記録したと判断し、処理をS707に移行させる。
【0084】
S707に移行すると、データ管理部402は、data_count[block_count]の値を「0」に戻す。
【0085】
S708において、データ管理部402は、block_countで示される記録ブロックに記録されているデータの平均値を算出し、current_dataに格納する。なお、平均値は代表値の一例であり、代表値は最大値、最小値、中央値、標準偏差等の他の値であっても良い。
【0086】
S709において、block_countの値が記録ブロックの最大値(N_MAX_BLOCK)より小さいか否かを判断する。この処理により、データ管理部402は、次の記録ブロックの有無を判断することができる。
【0087】
block_countの値がN_MAX_BLOCKより小さい場合(S709YES)、データ管理部402は、block_countの値をインクリメントして、処理をS703に戻す。一方、block_countの値がN_MAX_BLOCK以上である場合(S709NO)、データ管理部402は
図7の処理を終了させる。
【0088】
S703に戻ると、block_countを「1」とし、ブロックB202を選択した状態でS703以降の処理を再び実行する。
【0089】
S703において、データ管理部402は、block_countで示される記録ブロックの次の書き込み位置であるdata_count[bloclk_count]に、current_dataに格納されているデータを記録する。ここではblock_countが「1」であるため、対応するブロックB202の次の書き込み位置に、current_dataに格納されている、ブロックA201に格納されたデータの平均値が記録される。
【0090】
S704において、データ管理部402は、S703で記録した計測データに対応する付加情報を、当該計測データに対応する付加情報の記憶領域に記録する。ここではblock_countが「1」であるため、ブロックB202に記録した平均値に対応するブロックB202の付加情報の記憶領域に、平均値に対応する取得期間を含む付加情報が記録される。例えば、データ管理部402は、ブロックA201に記録されている複数の計測データの取得時間を、付加情報を参照して取得する。また、データ管理部402は、一例として、ブロックA201のアドレスA_0~A_9に記録されている計測データの取得時間、計測データの取得間隔、及び計測データのデータ数等を、平均値に対応する取得期間として付加情報に記録する。
【0091】
S705において、data_count[block_count]の値をインクリメントする。
【0092】
S706において、データ管理部402は、data_count[bloc_count]の値が、当該記録ブロックのN_MAX_DATAより小さいか否かを判断する。data_count[bloc_count]の値がN_MAX_DATAより小さい場合(S706YES)、データ管理部402は
図7の処理を終了させる。一方、data_count[bloc_count]の値がN_MAX_DATAより小さくない場合(S706NO)、データ管理部402は処理をS707に移行させる。
【0093】
S707に移行すると、データ管理部402は、data_count[block_count]の値を「0」に戻す。
【0094】
S708において、データ管理部402は、block_countで示される記録ブロックに記録されているデータの平均値を算出する。
【0095】
S709において、データ管理部402は、block_countの値が記録ブロックの最大値(N_MAX_BLOCK)より小さいか否かを判断する。block_countの値がN_MAX_BLOCKより小さい場合(S709YES)、データ管理部402は、block_countの値をインクリメントして、処理をS703に戻す。これによりblock_count=2となり、ブロックC203においてS703以降の処理が実行される。
【0096】
一方、block_countの値がN_MAX_BLOCK以上である場合、データ管理部402は
図7の処理を終了させる。
【0097】
上記の処理により、送信装置101は、取得した計測データをブロックA201に順次に格納し、末尾のアドレスA_9に計測データを記録したときに、次の書き込みポインタを先頭のアドレスA_0に戻す。また、送信装置101は、ブロックA201における記録が一巡するタイミングで、ブロックA201に格納されているデータの平均値(代表値)を算出して、ブロックB202に記録することができる。
【0098】
同様に、送信装置101は、ブロックB202における記録が一巡するタイミングで、ブロックB202に格納されているデータの代表値を算出してブロックC203に記録する。このように、送信装置101は、古いデータほど、記憶領域を節約して計測データを蓄積するとともに、比較的新しいデータを加工せずに元データのまま蓄積する。
【0099】
(送信処理)
図8は、一実施形態に係る送信処理を示すフローチャートである。この処理は、S608において送信装置101が実行する送信処理の例を示している。
【0100】
S801において、データ送信部403は、複数の記録ブロックを重み付けし、重み付けに基づいて、複数の記録ブロックのうち送信するデータを格納している記録ブロックを選択し、選択する記録ブロックを示す変数をblock_selectに設定する。例えば、データ送信部403は、
図9に示すブロック選択処理を実行して、データを送信する記録ブロックを選択する。
【0101】
S802において、データ送信部403は、選択された記録ブロックに記録されている複数のデータの中から送信するデータを選択し、data_selectに設定する。例えば、データ送信部403は、選択された記録ブロックに記録されている複数のデータの中から送信するデータをランダムに選択する。或いは、データ送信部403は、選択された記録ブロックに記録されている複数のデータを重み付けして、重み付けに基づいて送信するデータをランダムに選択する。
【0102】
S803において、データ送信部403は、S802で選択されたデータを送信データのデータ領域であるsend_dataに設定する。
【0103】
S804において、データ送信部403は、S802で選択されたデータの付加情報を、送信データの付加情報領域であるsend_infoに設定する。なお、選択されたデータが計測データである場合、この付加情報には当該計測データを取得した取得時間の情報が含まれる。また、選択されたデータが平均値(代表値)である場合、この付加情報には平均したデータを取得した期間を示す取得期間の情報が含まれる。
【0104】
S805において、データ送信部403は、送信するデータ(send_Data)と、当該データに対応する付加情報(send_info)とを含む送信データを、受信装置102などの送信先に無線通信で送信する。
【0105】
(ブロック選択処理)
図9は、一実施形態に係るブロック選択処理を示すフローチャートである。この処理は、S801で送信装置101が実行するブロック選択処理の一例を示している。
【0106】
S901において、データ送信部403は、一例として、0~99の範囲で乱数を発生して、発生した乱数をrand領域に格納する。
【0107】
S902において、データ送信部403は、ブロック数が2であるか否かを判断する。ここで、ブロック数は記録ブロックの数を表しており、ブロック数=2は、記録ブロックの数が2つであることを表すものとする。
【0108】
ブロック数=2であるとき、ブロックA201とブロックB202の2つの記録ブロックがあるため、データ送信部403は処理をS903に移行させる。一方、ブロック数=2でない場合、データ送信部403は処理をS906に移行させる。
【0109】
S903に移行すると、データ送信部403は、発生した乱数randの値が70より小さいか否かを判断する。randの値が70より小さい場合、データ送信部403は処理をS904に移行させる。一方、randの値が70以上である場合、データ送信部403は処理をS905に移行させる。
【0110】
S904に移行すると、データ送信部403は、block_selectの値を「0」として、ブロックA201を選択する。
【0111】
一方、S905に移行すると、データ送信部403は、block_selectの値を「1」として、ブロックB202を選択する。
【0112】
上記の処理により、データ送信部403は、記録ブロックの数が2つである場合、乱数を用いて、ブロックA201を70%の確率で選択し、ブロックB202を30%の確率で選択することができる。
なお、上記の確率は一例であり、他の値であっても良い。この場合、発生させる乱数の数を変える、S903の判断での乱数の閾値を変える、などの対応を取ればよい。
【0113】
一方、S902からS906に移行すると、データ送信部403はブロック数=3であるか否かを判断する。なお、ブロック数=3は記録ブロックの数が3つであることを表すものとする。
【0114】
ブロック数=3である場合、記録ブロックがブロックA201~ブロックC203の3つあるので、データ送信部403は処理をS907に移行させる。一方、ブロック数=3でない場合、データ送信部403は処理をS913に移行させる。なお、S906の処理はS902の前に実行しても良い。
【0115】
S907に移行すると、データ送信部403は、発生した乱数randの値が50より小さいか否かを判断する。randの値が50より小さい場合、データ送信部403は処理をS908に移行させる。一方、randの値が50以上である場合、データ送信部403は処理をS909に移行させる。
【0116】
S908に移行すると、データ送信部403は、block_selectの値を「0」として、ブロックA201を選択する。
【0117】
一方、S909に移行すると、データ送信部は、発生した乱数randの値が75より小さいか否かを判断する。randの値が75より小さい場合、データ送信部403は処理をS911に移行させる。一方、randの値が75以上である場合、データ送信部403は処理をS912に移行させる。
【0118】
S911に移行すると、データ送信部403は、block_selectの値を「1」として、ブロックB202を選択する。
【0119】
一方、S912に移行すると、データ送信部403は、block_selectの値を「2」として、ブロックC203を選択する。
【0120】
上記の処理により、データ送信部403は、記録ブロックの数が3つである場合、乱数を用いて、ブロックA201を50%の確率で選択し、ブロックB202、及びブロックC203をそれぞれ25%の確率選択することができる。なお、上記の確率は一例であり、他の値であっても良い。
【0121】
一方、S906からS913に移行すると、データ送信部403は、ブロック数=1であるか否かを判断する。なお、ブロック数=1は記録ブロックの数が1つであることを表すものとする。
【0122】
ブロック数=1である場合、記録ブロックがブロックA201のみであるので、データ送信部403は処理をS914に移行させる。一方、ブロック数=1でない場合、データ送信部403は処理をS915に移行させる。
【0123】
S914に移行すると、データ送信部403は、block_selectの値を「0」として、ブロックA201を選択する。
【0124】
S915において、データ送信部403は、S902~S914で設定されたblock_selectの値をS801に返す。
【0125】
このように、本実施形態に係るデータ送信部403は、
図2に示すように3つの記録ブロックがある場合、例えば、randの値によってブロックB202の重みをブロックA201の重みより小さく設定し、ブロックC203の重みをブロックB202の重みより小さく設定する。これにより、データ送信部403は、送信先に、直近の計測データを優先的に送信しつつ、過去のデータも送信することができる。
続いて、データ送信部403が選択する記録ブロック、及びデータの重み付けについて、複数の実施形態を例示して説明する。
【0126】
[第1の実施形態]
図10は、第1の実施形態に係る記録ブロック及びデータの重み付けを示す図である。
図9のフローチャートでは記録ブロックの数が1~3の場合について説明したが、記録ブロックの数は4つ以上であっても良い。
【0127】
図10の例では、ブロックAの重みを1/2とし、残りの重み1/2をブロックB、C、D、・・・に割り当てている。また、ブロックBの重みを1/4(=1/2×1/2)とし、残りの重み1/4をブロックC、D、・・・に割り当てている。さらに、ブロックCの重みを1/8(=1/4×1/2)とし、残りの重み1/8をブロックD、・・・に割り当てている。
【0128】
つまり、Nを1以上の整数、Xを1未満の有理数とした場合、第(N+1)の記録ブロックの重みが、第Nの記録ブロックの重みのX倍となるように設定されている。この方法により、例えば記録ブロックの数が4つ以上の場合でも、各記録ブロックの重みを容易に決定することができる。
【0129】
図10の例では、各記録ブロック内のデータは平等に重み付けされ、重み付けに応じた確率で送信するデータが選択される。これにより、ブロックA内の各データは1/2*1/10=1/20の確率で送信される。同様に、ブロックB内の各データは、1/4*1/10=1/40の確率で送信され、ブロックC内の各データは1/8*1/10=1/80の確率で送信され、ブロックD内の各データは1/16*1/10=1/160の確率で送信される。
【0130】
[第2の実施形態]
図11は、第2の実施形態に係る記録ブロック及びデータの重み付けを示す図である。
図11では、ブロックA内の各データ(アドレスA_0~A_9)と、ブロックB+ブロックCに均等に重みを与えた場合の重み付けの例を示している。
図11の例では各記録ブロックは10個のデータを格納可能であり、ブロックAの各データに1/11の重みづけを与えており、ブロックBとブロックCとに合わせて1/11の重みづけを与えている。
【0131】
図11では、ブロックA内の各データは、1/11の確率で送信先に送信される。また、ブロックB+ブロックCが選択される確率も1/11となる。
【0132】
また、
図11では、ブロックB内の各データ(アドレスB_0~B_9)と、ブロックCに均等に1/11の重みを与えている。ブロックB内の各データは1/11*1/11=1/121の確率で送信される。また、ブロックCが選択される確率も1/121となる。さらに、ブロックC内の各データには1/11の重みづけが与えられており、ブロックCのデータは1/121*1/11=1/1331の確率で送信される。
【0133】
[第3の実施形態]
図12は、第3の実施形態に係る記録ブロック及びデータの重み付けを示す図である。第2の実施形態では、各記録ブロック内のデータには均等に重みが与えられていたが、
図12に示す例では、直近に取得したデータ(<現在>)の重みを大きく設定している。
【0134】
図12のブロックAにおいて、現在のデータがアドレスA_9に記録されているものとする。<現在>のデータに1/2の重みを設定することにより、1/2の確率でアドレスA_9に格納されているデータが選択されるようにする。
【0135】
また、残りの1/2の重みを、ブロックA内の残りの9データ(アドレスA0~A8)と、ブロックB+Cとに均等に割り当てる。つまり、ブロックA内の<現在>のデータ以外が選択される確率を1/2とする。そのため、ブロックA内のアドレスA0~A8のデータの重みは1/2*1/10=1/20となる。また、ブロックBおよびブロックCの重みも1/20とする。
【0136】
この場合、ブロックB内の各データ及びブロックCの重みは1/20*1/11=1/220となり、ブロックC内の各データの重みは1/220*1/11=1/2420となる。
【0137】
データ送信部403は、上記の各実施形態で説明した重み付けに基づいて送信するデータを選択する。これにより、重みづけに基づいてランダムに選択されたデータが送信される。
また、データ送信部403は、例えば、
図13(A)に示すように、選択したデータ1311と対応する付加情報1312とを含む送信データ1310を、受信装置102などの送信先に送信する。
【0138】
別の一例として、データ送信部403は、
図13(B)に示すように、選択したデータ1311と対応する付加情報1312に加えて、最新データ1321と、最新データ1321のタイムスタンプ1322を送信しても良い。
【0139】
[第4の実施形態]
図14は、第4の実施形態に係る記録ブロック及びデータの重み付けを示す図である。
図14の例では、ブロックA~Cとは別の記憶領域(例えば、アドレスX_0)にデータ取得部401が取得した最新データを一時的に記憶し、その重みを「1」としている。また、ブロックAの各アドレスのデータの重みを「1/11」とし、ブロックBの各アドレスのデータの重みを「1/11*1/11=1/121」としている。さらに、ブロックCの各アドレスのデータの重みを「1/121*1/11」としている。
【0140】
これにより、データ送信部403は、例えば
図13(B)に示すように、アドレスX_0に格納された最新データ1321、最新データのタイムスタンプ1322、ブロックA~ブロックCから選択したデータ1311、及びデータ1311に対応する付加情報1312を含む送信データ1320を送信する。これにより、データ送信部403は、最新の計測データを毎回送信しつつ、重み付けに基づいて選択した過去のデータを送信することができる。この場合、データ送信部403は、最新データ1321を送信した後に、当該最新データ1321をブロックAの次の書き込み先に記録する。
【0141】
さらに、データ送信部403は、
図13(C)に示すように、最新データ1321と最新データ1321のタイムスタンプ1322とともに、複数のデータ及び付加情報1331を含む送信データ1330を送信しても良い。
【0142】
なお、上記の各実施形態では、例えば、ブロックBの各データ、ブロックC内の各データの重みがそれぞれ均等になっているが、ブロックB、ブロックCにおいても最新のデータの重みを高く設定しても良い。例えば、ブロックBにおいても、ブロックAと同様に最新データを別の記憶領域に格納し、当該記憶領域の重みをブロックBより高く設定しても良い。これにより、データ送信部403は、ブロックAの代表値が更新され、ブロックBに記録されたときに、更新された代表値を優先的に送信することができる。同様に、ブロックCにおいても、最新データを別の記憶領域に格納し、当該記憶領域の重みをブロックCより高く設定しても良い。
【0143】
<受信装置の処理>
図15は、一実施形態に係るデータ受信処理を示すフローチャートである。この処理は、受信装置102が、送信装置101が送信した送信データを受信したときに実行する処理の一例を示している。
【0144】
S1501において、データ受信部501は、
図13(A)に示すように、データ1311と、データ1311に対応する付加情報1312とを含む送信データ1310を受信するものとする。
【0145】
なお、データ1311がブロックA201に記録された計測データである場合、付加情報1312には、データ1311を取得した日時を示す取得時間(タイムスタンプ)の情報が含まれる。また、データ1311が、ブロックB202等に記録された平均値である場合、付加情報1312には、平均化した複数の計測データを取得した期間を示す取得期間の情報が含まれる。
【0146】
S1502において、データ処理部502は、受信した送信データ1310に含まれるデータ1311が、平均値であるか、計測データであるかを判断する。データ処理部502は、送信データ1310に含まれる付加情報1312に取得期間が含まれる場合、データ1311が平均値であると判断する。一方、データ処理部502は、付加情報1312に取得時間が含まれる場合、データ1311が計測データであると判断する。
【0147】
データ1311が平均値でない場合(計測データである場合)、データ処理部502は処理をS1503に移行させる。一方、データ1311が平均値である場合、データ処理部502は処理をS1505に移行させる。
【0148】
S1503に移行すると、第1処理部502aは、ログデータを記憶する記憶領域(data_log)内の取得時間に対応するインデックス(書き込み位置)に、データ1311(rcv_data)を記憶する。これにより、ログデータを記憶する記憶領域に、データ1311が当該データ1311を取得した取得時間と対応付けて記憶される。
【0149】
S1504において、表示制御部503は、一例として、最も古いデータから現在のデータまでの計測データの推移を示すグラフを作成し、表示装置315に表示する。
【0150】
一方、S1502からS1505に移行すると、ログデータを記憶する記憶領域内の書き込み位置をカウントするカウンタiを0に初期化して、S1506以降の処理を実行する。
【0151】
S1506において、第2処理部502bは、data_log[平均期間内の最も古いインデックス+i]に、より低レベルブロックのデータが記憶されているか否かを判断する。例えば、データ受信部501が受信した送信データ1310に含まれるデータ1311が、取得時間t0、t1、t2、・・・、t9に測定した10個の計測データの平均値であるものとする。この場合、送信データ1310に含まれる付加情報1312には、取得期間として、例えば開始日時t0、データ取得間隔Δt、及びデータ数n等の情報が含まれる。従って、ステップS1501で受信した送信データを平均した平均期間は、「t0」~「t0+Δt×n」で表すことができる。
【0152】
ここで、「平均期間内の最も古いインデックス+i」は、ログデータを記憶するdata_log内の取得時間「t0+Δt×i」に対応するインデックスを示す。また、低レベルブロックのデータとは、平均化していない計測データ、又はステップS1501で受信した送信データを平均した平均期間より短い平均期間で平均化されたデータを表す。
【0153】
第2処理部502bは、S1506において、ログデータを記憶するdata_log内の取得時間「t0+Δt×i」に対応するインデックスに、計測データ(低レベルブロックのデータ)が記憶されているか否かを判断する。
【0154】
低レベルブロックのデータがない場合(S1506NO)、第2処理部502bは処理をS1507に移行させる。一方、低レベルブロックのデータがある場合(S1506YES)、第2処理部502bは処理をS1508に移行させる。
【0155】
S1507において、第2処理部502bは、data_log[平均期間内の最も古いインデックス+i]に、データ受信部501が受信した送信データ1310に含まれるデータ1311(rcv_data)を記憶する。
【0156】
上記の処理によりdata_log内の取得時間「t0+Δt×i」に対応するインデックスに計測データが記憶されていない場合、平均値であるデータ1311が記憶される。一方、data_log内の取得時間「t0+Δt×i」に対応するインデックスに計測データが記憶されている場合、平均値であるデータ1311を記憶せず、記憶されている計測データを維持する。
【0157】
S1508において、第2処理部502bは、iの値が平均化したデータの数(ある取得期間に含まれるデータ数)より小さいか否かを判断する。iの値が平均化したデータの数より小さい場合、第2処理部502bは、処理をS1509に移行させる。一方、iの値が平均化したデータの数以上である場合、第2処理部502bは、処理をS1504に移行させる。
【0158】
S1509に移行すると、第2処理部502bは、iをインクリメントして、処理をS1506に戻す。
【0159】
上記の処理により、受信装置102は、データ受信部501が受信した送信データ1310に計測データが含まれている場合、当該計測データを、付加情報1312に含まれる取得時間に基づいてログデータを記憶する記憶領域に記憶する。
【0160】
また、受信装置102は、データ受信部501が受信した送信データに平均値が含まれており、付加情報1312に含まれる取得期間に計測データが記憶されていない場合、ステップS1505~S1609の処理により、当該平均値を用いて、ログデータが補完される。
【0161】
なお、
図15に示す処理は一例である。例えば、受信装置102は、データ受信部501が受信した送信データ1310に平均値が含まれている場合、当該平均値と、当該平均値の取得期間の情報とを対応付けて、記憶部505に記憶しても良い。
【0162】
この場合、受信装置102の表示制御部503に直近の計測データの推移と、過去の平均値とを表示画面に表示しても良いし、平均値を展開して、過去からの計測データの推移を表示画面に表示しても良い。
【0163】
以上、本発明の各実施形態によれば、取得した複数データを記録しつつ、送信先に送信する送信装置101において、最新の計測データだけではなく、過去のデータも容易に取得できるようになる。
【0164】
また、本実施形態に係る送信装置101によれば、比較的最近のデータをより多いデータ量で記録し、古いデータをより少ないデータ量で記録することができるので、記録効率を向上させることができる。
【0165】
また、送信時においても、モニタリングやデモンストレーション等の用途で比較的重要度の高い直近のデータを高頻度で、比較的注目度や緊急度が低いものの一定の需要のある古いデータを低頻度で受信装置102に送信することができる。
【0166】
従って、受信装置102は、比較的遠い過去から現在に至るまでの計測データの推移、アウトライン等を比較的短期間で取得可能となり、しかも計測データ取得におけるリアルタイム性もさほど損なわないという効果が期待できる。
【0167】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【0168】
100 データ通信システム、101 送信装置、102 受信装置、
111 ゲートウェイ、112 情報端末、201 ブロックA、202 ブロックB、203 ブロックC、402 データ管理部、403 データ送信部、
501 データ受信部、502a 第1処理部、502b 第2処理部、
505 記憶部、1312 付加情報