Format Parser
TWELITE PAL の親機出力形式を解釈するコードです。
最終更新
TWELITE PAL の親機出力形式を解釈するコードです。
最終更新
TWELITE PAL 親機の書式フォーマットを解釈しています。多くはその定義に従います。
以下のソースコードにより PAL 親機より出力されるデータを解釈します。
本プロジェクトに含まれる他のソースコードに依存している場合があります。
TWELITE PAL Viewer では、SerialPort1
の .DataRecieved
イベントを起点として、書式の解釈が行われます。
以下のコード例では、CSnsData
クラスにデータをコピーしています。
まず、解釈のために文字列をバイト列に変換して、genDataPresentation()
により、データ解釈を行います。実行後、解釈済みのClsDataPresentationAscii
オブジェクトが生成されます。
続いて、データ書式、センサー情報を取り出します。dataFmt
はデータ書式で、アドレス情報などを得ることができます。dataPay
はセンサー情報で複数のセンサーの情報をひとまとめにしています。
データ書式(ClsDataFormatPalApp
)で得られる情報を列挙します。
次にセンサーの情報を得ます。dataPay.SensoerCode()
により、センサーの種別を指定して情報を得ることができます。戻り型はList(Of ClsDataPalSenseElement)
で、0個以上の要素が格納されます(Nothingにはならない)。ここでは電圧関連(ClsDataPalSenseElement.E_SNSCD.VOLT
)のリストを探索します。
ここでは、電源電圧(ClsDataPalSenseElement.E_EXCD_VOLT.POWER
)の情報が欲しいので、リストの中にあるか探索します。
このクラスは、各センサーの単一のデータを表現します。以下にデータの取り出しのためのプロパテを列挙します。
センサーの種別を調べるための列挙型ClsDataPalSenseElement.E_SNDCD
の定義は以下です。
電圧センサーの種別を特定するための列挙型ClsDataPalSenseElement.E_EXCD_VOLT
は以下です。
ファイル名
内容
ITweDataPresentation.vb
UART 電文のエンコード(ASCII 書式)を解釈する。解釈ができれば、ITweDataFormat による解釈も行う。
ClsDataPresentationAscii.vb
ASCII書式 :800...<CR><LF>
の解釈。
ITweDataFormat.vb
上記 ASCII 書式で解釈されたデータ書式を表現する(アドレス情報など共通情報や、データ書式内のデータ構造など)。また書式を解釈後、ITweDataPayloadを生成する。
ClsDataFormatPAL.vb
PAL のデータ書式を解釈する。
ITweDataPayload.vb
センサー情報など各データを表現する。
ClsDataPayloadPalSensors.vb
SENSE PAL の個別センサーの集約データ型。
ClsDataPalSenseElement.vb
SENSE PAL の単独センサーのデータ型。
MDataGenerator.vb
ITWE??? 抽象型より、適切なクラスの生成を行うジェネレータや、諸ユーティリティ。
MSingedConverter.vb
VB では unsinged 型から signed 型への直接的なキャストができないため、そのための言語拡張。
名前
内容
BLQI
Byte
LQI(受信感度相当)情報
UsDataSer
UShort
続き番号
BBalPCB
Byte
SENSE PAL 種別識別子
BSrcAddr
Byte
SENSE PAL の論理ID
UiSrcAddr
UInteger
SENSE PAL のアドレス
UiRepeater
UInteger
配送経路(&H80000000UI なら直接、それ以外の場は最後に配送した中継器のアドレス)
※ PAL アプリの設定によって中継器のアドレスの定義は変化します。
名前
型
内容
IsError
Boolean
データエラーの場合は True となる。
ErrorCode
Byte
エラーコードが入ります。
Data
Object
センサーのデータを格納します。エラーなどで Nothing になる場合があります。データについては要素数が1つであっても配列型となります。 例えば Byte型のデータが一つだけ含まれる場合であっても Byte(0) で宣言された配列オブジェクトとなります。
SensorCode
Byte
センサー種別が入ります。
Ex
Byte
拡張データが入ります。主に電圧情報など、センサー種別が同じでも、複数ある場合に使われます。
名前
内容
HALL
開閉磁気センサー
TEMP
温度センサー
HUMD
湿度センサー
LUMI
照度センサー
VOLT
電圧
名前
内容
POWER
電源電圧
ADC1
ADC1