From 8b3f29325d3bac88c4fd034e66fd0e41960cb846 Mon Sep 17 00:00:00 2001 From: Yasuyuki Tanaka Date: Tue, 13 Dec 2016 15:32:21 +0100 Subject: [PATCH] Update example-collect.c - bugfix: more frequent transmissions than expected (every 30 seconds) - indentation: replace tabs with spaces --- examples/rime/example-collect.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/examples/rime/example-collect.c b/examples/rime/example-collect.c index d4c3d7a1d..1dd36b7c0 100644 --- a/examples/rime/example-collect.c +++ b/examples/rime/example-collect.c @@ -58,10 +58,10 @@ static void recv(const linkaddr_t *originator, uint8_t seqno, uint8_t hops) { printf("Sink got message from %d.%d, seqno %d, hops %d: len %d '%s'\n", - originator->u8[0], originator->u8[1], - seqno, hops, - packetbuf_datalen(), - (char *)packetbuf_dataptr()); + originator->u8[0], originator->u8[1], + seqno, hops, + packetbuf_datalen(), + (char *)packetbuf_dataptr()); } /*---------------------------------------------------------------------------*/ static const struct collect_callbacks callbacks = { recv }; @@ -70,15 +70,15 @@ PROCESS_THREAD(example_collect_process, ev, data) { static struct etimer periodic; static struct etimer et; - + PROCESS_BEGIN(); collect_open(&tc, 130, COLLECT_ROUTER, &callbacks); if(linkaddr_node_addr.u8[0] == 1 && linkaddr_node_addr.u8[1] == 0) { - printf("I am sink\n"); - collect_set_sink(&tc, 1); + printf("I am sink\n"); + collect_set_sink(&tc, 1); } /* Allow some time for the network to settle. */ @@ -88,22 +88,19 @@ PROCESS_THREAD(example_collect_process, ev, data) while(1) { /* Send a packet every 30 seconds. */ - if(etimer_expired(&periodic)) { - etimer_set(&periodic, CLOCK_SECOND * 30); - etimer_set(&et, random_rand() % (CLOCK_SECOND * 30)); - } + etimer_set(&periodic, CLOCK_SECOND * 30); + etimer_set(&et, random_rand() % (CLOCK_SECOND * 30)); - PROCESS_WAIT_EVENT(); + PROCESS_WAIT_UNTIL(etimer_expired(&et)); - - if(etimer_expired(&et)) { + { static linkaddr_t oldparent; const linkaddr_t *parent; printf("Sending\n"); packetbuf_clear(); packetbuf_set_datalen(sprintf(packetbuf_dataptr(), - "%s", "Hello") + 1); + "%s", "Hello") + 1); collect_send(&tc, 15); parent = collect_parent(&tc); @@ -118,6 +115,7 @@ PROCESS_THREAD(example_collect_process, ev, data) } } + PROCESS_WAIT_UNTIL(etimer_expired(&periodic)); } PROCESS_END();