全てのページ
GitBook提供
1 / 2

Loading...

Loading...

DataTwelite

App_Twelite データ

TwePacketTweliteのデータ部分。

struct DataTwelite {
		//送信元のシリアル#
		uint32_t u32addr_src;
		
		// 送信元の論理ID
		uint8_t u8addr_src;

		// 宛先の論理ID
		uint8_t u8addr_dst;

		// 送信時のタイムスタンプ
		uint16_t u16timestamp;

		// 低レイテンシ送信時のフラグ
		bool b_lowlatency_tx;

		// リピート中継回数
		uint16_t u8rpt_cnt;

		// LQI値
		uint16_t u8lqi;

		// DIの状態 (true がアクティブ Lo,GND)
		bool DI1, DI2, DI3, DI4;
		// DIの状態ビットマップ (LSBから順にDI1,2,3,4)
		uint8_t DI_mask;

		// DIアクティブならtrue (過去にアクティブになったことがある)
		bool DI1_active, DI2_active, DI3_active, DI4_active;
		// DIのアクティブビットマップ(LSBから順にDI1,2,3,4)
		uint8_t DI_active_mask;

		// モジュールの電源電圧[mV]
		uint16_t u16Volt;

		// AD値 [mV]
		uint16_t u16Adc1, u16Adc2, u16Adc3, u16Adc4;
		// ADがアクティブ(有効)なら 1 になるビットマップ (LSBから順にAD1,2,3,4)
		uint8_t Adc_active_mask;
};

TwePacketTwelite

TwePacketTweliteクラスは、標準アプリApp_Tweliteの0x81コマンドを解釈したものです。

class TwePacketTwelite : public TwePacket, public DataTwelite { ... };

パケットデータ内の諸情報はparse()実行後にDataTweliteに格納されます。

spTwePacketからの参照

TwePacketTwelite& refTwePacketTwelite(spTwePacket& p)

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

実行例

if (parse_ascii) { // アスキー形式のパーサーの解釈完了
  auto&& pkt = newTwePacket(parse_ascii.get_payload());
		
	if (identify_packet_type(pkt) == E_PKT::PKT_TWELITE) { // パケット解釈成功時
	  auto&& x = refTwePacketTwelite(pkt);
		  
		the_screen // LCDスクリーン上のターミナルに情報を表示
				<< printfmt(":Lq=%d:Ad=%08X", x.u8lqi, x.u32addr_src)
				<< printfmt(":ID=%02X", x.u8addr_src)
				<< printfmt(":DI=%04b", x.DI_mask)
				;
	}
}