This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-apps.git
commit f5d2c645561aeb2523e069de5df56243f9bc6236 Author: ligd <liguidi...@xiaomi.com> AuthorDate: Thu Mar 3 18:05:48 2022 +0800 rptun: add rptun ping support Signed-off-by: ligd <liguidi...@xiaomi.com> --- nshlib/nsh_command.c | 4 ++-- nshlib/nsh_syscmds.c | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/nshlib/nsh_command.c b/nshlib/nsh_command.c index e0c25ee..19740c8 100644 --- a/nshlib/nsh_command.c +++ b/nshlib/nsh_command.c @@ -470,8 +470,8 @@ static const struct cmdmap_s g_cmdmap[] = #endif #if defined(CONFIG_RPTUN) && !defined(CONFIG_NSH_DISABLE_RPTUN) - { "rptun", cmd_rptun, 2, 4, - "start|stop|reset|panic|dump [dev-path] [value]" }, + { "rptun", cmd_rptun, 2, 6, + "start|stop|reset|panic|dump|ping [dev-path] [value|times length ack]" }, #endif #ifndef CONFIG_NSH_DISABLE_SET diff --git a/nshlib/nsh_syscmds.c b/nshlib/nsh_syscmds.c index c348c60..cba1ad0 100644 --- a/nshlib/nsh_syscmds.c +++ b/nshlib/nsh_syscmds.c @@ -348,6 +348,7 @@ int cmd_reset_cause(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) static int cmd_rptun_once(FAR struct nsh_vtbl_s *vtbl, char *path, int argc, char **argv) { + struct rptun_ping_s ping; unsigned long val = 0; int cmd; int fd; @@ -377,6 +378,21 @@ static int cmd_rptun_once(FAR struct nsh_vtbl_s *vtbl, char *path, { cmd = RPTUNIOC_DUMP; } + else if (strcmp(argv[1], "ping") == 0) + { + if (argc != 6) + { + nsh_output(vtbl, g_fmtarginvalid, path); + return ERROR; + } + + ping.times = atoi(argv[3]); + ping.len = atoi(argv[4]); + ping.ack = atoi(argv[5]); + + cmd = RPTUNIOC_PING; + val = (unsigned long)&ping; + } else { nsh_output(vtbl, g_fmtarginvalid, argv[1]); @@ -386,7 +402,7 @@ static int cmd_rptun_once(FAR struct nsh_vtbl_s *vtbl, char *path, fd = open(path, 0); if (fd < 0) { - nsh_output(vtbl, g_fmtarginvalid, argv[2]); + nsh_output(vtbl, g_fmtarginvalid, path); return ERROR; }