ToCoNet_bMacTxReq()
Explanation
Argument
Type
Name
Remark
Returns
Type
Remark
Sample code
static int16 i16TransmitIoData() {
tsTxDataApp sTx;
memset(&sTx, 0, sizeof(sTx)); // MUST ZERO CLEARED
uint8 *q = sTx.auData; // fpr use of S_OCTET(), etc.
// Construct its payload
S_OCTET(sAppData.u8AppIdentifier);
S_BE_WORD(sAppData.sIOData_now.u16Volt);
...
// Transmit configuration
sTx.u8Len = q - sTx.auData; // payload length
sTx.u8Cmd = TOCONET_PACKET_CMD_APP_USER_IO_DATA; // packet type
// Transmit options
sTx.u32DstAddr = TOCONET_MAC_ADDR_BROADCAST; // broadcast
sTx.u8Retry = 0x81; // one re-transmit
// frame sequence number and callback id
sAppData.u16TxFrame++;
sTx.u8Seq = (sAppData.u16TxFrame & 0xFF);
sTx.u8CbId = sTx.u8Seq;
/* more detailed control options for simple net. */
sTx.bAckReq = FALSE;
sTx.u32SrcAddr = sToCoNet_AppContext.u16ShortAddress;
sTx.u16RetryDur = 4; // Re-transmission interval[ms]
sTx.u16DelayMax = 16; // Blurring of the transmission start timing (max. 16 ms)
// transmit request to TWELITE NET.
// note: actual transmit occurrs afterwards.
if (ToCoNet_bMacTxReq(&sTx)) {
// Success (cbToCoNet_vTxEvent() is fired when the process is finished)
return sTx.u8CbId;
} else {
// failed to place this request
return -1;
}
}最終更新