ToCoNet_Tx_vProcessEventQueue()

解説

無線パケット送信要求を速やかに処理する。
本関数は ToCoNet_bMacTxReq() 要求直後に呼び出すことで、送信要求を速やかに処理します。この要求を行わない場合は、システムタイマー (デフォルト 4ms) のタイミングで無線送信が処理されます。
速やかに無線送信されるのは、その時点で処理されている送信要求が存在せず、かつ、該当する送信要求に送信遅延が設定されていない場合です。例えば、送信完了を待って、連続的に送信をするような場合に有効です。

引数

なし

戻り値

なし

サンプル

1
/* 送信完了を待って次のパケット要求を行う */
2
void cbToCoNet_vTxEvent(uint8 u8CbId, uint8 bStatus) {
3
if (sAppData.bOnTx) { // 送信中のフラグ
4
vTransmit();
5
}
6
return;
7
}
8
9
static void vTransmit() {
10
_C {
11
// transmit Ack back
12
tsTxDataApp tsTx;
13
memset(&tsTx, 0, sizeof(tsTxDataApp));
14
15
tsTx.u32SrcAddr = ToCoNet_u32GetSerial(); // 自身のアドレス
16
tsTx.u32DstAddr = 0xFFFF; // ブロードキャスト
17
18
tsTx.bAckReq = FALSE;
19
20
tsTx.u8Retry = 0; // 再送なし
21
tsTx.u16DelayMin = 0;
22
tsTx.u16DelayMax = 0;
23
tsTx.u16RetryDur = 0; // 遅延は0で速やかに送信
24
25
// ペイロード生成など
26
...
27
28
// 送信
29
if (ToCoNet_bMacTxReq(&tsTx)) {
30
// 送信要求が受け付けられたら速やかに処理する。
31
ToCoNet_Tx_vProcessQueue();
32
}
33
}
34
}
Copied!
リンクのコピー