Simplify and homogenize node-id across all platforms
This commit is contained in:
parent
88180678ff
commit
3889ffe750
@ -64,6 +64,7 @@
|
||||
#include "dev/button-sensor.h"
|
||||
#include "dev/pir-sensor.h"
|
||||
#include "dev/vib-sensor.h"
|
||||
#include "dev/moteid.h"
|
||||
|
||||
#include "sys/node-id.h"
|
||||
#include "services/rpl-border-router/rpl-border-router.h"
|
||||
@ -151,13 +152,13 @@ set_lladdr(void)
|
||||
{
|
||||
int i;
|
||||
for(i = 0; i < sizeof(uip_lladdr.addr); i += 2) {
|
||||
addr.u8[i + 1] = node_id & 0xff;
|
||||
addr.u8[i + 0] = node_id >> 8;
|
||||
addr.u8[i + 1] = simMoteID & 0xff;
|
||||
addr.u8[i + 0] = simMoteID >> 8;
|
||||
}
|
||||
}
|
||||
#else /* NETSTACK_CONF_WITH_IPV6 */
|
||||
addr.u8[0] = node_id & 0xff;
|
||||
addr.u8[1] = node_id >> 8;
|
||||
addr.u8[0] = simMoteID & 0xff;
|
||||
addr.u8[1] = simMoteID >> 8;
|
||||
#endif /* NETSTACK_CONF_WITH_IPV6 */
|
||||
linkaddr_set_node_addr(&addr);
|
||||
}
|
||||
@ -177,11 +178,6 @@ platform_init_stage_two()
|
||||
void
|
||||
platform_init_stage_three()
|
||||
{
|
||||
if(node_id > 0) {
|
||||
LOG_INFO("Node id is set to %u.\n", node_id);
|
||||
} else {
|
||||
LOG_INFO("Node id is not set.\n");
|
||||
}
|
||||
/* Initialize eeprom */
|
||||
eeprom_init();
|
||||
/* Start serial process */
|
||||
|
@ -82,7 +82,7 @@ OBJDUMP:=$(CROSS_COMPILE)-objdump
|
||||
|
||||
ARCH = jn516x-ccm-star.c exceptions.c rtimer-arch.c rtimer-arch-slow.c \
|
||||
slip_uart0.c clock.c micromac-radio.c int-master.c \
|
||||
node-id.c watchdog.c slip.c dbg.c
|
||||
watchdog.c slip.c dbg.c
|
||||
# Default uart0 for printf and slip
|
||||
TARGET_WITH_UART0 ?= 1
|
||||
TARGET_WITH_UART1 ?= 0
|
||||
|
@ -1,61 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2014, SICS Swedish ICT.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* This file is part of the Contiki operating system.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file
|
||||
* For compatibility with Contiki node-id interface
|
||||
*
|
||||
* \author
|
||||
* Beshr Al Nahas <beshr@sics.se>
|
||||
*/
|
||||
|
||||
#include "contiki.h"
|
||||
#include "sys/node-id.h"
|
||||
#include "contiki.h"
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
extern unsigned char node_mac[8];
|
||||
unsigned short node_id = 0;
|
||||
/*---------------------------------------------------------------------------*/
|
||||
void
|
||||
node_id_restore(void)
|
||||
{
|
||||
/* base node-id on MAC address */
|
||||
node_id = (node_mac[6] << 8) | node_mac[7];
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
void
|
||||
node_id_burn(unsigned short id)
|
||||
{
|
||||
/* does not burn anything */
|
||||
node_id = id;
|
||||
}
|
@ -113,8 +113,7 @@ static uint32_t sleep_start_ticks;
|
||||
#define LOG_LEVEL LOG_LEVEL_MAIN
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Reads MAC from SoC
|
||||
* Must be called before node_id_restore()
|
||||
* and network addresses initialization */
|
||||
* Must be called before network addresses initialization */
|
||||
static void
|
||||
init_node_mac(void)
|
||||
{
|
||||
@ -139,14 +138,9 @@ set_linkaddr(void)
|
||||
#if NETSTACK_CONF_WITH_IPV6
|
||||
memcpy(addr.u8, node_mac, sizeof(addr.u8));
|
||||
#else
|
||||
if(node_id == 0) {
|
||||
int i;
|
||||
for(i = 0; i < LINKADDR_SIZE; ++i) {
|
||||
addr.u8[i] = node_mac[LINKADDR_SIZE - 1 - i];
|
||||
}
|
||||
} else {
|
||||
addr.u8[0] = node_id & 0xff;
|
||||
addr.u8[1] = node_id >> 8;
|
||||
int i;
|
||||
for(i = 0; i < LINKADDR_SIZE; ++i) {
|
||||
addr.u8[i] = node_mac[LINKADDR_SIZE - 1 - i];
|
||||
}
|
||||
#endif
|
||||
linkaddr_set_node_addr(&addr);
|
||||
@ -194,20 +188,6 @@ platform_init_stage_one(void)
|
||||
leds_init();
|
||||
leds_on(LEDS_ALL);
|
||||
init_node_mac();
|
||||
|
||||
node_id_restore();
|
||||
|
||||
#if WITH_TINYOS_AUTO_IDS
|
||||
node_id = TOS_NODE_ID;
|
||||
#endif /* WITH_TINYOS_AUTO_IDS */
|
||||
/* for setting "hardcoded" IEEE 802.15.4 MAC addresses */
|
||||
#ifdef IEEE_802154_MAC_ADDRESS
|
||||
{
|
||||
uint8_t ieee[] = IEEE_802154_MAC_ADDRESS;
|
||||
memcpy(node_mac, ieee, sizeof(uip_lladdr.addr));
|
||||
node_mac[7] = node_id & 0xff;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
void
|
||||
@ -225,12 +205,6 @@ platform_init_stage_two(void)
|
||||
void
|
||||
platform_init_stage_three(void)
|
||||
{
|
||||
if(node_id > 0) {
|
||||
LOG_INFO("Node id is set to %u.\n", node_id);
|
||||
} else {
|
||||
LOG_INFO("Node id is not set.\n");
|
||||
}
|
||||
|
||||
#ifndef UIP_FALLBACK_INTERFACE
|
||||
uart0_set_input(serial_line_input_byte);
|
||||
serial_line_init();
|
||||
|
@ -120,9 +120,6 @@ static uint8_t mac_addr[] = PLATFORM_CONF_MAC_ADDR;
|
||||
static uint8_t mac_addr[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 };
|
||||
#endif /* PLATFORM_CONF_MAC_ADDR */
|
||||
|
||||
#if !NETSTACK_CONF_WITH_IPV6
|
||||
static uint16_t node_id = 0x0102;
|
||||
#endif /* !NETSTACK_CONF_WITH_IPV6 */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
int
|
||||
select_set_callback(int fd, const struct select_callback *callback)
|
||||
@ -187,14 +184,9 @@ set_lladdr(void)
|
||||
#if NETSTACK_CONF_WITH_IPV6
|
||||
memcpy(addr.u8, mac_addr, sizeof(addr.u8));
|
||||
#else
|
||||
if(node_id == 0) {
|
||||
int i;
|
||||
for(i = 0; i < sizeof(linkaddr_t); ++i) {
|
||||
addr.u8[i] = mac_addr[7 - i];
|
||||
}
|
||||
} else {
|
||||
addr.u8[0] = node_id & 0xff;
|
||||
addr.u8[1] = node_id >> 8;
|
||||
int i;
|
||||
for(i = 0; i < sizeof(linkaddr_t); ++i) {
|
||||
addr.u8[i] = mac_addr[7 - i];
|
||||
}
|
||||
#endif
|
||||
linkaddr_set_node_addr(&addr);
|
||||
|
@ -1,6 +1,6 @@
|
||||
# $Id: Makefile.common,v 1.3 2010/08/24 16:24:11 joxe Exp $
|
||||
|
||||
ARCH=spi-legacy.c ds2411.c xmem.c i2c.c node-id.c sensors.c cfs-coffee.c \
|
||||
ARCH=spi-legacy.c ds2411.c xmem.c i2c.c sensors.c cfs-coffee.c \
|
||||
cc2420.c cc2420-arch.c cc2420-arch-sfd.c \
|
||||
sky-sensors.c uip-ipchksum.c \
|
||||
uart1.c slip_uart1.c uart1-putchar.c platform.c
|
||||
|
@ -1,80 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* This file is part of the Contiki operating system.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file
|
||||
* A program for burning a node ID into the flash ROM of a Tmote Sky node.
|
||||
* \author
|
||||
* Adam Dunkels <adam@sics.se>
|
||||
*/
|
||||
|
||||
#include "dev/leds.h"
|
||||
#include "dev/watchdog.h"
|
||||
#include "sys/node-id.h"
|
||||
#include "contiki.h"
|
||||
#include "sys/etimer.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
static struct etimer etimer;
|
||||
|
||||
PROCESS(burn_process, "Burn node id");
|
||||
AUTOSTART_PROCESSES(&burn_process);
|
||||
/*---------------------------------------------------------------------------*/
|
||||
PROCESS_THREAD(burn_process, ev, data)
|
||||
{
|
||||
PROCESS_BEGIN();
|
||||
|
||||
etimer_set(&etimer, 5*CLOCK_SECOND);
|
||||
PROCESS_WAIT_UNTIL(etimer_expired(&etimer));
|
||||
|
||||
watchdog_stop();
|
||||
leds_on(LEDS_RED);
|
||||
#if NODEID
|
||||
printf("Burning node id %d\n", NODEID);
|
||||
node_id_burn(NODEID);
|
||||
leds_on(LEDS_BLUE);
|
||||
node_id_restore();
|
||||
printf("Restored node id %d\n", node_id);
|
||||
#else
|
||||
#error "burn-nodeid must be compiled with nodeid=<the ID of the node>"
|
||||
node_id_restore();
|
||||
printf("Restored node id %d\n", node_id);
|
||||
#endif
|
||||
leds_off(LEDS_RED + LEDS_BLUE);
|
||||
watchdog_start();
|
||||
while(1) {
|
||||
PROCESS_WAIT_EVENT();
|
||||
}
|
||||
PROCESS_END();
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
@ -1,71 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* This file is part of the Contiki operating system.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file
|
||||
* Utility to store a node id in the external flash
|
||||
* \author
|
||||
* Adam Dunkels <adam@sics.se>
|
||||
*/
|
||||
|
||||
#include "sys/node-id.h"
|
||||
#include "contiki.h"
|
||||
#include "dev/xmem.h"
|
||||
|
||||
unsigned short node_id = 0;
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
void
|
||||
node_id_restore(void)
|
||||
{
|
||||
unsigned char buf[4];
|
||||
xmem_pread(buf, 4, NODE_ID_XMEM_OFFSET);
|
||||
if(buf[0] == 0xad &&
|
||||
buf[1] == 0xde) {
|
||||
node_id = (buf[2] << 8) | buf[3];
|
||||
} else {
|
||||
node_id = 0;
|
||||
}
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
void
|
||||
node_id_burn(unsigned short id)
|
||||
{
|
||||
unsigned char buf[4];
|
||||
buf[0] = 0xad;
|
||||
buf[1] = 0xde;
|
||||
buf[2] = id >> 8;
|
||||
buf[3] = id & 0xff;
|
||||
xmem_erase(XMEM_ERASE_UNIT_SIZE, NODE_ID_XMEM_OFFSET);
|
||||
xmem_pwrite(buf, 4, NODE_ID_XMEM_OFFSET);
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
@ -103,14 +103,9 @@ set_lladdr(void)
|
||||
#if NETSTACK_CONF_WITH_IPV6
|
||||
memcpy(addr.u8, ds2411_id, sizeof(addr.u8));
|
||||
#else
|
||||
if(node_id == 0) {
|
||||
int i;
|
||||
for(i = 0; i < sizeof(linkaddr_t); ++i) {
|
||||
addr.u8[i] = ds2411_id[7 - i];
|
||||
}
|
||||
} else {
|
||||
addr.u8[0] = node_id & 0xff;
|
||||
addr.u8[1] = node_id >> 8;
|
||||
int i;
|
||||
for(i = 0; i < sizeof(linkaddr_t); ++i) {
|
||||
addr.u8[i] = ds2411_id[7 - i];
|
||||
}
|
||||
#endif
|
||||
linkaddr_set_node_addr(&addr);
|
||||
@ -153,23 +148,7 @@ platform_init_stage_two(void)
|
||||
* Hardware initialization done!
|
||||
*/
|
||||
|
||||
#if WITH_TINYOS_AUTO_IDS
|
||||
node_id = TOS_NODE_ID;
|
||||
#else /* WITH_TINYOS_AUTO_IDS */
|
||||
/* Restore node id if such has been stored in external mem */
|
||||
node_id_restore();
|
||||
#endif /* WITH_TINYOS_AUTO_IDS */
|
||||
|
||||
/* for setting "hardcoded" IEEE 802.15.4 MAC addresses */
|
||||
#ifdef IEEE_802154_MAC_ADDRESS
|
||||
{
|
||||
uint8_t ieee[] = IEEE_802154_MAC_ADDRESS;
|
||||
memcpy(ds2411_id, ieee, sizeof(uip_lladdr.addr));
|
||||
ds2411_id[7] = node_id & 0xff;
|
||||
}
|
||||
#endif
|
||||
|
||||
random_init(ds2411_id[0] + node_id);
|
||||
random_init(ds2411_id[0]);
|
||||
|
||||
leds_off(LEDS_BLUE);
|
||||
|
||||
@ -198,12 +177,6 @@ platform_init_stage_three(void)
|
||||
|
||||
cc2420_set_pan_addr(IEEE802154_PANID, shortaddr, longaddr);
|
||||
|
||||
if(node_id > 0) {
|
||||
LOG_INFO("Node id: %u\n", node_id);
|
||||
} else {
|
||||
LOG_INFO("Node id: N/A\n");
|
||||
}
|
||||
|
||||
LOG_INFO("CC2420 CCA threshold %i\n", CC2420_CONF_CCA_THRESH);
|
||||
|
||||
#if !NETSTACK_CONF_WITH_IPV6
|
||||
|
@ -81,8 +81,6 @@
|
||||
#define LOG_MODULE "CC26xx/CC13xx"
|
||||
#define LOG_LEVEL LOG_LEVEL_MAIN
|
||||
/*---------------------------------------------------------------------------*/
|
||||
unsigned short node_id = 0;
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/** \brief Board specific iniatialisation */
|
||||
void board_init(void);
|
||||
/*---------------------------------------------------------------------------*/
|
||||
@ -130,9 +128,6 @@ set_rf_params(void)
|
||||
NETSTACK_RADIO.set_value(RADIO_PARAM_16BIT_ADDR, short_addr);
|
||||
NETSTACK_RADIO.set_value(RADIO_PARAM_CHANNEL, IEEE802154_DEFAULT_CHANNEL);
|
||||
NETSTACK_RADIO.set_object(RADIO_PARAM_64BIT_ADDR, ext_addr, 8);
|
||||
|
||||
/* also set the global node id */
|
||||
node_id = short_addr;
|
||||
#endif
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
@ -227,8 +222,6 @@ platform_init_stage_three()
|
||||
}
|
||||
LOG_INFO_("\n");
|
||||
|
||||
LOG_INFO(" Node ID: %d\n", node_id);
|
||||
|
||||
#if BOARD_HAS_SENSORS
|
||||
process_start(&sensors_process, NULL);
|
||||
#endif
|
||||
|
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include "contiki.h"
|
||||
#include "node-id.h"
|
||||
#include "sys/node-id.h"
|
||||
#include "sys/log.h"
|
||||
#include "net/ipv6/uip-ds6-route.h"
|
||||
#include "net/mac/tsch/tsch.h"
|
||||
|
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
#include "contiki.h"
|
||||
#include "node-id.h"
|
||||
#include "sys/node-id.h"
|
||||
#include "sys/log.h"
|
||||
#include "net/ipv6/uip-ds6-route.h"
|
||||
#include "net/ipv6/uip-sr.h"
|
||||
|
@ -38,7 +38,7 @@
|
||||
*/
|
||||
|
||||
#include "contiki.h"
|
||||
#include "node-id.h"
|
||||
#include "sys/node-id.h"
|
||||
#include "sys/log.h"
|
||||
#include "net/ipv6/uip-ds6-route.h"
|
||||
#include "net/mac/tsch/tsch.h"
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include "net/routing/routing.h"
|
||||
#include "net/ipv6/uip-debug.h"
|
||||
#include "lib/random.h"
|
||||
#include "node-id.h"
|
||||
#include "sys/node-id.h"
|
||||
#include "waveform.h"
|
||||
#include "leds.h"
|
||||
#include "net/ipv6/uiplib.h"
|
||||
|
@ -42,6 +42,7 @@
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#include "contiki.h"
|
||||
#include "contiki-net.h"
|
||||
#include "sys/node-id.h"
|
||||
#include "sys/platform.h"
|
||||
#include "sys/energest.h"
|
||||
#include "sys/stack-check.h"
|
||||
@ -86,6 +87,9 @@ main(void)
|
||||
|
||||
platform_init_stage_two();
|
||||
|
||||
netstack_init();
|
||||
node_id_init();
|
||||
|
||||
LOG_INFO("Starting " CONTIKI_VERSION_STRING "\n");
|
||||
LOG_INFO("- Routing: %s\n", NETSTACK_ROUTING.name);
|
||||
LOG_INFO("- Net: %s\n", NETSTACK_NETWORK.name);
|
||||
@ -97,9 +101,8 @@ main(void)
|
||||
LOG_INFO("- 802.15.4 Default channel: %u\n", IEEE802154_DEFAULT_CHANNEL);
|
||||
#endif /* MAC_CONF_WITH_TSCH */
|
||||
|
||||
netstack_init();
|
||||
|
||||
LOG_INFO("Link-layer address ");
|
||||
LOG_INFO("Node ID: %u\n", node_id);
|
||||
LOG_INFO("Link-layer address: ");
|
||||
LOG_INFO_LLADDR(&linkaddr_node_addr);
|
||||
LOG_INFO_("\n");
|
||||
|
||||
@ -110,7 +113,7 @@ main(void)
|
||||
process_start(&tcpip_process, NULL);
|
||||
|
||||
lladdr = uip_ds6_get_link_local(-1);
|
||||
LOG_INFO("Tentative link-local IPv6 address ");
|
||||
LOG_INFO("Tentative link-local IPv6 address: ");
|
||||
LOG_INFO_6ADDR(lladdr != NULL ? &lladdr->ipaddr : NULL);
|
||||
LOG_INFO_("\n");
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, Swedish Institute of Computer Science.
|
||||
* Copyright (c) 2018, RISE SICS.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -26,14 +26,26 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
*
|
||||
* This file is part of the Contiki operating system.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef NODE_ID_H_
|
||||
#define NODE_ID_H_
|
||||
/**
|
||||
* \file
|
||||
* Node-id management
|
||||
* \author
|
||||
* Simon Duquennoy <simon.duquennoy@ri.se>
|
||||
*/
|
||||
|
||||
#include "dev/moteid.h"
|
||||
#include "contiki.h"
|
||||
#include "sys/node-id.h"
|
||||
#include "net/linkaddr.h"
|
||||
|
||||
#define node_id simMoteID
|
||||
uint16_t node_id = 0;
|
||||
|
||||
#endif /* NODE_ID_H_ */
|
||||
void
|
||||
node_id_init(void) {
|
||||
/* Initialize with a default value derived from linkaddr */
|
||||
node_id = linkaddr_node_addr.u8[LINKADDR_SIZE - 1]
|
||||
+ (linkaddr_node_addr.u8[LINKADDR_SIZE - 2] << 8);
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||
* Copyright (c) 2018, RISE SICS.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -28,16 +28,25 @@
|
||||
*
|
||||
* This file is part of the Contiki operating system.
|
||||
*
|
||||
* Author: Adam Dunkels <adam@sics.se>
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* \addtogroup node-id
|
||||
* @{
|
||||
*
|
||||
* \file Node-id (simple 16-bit identifiers) handling
|
||||
* \author Simon Duquennoy <simon.duquennoy@ri.se>
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef NODE_ID_H_
|
||||
#define NODE_ID_H_
|
||||
|
||||
void node_id_restore(void);
|
||||
void node_id_burn(unsigned short node_id);
|
||||
|
||||
extern unsigned short node_id;
|
||||
/* A global variable that hosts the node ID */
|
||||
extern uint16_t node_id;
|
||||
/**
|
||||
* Initialize the node ID. Must be called after initialized of linkaddr
|
||||
*/
|
||||
void node_id_init(void);
|
||||
|
||||
#endif /* NODE_ID_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user