cbToCoNet_vRxEvent()

解説

無線パケット受信後に呼び出されます。引数に tsRxDataApp *psRx が渡されます、受信データ(パケットの中身、アドレス情報など)が格納されます。構造体は本コールバック関数の呼び出しスコープ内で有効で、一旦関数を抜けると値は保証されません。
頻繁に受信される場合は、本関数を終了を遅延すべきではありません。受信キューの解放が遅れ取りこぼしが発生するかもしれません。
受信パケットは、内部のMAC層の割り込みにより、FIFO キューに蓄積されます。アプリケーションループの制御下になったとき、このキューから取り出し、コールバック関数が実行されます。

引数

名前
詳細
psRx
受信されたデータが格納される。詳細は構造体の解説を参照。

戻り値

なし。

サンプル

1
// display packet content
2
void cbToCoNet_vRxEvent(tsRxDataApp *pRx) {
3
int i;
4
static uint16 u16seqPrev = 0xFFFF;
5
uint8 *p = pRx->auData; // pointer to the payload
6
7
// print control info
8
vfPrintf(&sSerStream, LB"[PKT Ad:%04x,Ln:%03d,Seq:%03d,Lq:%03d,Tms:%05d \"",
9
pRx->u32SrcAddr, // source address
10
pRx->u8Len, // payload size
11
pRx->u8Seq, // seq number
12
pRx->u8Lqi, // LQI
13
pRx->u32Tick & 0xFFFF); // time stamp
14
// print first 32 bytes
15
for (i = 0; i < pRx->u8Len; i++) {
16
if (i < 32) {
17
sSerStream.bPutChar(sSerStream.u8Device,
18
(pRx->auData[i] >= 0x20 && pRx->auData[i] <= 0x7f) ? pRx->auData[i] : '.');
19
} else {
20
vfPrintf(&sSerStream, "..");
21
break;
22
}
23
}
24
vfPrintf(&sSerStream, "C\"]");
25
}
Copied!
リンクのコピー