return (call CC2420PacketBody.getMetadata( p_msg ))->lqi;
}
+ async command uint8_t CC2420Packet.getNetwork( message_t* p_msg ) {
+#if defined(TFRAMES_ENABLED)
+ return TINYOS_6LOWPAN_NETWORK_ID;
+#else
+ return (call CC2420PacketBody.getHeader( p_msg ))->network;
+#endif
+ }
+
+ async command void CC2420Packet.setNetwork( message_t* p_msg , uint8_t networkId ) {
+#if ! defined(TFRAMES_ENABLED)
+ (call CC2420PacketBody.getHeader( p_msg ))->network = networkId;
+#endif
+ }
+
+
/***************** CC2420PacketBody Commands ****************/
async command cc2420_header_t * ONE CC2420PacketBody.getHeader( message_t* ONE msg ) {
return TCAST(cc2420_header_t* ONE, (uint8_t *)msg + offsetof(message_t, data) - sizeof( cc2420_header_t ));
return call PacketTimeStamp32khz.isValid(msg);
}
+ //timestmap is always represented in 32khz
+ //28.1 is coefficient difference between T32khz and TMilli on MicaZ
async command uint32_t PacketTimeStampMilli.timestamp(message_t* msg)
{
- int32_t offset = call PacketTimeStamp32khz.timestamp(msg) - call LocalTime32khz.get();
- return (offset >> 5) + call LocalTimeMilli.get();
+ int32_t offset = (call LocalTime32khz.get()-call PacketTimeStamp32khz.timestamp(msg));
+ offset/=28.1;
+ return call LocalTimeMilli.get() - offset;
}
async command void PacketTimeStampMilli.clear(message_t* msg)