mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
sys/shell/commands/sc_opendsme: add gts commands
This commit is contained in:
parent
bb91f47fc1
commit
a6648a2c7f
@ -474,6 +474,7 @@ PSEUDOMODULES += shell_cmd_netstats_neighbor
|
|||||||
PSEUDOMODULES += shell_cmd_nice
|
PSEUDOMODULES += shell_cmd_nice
|
||||||
PSEUDOMODULES += shell_cmd_nimble_netif
|
PSEUDOMODULES += shell_cmd_nimble_netif
|
||||||
PSEUDOMODULES += shell_cmd_nimble_statconn
|
PSEUDOMODULES += shell_cmd_nimble_statconn
|
||||||
|
PSEUDOMODULES += shell_cmd_opendsme
|
||||||
PSEUDOMODULES += shell_cmd_openwsn
|
PSEUDOMODULES += shell_cmd_openwsn
|
||||||
PSEUDOMODULES += shell_cmd_pm
|
PSEUDOMODULES += shell_cmd_pm
|
||||||
PSEUDOMODULES += shell_cmd_ps
|
PSEUDOMODULES += shell_cmd_ps
|
||||||
|
@ -105,6 +105,9 @@ ifneq (,$(filter shell_cmds_default,$(USEMODULE)))
|
|||||||
ifneq (,$(filter nimble_statconn,$(USEMODULE)))
|
ifneq (,$(filter nimble_statconn,$(USEMODULE)))
|
||||||
USEMODULE += shell_cmd_nimble_statconn
|
USEMODULE += shell_cmd_nimble_statconn
|
||||||
endif
|
endif
|
||||||
|
ifneq (,$(filter opendsme,$(USEPKG)))
|
||||||
|
USEMODULE += shell_cmd_opendsme
|
||||||
|
endif
|
||||||
ifneq (,$(filter openwsn,$(USEPKG)))
|
ifneq (,$(filter openwsn,$(USEPKG)))
|
||||||
USEMODULE += shell_cmd_openwsn
|
USEMODULE += shell_cmd_openwsn
|
||||||
endif
|
endif
|
||||||
|
72
sys/shell/cmds/opendsme.c
Normal file
72
sys/shell/cmds/opendsme.c
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2022 HAW Hamburg
|
||||||
|
*
|
||||||
|
* 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 sys_shell_commands
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* @file
|
||||||
|
* @brief Shell command implementation for openDSME
|
||||||
|
*
|
||||||
|
* @author José I. Álamos <jose.alamos@haw-hamburg.de>
|
||||||
|
*
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "opendsme/opendsme.h"
|
||||||
|
|
||||||
|
#include "net/gnrc.h"
|
||||||
|
#include "net/gnrc/pktdump.h"
|
||||||
|
#include "net/gnrc/netreg.h"
|
||||||
|
|
||||||
|
#include "fmt.h"
|
||||||
|
#include "shell.h"
|
||||||
|
|
||||||
|
#if IS_ACTIVE(CONFIG_IEEE802154_DSME_STATIC_GTS)
|
||||||
|
static int _opendsme_gts_cmd(int argc, char **argv)
|
||||||
|
{
|
||||||
|
(void) argc;
|
||||||
|
ieee802154_dsme_alloc_t alloc;
|
||||||
|
if (argc < 7) {
|
||||||
|
printf("Usage: %s <iface> <target_addr> <tx> <superframe_id> <slot_id> <channel_id>\n",argv[0]);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
memset(&alloc, 0, sizeof(alloc));
|
||||||
|
kernel_pid_t iface = scn_u32_dec(argv[1],1);
|
||||||
|
l2util_addr_from_str(argv[2], (uint8_t*) &alloc.addr);
|
||||||
|
|
||||||
|
/* Whether slot is TX or RX */
|
||||||
|
alloc.tx = scn_u32_dec(argv[3],1);
|
||||||
|
|
||||||
|
/* Set the superframe ID of the current slot. Valid superframe IDs are
|
||||||
|
* ({0..n-1}, with `n` the number of superframes per multisuperframe) */
|
||||||
|
alloc.superframe_id = scn_u32_dec(argv[4],1);
|
||||||
|
|
||||||
|
/* Set the slot ID. Valid slot IDs are:
|
||||||
|
* {0..7} if superframe_id == 0,
|
||||||
|
* {8..14} if (superframe_id != 0 && CONFIG_IEEE802154_DSME_CAP_REDUCTION=1)
|
||||||
|
* {0..14} otherwise
|
||||||
|
*/
|
||||||
|
alloc.slot_id = scn_u32_dec(argv[5],1);
|
||||||
|
|
||||||
|
/* Set the channel offset. Valid values for O-QPSK are {0..15} */
|
||||||
|
alloc.channel_id = scn_u32_dec(argv[6], 1);
|
||||||
|
|
||||||
|
gnrc_netapi_set(iface, NETOPT_GTS_ALLOC, 0, &alloc, sizeof(alloc));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SHELL_COMMAND(gts, "Allocate a static GTS with a neighbour device", _opendsme_gts_cmd);
|
||||||
|
#else
|
||||||
|
typedef int dont_be_pedantic;
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user