Shell 管理
Shell 管理允许通过 SMP 协议将命令传递给 shell 子系统。
Shell 管理组定义以下命令:
|
命令描述 |
|---|---|
|
Shell 命令行执行 |
Shell command line execute
该命令允许以类似于在 shell 中输入命令行的方式执行命令行,但请求和响应都通过 SMP 传输。
Shell 命令行执行请求
执行命令请求头:
|
|
|
|---|---|---|
|
|
|
请求的 CBOR 数据:
{
(str)"argv" : [
(str)<cmd>
(str,opt)<arg>
...
]
}
其中:
"argv" |
由表示命令及其参数的字符串组成的数组。 |
<cmd> |
要执行的命令。 |
<arg> |
命令的可选参数。 |
Shell 命令行执行响应
命令行执行响应头字段:
|
|
|
|---|---|---|
|
|
|
成功响应的 CBOR 数据:
{
(str)"o" : (str)
(str)"ret" : (int)
}
出错时,CBOR 数据采用以下形式:
{
(str)"err" : {
(str)"group" : (uint)
(str)"rc" : (uint)
}
}
{
(str)"rc" : (int)
}
其中:
"o" |
命令输出。 |
"ret" |
shell 命令执行的返回码。 |
"err" -> "group" |
|
"err" -> "rc" |
包含基于分组的错误代码的索引。仅在使用 SMP 版本 2 且为非零(错误情况)时出现。 |
"rc" |
|
备注
在较旧版本的 Zephyr 中,“rc” 同时用于 mcumgr 状态码和 shell 命令执行返回码;启用 CONFIG_MCUMGR_GRP_SHELL_LEGACY_RC_RETURN_CODE 选项可以恢复此旧行为。