]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/rf2xx/rf230/RF230ActiveMessageC.nc
Use BareSend/BareReceive instead of Send/Receive to avoid duplication of payload...
[tinyos-2.x.git] / tos / chips / rf2xx / rf230 / RF230ActiveMessageC.nc
index aa5cffe0b6d3302916640f538cb4b62e18bd29d1..deb5412be333991420203e67ba98db8efe0224d8 100644 (file)
@@ -32,6 +32,7 @@ configuration RF230ActiveMessageC
                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;
@@ -65,7 +66,8 @@ implementation
        RF230ActiveMessageP.IEEE154MessageLayer -> IEEE154MessageLayerC;
        RF230ActiveMessageP.RadioAlarm -> RadioAlarmC.RadioAlarm[unique("RadioAlarm")];
        RF230ActiveMessageP.PacketTimeStamp -> TimeStampingLayerC;
-       Packet = RF230ActiveMessageP;
+       RF230ActiveMessageP.ActiveMessagePacket -> ActiveMessageLayerC;
+       RF230ActiveMessageP.RF230Packet -> RF230DriverLayerC;
 
 // -------- Active Message
 
@@ -73,10 +75,13 @@ implementation
        ActiveMessageLayerC.Config -> RF230ActiveMessageP;
        ActiveMessageLayerC.SubSend -> LowpanNetworkLayerC;
        ActiveMessageLayerC.SubReceive -> LowpanNetworkLayerC;
+       ActiveMessageLayerC.SubPacket ->LowpanNetworkLayerC;
        AMSend = ActiveMessageLayerC;
+       Packet = ActiveMessageLayerC;
        Receive = ActiveMessageLayerC.Receive;
        Snoop = ActiveMessageLayerC.Snoop;
        AMPacket = ActiveMessageLayerC;
+       SendNotifier = ActiveMessageLayerC;
 
 // -------- Lowpan Network
 
@@ -84,15 +89,16 @@ implementation
        components new DummyLayerC() as LowpanNetworkLayerC;
 #else
        components LowpanNetworkLayerC;
-       LowpanNetworkLayerC.Config -> RF230ActiveMessageP;
 #endif
-       LowpanNetworkLayerC.SubSend -> UniqueLayerC;
+       LowpanNetworkLayerC.SubSend -> IEEE154MessageLayerC;
        LowpanNetworkLayerC.SubReceive -> LowPowerListeningLayerC;
+       LowpanNetworkLayerC.SubPacket -> IEEE154MessageLayerC;
 
-// -------- IEEE154 Packet
+// -------- IEEE154 Message
 
        components IEEE154MessageLayerC;
-       IEEE154MessageLayerC.Config -> RF230ActiveMessageP;
+       IEEE154MessageLayerC.SubPacket -> LowPowerListeningLayerC;
+       IEEE154MessageLayerC.SubSend -> UniqueLayerC;
 
 // -------- UniqueLayer Send part (wired twice)
 
@@ -103,6 +109,7 @@ implementation
 // -------- Low Power Listening 
 
 #ifdef LOW_POWER_LISTENING
+       #warning "*** USING LOW POWER LISTENING LAYER"
        components LowPowerListeningLayerC;
        LowPowerListeningLayerC.Config -> RF230ActiveMessageP;
        LowPowerListeningLayerC.PacketAcknowledgements -> SoftwareAckLayerC;
@@ -112,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 -> RF230ActiveMessageP;
        PacketLinkLayerC.PacketAcknowledgements -> SoftwareAckLayerC;
 #else
        components new DummyLayerC() as PacketLinkLayerC;
 #endif
        PacketLinkLayerC.SubSend -> MessageBufferLayerC;
+       PacketLinkLayerC.SubPacket -> TimeStampingLayerC;
 
 // -------- MessageBuffer
 
        components MessageBufferLayerC;
-       MessageBufferLayerC.Packet -> RF230ActiveMessageP;
        MessageBufferLayerC.RadioSend -> TrafficMonitorLayerC;
        MessageBufferLayerC.RadioReceive -> UniqueLayerC;
        MessageBufferLayerC.RadioState -> TrafficMonitorLayerC;
@@ -174,27 +182,26 @@ implementation
        CsmaLayerC -> RF230DriverLayerC.RadioSend;
        CsmaLayerC -> RF230DriverLayerC.RadioCCA;
 
+// -------- TimeStamping
+
+       components TimeStampingLayerC;
+       TimeStampingLayerC.LocalTimeRadio -> RF230DriverLayerC;
+       TimeStampingLayerC.SubPacket -> MetadataFlagsLayerC;
+       PacketTimeStampRadio = TimeStampingLayerC;
+       PacketTimeStampMilli = TimeStampingLayerC;
+
+// -------- MetadataFlags
+
+       components MetadataFlagsLayerC;
+       MetadataFlagsLayerC.SubPacket -> RF230DriverLayerC;
+
 // -------- RF230 Driver
 
        components RF230DriverLayerC;
-       RF230DriverLayerC.PacketRF230Metadata -> RF230ActiveMessageP;
-       RF230DriverLayerC.RF230DriverConfig -> RF230ActiveMessageP;
+       RF230DriverLayerC.Config -> RF230ActiveMessageP;
        RF230DriverLayerC.PacketTimeStamp -> TimeStampingLayerC;
        PacketTransmitPower = RF230DriverLayerC.PacketTransmitPower;
        PacketLinkQuality = RF230DriverLayerC.PacketLinkQuality;
        PacketRSSI = RF230DriverLayerC.PacketRSSI;
        LocalTimeRadio = RF230DriverLayerC;
-
-// -------- MetadataFlags
-
-       components MetadataFlagsLayerC;
-       MetadataFlagsLayerC.PacketFlagsMetadata -> RF230ActiveMessageP;
-
-// -------- TimeStamping
-
-       components TimeStampingLayerC;
-       TimeStampingLayerC.LocalTimeRadio -> RF230DriverLayerC;
-       TimeStampingLayerC.PacketTimeStampMetadata -> RF230ActiveMessageP;
-       PacketTimeStampRadio = TimeStampingLayerC;
-       PacketTimeStampMilli = TimeStampingLayerC;
 }