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);
}
}
}
}
}