ToCoNet_bMacTxReq()

Explanation

Requests a wireless transmission in a simple network. After registering the request in the transmission queue, this function exits. The actual transmission process is executed later.

Argument

Type
Name
Remark

psTx

This structure contains the transmission information. It may be allocated as a local variable in the calling scope.

Returns

Type
Remark

boot_t

If TRUE the request was accepted, if FALSE the request was not accepted.

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;
  }
}

最終更新