Shell management

Shell management allows passing commands to the shell subsystem over the SMP protocol.

Shell management group defines following commands:

Command ID

Command description

0

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 over SMP.

Shell command line execute request

Execute command request header:

OP

Group ID

Command ID

2

9

0

CBOR data of request:

{
    (str)"argv"     : [
        (str)<cmd>
        (str,opt)<arg>
        ...
    ]
}

where:

“argv”

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:

OP

Group ID

Command ID

3

9

0

CBOR data of successful response:

{
    (str)"o"            : (str)
    (str)"ret"          : (int)
}

In case of error the CBOR data takes the form:

{
    (str)"rc"           : (int)
}

where:

“rc”

mcumgr_err_t only appears if non-zero (error condition).

“o”

command output

“ret”

return code from shell command execution

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_GRP_SHELL_LEGACY_RC_RETURN_CODE