packet_rx

packet_rx

このクラスはTWENETのtsRxDataApp構造体のラッパークラスです。

このクラスオブジェクトは、ビヘイビアのコールバック関数またはon_rx_packets()により取得できます。

packet_rxでは、特にパケットのデータペイロードをsmplbufコンテナで取り扱えるようにし、expand_bytes()などのユーティリティ関数によりペイロードの解釈記述を簡素化しています。

現時点では、シンプル中継ネットワーク<NWK_SIMPLE>で必要とされるものを中心にメソッド等のインタフェースを実装しています。

メソッド

get_payload()

smplbuf_u8_attach& get_payload()

パケットのデータペイロードを取得する。

<NWK_SIMPLE>を用いた場合は、先頭に<NWK_SIMPLE>用のヘッダデータがあります。戻りとして参照されるコンテナは、このヘッダ部分を除いた部分配列になります。ヘッダ部分まで参照したいときはget_psRxDataApp()によりtsRxDataApp構造体を参照してください。

get_psRxDataApp()

const tsRxDataApp* get_psRxDataApp() 

TWENET Cライブラリの受信構造体を得る。

get_length()

uint8_t get_length()

ペイロードのデータ長を返す。.get_payload().size()と同じ値になる。

get_lqi()

uint8_t get_lqi()

LQI値 (Link Quality Indicator)を得る。

LQIとは電波通信品質を示す値です。0から255までの数値で表されます。

ちなみに、いくつかの段階で評価する場合は、50未満(悪い -80dbm 未満)、50~100(やや悪い)、100~150(良好)、150以上(アンテナの近傍)といった区分けも可能です。これらは目安である点にご留意ください。

get_addr_src_long(), get_addr_src_lid()

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です)。

get_addr_dst()

uint32_t get_addr_dst()

宛先アドレスを得ます。

宛先アドレスは、送信元で指定され、宛先の種別によって値の範囲が変わります。

解説

MSB(bit31)がセットされている

宛先としてシリアル番号を指定しています。

0x00-0xFF

宛先として論理ID(8bit)が指定されています。

is_secure_pkt()

bool is_secure_pkt()

暗号化パケットの場合は true を返し、平文の時はfalse を返します。

get_network_type()

uint8_t get_network_type() 

ネットワークビヘイビアで識別されるパケットのネットワークタイプを返す。

解説

mwx::NETWORK::LAYERED

<NWK_LAYERED> からのパケット

mwx::NETWORK::SIMPLE

<NWK_SIMPLE> からのパケット

mwx::NETWORK::NONE

ネットワークを介さないパケット (App_Tweliteなど)

その他

エラーまたは識別できないパケット

最終更新