Hi everybody,
The following snippet is in CC2420ReceiveP.nc.
* void waitForNextPacket() {*
* atomic {*
* if ( m_state == S_STOPPED ) {*
* call SpiResource.release();*
* return;*
* }*
* *
* atomic receivingPacket = FALSE;*
* *
* /**
* * The FIFOP pin here is high when there are 0 bytes in the RX FIFO*
* * and goes low as soon as there are bytes in the RX FIFO. The pin*
* * is inverted from what the datasheet says, and its threshold is
127.*
* * Whenever the FIFOP line goes low, as you can see from the
interrupt*
* * handler elsewhere in this module, it means we received a new
packet.*
* * If the line stays low without generating an interrupt, that means*
* * there's still more data to be received.*
* */*
* if ( ( m_missed_packets && call FIFO.get() ) || !call FIFOP.get() ) {
*
* // A new packet is buffered up and ready to go*
* if ( m_missed_packets ) {*
* m_missed_packets--;*
* }*
* beginReceive();*
* } else {*
* // Wait for the next packet to arrive*
* m_state = S_STARTED;*
* m_missed_packets = 0;*
* call SpiResource.release();*
* }*
* }*
* }*
The statement in red checks if there is more frames buffered in RXFIFO. Why
not use
*if (call FIFO.get()) {*
?
Thanks in advance and await your explanation.
-- TelosB
-Xiaohui Liu
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help