shell_cmd_list.c 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /**
  2. * @file shell_cmd_list.c
  3. * @author Letter (NevermindZZT@gmail.com)
  4. * @brief shell cmd list
  5. * @version 3.0.0
  6. * @date 2020-01-17
  7. *
  8. * @copyright (c) 2020 Letter
  9. *
  10. */
  11. #include "shell.h"
  12. #include "elog.h"
  13. #if SHELL_USING_CMD_EXPORT != 1
  14. extern int shellSetVar(char *name, int value);
  15. extern void shellUp(Shell *shell);
  16. extern void shellDown(Shell *shell);
  17. extern void shellRight(Shell *shell);
  18. extern void shellLeft(Shell *shell);
  19. extern void shellTab(Shell *shell);
  20. extern void shellBackspace(Shell *shell);
  21. extern void shellDelete(Shell *shell);
  22. extern void shellEnter(Shell *shell);
  23. extern void shellHelp(int argc, char *argv[]);
  24. extern void shellUsers(void);
  25. extern void shellCmds(void);
  26. extern void shellVars(void);
  27. extern void shellKeys(void);
  28. extern void shellClear(void);
  29. #if SHELL_EXEC_UNDEF_FUNC == 1
  30. extern int shellExecute(int argc, char *argv[]);
  31. #endif
  32. SHELL_AGENCY_FUNC(shellRun, shellGetCurrent(), (const char *)p1);
  33. void shellLogTest(int argc, char *argv[])
  34. {
  35. log_i("run shell test.");
  36. }
  37. /**
  38. * @brief shell命令表
  39. *
  40. */
  41. const ShellCommand shellCommandList[] =
  42. {
  43. {.attr.value=SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_USER),
  44. .data.user.name = SHELL_DEFAULT_USER,
  45. .data.user.password = SHELL_DEFAULT_USER_PASSWORD,
  46. .data.user.desc = "default user"},
  47. SHELL_CMD_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC),
  48. setVar, shellSetVar, set var),
  49. SHELL_KEY_ITEM(SHELL_CMD_PERMISSION(0), 0x1B5B4100, shellUp, up),
  50. SHELL_KEY_ITEM(SHELL_CMD_PERMISSION(0), 0x1B5B4200, shellDown, down),
  51. SHELL_KEY_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_ENABLE_UNCHECKED,
  52. 0x1B5B4300, shellRight, right),
  53. SHELL_KEY_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_ENABLE_UNCHECKED,
  54. 0x1B5B4400, shellLeft, left),
  55. SHELL_KEY_ITEM(SHELL_CMD_PERMISSION(0), 0x09000000, shellTab, tab),
  56. SHELL_KEY_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_ENABLE_UNCHECKED,
  57. 0x08000000, shellBackspace, backspace),
  58. SHELL_KEY_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_ENABLE_UNCHECKED,
  59. 0x7F000000, shellDelete, delete),
  60. SHELL_KEY_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_ENABLE_UNCHECKED,
  61. 0x1B5B337E, shellDelete, delete),
  62. #if SHELL_ENTER_LF == 1
  63. SHELL_KEY_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_ENABLE_UNCHECKED,
  64. 0x0A000000, shellEnter, enter),
  65. #endif
  66. #if SHELL_ENTER_CR == 1
  67. SHELL_KEY_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_ENABLE_UNCHECKED,
  68. 0x0D000000, shellEnter, enter),
  69. #endif
  70. #if SHELL_ENTER_CRLF == 1
  71. SHELL_KEY_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_ENABLE_UNCHECKED,
  72. 0x0D0A0000, shellEnter, enter),
  73. #endif
  74. SHELL_CMD_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_DISABLE_RETURN,
  75. help, shellHelp, show command info\r\nhelp [cmd]),
  76. SHELL_CMD_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_DISABLE_RETURN,
  77. users, shellUsers, list all user),
  78. SHELL_CMD_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_DISABLE_RETURN,
  79. cmds, shellCmds, list all cmd),
  80. SHELL_CMD_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_DISABLE_RETURN,
  81. vars, shellVars, list all var),
  82. SHELL_CMD_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_DISABLE_RETURN,
  83. keys, shellKeys, list all key),
  84. SHELL_CMD_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_DISABLE_RETURN,
  85. clear, shellClear, clear console),
  86. SHELL_CMD_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_DISABLE_RETURN,
  87. sh, SHELL_AGENCY_FUNC_NAME(shellRun), run command directly),
  88. #if SHELL_EXEC_UNDEF_FUNC == 1
  89. SHELL_CMD_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_DISABLE_RETURN,
  90. exec, shellExecute, execute function undefined),
  91. #endif
  92. SHELL_CMD_ITEM(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_DISABLE_RETURN,
  93. log_test, shellLogTest, shell log test),
  94. };
  95. /**
  96. * @brief shell命令表大小
  97. *
  98. */
  99. const unsigned short shellCommandCount
  100. = sizeof(shellCommandList) / sizeof(ShellCommand);
  101. #endif