interface Packet;
interface AMPacket;
interface PacketAcknowledgements;
+
+ // we provide a dummy LowPowerListening interface if LOW_POWER_LISTENING is not defined
interface LowPowerListening;
+
+#ifdef PACKET_LINK
+ interface PacketLink;
+#endif
+
interface RadioChannel;
interface PacketField<uint8_t> as PacketLinkQuality;
implementation
{
- components RF212ActiveMessageP, RF212PacketC, IEEE154PacketC, RadioAlarmC;
+ components RF212ActiveMessageP, RF212PacketC, IEEE154Packet2C, RadioAlarmC;
#ifdef RADIO_DEBUG
components AssertC;
#endif
- RF212ActiveMessageP.IEEE154Packet -> IEEE154PacketC;
+ RF212ActiveMessageP.IEEE154Packet2 -> IEEE154Packet2C;
RF212ActiveMessageP.Packet -> RF212PacketC;
RF212ActiveMessageP.RadioAlarm -> RadioAlarmC.RadioAlarm[unique("RadioAlarm")];
#else
components IEEE154NetworkLayerC;
#endif
+
#ifdef LOW_POWER_LISTENING
components LowPowerListeningLayerC;
+ LowPowerListeningLayerC.PacketSleepInterval -> RF230PacketC;
+ LowPowerListeningLayerC.IEEE154Packet2 -> IEEE154Packet2C;
+ LowPowerListeningLayerC.PacketAcknowledgements -> RF230PacketC;
#else
components new DummyLayerC() as LowPowerListeningLayerC;
#endif
+
+#ifdef PACKET_LINK
+ components PacketLinkLayerC;
+ PacketLink = PacketLinkLayerC;
+ PacketLinkLayerC.PacketData -> RF230PacketC;
+ PacketLinkLayerC.PacketAcknowledgements -> RF230PacketC;
+#else
+ components new DummyLayerC() as PacketLinkLayerC;
+#endif
+
components MessageBufferLayerC;
components UniqueLayerC;
components TrafficMonitorLayerC;
+
#ifdef SLOTTED_MAC
components SlottedCollisionLayerC as CollisionAvoidanceLayerC;
#else
components RandomCollisionLayerC as CollisionAvoidanceLayerC;
#endif
+
components SoftwareAckLayerC;
components new DummyLayerC() as CsmaLayerC;
components RF212DriverLayerC;
Snoop = ActiveMessageLayerC.Snoop;
ActiveMessageLayerC.Config -> RF212ActiveMessageP;
- ActiveMessageLayerC.AMPacket -> IEEE154PacketC;
+ ActiveMessageLayerC.AMPacket -> IEEE154Packet2C;
ActiveMessageLayerC.SubSend -> IEEE154NetworkLayerC;
ActiveMessageLayerC.SubReceive -> IEEE154NetworkLayerC;
UniqueLayerC.SubSend -> LowPowerListeningLayerC;
LowPowerListeningLayerC.SubControl -> MessageBufferLayerC;
- LowPowerListeningLayerC.SubSend -> MessageBufferLayerC;
+ LowPowerListeningLayerC.SubSend -> PacketLinkLayerC;
LowPowerListeningLayerC.SubReceive -> MessageBufferLayerC;
-#ifdef LOW_POWER_LISTENING
- LowPowerListeningLayerC.PacketSleepInterval -> RF212PacketC;
- LowPowerListeningLayerC.IEEE154Packet -> IEEE154PacketC;
- LowPowerListeningLayerC.PacketAcknowledgements -> RF212PacketC;
-#endif
+
+ PacketLinkLayerC.SubSend -> MessageBufferLayerC;
MessageBufferLayerC.Packet -> RF212PacketC;
MessageBufferLayerC.RadioSend -> TrafficMonitorLayerC;