センサーグラフ
Windows macOS Linux RasPi

データの表示例
概要
各種センサーデータを SQLite データベースに記録し、画面上にグラフ形式で表示します。データベースファイルは外部のアプリケーションから参照することも可能です。
同一実行形式名の TWELITE STAGE APP を複数起動して、センサーグラフを同時に使用することはできません。
データベースファイルは {MWSTAGEインストール}/log フォルダに格納され、TWELITE STAGE APP の実行形式名をもとにファイル名が決まります。同一の実行形式名である場合は、同じデータベースファイルを参照してしまいます。TWELITE STAGE APP の実装では、複数のアプリが同時に同一のデータベースにデータを追加することを想定していません。また、場合によってはデータベースファイルのアクセスエラーとなり、TWELITE STAGE APP がクラッシュすることもあります。
例えば、MONOSTICK を PC に2台接続して、同時に複数の「センサーグラフ」を動作させたい場合には、別の実行形式名 (TWELITE_Stage_a.exe, TWELITE_Stage_b.exe) とした TWELITE STAGE アプリを複数実行します。このときのデータベースファイル名はそれぞれ log/TWELITE_Stage_a_WSns.sqlite, log/TWELITE_Stage_b_WSns.sqlite です。
- データベースには SQLite (sqlite3) を使用しており、
{MW_STAGE Install}/log/{実行形式名}_WSns.sqliteというファイルに格納されます。 - 画面遷移は
[一覧(グラフプレビューあり)]>[24時間データ]>[ライブビュー]です。[24時間データ]から更に[年][月][日(グラフプレビューあり)]選択画面に遷移できます。
[ライブ]表示画面について- 一覧から特定のノードを選択します。
- 1秒おきのリアルタイム表示を行い、過去 450 秒間のデータを表示します。
[24時間データ]表示画面について- 特定の日のデータを表示します。
- 1秒おきの更新とし、その間に複数のデータがあった場合は間引かれます。
- 最大拡大時(1ピクセル1秒)以外は、各ピクセルの範囲における取得値の平均を表示します。
- 値が画面よりはみ出す場合は、上下端に測定点を表示します。
- 現在時刻が含まれる場合には、新着データで表示を更新します。
- マウスホイールやカーソルキー
↑↓の入力:時間軸の拡大・縮小 - マウスポインタの移動:マウスポインタに対応した時間軸にある取得データを簡易表示します。
- カーソルキー
→←:隣の取得データに移動します。
- カーソルキー
- マウスクリック&ドラッグ:スクロール(拡大時のみ)
- 拡大時はスクロールバーによる操作も可能です。
[CSV出力]機能では、データベースに含まれるすべての取得値を表示します。
操作
| 操作 | 説明 |
|---|---|
| マウスドラッグ(グラフ部分) | 拡大時に表示サンプルの位置を移動します。 |
| マウスドラッグ(下部スクロールバー) | 表示サンプルの位置を移動します。 |
カーソルキー→ ← | サンプルの表示領域を移動させます。 |
カーソルキー↑ ↓ | サンプルの横軸を拡大・縮小します。 |
[ライブ] | 1秒刻みで最新のデータを表示するビューに移動します。 |
[24時間データ] | 1日単位のグラフに移動します。 |
[<<一覧] | 一覧選択画面に移動します。 |
[年] [月] [日] | 年月日で、特定の日を選択します。 |
[最新] | 今日のデータに移動します。 |
[CSV出力] | 1日分のデータをCSVファイルに出力します。 |
一覧で[表示] | リストの表示方式を変更します。 |
一覧で[ソート] | リストの並び順を変更します。 |
一覧で[↑] | リストの並び順を反転します。 |
センサーノードのメモ(補助情報)の編集
v1.3.9+「24時間データ画面」で、画面右上のセンサーノードのメモ部分を左クリックすると、メモを編集するためのプロンプトを使用できます。

