Letter
|
03432e824c
|
优化 变量作为参数时, 如果变量不存在, 命令直接返回; 命令组子命令允许返回值打印
|
2024-07-31 22:01:42 +08:00 |
|
Letter
|
0ce0255194
|
修复 部分编译器命令组声明报错
|
2024-06-27 21:33:18 +08:00 |
|
Letter
|
abc23365d0
|
命令组支持函数签名
|
2024-06-13 22:40:10 +08: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
|
5c35f032d1
|
Merge pull request #129 from NevermindZZT/shell3.1
修复 hexdump 打印长度异常
|
2022-06-12 19:47:13 +08:00 |
|
Letter
|
1072ef29e6
|
修复 hexdump 打印长度异常
|
2022-06-12 19:45:07 +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 |
|
靳春幸
|
8e968b8d3b
|
优化 log锁可独立配置功能
|
2021-12-27 10:06:51 +08:00 |
|
靳春幸
|
e70221db15
|
新增 log组件适配shell锁
|
2021-12-24 12:17:45 +08:00 |
|
靳春幸
|
2845512a52
|
优化 使用伴生对象时logSetLevel命令的调用
|
2021-12-21 14:07:26 +08:00 |
|
Letter
|
17e30184d5
|
修复 命令组编译问题
|
2021-11-04 10:01:48 +08:00 |
|
Letter
|
dc76d7aab7
|
优化 telnet组件可独立设置用户
|
2021-08-10 22:04:44 +08:00 |
|
Letter
|
a6e391b449
|
新增 telnet组件
|
2021-08-08 14:16:12 +08:00 |
|
Letter
|
4432d2e0ad
|
优化 游戏模块
|
2021-08-08 11:50:31 +08:00 |
|
Letter
|
5425dbef84
|
优化 推箱子加入game命令组
|
2021-08-07 12:24:41 +08:00 |
|
Sean.Y
|
2384858d62
|
新增推箱子游戏
|
2021-08-04 08:41:37 +08:00 |
|
Letter
|
2e7ec71c5c
|
新增 命令行游戏demo
|
2021-07-31 13:39:27 +08:00 |
|
Letter
|
3550966556
|
优化 命令组不带子命令调用显示命令帮助
|
2021-07-18 20:59:23 +08:00 |
|
Letter
|
e383e5a6bb
|
修复 passthrough模式退出时缓冲区未清空的问题
|
2021-06-02 22:37:53 +08:00 |
|
Letter
|
b10ebd11ab
|
修复 passthrough模式无输入状态下回车无响应的问题
|
2021-06-02 22:27:48 +08:00 |
|
Letter
|
6c555d42ea
|
修复 passthrough模式bug
新增 passthrough直接单次透传
|
2021-06-02 22:04:55 +08:00 |
|
Letter
|
26acf89e61
|
Merge branch 'shell3.1' into master
|
2021-05-31 22:45:24 +08:00 |
|
Letter
|
b68a8e3b6f
|
新增 passthrough模式
|
2021-05-31 22:39:11 +08:00 |
|
Letter
|
663f792c60
|
修复 编译问题
|
2021-05-24 15:51:59 +08:00 |
|
Letter
|
4522c026bb
|
修复 log工具问题
优化 x86 demo使用cmake构建
|
2021-05-22 21:50:35 +08:00 |
|
Letter
|
80ec62eb4e
|
优化 使用伴生对象时hexdump命令的调用
|
2021-05-16 16:41:25 +08:00 |
|
Letter
|
d8ea842719
|
新增 log组件适配shell锁
|
2021-05-09 21:24:22 +08:00 |
|
NevermindZZT
|
e376b61397
|
防止 编译器优化
|
2021-05-09 13:43:59 +08:00 |
|
NevermindZZT
|
ef1bde9600
|
增加 cpp support的readme和示例
|
2021-01-17 15:30:47 +08:00 |
|
Letter
|
682653fe16
|
新增 cpp支持
|
2021-01-09 17:52:11 +08:00 |
|
Letter
|
8392f6c859
|
优化 执行shell命令时尾行模式的表现
|
2020-11-24 21:01:21 +08:00 |
|
Letter
|
0719512b67
|
Update log.c
|
2020-10-30 15:09:57 +08:00 |
|
Letter
|
6019d58b04
|
新增 shell命令组组件
|
2020-10-18 16:00:55 +08:00 |
|
Letter
|
864ce4874f
|
新增 文件系统支持组件
|
2020-08-16 15:26:59 +08:00 |
|
Letter
|
de10f04d25
|
Update log.c
|
2020-08-05 12:38:59 +08:00 |
|
Letter
|
68233e7bb3
|
修复 shell尾行模式下hexdump格式完全异常的问题
|
2020-08-03 22:45:52 +08:00 |
|
Letter
|
9015128b06
|
新增 日志组件
|
2020-08-02 13:07:27 +08:00 |
|