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;
     }
 

Reply via email to