Closed5
M5Stackで波形表示-時系列波形
前回まででXYプロットの部品を作った。
逐次的にデータを追加して波形表示を更新する仕組みを作りたい。
素案:
クラス構成
-
main.c
画面領域のどこに波形を表示するか
ユーザ操作による軸設定の受付
時系列波形クラスの制御(データの追加、状態制御) -
時系列波形
利用者からデータを受け取りリングバッファに収める
描画更新状態になると別スレッドでリングバッファからの読み出しを開始し、2Dプロットに渡す -
リングバッファ
データの読み書きを受け付ける。マルチスレッドに耐えうる排他機構を設ける。 -
2Dプロット
データを受け取ったらスプライトに描画する。
最終的にはmain.cで管理する画面に描画しなければならないのでmain.cから予めコールバック関数を受け取っておき、スプライトへの描画完了時にコールバック関数を呼ぶ。
ChatGPTにコードレビューしてもらっている。
C++でオブジェクト指向チックに実装するとFreeRTOSの機能を使おうとした場合に然るべき迂回処置が必要となる。
参考:
右端に到達するまでは左からプロットし、右端に到達したら左にスクロールする様子。
ひとまずこれで完了とする。
このスクラップは2024/02/29にクローズされました