Hi all,
Why is CRC, LQI and RSSI in CC2420 packet metadata computed this way?
task void receiveDone_task() {
cc2420_metadata_t* metadata = call CC2420PacketBody.getMetadata(
m_p_rx_buf );
cc2420_header_t* header = call CC2420PacketBody.getHeader( m_p_rx_buf);
uint8_t length = header->length;
uint8_t tmpLen __DEPUTY_UNUSED__ = sizeof(message_t) -
(offsetof(message_t, data) - sizeof(cc2420_header_t));
uint8_t* COUNT(tmpLen) buf = TCAST(uint8_t* COUNT(tmpLen), header);
metadata->crc = buf[ length ] >> 7;
metadata->lqi = buf[ length ] & 0x7f;
metadata->rssi = buf[ length - 1 ];
if (passesAddressCheck(m_p_rx_buf) && length >= CC2420_SIZE) {
m_p_rx_buf = signal Receive.receive( m_p_rx_buf, m_p_rx_buf->data,
length - CC2420_SIZE);
}
atomic receivingPacket = FALSE;
waitForNextPacket();
}
I really look forward to your help.
--
-Xiaohui Liu
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help