X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Frf2xx%2Frf212%2FRF212ActiveMessageC.nc;h=10f7c5fa7a95126233958210861e33844e650fdb;hb=1203cdd1382f55541be927d74b57d44e2b47724a;hp=d6076abbf23f194107301e351af3d46316dea9c8;hpb=17b072b6cdd381b02de1d26645dfb9927f0d8132;p=tinyos-2.x.git diff --git a/tos/chips/rf2xx/rf212/RF212ActiveMessageC.nc b/tos/chips/rf2xx/rf212/RF212ActiveMessageC.nc index d6076abb..10f7c5fa 100644 --- a/tos/chips/rf2xx/rf212/RF212ActiveMessageC.nc +++ b/tos/chips/rf2xx/rf212/RF212ActiveMessageC.nc @@ -23,6 +23,10 @@ #include +#ifdef IEEE154FRAMES_ENABLED +#error "You cannot use ActiveMessageC with IEEE154FRAMES_ENABLED defined" +#endif + configuration RF212ActiveMessageC { provides @@ -36,9 +40,9 @@ configuration RF212ActiveMessageC interface Packet; interface AMPacket; + interface PacketAcknowledgements; interface LowPowerListening; - #ifdef PACKET_LINK interface PacketLink; #endif @@ -57,155 +61,31 @@ configuration RF212ActiveMessageC implementation { - components RF212ActiveMessageP, RadioAlarmC; - -#ifdef RADIO_DEBUG - components AssertC; -#endif - - RF212ActiveMessageP.IEEE154MessageLayer -> IEEE154MessageLayerC; - RF212ActiveMessageP.RadioAlarm -> RadioAlarmC.RadioAlarm[unique("RadioAlarm")]; - RF212ActiveMessageP.PacketTimeStamp -> TimeStampingLayerC; - RF212ActiveMessageP.ActiveMessagePacket -> ActiveMessageLayerC; - RF212ActiveMessageP.RF212Packet -> RF212DriverLayerC; - -// -------- Active Message - - components ActiveMessageLayerC; - ActiveMessageLayerC.Config -> RF212ActiveMessageP; - 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 - -#ifdef TFRAMES_ENABLED - components new DummyLayerC() as LowpanNetworkLayerC; -#else - components LowpanNetworkLayerC; -#endif - LowpanNetworkLayerC.SubSend -> IEEE154MessageLayerC; - LowpanNetworkLayerC.SubReceive -> LowPowerListeningLayerC; - LowpanNetworkLayerC.SubPacket -> IEEE154MessageLayerC; + components RF212RadioC; -// -------- IEEE154 Message + SplitControl = RF212RadioC; - components IEEE154MessageLayerC; - IEEE154MessageLayerC.SubPacket -> LowPowerListeningLayerC; - IEEE154MessageLayerC.SubSend -> UniqueLayerC; + AMSend = RF212RadioC; + Receive = RF212RadioC.Receive; + Snoop = RF212RadioC.Snoop; + SendNotifier = RF212RadioC; -// -------- UniqueLayer Send part (wired twice) - - components UniqueLayerC; - UniqueLayerC.Config -> RF212ActiveMessageP; - UniqueLayerC.SubSend -> LowPowerListeningLayerC; - -// -------- Low Power Listening - -#ifdef LOW_POWER_LISTENING - #warning "*** USING LOW POWER LISTENING LAYER" - components LowPowerListeningLayerC; - LowPowerListeningLayerC.Config -> RF212ActiveMessageP; - LowPowerListeningLayerC.PacketAcknowledgements -> SoftwareAckLayerC; -#else - components LowPowerListeningDummyC as LowPowerListeningLayerC; -#endif - LowPowerListeningLayerC.SubControl -> MessageBufferLayerC; - LowPowerListeningLayerC.SubSend -> PacketLinkLayerC; - LowPowerListeningLayerC.SubReceive -> MessageBufferLayerC; - LowPowerListeningLayerC.SubPacket -> PacketLinkLayerC; - SplitControl = LowPowerListeningLayerC; - LowPowerListening = LowPowerListeningLayerC; - -// -------- Packet Link + Packet = RF212RadioC.PacketForActiveMessage; + AMPacket = RF212RadioC; + PacketAcknowledgements = RF212RadioC; + LowPowerListening = RF212RadioC; #ifdef PACKET_LINK - #warning "*** USING PACKET LINK LAYER" - components PacketLinkLayerC; - PacketLink = PacketLinkLayerC; - PacketLinkLayerC.PacketAcknowledgements -> SoftwareAckLayerC; -#else - components new DummyLayerC() as PacketLinkLayerC; -#endif - PacketLinkLayerC.SubSend -> MessageBufferLayerC; - PacketLinkLayerC.SubPacket -> TimeStampingLayerC; - -// -------- MessageBuffer - - components MessageBufferLayerC; - MessageBufferLayerC.RadioSend -> TrafficMonitorLayerC; - MessageBufferLayerC.RadioReceive -> UniqueLayerC; - MessageBufferLayerC.RadioState -> TrafficMonitorLayerC; - RadioChannel = MessageBufferLayerC; - -// -------- UniqueLayer receive part (wired twice) - - UniqueLayerC.SubReceive -> TrafficMonitorLayerC; - -// -------- Traffic Monitor - -#ifdef TRAFFIC_MONITOR - components TrafficMonitorLayerC; -#else - components new DummyLayerC() as TrafficMonitorLayerC; -#endif - TrafficMonitorLayerC.Config -> RF212ActiveMessageP; - TrafficMonitorLayerC -> CollisionAvoidanceLayerC.RadioSend; - TrafficMonitorLayerC -> CollisionAvoidanceLayerC.RadioReceive; - TrafficMonitorLayerC -> RF212DriverLayerC.RadioState; - -// -------- CollisionAvoidance - -#ifdef SLOTTED_MAC - components SlottedCollisionLayerC as CollisionAvoidanceLayerC; -#else - components RandomCollisionLayerC as CollisionAvoidanceLayerC; + PacketLink = RF212RadioC; #endif - CollisionAvoidanceLayerC.Config -> RF212ActiveMessageP; - CollisionAvoidanceLayerC.SubSend -> SoftwareAckLayerC; - CollisionAvoidanceLayerC.SubReceive -> SoftwareAckLayerC; - -// -------- SoftwareAcknowledgement - - components SoftwareAckLayerC; - SoftwareAckLayerC.Config -> RF212ActiveMessageP; - SoftwareAckLayerC.SubSend -> CsmaLayerC; - SoftwareAckLayerC.SubReceive -> RF212DriverLayerC; - PacketAcknowledgements = SoftwareAckLayerC; - -// -------- Carrier Sense - - components new DummyLayerC() as CsmaLayerC; - CsmaLayerC.Config -> RF212ActiveMessageP; - 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; + RadioChannel = RF212RadioC; -// -------- RF212 Driver + PacketLinkQuality = RF212RadioC.PacketLinkQuality; + PacketTransmitPower = RF212RadioC.PacketTransmitPower; + PacketRSSI = RF212RadioC.PacketRSSI; - components RF212DriverLayerC; - RF212DriverLayerC.Config -> RF212ActiveMessageP; - RF212DriverLayerC.PacketTimeStamp -> TimeStampingLayerC; - PacketTransmitPower = RF212DriverLayerC.PacketTransmitPower; - PacketLinkQuality = RF212DriverLayerC.PacketLinkQuality; - PacketRSSI = RF212DriverLayerC.PacketRSSI; - LocalTimeRadio = RF212DriverLayerC; + LocalTimeRadio = RF212RadioC; + PacketTimeStampMilli = RF212RadioC; + PacketTimeStampRadio = RF212RadioC; }