センサーノードのメモを編集する様子(IMEオン)
| キー | 説明 |
|---|---|
| 通常の半角文字 | 通常の半角英数文字列を直接入力した場合は画面上にも表示されます。 |
| IME による入力 | IMEからの入力は画面左上部分に入力途上の文字列が表示されます。ENTERキーで入力中の文字列を確定します。 |
BS | 表示されている末尾の文字を削除します。 |
ENTER | 入力した文字列をデータベースに反映します。 |
IME入力時の操作方法は、システム環境に依存する場合があります。
また、IME入力時の操作によっては期待しない文字列が入力される場合があります。不要な文字列が入力エリアに表示された場合は BS キーで不要部分を削除してください。
画面遷移
基本の画面は一覧、24時間、ライブの3種類に分けられます。
[一覧] <--> [24時間] <--> [ライブ]
↓↑
[年月日選択]
センサーグラフモードの起動時に開く
[STAGE 共通設定 → 起動アプリ指定] にて 32 を指定してください。
DBのテーブルについて
sensor_data
受信したデータを格納します。
| カラム名 | 型 | 解説 |
|---|---|---|
_uqid | INTEGER | データベースで使用する続き番号 |
sid | INTEGERint32_t | int32_t 型で格納しているシリアル番号です。例えば “8123abcd” というシリアル番号の場合は整数値で -2,128,368,691 の値が格納されます。 |
ts | INTEGERint64_t | システムがパケットを受信した時刻で、int64_t 型で格納されるタイムスタンプ値です。UNIX epoch (エポック、1970年からの経過秒) です。 |
ts_msec | INTEGER | タイムスタンプのミリ秒部分です。 |
year | INTEGER | タイムスタンプよりローカル時間の年部分です。 |
month | INTEGER | タイムスタンプよりローカル時間の月部分です。 |
day | INTEGER | タイムスタンプよりローカル時間の日部分です。 |
hour | INTEGER | タイムスタンプよりローカル時間の時部分です。 |
lid | INTEGER | ユーザにより割り当てられた LID などの識別値です。 |
lqi | INTEGER | 受信強度の目安値です (Link Quality Indicator) 。 |
pkt_seq | INTEGER | パケットの続き番号です。どのような値を取りうるのかはファームウェアによって異なります。 |
pkt_type | INTEGER | 無線パケットの種別です。2 PAL AMB 6 ARIA 1 PAL MAG *3 PAL MOT 5 CUE 0x101 App_Twelite *0x103 App_IO*現時点で非対応 |
value | REAL | 計測値です(パケット種別によって定義が異なります)。pkt_type->2,6: 温度[°C]1: 磁石の判定有無 (00->磁石なし, 01->N極, 02->S極)3,5: X軸加速度(パケット中に複数サンプル含まれる場合は平均値)[G]0x101,103: 入力IOのビットマップ(val_dioの下位8ビットと同値) |
value1 | REAL | 計測値です(パケット種別によって定義が異なります)。pkt_type->2,6: 湿度[%]1: 未使用3,5: Y軸加速度(パケット中に複数サンプル含まれる場合は平均値)[G]0x101: ADC1[V]103: 未使用 |
value2 | REAL | 計測値です(パケット種別によって定義が異なります)。pkt_type->2: 照度[lx]6: 未使用1: 未使用3,5: Z軸加速度(パケット中に複数サンプル含まれる場合は平均値)[G]0x101: ADC2[V]103: 未使用 |
value3 | REAL | 計測値です(パケット種別によって定義が異なります)。pkt_type->2: 未使用6: 未使用1: 未使用3,5: 未使用0x101: ADC3[V]103: 未使用 |
val_vcc_mv | INTEGER | 電源電圧[mV] |
val_dio | INTEGERint32_t | b0..b7: DI1..DI8の値 (1はLOW, 0はHIGHレベル)b24..b25: マグネット値 (b28が1の場合) 00->磁石なし, 01->N極, 10->S極b28: 1の場合マグネットデータがb24..b25に格納されるb31: 定期送信ビット(マグネットのみ) |
val_adc1_mv | INTEGER | pkt_type->1,2,3,0x101: ADC1の計測値 |
val_adc2_mv | INTEGER | pkt_type->0x101: ADC4の計測値 |
val_aux | INTEGER | その他データ格納目的 |
ev_src | INTEGER | イベント発生元 |
ev_id | INTEGER | イベントIDpal_type->5: サイコロ(1...6)16→MOVE他資料参照 |
ev_param | INTEGER | イベントパラメータ |
sensor_node
センサーノードにテキストメモ(付加情報)を格納します。
| カラム名 | 型 | 解説 |
|---|---|---|
sid | INTEGER | 上述のSID |
sid_text | TEXT | 可読性のためにSIDを16進数に変換した文字列 |
desc | TEXTUTF-8 | SIDに対応するメモ(補助情報)。一覧などで表示する |
sensor_last
最後に受信したタイムスタンプを管理します。
| カラム名 | 型 | 解説 |
|---|---|---|
sid | INTEGER | 上述のSID |
ts | INTEGER | 最後の受信したときのタイムスタンプ |
lid | 以下、最後に受信時のデータの抜粋 | |
lqi | ||
pkt_type | ||
value | ||
value1 | ||
value2 | ||
value3 | ||
val_vcc_mv | ||
val_dio | ||
ev_id |