Transmit
Sample code
static int16 i16TransmitIoData() {
tsTxDataApp sTx;
memset(&sTx, 0, sizeof(sTx)); // clear by zero
uint8 *q = sTx.auData;
// Compose the payload
S_OCTET(sAppData.u8AppIdentifier);
S_BE_WORD(sAppData.sIOData_now.u16Volt);
...
// Transmit options
sTx.u8Len = q - sTx.auData; // packet length
sTx.u8Cmd = TOCONET_PACKET_CMD_APP_USER_IO_DATA; // Packet type
// destination
sTx.u32DstAddr = TOCONET_MAC_ADDR_BROADCAST; // broadcast address
sTx.u8Retry = 0x81; // retry once
// Specifying frame counts and callback identifiers
sAppData.u16TxFrame++;
sTx.u8Seq = (sAppData.u16TxFrame & 0xFF);
sTx.u8CbId = sTx.u8Seq;
/* SimpleNet(MAC mode) allows fine-grained specification */
sTx.bAckReq = FALSE;
sTx.u32SrcAddr = sToCoNet_AppContext.u16ShortAddress;
sTx.u16RetryDur = 4; // Resend interval[ms]
sTx.u16DelayMax = 16; // Create a blur in the timing of the start of transmission(max 16ms)
// Sending API
if (ToCoNet_bMacTxReq(&sTx)) {
// Success (cbToCoNet_vTxEvent() is fired when the process is finished)
return sTx.u8CbId; // Success on putting a transmit request
} else {
// 失敗
return -1; // Fail
}
}最終更新