interface MCPS_DATA;
interface MCPS_PURGE;
} uses {
- interface GetNow<bool> as IsSendingBeacons;
interface FrameRx as CoordCapRx;
interface FrameTx as DeviceCapTx;
interface FrameTx as CoordCapTx;
// indirect transmission?
} else if ((txOptions & TX_OPTIONS_INDIRECT) &&
- call IsSendingBeacons.getNow() &&
(dstAddrMode >= ADDR_MODE_SHORT_ADDRESS)) {
if (dstAddrMode == ADDR_MODE_SHORT_ADDRESS && dstAddr.shortAddress == 0xFFFF) {
mhr[MHR_INDEX_FC1] &= ~FC1_ACK_REQUEST;
default command ieee154_status_t DeviceCfpTx.transmit(ieee154_txframe_t *data) {return IEEE154_INVALID_GTS;}
default command ieee154_status_t BroadcastTx.transmit(ieee154_txframe_t *data) {return IEEE154_INVALID_PARAMETER;}
default command ieee154_status_t CoordCfpTx.transmit(ieee154_txframe_t *data) {return IEEE154_INVALID_GTS;}
- default async command bool IsSendingBeacons.getNow() {return FALSE;}
}
* typically switch the radio off unless it has a frame to transmit.
*/
-#ifndef IEEE154_BEACON_ENABLED_PAN
-#error "The IEEE154_BEACON_ENABLED_PAN macro MUST be defined when using this component!"
-#endif
-
generic module DispatchSlottedCsmaP(uint8_t sfDirection)
{
provides
* not part of the MAC implementation but of the chip-specific radio driver.
*/
-#if IEEE154_BEACON_ENABLED_PAN
-#error "The IEEE154_BEACON_ENABLED_PAN macro MUST NOT be set when using this component!"
-#endif
-
module DispatchUnslottedCsmaP
{
provides
/* ------------------ Data Transmission (MCPS-DATA) ------------------- */
- DataP.IsSendingBeacons -> BeaconTransmitP.IsSendingBeacons;
DataP.CoordCapRx -> CoordCap.FrameRx[FC1_FRAMETYPE_DATA];
DataP.DeviceCapTx -> DeviceCapQueue.FrameTx[unique(CAP_TX_CLIENT)];
DataP.CoordCapTx -> CoordCapQueue.FrameTx[unique(CAP_TX_CLIENT)];