Allow node address to be set by COOJA when emulating.

This commit is contained in:
Niclas Finne 2012-05-29 19:42:35 +02:00
parent 2c460090e3
commit b6ed988709

View file

@ -136,12 +136,8 @@ set_rime_addr(void)
// Set node address // Set node address
#if UIP_CONF_IPV6 #if UIP_CONF_IPV6
//memcpy(addr.u8, ds2411_id, sizeof(addr.u8)); //memcpy(addr.u8, ds2411_id, sizeof(addr.u8));
n_addr.u8[7] = NODE_ID & 0xff; n_addr.u8[7] = node_id & 0xff;
n_addr.u8[6] = NODE_ID >> 8; n_addr.u8[6] = node_id >> 8;
// n_addr.u8[7] = node_id & 0xff;
// n_addr.u8[6] = node_id >> 8;
#else #else
/* if(node_id == 0) { /* if(node_id == 0) {
for(i = 0; i < sizeof(rimeaddr_t); ++i) { for(i = 0; i < sizeof(rimeaddr_t); ++i) {
@ -151,8 +147,8 @@ set_rime_addr(void)
addr.u8[0] = node_id & 0xff; addr.u8[0] = node_id & 0xff;
addr.u8[1] = node_id >> 8; addr.u8[1] = node_id >> 8;
}*/ }*/
n_addr.u8[0] = NODE_ID >> 8; n_addr.u8[0] = node_id & 0xff;
n_addr.u8[1] = NODE_ID & 0xff; n_addr.u8[1] = node_id >> 8;
#endif #endif
rimeaddr_set_node_addr(&n_addr); rimeaddr_set_node_addr(&n_addr);
@ -163,6 +159,7 @@ set_rime_addr(void)
printf("%d\n", n_addr.u8[i]); printf("%d\n", n_addr.u8[i]);
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#if !PROCESS_CONF_NO_PROCESS_NAMES
static void static void
print_processes(struct process * const processes[]) print_processes(struct process * const processes[])
{ {
@ -174,6 +171,7 @@ print_processes(struct process * const processes[])
} }
putchar('\n'); putchar('\n');
} }
#endif /* !PROCESS_CONF_NO_PROCESS_NAMES */
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
#if WITH_UIP #if WITH_UIP
static void static void
@ -203,7 +201,7 @@ main(int argc, char **argv)
clock_init(); clock_init();
leds_init(); leds_init();
leds_on(LEDS_ALL); leds_on(LEDS_RED);
uart1_init(115200); /* Must come before first printf */ uart1_init(115200); /* Must come before first printf */
@ -211,6 +209,7 @@ main(int argc, char **argv)
slip_arch_init(115200); slip_arch_init(115200);
#endif /* WITH_UIP */ #endif /* WITH_UIP */
leds_on(LEDS_GREEN);
//ds2411_init(); //ds2411_init();
/* XXX hack: Fix it so that the 802.15.4 MAC address is compatible /* XXX hack: Fix it so that the 802.15.4 MAC address is compatible
@ -218,17 +217,19 @@ main(int argc, char **argv)
cannot be odd. */ cannot be odd. */
//ds2411_id[2] &= 0xfe; //ds2411_id[2] &= 0xfe;
leds_on(LEDS_BLUE);
//xmem_init(); //xmem_init();
leds_off(LEDS_RED);
rtimer_init(); rtimer_init();
/* /*
* Hardware initialization done! * Hardware initialization done!
*/ */
node_id = NODE_ID;
/* Restore node id if such has been stored in external mem */ /* Restore node id if such has been stored in external mem */
//node_id_restore(); //node_id_restore();
node_id = NODE_ID;
/* for setting "hardcoded" IEEE 802.15.4 MAC addresses */ /* for setting "hardcoded" IEEE 802.15.4 MAC addresses */
#ifdef IEEE_802154_MAC_ADDRESS #ifdef IEEE_802154_MAC_ADDRESS
@ -394,7 +395,11 @@ main(int argc, char **argv)
/* Stop the watchdog */ /* Stop the watchdog */
watchdog_stop(); watchdog_stop();
#if !PROCESS_CONF_NO_PROCESS_NAMES
print_processes(autostart_processes); print_processes(autostart_processes);
#else /* !PROCESS_CONF_NO_PROCESS_NAMES */
putchar('\n'); /* include putchar() */
#endif /* !PROCESS_CONF_NO_PROCESS_NAMES */
autostart_start(autostart_processes); autostart_start(autostart_processes);
/* /*