/**
 * @brief Frame reception
 *
 */
void radio_receive_frame(void)
{

uint8_t len, lqi, crc_fail;
int8_t ed;

    /* @todo add RSSI_BASE_VALUE to get a dBm value */
    ed = (int8_t)trx_reg_read(RG_PHY_ED_LEVEL);
    len = trx_frame_read(radiostatus.rxframe, radiostatus.rxframesz, &lqi);
    len &= ~0x80;

    #if defined(SR_RX_CRC_VALID)
        crc_fail = trx_bit_read(SR_RX_CRC_VALID) ? 0 : 1;
    #else
        uint8_t *frm, i;
        uint16_t crc;
        crc = 0;
        frm = radiostatus.rxframe;
        for (i=0; i < len; i++)
        {
            crc = CRC_CCITT_UPDATE(crc, *frm++);
        }
        crc_fail = (crc == 0)? 0: 1;
    #endif
    radiostatus.rxframe = usr_radio_receive_frame(len, radiostatus.rxframe,
                                                  lqi, ed, crc_fail);
}
Esempio n. 2
0
/**
 * @brief Frame reception
 *
 */
void radio_receive_frame(void)
{
    uint8_t len, lqi, crc_fail;
    
    crc_fail = trx_bit_read(SR_RX_CRC_VALID) ? 0 : 1;
    len = trx_frame_read(radiostatus.rxframe, radiostatus.rxframesz, &lqi);
    len &= ~0x80;
	
    radiostatus.rxframe = usr_radio_receive_frame(len, radiostatus.rxframe,
                                                  lqi, crc_fail);
}
Esempio n. 3
0
/**
 * @brief Frame reception
 *
 */
void radio_receive_frame(void)
{

uint8_t len, lqi, crc_fail;
int8_t ed;

    /* @todo add RSSI_BASE_VALUE to get a dBm value */
    ed = (int8_t)trx_reg_read(RG_PHY_ED_LEVEL);
    crc_fail = trx_bit_read(SR_RX_CRC_VALID) ? 0 : 1;
    len = trx_frame_read(radiostatus.rxframe, radiostatus.rxframesz, &lqi);
    len &= ~0x80;
    radiostatus.rxframe = usr_radio_receive_frame(len, radiostatus.rxframe,
                                                  lqi, ed, crc_fail);
}