#include <RadioConfig.h>
-#ifndef TFRAMES_ENABLED
-#define PACKET_LINK
-#endif
-
configuration RF230RadioC
{
provides
#ifndef IEEE154FRAMES_ENABLED
#ifndef TFRAMES_ENABLED
components new AutoResourceAcquireLayerC();
- AutoResourceAcquireLayerC.Resource -> SendResourceC.Resource[unique("RADIO_SEND_RESOURCE")];
+ AutoResourceAcquireLayerC.Resource -> SendResourceC.Resource[unique(RADIO_SEND_RESOURCE)];
#else
components new DummyLayerC() as AutoResourceAcquireLayerC;
#endif
// -------- RadioSend Resource
#ifndef TFRAMES_ENABLED
- components new SimpleFcfsArbiterC("RADIO_SEND_RESOURCE") as SendResourceC;
+ components new SimpleFcfsArbiterC(RADIO_SEND_RESOURCE) as SendResourceC;
SendResource = SendResourceC;
// -------- Ieee154 Message
#warning "*** USING LOW POWER LISTENING LAYER"
components LowPowerListeningLayerC;
LowPowerListeningLayerC.Config -> RF230RadioP;
+#ifdef RF230_HARDWARE_ACK
+ LowPowerListeningLayerC.PacketAcknowledgements -> RF230DriverLayerC;
+#else
LowPowerListeningLayerC.PacketAcknowledgements -> SoftwareAckLayerC;
+#endif
#else
components LowPowerListeningDummyC as LowPowerListeningLayerC;
#endif
#ifdef PACKET_LINK
components PacketLinkLayerC;
PacketLink = PacketLinkLayerC;
+#ifdef RF230_HARDWARE_ACK
+ PacketLinkLayerC.PacketAcknowledgements -> RF230DriverLayerC;
+#else
PacketLinkLayerC.PacketAcknowledgements -> SoftwareAckLayerC;
+#endif
#else
components new DummyLayerC() as PacketLinkLayerC;
#endif
components RandomCollisionLayerC as CollisionAvoidanceLayerC;
#endif
CollisionAvoidanceLayerC.Config -> RF230RadioP;
+#ifdef RF230_HARDWARE_ACK
+ CollisionAvoidanceLayerC.SubSend -> CsmaLayerC;
+ CollisionAvoidanceLayerC.SubReceive -> RF230DriverLayerC;
+#else
CollisionAvoidanceLayerC.SubSend -> SoftwareAckLayerC;
CollisionAvoidanceLayerC.SubReceive -> SoftwareAckLayerC;
+#endif
// -------- SoftwareAcknowledgement
+#ifndef RF230_HARDWARE_ACK
components SoftwareAckLayerC;
SoftwareAckLayerC.Config -> RF230RadioP;
SoftwareAckLayerC.SubSend -> CsmaLayerC;
SoftwareAckLayerC.SubReceive -> RF230DriverLayerC;
PacketAcknowledgements = SoftwareAckLayerC;
+#endif
// -------- Carrier Sense
// -------- RF230 Driver
+#ifdef RF230_HARDWARE_ACK
+ components RF230DriverHwAckC as RF230DriverLayerC;
+ PacketAcknowledgements = RF230DriverLayerC;
+ RF230DriverLayerC.Ieee154PacketLayer -> Ieee154PacketLayerC;
+#else
components RF230DriverLayerC;
+#endif
RF230DriverLayerC.Config -> RF230RadioP;
RF230DriverLayerC.PacketTimeStamp -> TimeStampingLayerC;
PacketTransmitPower = RF230DriverLayerC.PacketTransmitPower;