Python Instrument Panel(8)操作説明ーグラフ


Androidアプリ「GUI Maker for ESP8266 & ESP32 – Python Inst. Panel」のグラフ描画アイテム、PlotView の説明です。

2017/10/15 追記:横軸時刻のグラフに変更しました。

をタップして編集モードにします。

をタップして新規パネルを追加します。PlotViewアイテムのIndexは7です。

をタップして実行モードにします。

先ずは、ExecCodeアイテムを使って説明します。スクリプト完成後にTimerアイテムのScriptプロパティに入力します。

ExecCodeアイテムにPythonコードを入力してAndroidの入力画面を閉じると、入力したコードが実行されます。

 

ExecCodeアイテムのPythonコードを次のように書き換えてAndroidの入力画面を閉じます。

Items[7].AddData(10)
Items[7].AddData(30)
Items[7].AddData(20)
Items[7].Invalidate()

次に、Pythonコードを実行するたびに1つデータを追加して、データが11個になるときは一番古いデータを削除してから追加するように書き換えます。ダミーデータとして現在時刻の秒を追加します。横軸に時間を表示するために AddData(DateTime.Now, dummyData) のようにダミーデータと一緒に現在時刻も渡します。

if Items[7].DataCount > 10:
	Items[7].RemoveData()
dummyData = DateTime.Now.Second
Items[7].AddData(DateTime.Now, dummyData)
Items[7].Invalidate()

 

横軸を時刻にするため、Panel setup scriptでPloyViewのStringFormatプロパティをセットします。

横軸が時刻になりました。

完成したPythonコードをTimerアイテムのScriptプロパティに入力します。

をタップして編集モードにし、TimerアイテムのScriptプロパティに入力します。データ数の上限を10から100に変更します。Valueプロパティを1にしてTimerを有効にします。Intervalプロパティを0.1にします。

をタップして実行モードにします。

 

次に、TimerをOn/OffするButtonと、グラフをクリアするButtonを追加します。

をタップして編集モードにします。Index 2のInputFieldアイテムのItemTypeをButtonに変更します。

Index 1のButtonアイテムのTextプロパティを”Start/Stop”に、Index 2のButtonアイテムのTextプロパティを”Clear”に変更します。

Index 1のButtonアイテムのScriptプロパティ:

if Items[6].Value == 0:
	Items[7].ClearData()
	Items[7].Invalidate()
	Items[6].Value = 1
else:
	Items[6].Value = 0

Index 2のButtonアイテムのScriptプロパティ:

Items[7].ClearData()
Items[7].Invalidate()

使わないアイテムを削除して完成です。