]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/cc2420/CC2420ActiveMessageP.nc
Implement clear() properly.
[tinyos-2.x.git] / tos / chips / cc2420 / CC2420ActiveMessageP.nc
index a4e4f843f3bde76c1d4eed5b774a74fc8ca26d3b..7a111f53603fe9e54d70a37c8750f82ad030d8db 100644 (file)
@@ -41,7 +41,9 @@ module CC2420ActiveMessageP {
     interface Receive as Snoop[am_id_t id];
     interface AMPacket;
     interface Packet;
+    interface SendNotifier[am_id_t id];
   }
+  
   uses {
     interface Send as SubSend;
     interface Receive as SubReceive;
@@ -66,6 +68,8 @@ implementation {
     header->dest = addr;
     header->destpan = call CC2420Config.getPanAddr();
     
+    signal SendNotifier.aboutToSend[id](addr, msg);
+    
     return call SubSend.send( msg, len + CC2420_SIZE );
   }
 
@@ -137,6 +141,8 @@ implementation {
 
   /***************** Packet Commands ****************/
   command void Packet.clear(message_t* msg) {
+    memset(call CC2420PacketBody.getHeader(msg), sizeof(cc2420_header_t), 0);
+    memset(call CC2420PacketBody.getMetadata(msg), sizeof(cc2420_metadata_t), 0);
   }
   
   command uint8_t Packet.payloadLength(message_t* msg) {
@@ -196,7 +202,9 @@ implementation {
   }
 
   default event void AMSend.sendDone[uint8_t id](message_t* msg, error_t err) {
-    return;
   }
 
+  default event void SendNotifier.aboutToSend[am_id_t amId](am_addr_t addr, message_t *msg) {
+  }
+  
 }