引き続き、Nextion 2.4 インチ版をいじっています。
「Nextion」を使いこなせるのだろうか?と疑問を持ちつつ、電機屋の毎日で解説されている「使い方」を見ながら、プログラムを確認していきます。
先ずはサンプルとして「TP1.HMI」をダウンロードして、観察します。
ポイントボタン1(bt0)のEVENT欄のコマンドは以下。
print "setTurnout("
print "14336,"
cov bt0.val,va0.txt,0
print va0.txt
print ")"
printh 0d 0a
先ず、解らないのは3行目の「COV~」の所と、6行目の「0d 0a」の所。
調べてみると、0d 0aとは「改行コード」の事でした。ふむふむ、終わりに必ず入れると仕様書に書いてあるな。
つまり、「printh 0d 0a」は全てのコマンド末尾に必要です。
次に、「COV~」の方は、コマンドなのですが、英語では何の事だか全く分からず。
翻訳を掛けると、「数値からテキスト、またはテキストから数値に変換します。」だそうな。
ここでは、ボタン「bt0」の「Attribute欄」の「val」項の数値「0」をテキストに変換している様だ。
ここまでで解かったこと。
1行目でコマンドを送信、2行目でパラメータ1(アドレス)を送信、3行目でパラメータ2用のテキストを用意し、4行目でパラメータ2を送信ののち、5行目で括弧を閉じ、6行目で改行する。
という流れです。
続いて、ポイントボタン2(bt1)のEVENT欄のコマンドは以下。
print "setTurnout("
print "14337,"
cov bt0.val,va0.txt,0
print va0.txt
print ")"
printh 0d 0a
ポイントボタン2~10(bt1~bt9)のEVENT欄のコマンドを見ると、はて、2行目の数値以外同じだなぁ?これで良いのか??と思いつつも、試しにアップロードして、動作確認してみます。
すると、ポイント1以外は正しく動いていない様です。何てこと有りませんでした、2行目のアドレス数値は個別に設定されていましたが、ポイントボタン2~10(bt1~bt9)のコマンドが参照しているのは、1番のポイントボタン1「bt0」の「VAL」項だったという事でした。2~10のコマンドを、それぞれ「bt1~bt9」に修正すると、全てのポイントボタンが正常に機能しました。
この事で少しばかりコツが掴めました
次に電源ON/OFFボタン(bt10)を追加してみる事に。
Toolbox欄より「Dual-state button」を選択、画面上に適当に配置し、画像を拝借して割り当てました。コマンドも仕様表を観察の上、設定しました。
print "setPower("
cov bt10.val,va0.txt,0
print va0.txt
print ")"
printh 0d 0a
コマンド内のパラメータは1個のみ。ポイント同様に2行目でボタン10(bt10)のvalをテキストに変換しています。
アップロードすると、設定通りにボタンは配置されている様です。試しにタッチしてみると、画面上では問題無く表示画像が切り替わっています。
表示はOKですが、コマンドが間違っていないか心配であります。
次にDSoneR3に接続して、動作確認してみます。
さあ、動いてください。
動作確認はこんな感じです。
何とか動いてくれました。
送信処理だけなら、どうにかなりそうな気がしてきました。
全体のボタン配置を考え、ボタン画像を用意しなければなりません。
作成には、たいそう時間がかかりそうです。
これなら、LCD窓とビス穴4個の開口だけで、スタンダードSのケースを再利用する事が出来そうです。(タクトSWの穴は、適当に開けると後が面倒なので、無いに越した事は有りません。)