標準アプリケーション
TWELITE DIPに工場出荷時に書き込まれている標準アプリ(App_Twelite)のシリアルメッセージを解釈してLCD画面上に表示します。
M5stickに接続する前に書き込んだTWELITE DIPが無線パケットを受信してデータを出力するかPCで確認しておいてください。
M5Stack側のTWELITE DIPは、以下のような接続をしておきます。以下の配線はTWELITE DIPを親機設定(M1=GND)とした配線をしています。AI1-4はアナログポートがオープンになり不定な入力を防ぐためです(App_TweliteではVCCレベルを入力した場合、そのポートを未使用とする意味を持たせています)
シリアルポートの初期化を行っています。
LCDスクリーンの初期化を行います。処理の内容はscreen.cにあり、ターミナル画面の初期設定を行います。
シリアルポートの入力チェックを行います。入力したデータを the_input_uart
キューにいったん投入します。
シリアルポートから入力データを処理します。ここではパーサーに文字列を投入します。パーサーによりシリアル電文が解釈できた場合は、update_screen()
を呼び出しターミナル画面に文字を更新します。
LCD画面上のターミナル画面領域を書き換えます。処理の内容はscreen.cにあります。
受信したパケットデータを読み取り、画面表示を更新します。
この関数内ではエスケープシーケンスを用いて画面の表示位置などを制御しています。
パケットデータはspLastPacket
に格納されています。これの内容を紐解くにはretTwePacketTwelite()
を呼び出します。xの値を読み出して、これに対応して画面を更新します。
TWELITE PAL
TWELITE PAL のパケットデータの表示を行います。
TWELITE PALの親機用ファームウェア(App_PAL-Parent-BLUE.binまたはApp_PAL-Parent-RED.bin)をTWELITE DIPにあらかじめ書き込んでおきます。
M5Stackに接続する前に書き込んだTWELITE DIPが無線パケットを受信してデータを出力するかPCで確認しておいてください。
M5Stack側のTWELITE DIPは、以下のような接続をしておきます。
シリアルポートの初期化を行っています。
LCDスクリーンの初期化を行います。処理の内容はscreen.cにあり、ターミナル画面の初期設定を行います。
パケットデータの管理クラスの初期化を行います。
シリアルポートの入力チェックを行います。入力したデータを the_input_uart
キューにいったん投入します。
シリアルポートから入力データを処理します。ここではパーサーに文字列を投入します。パーサーによりシリアル電文が解釈できた場合は、update_screen()
を呼び出しターミナル画面に文字を更新します。
LCD画面上のターミナル画面領域を書き換えます。処理の内容はscreen.cにあります。
入力データの管理と表示を行う関数です。
このクラスでは、パケットデータに含まれる送信元論理IDごとのspTwePacket
データを保存しています。新しいデータを受信したら都度更新します。
画面表示は論理ID1から順に、最後のデータまで1行ずつ表示します。1画面に収まらない場合は、次のページに表示します。
init_screen()
は初回の初期化を行います。fmt_status
は上部タイトルエリアへの出力文字を指定します。
フォント変更などで画面サイズに変化があった場合はreinit_screen()
を呼び出します。
受信パケットデータを登録します。内部的にはIDに対応したspTwePacket
の配列に値を入れます。
ページ設定を行います。画面の更新をするため、直後にupdate_term()
を呼び出します。
set_page()
はentry
に対応する論理IDが含まれるページに移動します。
上部タイトルエリアの文字列を再設定します。
ターミナル画面の表示文字列の更新を行います。
パラメータなしで呼び出すか、update_all=trueで呼び出すと、ターミナル全体の再描画を行います。
pal_upd
を指定しupdate_all=false
の場合は、pal_upd
の表示行のみを更新します。