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;
implementation
{
- components RF230ActiveMessageP, IEEE154PacketLayerC, RadioAlarmC;
+ components RF230ActiveMessageP, RadioAlarmC;
#ifdef RADIO_DEBUG
components AssertC;
#endif
- RF230ActiveMessageP.IEEE154PacketLayer -> IEEE154PacketLayerC;
+ RF230ActiveMessageP.IEEE154MessageLayer -> IEEE154MessageLayerC;
RF230ActiveMessageP.RadioAlarm -> RadioAlarmC.RadioAlarm[unique("RadioAlarm")];
RF230ActiveMessageP.PacketTimeStamp -> TimeStampingLayerC;
+ RF230ActiveMessageP.ActiveMessagePacket -> ActiveMessageLayerC;
+ RF230ActiveMessageP.RF230Packet -> RF230DriverLayerC;
- Packet = RF230ActiveMessageP;
-
-// -------- ActiveMessage
+// -------- Active Message
components ActiveMessageLayerC;
ActiveMessageLayerC.Config -> RF230ActiveMessageP;
- 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 -> UniqueLayerC;
+ LowpanNetworkLayerC.SubReceive -> LowPowerListeningLayerC;
+ LowpanNetworkLayerC.SubPacket -> IEEE154MessageLayerC;
+
+// -------- IEEE154 Message
+
+ components IEEE154MessageLayerC;
+ IEEE154MessageLayerC.SubPacket -> LowPowerListeningLayerC;
// -------- UniqueLayer Send part (wired twice)
#ifdef LOW_POWER_LISTENING
components LowPowerListeningLayerC;
- LowPowerListeningLayerC.PacketLplMetadata -> RF230ActiveMessageP;
- LowPowerListeningLayerC.IEEE154PacketLayer -> IEEE154PacketLayerC;
+ LowPowerListeningLayerC.Config -> RF230ActiveMessageP;
LowPowerListeningLayerC.PacketAcknowledgements -> SoftwareAckLayerC;
#else
components LowPowerListeningDummyC as LowPowerListeningLayerC;
LowPowerListeningLayerC.SubControl -> MessageBufferLayerC;
LowPowerListeningLayerC.SubSend -> PacketLinkLayerC;
LowPowerListeningLayerC.SubReceive -> MessageBufferLayerC;
+ LowPowerListeningLayerC.SubPacket -> PacketLinkLayerC;
SplitControl = LowPowerListeningLayerC;
LowPowerListening = LowPowerListeningLayerC;
#ifdef PACKET_LINK
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.Packet -> ActiveMessageLayerC;
MessageBufferLayerC.RadioSend -> TrafficMonitorLayerC;
MessageBufferLayerC.RadioReceive -> UniqueLayerC;
MessageBufferLayerC.RadioState -> TrafficMonitorLayerC;
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;
}