« TWELITE Device IDの設定 | トップページ | ロジアナ LA1010 »

2021年1月11日 (月)

TWELITE GUI Toolの準備というか練習

繰り返しテストを行うとなるとGUI Toolが欲しくなってくる。そこでPythonでGUI Toolを作ってみた。PySimpleGUIが便利との先人の知恵にならって作ってみた。

環境はWindows 10でエディタはVisual Studio Codeにした。最初はCentOSで構築を試みたけれど、PySimpleGUIがうまく動かなかった。CentOS7にはPython 2.7がDefaultでインストールされているが、PySimpleGUIはPython3を前提にしていて、Python 2.7用のPySimpleGUIをインストールしたりしたが上手く動かず、、、Python 3もインストールしてみたけれども、これもいろいろと問題があり(yumが動かなくなったり)。なのでWindows 10にした。よかったこととしてはVisual Studio Codeをつかってみたこと。これは便利だ。

さて、まず受信データの表示を実装した。これは画面描写のタイミングで最新の情報を表示するようにした。そのためCOMポートからデータを読み込むときにreset_input_buffer()を実行している。MONO STICKは1秒単位でデータを受信するので、どんどんCOMポートのBufferにデータがたまってしまう。アプリがCOMポートからデータを読み出しとしてもバッファされた過去のデータを読み出してしまった。このために最新のデータを表示したい(COMポートから読み出したい)ので一旦バッファをクリアしてから、その直後の受信データを読むわけだ。
しかし子機が複数になった場合、この方法ではどの子機のデータを読み出すかわからない。バッファをクリアしてから暫くCOMポートを連続読みして、すべての子機のデータを拾う必要がある(とりあえずこれは今後の課題)。

Outputtest

データ送信側はData Out Port 1(DO1)からPort 4 (DO4)まで個別に制御するようにボタン配置した。アプリ起動時はすべてのポートはHIGH (0)に初期化している。以後、それぞれのポートの操作は記録していて、いずれかのポートの値を変更したとしても、他のポートはそれ以前の値を保つようにしている。

PWMは1000HzでのDuty比を0から100まで設定する。ポート設定値は100で0x0400になる。これもどのポートに値をせっていするかボタン選択している。他のポートの設定値はそのまま維持するようにしている。なお、アプリ起動時の初期値はすべてゼロにしている。

結論:

PySimpleGUIは便利だ。Visual Studio Codeも便利だ。これを使わない手は無い。

CentOSでなやんで半日以上費やしてしまった。CentOS8でも試してみるか、、、、でもそれが目的ではないし。しかし、久しぶりに書くコードは汚くて古臭い、、、、とほほ。

« TWELITE Device IDの設定 | トップページ | ロジアナ LA1010 »

ツールの使い方」カテゴリの記事

TWELITE日記」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« TWELITE Device IDの設定 | トップページ | ロジアナ LA1010 »