- Upgraded the Sensinode platform to use sicslowmac.c

- Improved the rime address setup, setting the RF driver addresses (byte order may not be correct)
This commit is contained in:
zdshelby 2009-09-11 08:03:42 +00:00
parent 49e9b0bdcb
commit ec02eab6bc

View file

@ -10,11 +10,12 @@
#include "dev/uart.h" #include "dev/uart.h"
#include "dev/models.h" #include "dev/models.h"
#include "dev/cc2430_rf.h" #include "dev/cc2430_rf.h"
#include "net/mac/nullmac.h" #include "net/mac/sicslowmac.h"
#include "net/mac/frame802154.h"
#include "net/rime.h" #include "net/rime.h"
volatile int i, a; volatile int i, a;
unsigned short node_id = 2; /* Manually sets MAC address when > 0 */ unsigned short node_id = 0; /* Manually sets MAC address when > 0 */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void static void
@ -58,6 +59,8 @@ set_rime_addr(void)
{ {
rimeaddr_t addr; rimeaddr_t addr;
uint8_t ft_buffer[8]; uint8_t ft_buffer[8];
uint8_t *addr_long = NULL;
uint16_t addr_short = 0;
int i; int i;
/* TODO: This flash_read routine currently gets a different address /* TODO: This flash_read routine currently gets a different address
@ -81,17 +84,25 @@ set_rime_addr(void)
} }
} else { } else {
printf("Setting manual address from node_id\n"); printf("Setting manual address from node_id\n");
addr.u8[0] = node_id >> 8; addr.u8[1] = node_id >> 8;
addr.u8[1] = node_id & 0xff; addr.u8[0] = node_id & 0xff;
} }
#endif #endif
rimeaddr_set_node_addr(&addr); rimeaddr_set_node_addr(&addr);
printf("Rime configured with address "); printf("Rime configured with address ");
for(i = 0; i < sizeof(addr.u8) - 1; i++) { for(i = (sizeof(addr.u8)) - 1; i > 0; i--) {
printf("%02x:", addr.u8[i]); printf("%02x:", addr.u8[i]);
} }
printf("%02x\n", addr.u8[i]); printf("%02x\n", addr.u8[i]);
/* Set the cc2430 RF addresses */
if (sizeof(addr.u8) == 6)
addr_long = (uint8_t *) addr.u8;
else
addr_short = (addr.u8[1] * 256) + addr.u8[0];
cc2430_rf_set_addr(0xffff, addr_short, addr_long);
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
int int
@ -118,7 +129,7 @@ main(void)
/* initialize the radio driver */ /* initialize the radio driver */
cc2430_rf_init(); cc2430_rf_init();
rime_init(nullmac_init(&cc2430_rf_driver)); rime_init(sicslowmac_init(&cc2430_rf_driver));
set_rime_addr(); set_rime_addr();
/* start services */ /* start services */