Added the number of hop-by-hop retransmissions to the 'send' command

This commit is contained in:
adamdunkels 2010-09-13 13:29:29 +00:00
parent 591766e663
commit f1769a3622
2 changed files with 13 additions and 10 deletions

View file

@ -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.21 2010/04/30 07:17:50 adamdunkels Exp $ * $Id: shell-rime.c,v 1.22 2010/09/13 13:29:29 adamdunkels Exp $
*/ */
/** /**
@ -64,7 +64,6 @@ int snprintf(char *str, size_t size, const char *format, ...);
#include <string.h> #include <string.h>
#define COLLECT_REXMITS 4
#define COLLECT_MSG_HDRSIZE 4 #define COLLECT_MSG_HDRSIZE 4
struct collect_msg { struct collect_msg {
@ -73,7 +72,7 @@ struct collect_msg {
uint8_t data[1]; uint8_t data[1];
}; };
static struct collect_conn collect; struct collect_conn shell_collect_conn;
static int waiting_for_collect = 0; static int waiting_for_collect = 0;
static int is_sink = 0; static int is_sink = 0;
@ -87,7 +86,7 @@ SHELL_COMMAND(mac_command,
PROCESS(shell_send_process, "send"); PROCESS(shell_send_process, "send");
SHELL_COMMAND(send_command, SHELL_COMMAND(send_command,
"send", "send",
"send: send data to the collector node", "send <rexmits>: send data to the collector node, with rexmits hop-by-hop retransmissions",
&shell_send_process); &shell_send_process);
PROCESS(shell_collect_process, "collect"); PROCESS(shell_collect_process, "collect");
SHELL_COMMAND(collect_command, SHELL_COMMAND(collect_command,
@ -233,7 +232,7 @@ PROCESS_THREAD(shell_collect_process, ev, data)
#if TIMESYNCH_CONF_ENABLED #if TIMESYNCH_CONF_ENABLED
timesynch_set_authority_level(0); timesynch_set_authority_level(0);
#endif #endif
collect_set_sink(&collect, 1); collect_set_sink(&shell_collect_conn, 1);
is_sink = 1; is_sink = 1;
waiting_for_collect = 1; waiting_for_collect = 1;
@ -250,9 +249,12 @@ PROCESS_THREAD(shell_send_process, ev, data)
struct shell_input *input; struct shell_input *input;
int len; int len;
struct collect_msg *msg; struct collect_msg *msg;
static int num_rexmits;
PROCESS_BEGIN(); PROCESS_BEGIN();
num_rexmits = shell_strtolong((char *)data, NULL);
while(1) { while(1) {
PROCESS_WAIT_EVENT_UNTIL(ev == shell_event_input); PROCESS_WAIT_EVENT_UNTIL(ev == shell_event_input);
input = data; input = data;
@ -275,7 +277,7 @@ PROCESS_THREAD(shell_send_process, ev, data)
msg->timestamp = 0; msg->timestamp = 0;
#endif #endif
msg->crc = crc16_data(msg->data, len, 0); msg->crc = crc16_data(msg->data, len, 0);
collect_send(&collect, COLLECT_REXMITS); collect_send(&shell_collect_conn, num_rexmits);
} }
} }
PROCESS_END(); PROCESS_END();
@ -328,7 +330,7 @@ recv_collect(const rimeaddr_t *originator, u8_t seqno, u8_t hops)
} }
static const struct collect_callbacks collect_callbacks = { recv_collect }; static const struct collect_callbacks collect_callbacks = { recv_collect };
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void /*static void
send_collect(void *dummy) send_collect(void *dummy)
{ {
struct collect_msg msg; struct collect_msg msg;
@ -339,12 +341,12 @@ send_collect(void *dummy)
#endif #endif
packetbuf_copyfrom(&msg, COLLECT_MSG_HDRSIZE); packetbuf_copyfrom(&msg, COLLECT_MSG_HDRSIZE);
collect_send(&collect, COLLECT_REXMITS); collect_send(&collect, COLLECT_REXMITS);
} }*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void void
shell_rime_init(void) shell_rime_init(void)
{ {
collect_open(&collect, SHELL_RIME_CHANNEL_COLLECT, collect_open(&shell_collect_conn, SHELL_RIME_CHANNEL_COLLECT,
COLLECT_ROUTER, &collect_callbacks); COLLECT_ROUTER, &collect_callbacks);
shell_register_command(&collect_command); shell_register_command(&collect_command);

View file

@ -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.h,v 1.6 2010/01/31 23:57:22 adamdunkels Exp $ * $Id: shell-rime.h,v 1.7 2010/09/13 13:29:30 adamdunkels Exp $
*/ */
/** /**
@ -85,5 +85,6 @@ void shell_rime_init(void);
/* Announcement idenfied used by the 'neighbors' command, uses one idenfier */ /* Announcement idenfied used by the 'neighbors' command, uses one idenfier */
#define SHELL_RIME_ANNOUNCEMENT_IDENTIFIER_NEIGHBORS SHELL_RIME_CHANNEL_DOWNLOAD + 2 #define SHELL_RIME_ANNOUNCEMENT_IDENTIFIER_NEIGHBORS SHELL_RIME_CHANNEL_DOWNLOAD + 2
extern struct collect_conn shell_collect_conn;
#endif /* __SHELL_RIME_H__ */ #endif /* __SHELL_RIME_H__ */