1
0
mirror of https://github.com/NevermindZZT/letter-shell.git synced 2025-01-21 10:02:54 +08:00

183 Commits

Author SHA1 Message Date
maruolang
8bce2c5ebb 修复 README.md文档中例程错误 2024-03-11 14:53:10 +08:00
Letter
fa7bf9203d
Merge pull request #173 from NevermindZZT/shell3.1
新增 数组参数支持
2023-11-26 19:59:26 +08:00
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
6a0bfa5ca2
Merge pull request #168 from NevermindZZT/shell3.1
修复 命令表方式编译问题
2023-10-14 12:25:36 +08:00
Letter
795da34975 修复 命令表方式编译问题
优化 命令参数分词方法
2023-10-14 04:23:33 +00:00
Letter
4311eb8d51
Merge pull request #163 from xukaihub/master
解决当 SHELL_USING_FUNC_SIGNATURE=0 时编译报错问题
2023-07-25 20:40:01 +08:00
xukai
66b62b8606 解决当 SHELL_USING_FUNC_SIGNATURE=0 时编译报错问题 2023-07-25 18:46:21 +08:00
Letter
4cb216e669
Merge pull request #161 from NevermindZZT/shell3.1
修复 编译器不定参函数指针类型的警告
2023-07-20 22:40:49 +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
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
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
12a27e83f9
Merge pull request #122 from NevermindZZT/shell3.1
更新 esp-idf demo
2022-05-08 12:46:42 +08:00
Letter
35cadf2695 更新 esp-idf demo 2022-05-08 12:44: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
Letter
ec8699e774
Merge pull request #113 from jinchunxing/master
新增 log组件适配shell锁
2021-12-30 08:33:06 +08:00
靳春幸
8e968b8d3b 优化 log锁可独立配置功能 2021-12-27 10:06:51 +08:00
靳春幸
e70221db15 新增 log组件适配shell锁 2021-12-24 12:17:45 +08:00
Letter
a789aa21b2
Merge pull request #112 from jinchunxing/master
优化 1、使用伴生对象时logSetLevel命令的调用;2、移除多余空行
2021-12-22 09:21:27 +08:00
靳春幸
5d3607af91 优化 移除多余空行 2021-12-21 15:13:22 +08:00
靳春幸
2845512a52 优化 使用伴生对象时logSetLevel命令的调用 2021-12-21 14:07:26 +08:00
Letter
17e30184d5 修复 命令组编译问题 2021-11-04 10:01:48 +08:00
Letter
8eddf27bfc
Merge pull request #106 from NevermindZZT/shell3.1
update readme.md
v3.1.2
2021-10-17 13:42:52 +08:00
Letter
dc0e4915fd update readme.md 2021-10-17 13:39:21 +08:00
Letter
d573cf03eb
Merge pull request #105 from NevermindZZT/shell3.1
shell 3.1.2
2021-10-17 13:35:09 +08:00
Letter
9345170286 release version 3.1.2 2021-10-17 13:15:37 +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
Letter
698626bc46 Merge branch 'shell3.1' of https://github.com/NevermindZZT/letter-shell into shell3.1 2021-08-07 12:09:17 +08:00
Letter
62082b4601 新增 命令返回值变量 2021-08-07 12:07:22 +08:00
Letter
64d4a0fa7d
Merge pull request #97 from mrxsean/shell3.1
新增推箱子游戏
2021-08-07 12:03:59 +08:00
Sean.Y
2384858d62 新增推箱子游戏 2021-08-04 08:41:37 +08:00
Letter
1eebc8f06e Merge branch 'shell3.1' of https://github.com/NevermindZZT/letter-shell into shell3.1 2021-07-31 13:51:50 +08:00
Letter
c6adeb363c 修正 CMakeLists.txt文件命名 2021-07-31 13:45:42 +08:00