PAL_Recv

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は、以下のような接続をしておきます。

setup()

シリアルポートの初期化を行っています。

LCDスクリーンの初期化を行います。処理の内容はscreen.cにあり、ターミナル画面の初期設定を行います。

パケットデータの管理クラスの初期化を行います。

loop()

シリアルポートの入力チェックを行います。入力したデータを the_input_uart キューにいったん投入します。

シリアルポートから入力データを処理します。ここではパーサーに文字列を投入します。パーサーによりシリアル電文が解釈できた場合は、update_screen()を呼び出しターミナル画面に文字を更新します。

LCD画面上のターミナル画面領域を書き換えます。処理の内容はscreen.cにあります。

pkt_data

入力データの管理と表示を行う関数です。

このクラスでは、パケットデータに含まれる送信元論理IDごとのspTwePacketデータを保存しています。新しいデータを受信したら都度更新します。

画面表示は論理ID1から順に、最後のデータまで1行ずつ表示します。1画面に収まらない場合は、次のページに表示します。

init_screen(), reinit_screen()

init_screen()は初回の初期化を行います。fmt_statusは上部タイトルエリアへの出力文字を指定します。

フォント変更などで画面サイズに変化があった場合はreinit_screen()を呼び出します。

add_entry()

受信パケットデータを登録します。内部的にはIDに対応したspTwePacketの配列に値を入れます。

next_page(), prev_page(), set_page()

ページ設定を行います。画面の更新をするため、直後にupdate_term()を呼び出します。

set_page()entryに対応する論理IDが含まれるページに移動します。

update_status()

上部タイトルエリアの文字列を再設定します。

update_term()

ターミナル画面の表示文字列の更新を行います。

パラメータなしで呼び出すか、update_all=trueで呼び出すと、ターミナル全体の再描画を行います。

pal_updを指定しupdate_all=falseの場合は、pal_updの表示行のみを更新します。

最終更新