Lazurite Linux用API日本語リファレンス


read()またはread(*raw,*size)


詳細

  クラス
namespace
関数名
共有ライブラリ lazurite int lazurite_read (void* raw, uint16_t* size)
Ruby LazGem LazGem.read()
Python PyLaz PyLaz.read
JAVA Liblzaurite int Liblazurite.read (byte[] raw, short[] size)

 

機能

データの読み出しを行います。readはパケット単位での読み出しとなります。

readをするとドライバ内にバッファされている一番古いパケットを返します。ドライバは読み出しが完了したパケットのデータを廃棄を破棄し、そのデータ受信時のRSSIや時刻情報を読み出しできるようにします。

共有ライブラリ、JAVA

読み出すデータはrawに格納され、データ長はsizeに格納されます。
データを格納するメモリとして関数を呼び出す前にメモリ領域を256バイト確保し、その先頭ポインタを関数の引数にしてください。

Ruby、Python

読み出したデータは戻り値として返します。RubyはHASH型、PythonはDIC型を渡しますので、必要な要素を取り出して使用してください。

 

パラメータ (共有ライブラリ、JAVA)

raw

rawデータを格納するメモリのポインタを渡します。
256バイト以上を確保してください。

size

rawデータのサイズを返しますshort型のポインタを渡してください

戻り値

共有ライブラリ、JAVA

0以上  受信したデータのバイト数
0        データなし
0以下  エラー

Python

DIC型のデータを返します。データを受信しないときは空のデータを返します。

Ruby

0                       データを受信していません
HASH型データ    受信したデータを返します

例外(Javaのみ)

IOException  失敗

Ruby, Pythonの受信データフォーマット

HASH/DIC型でデータを返します。以下に示すkeyを含んでいます。

データ 用途
header 16bitのMACヘッダ情報です
frame_type MACヘッダ内のframe_typeを抽出したデータです
sec_enb MACヘッダ内のsec_enbフラグを抽出したデータです
pending MACヘッダ内のpendingフラグを抽出したデータです
ack_req MACヘッダ内のACKフラグを抽出したデータです
panid_comp MACヘッダ内のPANID_COMPフラグを抽出したデータです
seq_comp MACヘッダ内のseq_compフラグを抽出したデータです
ielist MACヘッダ内のielistフラグを抽出したデータです
tx_addr_type  MACヘッダ内のtx_addr_typeフラグを抽出したデータです
frame_ver MACヘッダ内のframe_verフラグを抽出したデータです
rx_addr_type  MACヘッダ内のrx_addr_typeフラグを抽出したデータです
seq_num IEEE802154eのシーケンサ番号です
addr_type アドレスのタイプを0~7で示したデータです。
rx_panid 受信側PANIDのデータです。
rx_addr  受信アドレスです。
tx_panid 送信側PANIDのデータです。
tx_addr 送信アドレスです。
payload  rawデータの中でpayloadが格納されているオフセットアドレスを示します。
sec データを受信した時間(秒)を示します。1971年1月1日 0時0分0秒を0とする時間です。
nsec 受信した時刻のnsec単位の時間を示します。
rssi 受信したデータのrssiを示します