]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/rf2xx/rf212/RF212ActiveMessageC.nc
make traffic monitor optional
[tinyos-2.x.git] / tos / chips / rf2xx / rf212 / RF212ActiveMessageC.nc
index bd5fe3c01372fc4e7c7c35388a727326d7f18c90..d6076abbf23f194107301e351af3d46316dea9c8 100644 (file)
@@ -32,6 +32,7 @@ configuration RF212ActiveMessageC
                interface AMSend[am_id_t id];
                interface Receive[am_id_t id];
                interface Receive as Snoop[am_id_t id];
+               interface SendNotifier[am_id_t id];
 
                interface Packet;
                interface AMPacket;
@@ -56,39 +57,48 @@ configuration RF212ActiveMessageC
 
 implementation
 {
-       components RF212ActiveMessageP, IEEE154PacketLayerC, RadioAlarmC;
+       components RF212ActiveMessageP, RadioAlarmC;
 
 #ifdef RADIO_DEBUG
        components AssertC;
 #endif
 
-       RF212ActiveMessageP.IEEE154PacketLayer -> IEEE154PacketLayerC;
+       RF212ActiveMessageP.IEEE154MessageLayer -> IEEE154MessageLayerC;
        RF212ActiveMessageP.RadioAlarm -> RadioAlarmC.RadioAlarm[unique("RadioAlarm")];
        RF212ActiveMessageP.PacketTimeStamp -> TimeStampingLayerC;
+       RF212ActiveMessageP.ActiveMessagePacket -> ActiveMessageLayerC;
+       RF212ActiveMessageP.RF212Packet -> RF212DriverLayerC;
 
-       Packet = RF212ActiveMessageP;
-
-// -------- ActiveMessage
+// -------- Active Message
 
        components ActiveMessageLayerC;
        ActiveMessageLayerC.Config -> RF212ActiveMessageP;
-       ActiveMessageLayerC.AMPacket -> IEEE154PacketLayerC;
-       ActiveMessageLayerC.SubSend -> IEEE154NetworkLayerC;
-       ActiveMessageLayerC.SubReceive -> IEEE154NetworkLayerC;
+       ActiveMessageLayerC.SubSend -> LowpanNetworkLayerC;
+       ActiveMessageLayerC.SubReceive -> LowpanNetworkLayerC;
+       ActiveMessageLayerC.SubPacket ->LowpanNetworkLayerC;
        AMSend = ActiveMessageLayerC;
+       Packet = ActiveMessageLayerC;
        Receive = ActiveMessageLayerC.Receive;
        Snoop = ActiveMessageLayerC.Snoop;
-       AMPacket = IEEE154PacketLayerC;
+       AMPacket = ActiveMessageLayerC;
+       SendNotifier = ActiveMessageLayerC;
 
-// -------- IEEE154Network
+// -------- Lowpan Network
 
 #ifdef TFRAMES_ENABLED
-       components new DummyLayerC() as IEEE154NetworkLayerC;
+       components new DummyLayerC() as LowpanNetworkLayerC;
 #else
-       components IEEE154NetworkLayerC;
+       components LowpanNetworkLayerC;
 #endif
-       IEEE154NetworkLayerC.SubSend -> UniqueLayerC;
-       IEEE154NetworkLayerC.SubReceive -> LowPowerListeningLayerC;
+       LowpanNetworkLayerC.SubSend -> IEEE154MessageLayerC;
+       LowpanNetworkLayerC.SubReceive -> LowPowerListeningLayerC;
+       LowpanNetworkLayerC.SubPacket -> IEEE154MessageLayerC;
+
+// -------- IEEE154 Message
+
+       components IEEE154MessageLayerC;
+       IEEE154MessageLayerC.SubPacket -> LowPowerListeningLayerC;
+       IEEE154MessageLayerC.SubSend -> UniqueLayerC;
 
 // -------- UniqueLayer Send part (wired twice)
 
@@ -99,9 +109,9 @@ implementation
 // -------- Low Power Listening 
 
 #ifdef LOW_POWER_LISTENING
+       #warning "*** USING LOW POWER LISTENING LAYER"
        components LowPowerListeningLayerC;
-       LowPowerListeningLayerC.PacketLplMetadata -> RF212ActiveMessageP;
-       LowPowerListeningLayerC.IEEE154PacketLayer -> IEEE154PacketLayerC;
+       LowPowerListeningLayerC.Config -> RF212ActiveMessageP;
        LowPowerListeningLayerC.PacketAcknowledgements -> SoftwareAckLayerC;
 #else  
        components LowPowerListeningDummyC as LowPowerListeningLayerC;
@@ -109,25 +119,26 @@ implementation
        LowPowerListeningLayerC.SubControl -> MessageBufferLayerC;
        LowPowerListeningLayerC.SubSend -> PacketLinkLayerC;
        LowPowerListeningLayerC.SubReceive -> MessageBufferLayerC;
+       LowPowerListeningLayerC.SubPacket -> PacketLinkLayerC;
        SplitControl = LowPowerListeningLayerC;
        LowPowerListening = LowPowerListeningLayerC;
 
 // -------- Packet Link
 
 #ifdef PACKET_LINK
+       #warning "*** USING PACKET LINK LAYER"
        components PacketLinkLayerC;
        PacketLink = PacketLinkLayerC;
-       PacketLinkLayerC.PacketLinkMetadata -> RF212ActiveMessageP;
        PacketLinkLayerC.PacketAcknowledgements -> SoftwareAckLayerC;
 #else
        components new DummyLayerC() as PacketLinkLayerC;
 #endif
        PacketLinkLayerC.SubSend -> MessageBufferLayerC;
+       PacketLinkLayerC.SubPacket -> TimeStampingLayerC;
 
 // -------- MessageBuffer
 
        components MessageBufferLayerC;
-       MessageBufferLayerC.Packet -> RF212ActiveMessageP;
        MessageBufferLayerC.RadioSend -> TrafficMonitorLayerC;
        MessageBufferLayerC.RadioReceive -> UniqueLayerC;
        MessageBufferLayerC.RadioState -> TrafficMonitorLayerC;
@@ -139,11 +150,15 @@ implementation
 
 // -------- Traffic Monitor
 
+#ifdef TRAFFIC_MONITOR
        components TrafficMonitorLayerC;
+#else
+       components new DummyLayerC() as TrafficMonitorLayerC;
+#endif
        TrafficMonitorLayerC.Config -> RF212ActiveMessageP;
-       TrafficMonitorLayerC.SubSend -> CollisionAvoidanceLayerC;
-       TrafficMonitorLayerC.SubReceive -> CollisionAvoidanceLayerC;
-       TrafficMonitorLayerC.SubState -> RF212DriverLayerC;
+       TrafficMonitorLayerC -> CollisionAvoidanceLayerC.RadioSend;
+       TrafficMonitorLayerC -> CollisionAvoidanceLayerC.RadioReceive;
+       TrafficMonitorLayerC -> RF212DriverLayerC.RadioState;
 
 // -------- CollisionAvoidance
 
@@ -171,27 +186,26 @@ implementation
        CsmaLayerC -> RF212DriverLayerC.RadioSend;
        CsmaLayerC -> RF212DriverLayerC.RadioCCA;
 
+// -------- TimeStamping
+
+       components TimeStampingLayerC;
+       TimeStampingLayerC.LocalTimeRadio -> RF212DriverLayerC;
+       TimeStampingLayerC.SubPacket -> MetadataFlagsLayerC;
+       PacketTimeStampRadio = TimeStampingLayerC;
+       PacketTimeStampMilli = TimeStampingLayerC;
+
+// -------- MetadataFlags
+
+       components MetadataFlagsLayerC;
+       MetadataFlagsLayerC.SubPacket -> RF212DriverLayerC;
+
 // -------- RF212 Driver
 
        components RF212DriverLayerC;
-       RF212DriverLayerC.PacketRF212Metadata -> RF212ActiveMessageP;
-       RF212DriverLayerC.RF212DriverConfig -> RF212ActiveMessageP;
+       RF212DriverLayerC.Config -> RF212ActiveMessageP;
        RF212DriverLayerC.PacketTimeStamp -> TimeStampingLayerC;
        PacketTransmitPower = RF212DriverLayerC.PacketTransmitPower;
        PacketLinkQuality = RF212DriverLayerC.PacketLinkQuality;
        PacketRSSI = RF212DriverLayerC.PacketRSSI;
        LocalTimeRadio = RF212DriverLayerC;
-
-// -------- MetadataFlags
-
-       components MetadataFlagsLayerC;
-       MetadataFlagsLayerC.PacketFlagsMetadata -> RF212ActiveMessageP;
-
-// -------- TimeStamping
-
-       components TimeStampingLayerC;
-       TimeStampingLayerC.LocalTimeRadio -> RF212DriverLayerC;
-       TimeStampingLayerC.PacketTimeStampMetadata -> RF212ActiveMessageP;
-       PacketTimeStampRadio = TimeStampingLayerC;
-       PacketTimeStampMilli = TimeStampingLayerC;
 }