示例#1
0
int16_t cc2420_send(cc2420_packet_t *packet)
{
    volatile uint32_t abort_count = 0;

    /* Set missing frame information */
    packet->frame.fcf.frame_ver = 0;
    if(packet->frame.src_pan_id == packet->frame.dest_pan_id) {
        packet->frame.fcf.panid_comp = 1;
    } else {
        packet->frame.fcf.panid_comp = 0;
    }

    if(packet->frame.fcf.src_addr_m == 2) {
        packet->frame.src_addr[1] = (uint8_t)(cc2420_get_address() >> 8);
        packet->frame.src_addr[0] = (uint8_t)(cc2420_get_address() & 0xFF);
    } else if (packet->frame.fcf.src_addr_m == 3) {
示例#2
0
文件: transceiver.c 项目: mm3/RIOT
/*
 * @brief Get the current address of transceiver device
 *
 * @param t     The transceiver device
 *
 * @return  The configured address of the device
 *
 * TODO: define error behavior
 */
static radio_address_t get_address(transceiver_type_t t)
{
    switch (t) {
        case TRANSCEIVER_CC1100:
#if (defined(MODULE_CC110X) || defined(MODULE_CC110X_LEGACY))
            return cc110x_get_address();
#elif MODULE_CC110X_LEGACY_CSMA
            return cc1100_get_address();
#else
            return 0; /* XXX see TODO above */
#endif
#ifdef MODULE_CC2420

        case TRANSCEIVER_CC2420:
            return cc2420_get_address();
#endif
#ifdef MODULE_MC1322X

        case TRANSCEIVER_MC1322X:
            return maca_get_address();
#endif
#ifdef MODULE_NATIVENET

        case TRANSCEIVER_NATIVE:
            return nativenet_get_address();
#endif
#ifdef MODULE_AT86RF231

        case TRANSCEIVER_AT86RF231:
            return at86rf231_get_address();
#endif

        default:
            return 0; /* XXX see TODO above */
    }
}