X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Fcc2420%2Fpacket%2FCC2420PacketC.nc;h=9e3415546b1c8d1efb0811ab236f04383d77f9ee;hb=e9bfab607e051bae6afb47b44892ce37541d1b44;hp=a1ef8065ac342b78a164b3476dc5bfb065aaaf9a;hpb=7b0bf8ab32634b2aabe2747282d3a221cfea8cc6;p=tinyos-2.x.git diff --git a/tos/chips/cc2420/packet/CC2420PacketC.nc b/tos/chips/cc2420/packet/CC2420PacketC.nc index a1ef8065..9e341554 100644 --- a/tos/chips/cc2420/packet/CC2420PacketC.nc +++ b/tos/chips/cc2420/packet/CC2420PacketC.nc @@ -35,63 +35,36 @@ * @author Chad Metcalf */ -#include "IEEE802154.h" -#include "message.h" - -module CC2420PacketC { +configuration CC2420PacketC { provides { interface CC2420Packet; interface PacketAcknowledgements as Acks; interface CC2420PacketBody; + interface LinkPacketMetadata; + + interface PacketTimeStamp as PacketTimeStamp32khz; + interface PacketTimeStamp as PacketTimeStampMilli; + interface PacketTimeSyncOffset; } } implementation { - - - /***************** PacketAcknowledgement Commands ****************/ - async command error_t Acks.requestAck( message_t* p_msg ) { - (call CC2420PacketBody.getHeader( p_msg ))->fcf |= 1 << IEEE154_FCF_ACK_REQ; - return SUCCESS; - } - - async command error_t Acks.noAck( message_t* p_msg ) { - (call CC2420PacketBody.getHeader( p_msg ))->fcf &= ~(1 << IEEE154_FCF_ACK_REQ); - return SUCCESS; - } - - async command bool Acks.wasAcked( message_t* p_msg ) { - return (call CC2420PacketBody.getMetadata( p_msg ))->ack; - } - - /***************** CC2420Packet Commands ****************/ - async command void CC2420Packet.setPower( message_t* p_msg, uint8_t power ) { - if ( power > 31 ) - power = 31; - (call CC2420PacketBody.getMetadata( p_msg ))->tx_power = power; - } - - async command uint8_t CC2420Packet.getPower( message_t* p_msg ) { - return (call CC2420PacketBody.getMetadata( p_msg ))->tx_power; - } - - async command int8_t CC2420Packet.getRssi( message_t* p_msg ) { - return (call CC2420PacketBody.getMetadata( p_msg ))->rssi; - } - - async command uint8_t CC2420Packet.getLqi( message_t* p_msg ) { - return (call CC2420PacketBody.getMetadata( p_msg ))->lqi; - } - - /***************** CC2420PacketBody Commands ****************/ - async command cc2420_header_t *CC2420PacketBody.getHeader( message_t* msg ) { - return (cc2420_header_t*)( msg->data - sizeof( cc2420_header_t ) ); - } - - async command cc2420_metadata_t *CC2420PacketBody.getMetadata( message_t* msg ) { - return (cc2420_metadata_t*)msg->metadata; - } - + components CC2420PacketP; + CC2420Packet = CC2420PacketP; + Acks = CC2420PacketP; + CC2420PacketBody = CC2420PacketP; + LinkPacketMetadata = CC2420PacketP; + PacketTimeStamp32khz = CC2420PacketP; + PacketTimeStampMilli = CC2420PacketP; + PacketTimeSyncOffset = CC2420PacketP; + + components Counter32khz32C, new CounterToLocalTimeC(T32khz); + CounterToLocalTimeC.Counter -> Counter32khz32C; + CC2420PacketP.LocalTime32khz -> CounterToLocalTimeC; + + //DummyTimer is introduced to compile apps that use no timers + components HilTimerMilliC, new TimerMilliC() as DummyTimer; + CC2420PacketP.LocalTimeMilli -> HilTimerMilliC; }