Format Parser
TWELITE PAL の親機出力形式を解釈するコードです。
Version 1.0 では書式フォーマットの解釈を VB.NET にて実装していましたが、v1.2 では C# による実装となりました。
当アプリのビルドでは PAL_PARSER プロジェクト(ターゲットフレームワーク .NET Framework 4, クラスライブラリ)が該当し、VB.NET 側の PAL_VIEWER プロジェクトから参照関係になっています。
本書では VB からの呼び出し例として記載します。
TWELITE PAL / ARIA / CUE の無線パケットは App_Wings を書き込んだ MONOSTICK などで受信します。この受信データは
:80000...<CR><LF>
といった電文で、データ量も多く複数の形式になるためデータの取り出しが容易では有りません。ここでは .NET 開発環境家で、この解釈処理を行うためのライブラリについて解説します。PAL の書式フォーマットの構造は、大まかには、共通データ部とセンサーデータ部に分別されます。センサーデータ部は[センサーデータ]のブロックが並んでいる構造で、PALの種別などによって数と種類は変わります。
[共通ヘッダ]{[センサーデータ1][センサーデータ2]...[センサーデータn]}
以下に挙げた関数とクラスを受信データ解釈に用います。
関数とクラス | 解説 |
---|---|
PAL_Utils.genDataPresentation() | データ列の解釈を行う |
ClsDataFormatPalApp | 共通ヘッダ部の解釈データ |
ClsDataPayloadPalSensors | センサーデータ部 |
以下のソースコードにより PAL 親機より出力されるデータを解釈します。
ファイル名 | 内容 |
ITweDataPresentation.cs | UART 電文のエンコード(ASCII 書式)を解釈する。解釈ができれば、ITweDataFormat による解釈も行う。 |
ClsDataPresentationAscii.cs | ASCII書式 :800...<CR><LF> の解釈。 |
ITweDataFormat.cs | 上記 ASCII 書式で解釈されたデータ書式を表現する(アドレス情報など共通情報や、データ書式内のデータ構造など)。また書式を解釈後、ITweDataPayloadを生成する。 |
ClsDataFormatPAL.cs | PAL のデータ書式を解釈する。 |
ITweDataPayload.cs | センサー情報など各データを表現する。 |
ClsDataPayloadPalSensors.cs | SENSE PAL の個別センサーの集約データ型。 |
ClsDataPalSenseElement.cs | SENSE PAL の単独センサーのデータ型。 |
MUtils.cs | ITWE??? 抽象型より、適切なクラスの生成を行うジェネレータや、諸ユーティリティ。 |
上記は Visual Studio (2019を想定) で、プロジェクト定義されたライブラリなどを参照する手順です。詳細はマニュアルや一般の情報を参照ください。
- 1.PAL_PARSER ディレクトリを開発プロジェクト配下の適当な場所にコピーします。
- 2.Visual Studio の[ソリューション]にPAL_PARSER プロジェクトを追加します。
- 3.開発プロジェクト中のプロジェクト[プロパティ]>[参照設定]にPARL_PARSERを追加します。
- 4.