Esempio n. 1
0
void mrf24j40_reset(mrf24j40_t *dev)
{
    eui64_t addr_long;

    mrf24j40_init(dev);

    netdev_ieee802154_reset(&dev->netdev);

    /* get an 8-byte unique ID to use as hardware address */
    luid_get(addr_long.uint8, IEEE802154_LONG_ADDRESS_LEN);
    addr_long.uint8[0] &= ~(0x01);
    addr_long.uint8[0] |=  (0x02);
    /* set short and long address */
    mrf24j40_set_addr_long(dev, ntohll(addr_long.uint64.u64));
    mrf24j40_set_addr_short(dev, ntohs(addr_long.uint16[0].u16));

    /* set default PAN id */
    mrf24j40_set_pan(dev, IEEE802154_DEFAULT_PANID);
    mrf24j40_set_chan(dev, IEEE802154_DEFAULT_CHANNEL);

    /* configure Immediate Sleep and Wake-Up mode */
    mrf24j40_reg_write_short(dev, MRF24J40_REG_WAKECON, MRF24J40_WAKECON_IMMWAKE);

    /* set default options */
    mrf24j40_set_option(dev, IEEE802154_FCF_PAN_COMP, true);
    mrf24j40_set_option(dev, NETDEV_IEEE802154_SRC_MODE_LONG, true);
    mrf24j40_set_option(dev, NETDEV_IEEE802154_ACK_REQ, true);
    mrf24j40_set_option(dev, MRF24J40_OPT_CSMA, true);

    /* go into RX state */
    mrf24j40_reset_tasks(dev);
    dev->state = 0;
    mrf24j40_set_state(dev, MRF24J40_PSEUDO_STATE_IDLE);
    DEBUG("mrf24j40_reset(): reset complete.\n");
}
Esempio n. 2
0
void init_zigbee(u8 _channel, u16 pan_id, u16 short_address)
{
	mrf24j40_setup_io();
	mrf24j40_init();
	//mrf24j40_set_pan_id(pan_id);
	//mrf24j40_set_short_address(short_address);
	//mrf24j40_set_channel(_channel);
}
Esempio n. 3
0
void init_zigbee(u8 _channel, u16 pan_id, u16 short_address)
{
    mrf24j40_setup_io();
    mrf24j40_init();
    // RB : 30-08-2013 - Uncommented following lines
    mrf24j40_set_pan_id(pan_id);
    mrf24j40_set_short_address(short_address);
    mrf24j40_set_channel(_channel);
}