예제 #1
0
/*---------------------------------------------------------------------------*/
static void
set_rf_params(void)
{
  uint16_t short_addr;
  uint8_t ext_addr[8];
  radio_value_t val = 0;

  ieee_addr_cpy_to(ext_addr, 8);

  short_addr = ext_addr[7];
  short_addr |= ext_addr[6] << 8;

  /* Populate linkaddr_node_addr. Maintain endianness */
  memcpy(&linkaddr_node_addr, &ext_addr[8 - LINKADDR_SIZE], LINKADDR_SIZE);

  NETSTACK_RADIO.set_value(RADIO_PARAM_PAN_ID, IEEE802154_PANID);
  NETSTACK_RADIO.set_value(RADIO_PARAM_16BIT_ADDR, short_addr);
  NETSTACK_RADIO.set_value(RADIO_PARAM_CHANNEL, RF_CORE_CHANNEL);
  NETSTACK_RADIO.set_object(RADIO_PARAM_64BIT_ADDR, ext_addr, 8);

  NETSTACK_RADIO.get_value(RADIO_PARAM_CHANNEL, &val);
  printf(" RF: Channel %d\n\r", val);

#if STARTUP_CONF_VERBOSE
  {
    int i;
    printf(" Link layer addr: ");
    for(i = 0; i < LINKADDR_SIZE - 1; i++) {
      printf("%02x:", linkaddr_node_addr.u8[i]);
    }
    printf("%02x\n", linkaddr_node_addr.u8[i]);
  }
#endif
}
예제 #2
0
/*---------------------------------------------------------------------------*/
static void
set_rf_params(void)
{
  uint16_t short_addr;
  uint8_t ext_addr[8];

  ieee_addr_cpy_to(ext_addr, 8);

  short_addr = ext_addr[7];
  short_addr |= ext_addr[6] << 8;

  /* Populate linkaddr_node_addr. Maintain endianness */
  memcpy(&linkaddr_node_addr, &ext_addr[8 - LINKADDR_SIZE], LINKADDR_SIZE);

#if STARTUP_CONF_VERBOSE
  {
    int i;
    printf("Rime configured with address ");
    for(i = 0; i < LINKADDR_SIZE - 1; i++) {
      printf("%02x:", linkaddr_node_addr.u8[i]);
    }
    printf("%02x\n", linkaddr_node_addr.u8[i]);
  }
#endif

  NETSTACK_RADIO.set_value(RADIO_PARAM_PAN_ID, IEEE802154_PANID);
  NETSTACK_RADIO.set_value(RADIO_PARAM_16BIT_ADDR, short_addr);
  NETSTACK_RADIO.set_value(RADIO_PARAM_CHANNEL, CC2538_RF_CHANNEL);
  NETSTACK_RADIO.set_object(RADIO_PARAM_64BIT_ADDR, ext_addr, 8);
}
예제 #3
0
/*---------------------------------------------------------------------------*/
static void set_rime_addr() {
	ieee_addr_cpy_to(&rimeaddr_node_addr.u8[0], RIMEADDR_SIZE);

#if STARTUP_CONF_VERBOSE
	{
		int i;
		printf("Rime configured with address ");
		for(i = 0; i < RIMEADDR_SIZE - 1; i++) {
			printf("%02x:", rimeaddr_node_addr.u8[i]);
		}
		printf("%02x\n", rimeaddr_node_addr.u8[i]);
	}
#endif

}
예제 #4
0
/*---------------------------------------------------------------------------*/
static void
set_serial_number(void)
{
  uint8_t i;
  uint8_t ieee[8];
  uint8_t lown, highn;
  uint8_t c;

  ieee_addr_cpy_to(ieee, 8);

  for(i = 0; i < 8; i++) {
    lown = ieee[i] & 0x0F;
    highn = ieee[i] >> 4;
    c = lown > 9 ? 'A' + lown - 0xA : lown + '0';
    serial_nr.string[i * 2 + 1] = c;
    c = highn > 9 ? 'A' + highn - 0xA : highn + '0';
    serial_nr.string[i * 2] = c;
  }
}