Shell management¶
Shell management allows to pass commands to shell subsystem with use of SMP protocol.
Shell management group defines following commands:
|
Command description |
---|---|
|
Shell command line execute |
Shell command line execute¶
The command allows to execute command line in a similar way to typing it into a shell, but both a request and a response are transported with use of SMP.
Shell command line execute request¶
Execute command request header:
|
|
|
---|---|---|
|
|
|
CBOR data of request:
{
(str)"argv" : [
(str)<cmd>
(str,opt)<arg>
...
]
}
where:
“argv” |
is array consisting of strings representing command and its arguments |
<cmd> |
command to be executed |
<arg> |
optional arguments to command |
Shell command line execute response¶
Command line execute response header fields:
|
|
|
---|---|---|
|
|
|
CBOR data of successful response:
{
(str)"o" : (str)
(str)"ret" : (int)
}
In case of error the CBOR data takes form:
{
(str)"rc" : (int)
}
where:
“rc” |
Status/error codes in responses (only present if an error occurred) |
“o” |
command output |
“ret” |
return code from shell command execution |
In case when “rc” is not 0, success, the other fields will not appear.
Note
In older versions of Zephyr, “rc” was used for both the mcumgr status code
and shell command execution return code, this legacy behaviour can be
restored by enabling CONFIG_MCUMGR_CMD_SHELL_MGMT_LEGACY_RC_RETURN_CODE