Rewrote the 'nodes' command to use netflood rather than trickle - but the 'nodes' command don't seem to work reliably anyway, so it currently is a candidate for removal.
This commit is contained in:
parent
2f81a0463a
commit
66988436f8
1 changed files with 20 additions and 16 deletions
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: shell-rime.c,v 1.7 2008/07/07 23:22:59 adamdunkels Exp $
|
* $Id: shell-rime.c,v 1.8 2008/08/15 19:06:14 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
#include "net/rime.h"
|
#include "net/rime.h"
|
||||||
#include "net/rime/neighbor.h"
|
#include "net/rime/neighbor.h"
|
||||||
#include "net/rime/route.h"
|
#include "net/rime/route.h"
|
||||||
#include "net/rime/trickle.h"
|
#include "net/rime/netflood.h"
|
||||||
|
|
||||||
#include "net/rime/timesynch.h"
|
#include "net/rime/timesynch.h"
|
||||||
|
|
||||||
|
@ -68,13 +68,15 @@ int snprintf(char *str, size_t size, const char *format, ...);
|
||||||
#define COLLECT_REXMITS 4
|
#define COLLECT_REXMITS 4
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
TRICKLE_TYPE_NODES,
|
NETFLOOD_TYPE_NODES,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct trickle_msg {
|
struct netflood_msg {
|
||||||
uint8_t type;
|
uint8_t type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static uint8_t nodes_seqno;
|
||||||
|
|
||||||
#define COLLECT_MSG_HDRSIZE 4
|
#define COLLECT_MSG_HDRSIZE 4
|
||||||
struct collect_msg {
|
struct collect_msg {
|
||||||
uint16_t timestamp;
|
uint16_t timestamp;
|
||||||
|
@ -83,7 +85,7 @@ struct collect_msg {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct collect_conn collect;
|
static struct collect_conn collect;
|
||||||
static struct trickle_conn trickle;
|
static struct netflood_conn netflood;
|
||||||
static struct ctimer ctimer;
|
static struct ctimer ctimer;
|
||||||
static int waiting_for_nodes = 0;
|
static int waiting_for_nodes = 0;
|
||||||
static int waiting_for_collect = 0;
|
static int waiting_for_collect = 0;
|
||||||
|
@ -276,7 +278,7 @@ PROCESS_THREAD(shell_neighbors_process, ev, data)
|
||||||
PROCESS_THREAD(shell_nodes_process, ev, data)
|
PROCESS_THREAD(shell_nodes_process, ev, data)
|
||||||
{
|
{
|
||||||
static struct etimer etimer;
|
static struct etimer etimer;
|
||||||
struct trickle_msg *msg;
|
struct netflood_msg *msg;
|
||||||
char buf[10];
|
char buf[10];
|
||||||
PROCESS_BEGIN();
|
PROCESS_BEGIN();
|
||||||
|
|
||||||
|
@ -296,9 +298,9 @@ PROCESS_THREAD(shell_nodes_process, ev, data)
|
||||||
|
|
||||||
rimebuf_clear();
|
rimebuf_clear();
|
||||||
msg = rimebuf_dataptr();
|
msg = rimebuf_dataptr();
|
||||||
rimebuf_set_datalen(sizeof(struct trickle_msg));
|
rimebuf_set_datalen(sizeof(struct netflood_msg));
|
||||||
msg->type = TRICKLE_TYPE_NODES;
|
msg->type = NETFLOOD_TYPE_NODES;
|
||||||
trickle_send(&trickle);
|
netflood_send(&netflood, nodes_seqno++);
|
||||||
|
|
||||||
etimer_set(&etimer, CLOCK_SECOND * 10);
|
etimer_set(&etimer, CLOCK_SECOND * 10);
|
||||||
waiting_for_nodes = 1;
|
waiting_for_nodes = 1;
|
||||||
|
@ -452,23 +454,25 @@ send_collect(void *dummy)
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
recv_trickle(struct trickle_conn *c)
|
recv_netflood(struct netflood_conn *c)
|
||||||
{
|
{
|
||||||
struct trickle_msg *msg;
|
struct netflood_msg *msg;
|
||||||
|
|
||||||
msg = rimebuf_dataptr();
|
msg = rimebuf_dataptr();
|
||||||
if(msg->type == TRICKLE_TYPE_NODES) {
|
if(msg->type == NETFLOOD_TYPE_NODES) {
|
||||||
ctimer_set(&ctimer, random_rand() % (CLOCK_SECOND * 2),
|
ctimer_set(&ctimer, random_rand() % (CLOCK_SECOND * 8),
|
||||||
send_collect, NULL);
|
send_collect, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const static struct trickle_callbacks trickle_callbacks = { recv_trickle };
|
const static struct netflood_callbacks netflood_callbacks = { recv_netflood,
|
||||||
|
NULL, NULL };
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
shell_rime_init(void)
|
shell_rime_init(void)
|
||||||
{
|
{
|
||||||
trickle_open(&trickle, CLOCK_SECOND * 4, 16, &trickle_callbacks);
|
netflood_open(&netflood, CLOCK_SECOND * 8,
|
||||||
collect_open(&collect, 17, &collect_callbacks);
|
SHELL_RIME_CHANNEL_NODES, &netflood_callbacks);
|
||||||
|
collect_open(&collect, SHELL_RIME_CHANNEL_COLLECT, &collect_callbacks);
|
||||||
|
|
||||||
shell_register_command(&collect_command);
|
shell_register_command(&collect_command);
|
||||||
shell_register_command(&mac_command);
|
shell_register_command(&mac_command);
|
||||||
|
|
Loading…
Reference in a new issue