* Author: Miklos Maroti
*/
+#include <RadioConfig.h>
+
configuration ActiveMessageC
{
provides
interface AMSend[uint8_t id];
interface Receive[uint8_t id];
interface Receive as Snoop[uint8_t id];
+ interface SendNotifier[am_id_t id];
+
interface Packet;
interface AMPacket;
implementation
{
- components RF230ActiveMessageC as MAC,
- RF230SplitControlP,
- new SystemClockControlC();
-
- RF230SplitControlP.SplitControlOrig -> MAC;
- RF230SplitControlP.SystemClockControl -> SystemClockControlC;
+ components RF230ActiveMessageC as MessageC,
+ RF230SplitControlP,
+ new SystemClockControlC();
+
+ RF230SplitControlP.SplitControlOrig -> MessageC;
+ RF230SplitControlP.SystemClockControl -> SystemClockControlC;
+
+ SplitControl = RF230SplitControlP.SplitControl;
+
+ AMSend = MessageC;
+ Receive = MessageC.Receive;
+ Snoop = MessageC.Snoop;
+ SendNotifier = MessageC;
+
+ Packet = MessageC;
+ AMPacket = MessageC;
- SplitControl = RF230SplitControlP.SplitControl;
- AMSend = MAC;
- Receive = MAC.Receive;
- Snoop = MAC.Snoop;
- Packet = MAC;
- AMPacket = MAC;
+ PacketAcknowledgements = MessageC;
+ LowPowerListening = MessageC;
#ifdef PACKET_LINK
- PacketLink = MAC;
+ PacketLink = MessageC;
#endif
- PacketAcknowledgements = MAC;
- LowPowerListening = MAC;
- PacketTimeStampMilli = MAC;
- PacketTimeStampMicro = MAC;
+ PacketTimeStampMilli = MessageC;
+ PacketTimeStampMicro = MessageC;
}
interface Packet;
interface AMPacket;
+ interface PacketTimeStamp<TRadio, uint32_t> as PacketTimeStampRadio;
interface TimeSyncAMSend<TRadio, uint32_t> as TimeSyncAMSendRadio[am_id_t id];
interface TimeSyncPacket<TRadio, uint32_t> as TimeSyncPacketRadio;
+ interface PacketTimeStamp<TMilli, uint32_t> as PacketTimeStampMilli;
interface TimeSyncAMSend<TMilli, uint32_t> as TimeSyncAMSendMilli[am_id_t id];
interface TimeSyncPacket<TMilli, uint32_t> as TimeSyncPacketMilli;
}
implementation
{
- components RF230TimeSyncMessageC as MAC,
- RF230SplitControlP;
+ components RF230TimeSyncMessageC as MessageC,
+ RF230SplitControlP,
+ new SystemClockControlC();
- RF230SplitControlP.SplitControlOrig -> MAC;
- RF230SplitControlP.SystemClockControl -> SystemClockControlC;
+ RF230SplitControlP.SplitControlOrig -> MessageC;
+ RF230SplitControlP.SystemClockControl -> SystemClockControlC;
- SplitControl = RF230SplitControlP.SplitControl;
- Receive = MAC.Receive;
- Snoop = MAC.Snoop;
- Packet = MAC;
- AMPacket = MAC;
-
- TimeSyncAMSendRadio = MAC;
- TimeSyncPacketRadio = MAC;
- TimeSyncAMSendMilli = MAC;
- TimeSyncPacketMilli = MAC;
+ SplitControl = RF230SplitControlP.SplitControl;
+
+ Receive = MessageC.Receive;
+ Snoop = MessageC.Snoop;
+ Packet = MessageC;
+ AMPacket = MessageC;
+
+ PacketTimeStampRadio = MessageC;
+ TimeSyncAMSendRadio = MessageC;
+ TimeSyncPacketRadio = MessageC;
+
+ PacketTimeStampMilli = MessageC;
+ TimeSyncAMSendMilli = MessageC;
+ TimeSyncPacketMilli = MessageC;
}
*/
RF230_CCA_THRES_VALUE = 0xC7,
};
+
/* This is the default value of the TX_PWR field of the PHY_TX_PWR register. 0-15*/
#ifndef RF230_DEF_RFPOWER
#define RF230_DEF_RFPOWER 0
#define RF230_DEF_CHANNEL 11
#endif
-
/*
* This is the command used to calculate the CRC for the RF230 chip.
* TODO: Check why the default crcByte implementation is in a different endianness
return ((((uint16_t)data << 8) | hi8 /*hi8 (crc)*/) ^ (uint8_t)(data >> 4)
^ ((uint16_t)data << 3));
-
}
/**
* This is the timer type of the radio alarm interface
*/
-
typedef TMicro TRadio;
+
/**
* The number of alarm ticks per one second
*/
*/
#define RADIO_ALARM_MILLI_EXP 11
+/**
+ * Make PACKET_LINK automaticaly enabled for Ieee154MessageC
+ */
+#if !defined(TFRAMES_ENABLED) && !defined(PACKET_LINK)
+#define PACKET_LINK
+#endif
+
#endif //__RADIOCONFIG_H__