Hi!

On Tue, 17 Feb 2009, Jordi Pérez wrote:

Hi!

I have just tried it, and it works correctly. I see the bad and the correct
packets.


There was a bug in my patch (Mike point it out to me). I attached the correct one now. :-)

--
Razvan ME

2009/2/17 Razvan Musaloiu-E. <razv...@cs.jhu.edu>

Hi!

On Mon, 16 Feb 2009, Jordi Pérez wrote:

 Hi Razvan!

I tryed to understand the code to disable the filtering you said, but I
can't. Do you mind explaining me the things I have to change?

In RXFIFO.readDone event when I modify something, the program doesn't
work.
So I don't know how disable it.

In the SubReceive.receive event I changed the word Snoop to Receive, but I
don't really know if it is correct.

Can you help me please?


I attached a patch that takes out the parts that discards the packets with
bad CRC. It's against the latest CVS and you can apply it with this requence
of commands:
       cd $TOSROOT
       patch -p1 < cc2420-ignore-crc-patch.diff

Warning: I didn't have time to test this! I only made sure that it compiles
fine. :-) Give it a try and if it doesn't work at it should I'll look more
into it.

--
Razvan ME


 2009/2/12 Razvan Musaloiu-E. <razv...@cs.jhu.edu>

 Hi!


On Wed, 11 Feb 2009, Jordi Pérez wrote:

 Dear all,


For CC2420, if AUTOCRC is set, will the hardware reject CRC-error packet 
automatically?
If true, then is it possible to receive those packets but with AUTOCRC still
being set? I want to receive this packets and rebuild them.


 The CC2420 is not discarding the packets with bad CRC. What does is to
indicate using a bit that the packet was bad (page 38, section 16.4 from
[1]). The TinyOS driver for CC2420 inspects this bit and discards the
packets if that bit is not 1. You can see this happening in the
RXFIFO.readDone event from CC2420ReceiveP.nc. The switch branch of interest
is 'case S_RX_PAYLOAD:'.

The other filtering that you'll have to disable is in the
SubReceive.receive event from CC2420ActiveMessageP.nc.

[1] http://focus.ti.com/lit/ds/symlink/cc2420.pdf

--
Razvan ME


diff --git a/tos/chips/cc2420/CC2420ActiveMessageP.nc 
b/tos/chips/cc2420/CC2420ActiveMessageP.nc
index 0db2423..e6a035f 100644
--- a/tos/chips/cc2420/CC2420ActiveMessageP.nc
+++ b/tos/chips/cc2420/CC2420ActiveMessageP.nc
@@ -175,10 +175,6 @@ implementation {
   /***************** SubReceive Events ****************/
   event message_t* SubReceive.receive(message_t* msg, void* payload, uint8_t 
len) {
     
-    if(!(call CC2420PacketBody.getMetadata(msg))->crc) {
-      return msg;
-    }
-    
     if (call AMPacket.isForMe(msg)) {
       return signal Receive.receive[call AMPacket.type(msg)](msg, payload, 
len);
     }
diff --git a/tos/chips/cc2420/receive/CC2420ReceiveP.nc 
b/tos/chips/cc2420/receive/CC2420ReceiveP.nc
index 5bd4e85..3f32ce6 100644
--- a/tos/chips/cc2420/receive/CC2420ReceiveP.nc
+++ b/tos/chips/cc2420/receive/CC2420ReceiveP.nc
@@ -306,7 +306,7 @@ implementation {
 
       // We may have received an ack that should be processed by Transmit
       // buf[rxFrameLength] >> 7 checks the CRC
-      if ( ( buf[ rxFrameLength ] >> 7 ) && rx_buf ) {
+      if ( rx_buf ) {
         uint8_t type = ( header->fcf >> IEEE154_FCF_FRAME_TYPE ) & 7;
         signal CC2420Receive.receive( type, m_p_rx_buf );
         if ( type == IEEE154_TYPE_DATA ) {
_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to