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提供
このページ内
  • spTwePacketからの参照
  • 実行例
PDFとしてエクスポート
  1. References
  2. Parser
  3. TWEFMT
  4. Packet Types

TwePacketActStd

TwePacketActStdクラスは、アクト(Act)のサンプルなどの無線パケットを親機・中継器アプリApp_Wingsで受信したときの形式です。(App_UARTの拡張形式とほぼ同じになります)

class TwePacketActStd : public TwePacketAppUART

spTwePacketからの参照

TwePacketActStd& refTwePacketActStd(spTwePacket& p)

spTwePacketオブジェクトからTwePacketActStdオブジェクトを参照します。spTwePacketにTwePacketActStd以外が格納されている場合は、未解釈のオブジェクトを戻します。

実行例

if (parse_ascii) { // アスキー形式のパーサーの解釈完了
  auto&& pkt = newTwePacket(parse_ascii.get_payload());
    
    if (identify_packet_type(pkt) == E_PKT::PKT_ACT_STD) { // パケット解釈成功時
      auto&& x = refTwePacketActStd(pkt);
      
  		the_screen // LCDスクリーン上のターミナルに情報を表示
  				<< printfmt(":Lq=%d:Ad=%08X", x.u8lqi, x.u32addr_src)
  				<< printfmt(":ID=%02X", x.u8addr_src)
  				;
  
      if (x.payload.length() > 5) {
        auto p = act.payload.begin();
        
        // 先頭4バイトはActコードで無線パケット先頭に設定した4文字アルファベット
        the_screen << ":FOURCC=";
        for(int i = 0; i < 4; ++i, ++p)
            the_screen << printfmt("%c", *p);
        
        // 残りはHEXで表示(Actコードごとによって違う)
        the_screen << ":DATA=";
        for(; p != x.payload.end(); ++p) {
    			the_screen << printfmt("%02X", *p);
    		}
      }
    }
  }
}
前へPalMot次へDataAppUART (Act用)

最終更新 4 年前