]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/rf2xx/rf212/RF212ActiveMessageC.nc
implement the PacketLink layer
[tinyos-2.x.git] / tos / chips / rf2xx / rf212 / RF212ActiveMessageC.nc
index d7b0f3aa5ec232a05b3c81715cc5d0322b7568ba..65eba63c45f23477b4dd47fbb9d63f0c61ffc58d 100644 (file)
@@ -36,7 +36,14 @@ configuration RF212ActiveMessageC
                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;
@@ -77,19 +84,35 @@ implementation
 #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;
@@ -112,13 +135,10 @@ implementation
        UniqueLayerC.SubSend -> LowPowerListeningLayerC;
 
        LowPowerListeningLayerC.SubControl -> MessageBufferLayerC;
-       LowPowerListeningLayerC.SubSend -> MessageBufferLayerC;
+       LowPowerListeningLayerC.SubSend -> PacketLinkLayerC;
        LowPowerListeningLayerC.SubReceive -> MessageBufferLayerC;
-#ifdef LOW_POWER_LISTENING
-       LowPowerListeningLayerC.PacketSleepInterval -> RF212PacketC;
-       LowPowerListeningLayerC.IEEE154Packet2 -> IEEE154Packet2C;
-       LowPowerListeningLayerC.PacketAcknowledgements -> RF212PacketC;
-#endif
+
+       PacketLinkLayerC.SubSend -> MessageBufferLayerC;
 
        MessageBufferLayerC.Packet -> RF212PacketC;
        MessageBufferLayerC.RadioSend -> TrafficMonitorLayerC;