X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Frf2xx%2Frf230%2FRF230Ieee154MessageC.nc;h=089d4369c8e96ae4625c36bb68b77817e0479ea4;hb=17b072b6cdd381b02de1d26645dfb9927f0d8132;hp=553af9b889690fc74ebfdd6ada7e69a9fa717362;hpb=cb85acf34756d5ea12490038f65a9e1f6fea5fe7;p=tinyos-2.x.git diff --git a/tos/chips/rf2xx/rf230/RF230Ieee154MessageC.nc b/tos/chips/rf2xx/rf230/RF230Ieee154MessageC.nc index 553af9b8..089d4369 100644 --- a/tos/chips/rf2xx/rf230/RF230Ieee154MessageC.nc +++ b/tos/chips/rf2xx/rf230/RF230Ieee154MessageC.nc @@ -23,6 +23,10 @@ #include +#ifdef TFRAMES_ENABLED +#error "You cannot use Ieee154MessageC with TFRAMES_ENABLED defined" +#endif + configuration RF230Ieee154MessageC { provides @@ -31,12 +35,15 @@ configuration RF230Ieee154MessageC 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 RF230Ieee154MessageC implementation { - components RF230ActiveMessageP, RadioAlarmC; - -#ifdef RADIO_DEBUG - components AssertC; -#endif - - RF230ActiveMessageP.IEEE154MessageLayer -> IEEE154MessageLayerC; - RF230ActiveMessageP.RadioAlarm -> RadioAlarmC.RadioAlarm[unique("RadioAlarm")]; - RF230ActiveMessageP.PacketTimeStamp -> TimeStampingLayerC; - RF230ActiveMessageP.RF230Packet -> RF230DriverLayerC; - -// -------- 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 -> RF230ActiveMessageP; - UniqueLayerC.SubSend -> LowPowerListeningLayerC; - -// -------- Low Power Listening - -#ifdef LOW_POWER_LISTENING - components LowPowerListeningLayerC; - LowPowerListeningLayerC.Config -> RF230ActiveMessageP; - 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 -> RF230DriverLayerC; - 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 -> RF230ActiveMessageP; - CollisionAvoidanceLayerC.SubSend -> SoftwareAckLayerC; - CollisionAvoidanceLayerC.SubReceive -> SoftwareAckLayerC; - -// -------- SoftwareAcknowledgement - - components SoftwareAckLayerC; - SoftwareAckLayerC.Config -> RF230ActiveMessageP; - SoftwareAckLayerC.SubSend -> CsmaLayerC; - SoftwareAckLayerC.SubReceive -> RF230DriverLayerC; - PacketAcknowledgements = SoftwareAckLayerC; - -// -------- Carrier Sense + components RF230RadioC; - components new DummyLayerC() as CsmaLayerC; - CsmaLayerC.Config -> RF230ActiveMessageP; - CsmaLayerC -> RF230DriverLayerC.RadioSend; - CsmaLayerC -> RF230DriverLayerC.RadioCCA; + SplitControl = RF230RadioC; -// -------- TimeStamping + Ieee154Send = RF230RadioC.Ieee154Send; + Ieee154Receive = RF230RadioC.Ieee154Receive; + SendNotifier = RF230RadioC.Ieee154Notifier; - components TimeStampingLayerC; - TimeStampingLayerC.LocalTimeRadio -> RF230DriverLayerC; - TimeStampingLayerC.SubPacket -> MetadataFlagsLayerC; - PacketTimeStampRadio = TimeStampingLayerC; - PacketTimeStampMilli = TimeStampingLayerC; + Packet = RF230RadioC.PacketForIeee154Message; + Ieee154Packet = RF230RadioC; + RadioSendResource = RF230RadioC; -// -------- MetadataFlags + PacketAcknowledgements = RF230RadioC; + LowPowerListening = RF230RadioC; + PacketLink = RF230RadioC; - components MetadataFlagsLayerC; - MetadataFlagsLayerC.SubPacket -> RF230DriverLayerC; + RadioChannel = RF230RadioC; -// -------- RF230 Driver + PacketLinkQuality = RF230RadioC.PacketLinkQuality; + PacketTransmitPower = RF230RadioC.PacketTransmitPower; + PacketRSSI = RF230RadioC.PacketRSSI; - components RF230DriverLayerC; - RF230DriverLayerC.Config -> RF230ActiveMessageP; - RF230DriverLayerC.PacketTimeStamp -> TimeStampingLayerC; - PacketTransmitPower = RF230DriverLayerC.PacketTransmitPower; - PacketLinkQuality = RF230DriverLayerC.PacketLinkQuality; - PacketRSSI = RF230DriverLayerC.PacketRSSI; - LocalTimeRadio = RF230DriverLayerC; + LocalTimeRadio = RF230RadioC; + PacketTimeStampMilli = RF230RadioC; + PacketTimeStampRadio = RF230RadioC; }