packet_rx
packet_rx
このクラスはTWENETの
tsRxDataApp
構造体のラッパークラスです。packet_rx
では、特にパケットのデータペイロードをsmplbuf
コンテナで取り扱えるようにし、expand_bytes()
などのユーティリティ関数によりペイロードの解釈記述を簡素化しています。現時点では、シンプル中継ネットワーク
<NWK_SIMPLE>
で必要とされるものを中心にメソッド等のインタフェースを実装しています。smplbuf_u8_attach& get_payload()
パケットのデータペイロードを取得する。
<NWK_SIMPLE>
を用いた場合は、先頭に<NWK_SIMPLE>
用のヘッダデータがあります。戻りとして参照されるコンテナは、このヘッダ部分を除いた部分配列になります。ヘッダ部分まで参照したいときはget_psRxDataApp()
によりtsRxDataApp
構造体を参照してください。const tsRxDataApp* get_psRxDataApp()
TWENET Cライブラリの受信構造体を得る。
uint8_t get_length()
ペイロードのデータ長を返す。
.get_payload().size()
と同じ値になる。uint8_t get_lqi()
LQI値 (Link Quality Indicator)を得る。
LQIとは電波通信品質を示す値です。0から255までの数値で表されます。
ちなみに、いくつかの段階で評価する場合は、50未満(悪い -80dbm 未満)、50~100(やや悪い)、100~150(良好)、150以上(アンテナの近傍)といった区分けも可能です。これらは目安である点にご留意ください。
uint32_t get_addr_src_long()
uint8_t get_addr_src_lid()
送信元のアドレスを得る。
get_addr_src_long()
は送信元のシリアル番号で、MSB(bit31)が必ず1になります。get_addr_src_lid()
は送信元の論理IDで0x00
-0xFE
までの値をとります(<NWK_SIMPLE>
で指定する論理IDです)。uint32_t get_addr_dst()
宛先アドレスを得ます。
宛先アドレスは、送信元で指定 され、宛先の種別によって値の範囲が変わります。
値 | 解説 |
---|---|
MSB(bit31)がセットされている | 宛先としてシリアル番号を指定しています。 |
0x00 -0xFF | 宛先として論理ID(8bit)が指定されています。 |
bool is_secure_pkt()
暗号化パケットの場合は
true
を返し、平文の時はfalse
を返します。uint8_t get_network_type()
ネットワークビヘイビアで識別されるパケットのネットワ ークタイプを返す。
値 | 解説 |
---|---|
mwx::NETWORK::LAYERED | <NWK_LAYERED> からのパケット |
mwx::NETWORK::SIMPLE | <NWK_SIMPLE> からのパケット |
mwx::NETWORK::NONE | ネットワークを介さないパケット (App_Tweliteなど) |
その他 | エラーまたは識別できないパケット |
最終更新 1yr ago