From 8e0d4ab4633e5a7ee2f3190b25d50aba4c9c2ea6 Mon Sep 17 00:00:00 2001 From: haukepetersen Date: Wed, 29 Apr 2015 22:02:15 +0200 Subject: [PATCH] tests/driver_xbee: adjusted to interface auto_init --- tests/driver_xbee/Makefile | 2 +- tests/driver_xbee/auto_init_ng_netif/Makefile | 1 + .../auto_init_ng_netif/netif_app.c | 77 +++++++++++++++++++ tests/driver_xbee/main.c | 45 ----------- 4 files changed, 79 insertions(+), 46 deletions(-) create mode 100644 tests/driver_xbee/auto_init_ng_netif/Makefile create mode 100644 tests/driver_xbee/auto_init_ng_netif/netif_app.c diff --git a/tests/driver_xbee/Makefile b/tests/driver_xbee/Makefile index aee00ccf77..936c490161 100644 --- a/tests/driver_xbee/Makefile +++ b/tests/driver_xbee/Makefile @@ -17,7 +17,7 @@ ifneq (,$(filter nucleo-f091,$(BOARD))) endif USEMODULE += xbee -USEMODULE += ng_netbase +USEMODULE += ng_netif USEMODULE += ng_nomac USEMODULE += ng_pktdump USEMODULE += shell diff --git a/tests/driver_xbee/auto_init_ng_netif/Makefile b/tests/driver_xbee/auto_init_ng_netif/Makefile new file mode 100644 index 0000000000..48422e909a --- /dev/null +++ b/tests/driver_xbee/auto_init_ng_netif/Makefile @@ -0,0 +1 @@ +include $(RIOTBASE)/Makefile.base diff --git a/tests/driver_xbee/auto_init_ng_netif/netif_app.c b/tests/driver_xbee/auto_init_ng_netif/netif_app.c new file mode 100644 index 0000000000..c78bccc217 --- /dev/null +++ b/tests/driver_xbee/auto_init_ng_netif/netif_app.c @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2015 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 + * directory for more details. + */ + +/** + * @ingroup tests + * @{ + * + * @file + * @brief Xbee device initialization + * + * @author Hauke Petersen + * + * @} + */ + +#include + +#include "kernel.h" +#include "xbee.h" +#include "net/ng_nomac.h" +#include "net/ng_netbase.h" + +/* make sure an UART to device is defined in the Makefile */ +#ifndef XBEE_UART +#error "XBEE_UART not defined" +#endif + +/** + * @brief This is the default baudrate the Xbee modules are programmed to + * when you buy them + */ +#define XBEE_BAUDRATE (9600U) + +/** + * @brief MAC layer stack configuration + * @{ + */ +#define STACKSIZE (KERNEL_CONF_STACKSIZE_DEFAULT) +#define PRIO (0) +/** @} */ + +/** + * @brief The Xbee device descriptor + */ +static xbee_t dev; + +/** + * @brief Stack for the nomac thread + */ +static char nomac_stack[STACKSIZE]; + + +void auto_init_ng_netif(void) +{ + int res; + kernel_pid_t iface; + + /* setup Xbee device */ + printf("Initializing the Xbee S1 device UART_%i... \n", XBEE_UART); + res = xbee_init(&dev, XBEE_UART, XBEE_BAUDRATE, GPIO_NUMOF, GPIO_NUMOF); + if (res < 0) { + puts("Error initializing xbee device driver"); + return; + } + /* start MAC layer */ + iface = ng_nomac_init(nomac_stack, sizeof(nomac_stack), PRIO, "xbee", + (ng_netdev_t *)(&dev)); + if (iface <= KERNEL_PID_UNDEF) { + puts("Error initializing MAC layer"); + return; + } +} diff --git a/tests/driver_xbee/main.c b/tests/driver_xbee/main.c index 5f53d68335..a0429ab0fb 100644 --- a/tests/driver_xbee/main.c +++ b/tests/driver_xbee/main.c @@ -20,41 +20,16 @@ #include -#include "board.h" -#include "kernel.h" #include "shell.h" #include "shell_commands.h" -#include "xbee.h" #include "net/ng_netbase.h" -#include "net/ng_nomac.h" #include "net/ng_pktdump.h" -/* make sure an UART to device is defined in the Makefile */ -#ifndef XBEE_UART -#error "XBEE_UART not defined" -#endif - -/** - * @brief This is the default baudrate the Xbee modules are programmed to - * when you buy them - */ -#define XBEE_BAUDRATE (9600U) - /** * @brief Buffer size used by the shell */ #define SHELL_BUFSIZE (64U) -/** - * @brief The Xbee device descriptor - */ -static xbee_t dev; - -/** - * @brief Stack for the nomac thread - */ -static char nomac_stack[KERNEL_CONF_STACKSIZE_DEFAULT]; - /** * @brief Read chars from STDIO */ @@ -76,16 +51,10 @@ void shell_put(int c) */ int main(void) { - kernel_pid_t iface; - int res; shell_t shell; ng_netreg_entry_t dump; puts("Xbee S1 device driver test"); - printf("Initializing the Xbee S1 device UART_%i... \n", XBEE_UART); - - /* initialize network module(s) */ - ng_netif_init(); /* initialize and register pktdump */ dump.pid = ng_pktdump_getpid(); @@ -96,20 +65,6 @@ int main(void) dump.demux_ctx = NG_NETREG_DEMUX_CTX_ALL; ng_netreg_register(NG_NETTYPE_UNDEF, &dump); - /* setup Xbee device */ - res = xbee_init(&dev, XBEE_UART, XBEE_BAUDRATE, GPIO_NUMOF, GPIO_NUMOF); - if (res < 0) { - puts("Error initializing xbee device driver"); - return -1; - } - /* start MAC layer */ - iface = ng_nomac_init(nomac_stack, sizeof(nomac_stack), PRIORITY_MAIN - 3, - "xbee_l2", (ng_netdev_t *)&dev); - if (iface <= KERNEL_PID_UNDEF) { - puts("Error initializing MAC layer"); - return -1; - } - /* start the shell */ puts("Initialization OK, starting shell now"); shell_init(&shell, NULL, SHELL_BUFSIZE, shell_read, shell_put);