Links

ToCoNet_Tx_vProcessEventQueue()

解説

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

引数

なし

戻り値

なし

サンプル

/* 送信完了を待って次のパケット要求を行う */
void cbToCoNet_vTxEvent(uint8 u8CbId, uint8 bStatus) {
if (sAppData.bOnTx) { // 送信中のフラグ
vTransmit();
}
return;
}
static void vTransmit() {
_C {
// transmit Ack back
tsTxDataApp tsTx;
memset(&tsTx, 0, sizeof(tsTxDataApp));
tsTx.u32SrcAddr = ToCoNet_u32GetSerial(); // 自身のアドレス
tsTx.u32DstAddr = 0xFFFF; // ブロードキャスト
tsTx.bAckReq = FALSE;
tsTx.u8Retry = 0; // 再送なし
tsTx.u16DelayMin = 0;
tsTx.u16DelayMax = 0;
tsTx.u16RetryDur = 0; // 遅延は0で速やかに送信
// ペイロード生成など
...
// 送信
if (ToCoNet_bMacTxReq(&tsTx)) {
// 送信要求が受け付けられたら速やかに処理する。
ToCoNet_Tx_vProcessQueue();
}
}
}