X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Frf2xx%2Frf212%2FRF212Ieee154MessageC.nc;h=6c40049b136b5dcdf27f793e075e19fa8420b8a7;hb=1203cdd1382f55541be927d74b57d44e2b47724a;hp=bfeda9754b838887ea36fc1bfcf3a9b56e45a01d;hpb=17b072b6cdd381b02de1d26645dfb9927f0d8132;p=tinyos-2.x.git diff --git a/tos/chips/rf2xx/rf212/RF212Ieee154MessageC.nc b/tos/chips/rf2xx/rf212/RF212Ieee154MessageC.nc index bfeda975..6c40049b 100644 --- a/tos/chips/rf2xx/rf212/RF212Ieee154MessageC.nc +++ b/tos/chips/rf2xx/rf212/RF212Ieee154MessageC.nc @@ -23,6 +23,10 @@ #include +#ifdef TFRAMES_ENABLED +#error "You cannot use Ieee154MessageC with TFRAMES_ENABLED defined" +#endif + configuration RF212Ieee154MessageC { provides @@ -31,12 +35,15 @@ configuration RF212Ieee154MessageC interface Ieee154Send; interface Receive as Ieee154Receive; + interface SendNotifier; + interface Ieee154Packet; interface Packet; + interface Resource as RadioSendResource[uint8_t clint]; + interface PacketAcknowledgements; interface LowPowerListening; interface PacketLink; - interface SendNotifier; interface RadioChannel; @@ -52,117 +59,29 @@ configuration RF212Ieee154MessageC implementation { - components RF212ActiveMessageP, RadioAlarmC; - -#ifdef RADIO_DEBUG - components AssertC; -#endif - - RF212ActiveMessageP.IEEE154MessageLayer -> IEEE154MessageLayerC; - RF212ActiveMessageP.RadioAlarm -> RadioAlarmC.RadioAlarm[unique("RadioAlarm")]; - RF212ActiveMessageP.PacketTimeStamp -> TimeStampingLayerC; - RF212ActiveMessageP.RF212Packet -> RF212DriverLayerC; - -// -------- IEEE154 Message - - components IEEE154MessageLayerC; - IEEE154MessageLayerC.SubPacket -> LowPowerListeningLayerC; - IEEE154MessageLayerC.SubSend -> UniqueLayerC; - IEEE154MessageLayerC.SubReceive -> LowPowerListeningLayerC; - Ieee154Send = IEEE154MessageLayerC; - Packet = IEEE154MessageLayerC; - Ieee154Receive = IEEE154MessageLayerC; - Ieee154Packet = IEEE154MessageLayerC; - SendNotifier = IEEE154MessageLayerC; - -// -------- UniqueLayer Send part (wired twice) - - components UniqueLayerC; - UniqueLayerC.Config -> RF212ActiveMessageP; - UniqueLayerC.SubSend -> LowPowerListeningLayerC; - -// -------- Low Power Listening - -#ifdef LOW_POWER_LISTENING - 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 - - components PacketLinkLayerC; - PacketLink = PacketLinkLayerC; - PacketLinkLayerC.PacketAcknowledgements -> SoftwareAckLayerC; - PacketLinkLayerC.SubSend -> MessageBufferLayerC; - PacketLinkLayerC.SubPacket -> TimeStampingLayerC; - -// -------- MessageBuffer - - components MessageBufferLayerC; - MessageBufferLayerC.RadioSend -> CollisionAvoidanceLayerC; - MessageBufferLayerC.RadioReceive -> UniqueLayerC; - MessageBufferLayerC.RadioState -> RF212DriverLayerC; - RadioChannel = MessageBufferLayerC; - -// -------- UniqueLayer receive part (wired twice) - - UniqueLayerC.SubReceive -> CollisionAvoidanceLayerC; - -// -------- CollisionAvoidance - -#ifdef SLOTTED_MAC - components SlottedCollisionLayerC as CollisionAvoidanceLayerC; -#else - components RandomCollisionLayerC as CollisionAvoidanceLayerC; -#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 RF212RadioC; - components new DummyLayerC() as CsmaLayerC; - CsmaLayerC.Config -> RF212ActiveMessageP; - CsmaLayerC -> RF212DriverLayerC.RadioSend; - CsmaLayerC -> RF212DriverLayerC.RadioCCA; + SplitControl = RF212RadioC; -// -------- TimeStamping + Ieee154Send = RF212RadioC.Ieee154Send; + Ieee154Receive = RF212RadioC.Ieee154Receive; + SendNotifier = RF212RadioC.Ieee154Notifier; - components TimeStampingLayerC; - TimeStampingLayerC.LocalTimeRadio -> RF212DriverLayerC; - TimeStampingLayerC.SubPacket -> MetadataFlagsLayerC; - PacketTimeStampRadio = TimeStampingLayerC; - PacketTimeStampMilli = TimeStampingLayerC; + Packet = RF212RadioC.PacketForIeee154Message; + Ieee154Packet = RF212RadioC; + RadioSendResource = RF212RadioC; -// -------- MetadataFlags + PacketAcknowledgements = RF212RadioC; + LowPowerListening = RF212RadioC; + PacketLink = RF212RadioC; - 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; }