1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00

tests/driver_xbee: adjusted to interface auto_init

This commit is contained in:
haukepetersen 2015-04-29 22:02:15 +02:00 committed by Hauke Petersen
parent 43f8a04c41
commit 8e0d4ab463
4 changed files with 79 additions and 46 deletions

View File

@ -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

View File

@ -0,0 +1 @@
include $(RIOTBASE)/Makefile.base

View File

@ -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 <hauke.petersen@fu-berlin.de>
*
* @}
*/
#include <stdio.h>
#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;
}
}

View File

@ -20,41 +20,16 @@
#include <stdio.h>
#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);