diff --git a/sniffer/Makefile b/sniffer/Makefile index 88c1a5c..01e46cb 100644 --- a/sniffer/Makefile +++ b/sniffer/Makefile @@ -8,6 +8,7 @@ BOARD ?= native RIOTBASE ?= $(CURDIR)/../../RIOT # Define modules that are used +USEMODULE += fmt USEMODULE += gnrc USEMODULE += gnrc_netdev_default USEMODULE += auto_init_gnrc_netif diff --git a/sniffer/main.c b/sniffer/main.c index 8dd481f..3f78e71 100644 --- a/sniffer/main.c +++ b/sniffer/main.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 Freie Universität Berlin + * Copyright (C) 2015-18 Freie Universität Berlin * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level @@ -15,12 +15,14 @@ * @brief Sniffer application for RIOT * * @author Hauke Petersen + * @author Martine Lenders * * @} */ #include +#include "fmt.h" #include "thread.h" #include "xtimer.h" #include "shell.h" @@ -45,7 +47,7 @@ /** * @brief Stack for the raw dump thread */ -static char rawdmp_stack[THREAD_STACKSIZE_MAIN]; +static char rawdmp_stack[THREAD_STACKSIZE_SMALL]; /** * @brief Make a raw dump of the given packet contents @@ -59,16 +61,21 @@ void dump_pkt(gnrc_pktsnip_t *pkt) pkt = gnrc_pktbuf_remove_snip(pkt, pkt->next); uint64_t now_us = xtimer_usec_from_ticks64(xtimer_now64()); - printf("rftest-rx --- len 0x%02x lqi 0x%02x rx_time 0x%08" PRIx32 "%08" PRIx32 "\n\n", - gnrc_pkt_len(pkt), lqi, (uint32_t)(now_us >> 32), (uint32_t)(now_us & 0xffffffff)); - + print_str("rftest-rx --- len "); + print_u32_hex((uint32_t)gnrc_pkt_len(pkt)); + print_str(" lqi "); + print_byte_hex(lqi); + print_str(" rx_time "); + print_u64_hex(now_us); + print_str("\n"); while (snip) { for (size_t i = 0; i < snip->size; i++) { - printf("0x%02x ", ((uint8_t *)(snip->data))[i]); + print_byte_hex(((uint8_t *)(snip->data))[i]); + print_str(" "); } snip = snip->next; } - puts("\n"); + print_str("\n\n"); gnrc_pktbuf_release(pkt); } diff --git a/sniffer/tools/sniffer.py b/sniffer/tools/sniffer.py index 7ce6451..98b9600 100755 --- a/sniffer/tools/sniffer.py +++ b/sniffer/tools/sniffer.py @@ -87,7 +87,7 @@ def generate_pcap(port, out): while True: line = port.readline().rstrip() - pkt_header = re.match(r">? *rftest-rx --- len 0x(\w\w).*", + pkt_header = re.match(r">? *rftest-rx --- len (\w+).*", line.decode(errors="ignore")) if pkt_header: now = time() @@ -100,10 +100,10 @@ def generate_pcap(port, out): sys.stderr.write("RX: %i\r" % count) continue - pkt_data = re.match(r"(0x\w\w )+", line.decode(errors="ignore")) + pkt_data = re.match(r"(\w\w )+", line.decode(errors="ignore")) if pkt_data: for part in line.decode(errors="ignore").split(' '): - byte = re.match(r"0x(\w\w)", part) + byte = re.match(r"(\w\w)", part) if byte: out.write(pack('