Letter
|
f1cc2e6b69
|
优化 切换用户时输入密码显示为 *
|
2023-11-26 11:58:03 +00:00 |
|
Letter
|
e3e86a97eb
|
修复 使用函数签名时变量解析问题,字符串参数转义符解析问题
|
2023-11-12 04:10:54 +00:00 |
|
Letter
|
9d9cb2c5bd
|
新增 数组参数支持
|
2023-10-29 04:53:20 +00:00 |
|
Letter
|
795da34975
|
修复 命令表方式编译问题
优化 命令参数分词方法
|
2023-10-14 04:23:33 +00:00 |
|
xukai
|
66b62b8606
|
解决当 SHELL_USING_FUNC_SIGNATURE=0 时编译报错问题
|
2023-07-25 18:46:21 +08:00 |
|
Letter
|
14742f0937
|
修复 编译器不定参函数指针类型的警告
|
2023-07-20 14:39:21 +00:00 |
|
Letter
|
b10dd14273
|
修复 对 vsnprintf 函数的错误用法
|
2023-05-27 08:51:58 +00:00 |
|
Letter
|
04d9ed7bce
|
Merge pull request #159 from NevermindZZT/shell3.1
新增 函数签名
|
2023-05-27 16:24:52 +08:00 |
|
Letter
|
1725f88d1e
|
移除 命令结构体填充
|
2023-05-27 08:23:01 +00:00 |
|
Letter
|
e9375840bd
|
新增 自定义类型解析
- 可以对自定义的数据结构定义解析器,然后使用函数签名进行参数自动解析
|
2023-04-22 07:50:25 +00:00 |
|
Letter
|
99b5e6d386
|
新增 支持自定义类型的函数签名
|
2023-04-16 17:18:38 +08:00 |
|
Letter
|
acd9dceb4e
|
新增 函数签名
## 函数签名
之前的版本里,如果声明的命令是 `SHELL_TYPE_CMD_FUNC`,shell 会自动进行参数的转换,但是参数转换后的类型是猜出来的,无法保证转换后的数据类型是正确的,一旦猜错了,就容易导致程序挂掉
由此,借鉴 Java 等语言的函数签名,新版也引入了函数签名的概念,在声明命令时,可以给定最终执行命令的函数的签名,shell 根据这个签名进行参数转换,使用此功能时,需要打开宏 `SHELL_USING_FUNC_SIGNATURE`
函数签名是一个字符串,通过这个字符串声明表达函数的参数类型,返回值不声明,比如一个函数`int func(int a, char *b, char c)`,它的函数签名就是 `ics`
基本类型的参数签名定义如下:
| 类型 | 签名 |
| -------------------- | ---- |
| char(字符) | c |
| int/short/char(数字) | i |
| char * (字符串) | s |
| pointer | p |
声明命令时,在最后添加一个参数 `.data.cmd.signature = "ics"` 即可,比如:
```c
void shellFuncSignatureTest(int a, char *b, char c)
{
printf("a = %d, b = %s, c = %c\r\n", a, b, c);
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC),
funcSignatureTest, shellFuncSignatureTest, test function signature, .data.cmd.signature = "isc");
```
|
2023-04-15 16:30:44 +08:00 |
|
Letter
|
92f09e066f
|
Merge pull request #146 from NevermindZZT/shell3.1
更新 配置方式,可以使用一个 overlay 的头文件进行配置
|
2023-04-08 20:12:08 +08:00 |
|
Letter
|
c4dad4c43a
|
更新 配置方式,可以使用一个 overlay 的头文件进行配置
|
2023-04-08 20:03:56 +08:00 |
|
Letter
|
ab42a6f68f
|
Merge pull request #123 from NevermindZZT/shell3.1
修复 一个空指针问题
|
2022-05-15 20:25:45 +08:00 |
|
Letter
|
265656bdf6
|
修复 一个空指针问题
|
2022-05-15 20:23:37 +08:00 |
|
Letter
|
175c05b209
|
Merge pull request #116 from NevermindZZT/shell3.1
修改 几处 gcc 编译的警告
|
2022-03-27 19:27:15 +08:00 |
|
Letter
|
693d3d0fc8
|
修改 几处 gcc 编译的警告
优化 log组件支持 cpp
|
2022-03-27 19:24:17 +08:00 |
|
Letter
|
739aa11f6b
|
Merge pull request #115 from NevermindZZT/shell3.1
新增 安全用户组件
|
2022-03-12 21:47:00 +08:00 |
|
Letter
|
c823f6403d
|
新增 安全用户组件
|
2022-03-12 21:37:49 +08:00 |
|
靳春幸
|
5d3607af91
|
优化 移除多余空行
|
2021-12-21 15:13:22 +08:00 |
|
Letter
|
9345170286
|
release version 3.1.2
|
2021-10-17 13:15:37 +08:00 |
|
Letter
|
a6e391b449
|
新增 telnet组件
|
2021-08-08 14:16:12 +08:00 |
|
Letter
|
62082b4601
|
新增 命令返回值变量
|
2021-08-07 12:07:22 +08:00 |
|
Letter
|
a34f08ab6f
|
优化 最大历史记录设置为0s时移除相关代码
|
2021-06-27 12:28:28 +08:00 |
|
Letter
|
6b79f9a4a1
|
新增 双击tab快速帮助
|
2021-06-12 16:39:12 +08:00 |
|
Letter
|
26acf89e61
|
Merge branch 'shell3.1' into master
|
2021-05-31 22:45:24 +08:00 |
|
Letter
|
4212aa5172
|
修改 一个内部的函数名
|
2021-05-31 22:39:37 +08:00 |
|
Letter
|
663f792c60
|
修复 编译问题
|
2021-05-24 15:51:59 +08:00 |
|
NevermindZZT
|
e376b61397
|
防止 编译器优化
|
2021-05-09 13:43:59 +08:00 |
|
NevermindZZT
|
672b08efcc
|
新增 shell锁
|
2021-04-18 19:51:48 +08:00 |
|
NevermindZZT
|
480223721d
|
更改 shell读写接口
|
2021-04-05 19:06:25 +08:00 |
|
Letter
|
cf3f6d7f1f
|
新增 shell格式化输入
|
2020-12-15 20:43:14 +08:00 |
|
Letter
|
38b8c7795f
|
增加 参数自动转换最大参数限制
修复 对错误命令使用help时会引起异常的问题
|
2020-11-29 14:32:48 +08:00 |
|
Letter
|
8392f6c859
|
优化 执行shell命令时尾行模式的表现
|
2020-11-24 21:01:21 +08:00 |
|
Letter
|
6019d58b04
|
新增 shell命令组组件
|
2020-10-18 16:00:55 +08:00 |
|
cctv180
|
7f60ff5e54
|
限制shellParserParam函数解析参数后不大于设定值
|
2020-09-19 17:06:56 +08:00 |
|
cctv180
|
8ebb339e99
|
修改shellParserParam函数防止指针越界
|
2020-09-19 16:14:37 +08:00 |
|
HPw19e
|
5f26f477a7
|
修复参数输入超过8个时指针越界导致HardFault_Handler
|
2020-09-16 16:46:43 +08:00 |
|
Letter
|
aff95e2bf5
|
修复 shellRun函数会改变shell活动状态的问题
|
2020-09-13 14:59:47 +08:00 |
|
Letter
|
437aa063c4
|
修复 多字节按键键值匹配失败后,有效按键无法匹配的问题
|
2020-09-05 12:34:11 +08:00 |
|
Letter
|
5fb5e43e06
|
新增 节点变量
x86 demo增加一个按键键值测试命令
|
2020-09-05 12:10:19 +08:00 |
|
Letter
|
2bc0966db7
|
新增 字符串变量类型
移除 常量类型,改为使用变量只读属性实现
|
2020-08-23 17:46:05 +08:00 |
|
Letter
|
9258e3d23b
|
优化 去除尾行模式输出的多余换行
|
2020-08-03 22:42:59 +08:00 |
|
Letter
|
e528087d71
|
新增 shell尾行模式
|
2020-08-01 17:33:49 +08:00 |
|
Letter
|
55cb066db8
|
优化 代码结构
|
2020-08-01 13:42:39 +08:00 |
|
Letter
|
a4a8f98f7d
|
修复 默认用户设置密码会引发异常的问题
优化 keil环境下防止命令被编译优化
|
2020-07-30 18:57:37 +08:00 |
|
Letter
|
b8efab542b
|
新增 shell伴生对象
新增 支持提示符路径修改
移除 sh命令
|
2020-07-25 15:04:33 +08:00 |
|
Letter
|
b7ab6468f1
|
优化 传递参数前先清空参数内容
修复 不使用命令导出方式时少了两条默认命令的问题
|
2020-07-21 20:52:26 +08:00 |
|
NevermindZZT
|
3b38d6bdfa
|
修复 不使用命令导出方式时,编译错误的问题
|
2020-07-20 10:54:33 +08:00 |
|