MWM5 Library
1.0
1.0
  • The MWM5 Library / TWELITE STAGE
  • Changes & Download
  • License
  • Getting started
    • Environment
    • Building
    • Hardware
    • Examples
      • AppTwelite_Recv
      • PAL_Recv
    • Examples (console)
      • glancer_con
    • Using Library
      • Parser
      • Terminal
  • References
    • the_app
    • Parser
      • TWESERCMD
        • IParser
        • AsciiParser
      • TWEFMT
        • TwePacket, spTwePacket
          • E_PKT
          • idenify_packet_type()
          • newTwePacket()
          • refTwePacket()
        • Packet Types
          • TwePacketAppIO
            • DataAppIO
          • TwePacketPal
            • DataPal
            • E_PAL_PCB
            • E_PAL_DATA_TYPE
            • E_CAUSE
            • PalEvent
            • PalDataInfo
            • PalBase
              • PalMag
              • PalAmb
              • PalMot
          • TwePacketActStd
            • DataAppUART (Act用)
          • TwePacketTwelite
            • DataTwelite
          • TwePacketAppUart
            • DataAppUART
    • Terminal
      • TWETERM
        • ESC Sequence
        • TermAttr
        • ITerm
        • TWETerm_M5_Console
      • TWEFONT
        • FontDef
        • createFont???()
        • drawChar()
        • queryFont()
    • Basics
      • TWE
        • IStreamOut
        • Print Formatted
      • TWEUTILS
        • FixedQueue
        • InputQueue
        • SimpleBuffer
          • SmplBuf_Byte
          • SmplBuf_ByteL<N>
          • SmplBuf_ByteSL<N>
          • SmplBuf_WChar
          • SmplBuf_WCharL<int>
GitBook提供
このページ内
PDFとしてエクスポート
  1. References
  2. Parser
  3. TWEFMT
  4. Packet Types
  5. TwePacketPal

DataPal

PAL共通データ

PALは接続されるセンサーなどによってパケットデータ構造が異なりますが、DataPalでは共通部のデータ構造を保持します。

struct DataPal {
	uint8_t u8lqi;        // LQI値

	uint32_t u32addr_rpt; // 中継器のアドレス

	uint32_t u32addr_src; // 送信元のアドレス
	uint8_t u8addr_src;   // 送信元の論理アドレス

	uint16_t u16seq;      // シーケンス番号

	E_PAL_PCB u8palpcb;		// PAL基板の種別
	uint8_t u8pkt_type;  // Packet タイプ (0:PalDataInfo付, 1:シンプル)
	uint8_t u8sensors;		// データに含まれるセンサーデータの数 (MSB=1はエラー)
	uint8_t u8snsdatalen; // センサーデータ長(バイト数), MSB=1は動的確保

	uint8_t au8snsdata[32]; // センサーデータ(解釈前の生データ)
	std::unique_ptr<uint8_t[]> uptr_snsdata; // センサーデータ(動的確保)
};

PALのパケットデータ構造は大まかに2つのブロックからなり、全てのPAL共通部と個別のデータ部になります。個別のデータ部は、パケットの解釈を行わずそのまま格納しています。取り扱いを単純化するため32バイトを超えるデータは動的に確保するuptr_snsdataに格納します。

個別のデータ部は、PalBaseをベースクラスに持つ構造体に格納されます。この構造体は、TwePacketPalに定義されるジェネレータ関数により生成されます。

u8pkt_typeが0の時はPalDataInfoデータ構造が付与された形式となります。比較的複雑な情報を格納するための形式です。1の場合はPAL基板ごとに決められた標準的な形式でデータが格納されています。

前へTwePacketPal次へE_PAL_PCB

最終更新 4 年前