doc: mcumgr: Add documentation for SMP group 10 (enum)
Adds documentation for enumeration management group Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
This commit is contained in:
parent
e577b140c3
commit
4f5c6da4e5
2 changed files with 438 additions and 0 deletions
|
@ -28,4 +28,5 @@ SMP Groups
|
|||
smp_groups/smp_group_3.rst
|
||||
smp_groups/smp_group_8.rst
|
||||
smp_groups/smp_group_9.rst
|
||||
smp_groups/smp_group_10.rst
|
||||
smp_groups/smp_group_63.rst
|
||||
|
|
437
doc/services/device_mgmt/smp_groups/smp_group_10.rst
Normal file
437
doc/services/device_mgmt/smp_groups/smp_group_10.rst
Normal file
|
@ -0,0 +1,437 @@
|
|||
.. _mcumgr_smp_group_10:
|
||||
|
||||
Enumeration Management Group
|
||||
#############################
|
||||
|
||||
Enumeration management group defines the following commands:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+----------------+-----------------------------+
|
||||
| ``Command ID`` | Command description |
|
||||
+================+=============================+
|
||||
| ``0`` | Count of supported groups |
|
||||
+----------------+-----------------------------+
|
||||
| ``1`` | List supported groups |
|
||||
+----------------+-----------------------------+
|
||||
| ``2`` | Fetch single group ID |
|
||||
+----------------+-----------------------------+
|
||||
| ``3`` | Details on supported groups |
|
||||
+----------------+-----------------------------+
|
||||
|
||||
Count of supported groups command
|
||||
*********************************
|
||||
|
||||
Count of supported groups returns the total number of MCUmgr command groups that a device supports.
|
||||
|
||||
Count of supported groups request
|
||||
=================================
|
||||
|
||||
Read setting request header fields:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+--------+--------------+----------------+
|
||||
| ``OP`` | ``Group ID`` | ``Command ID`` |
|
||||
+========+==============+================+
|
||||
| ``0`` | ``10`` | ``0`` |
|
||||
+--------+--------------+----------------+
|
||||
|
||||
The command sends an empty CBOR map as data.
|
||||
|
||||
Count of supported groups response
|
||||
==================================
|
||||
|
||||
Count of supported groups response header fields:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+--------+--------------+----------------+
|
||||
| ``OP`` | ``Group ID`` | ``Command ID`` |
|
||||
+========+==============+================+
|
||||
| ``1`` | ``10`` | ``0`` |
|
||||
+--------+--------------+----------------+
|
||||
|
||||
CBOR data of successful response:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"count" : (uint)
|
||||
}
|
||||
|
||||
In case of error the CBOR data takes the form:
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: SMP version 2
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"err" : {
|
||||
(str)"group" : (uint)
|
||||
(str)"rc" : (uint)
|
||||
}
|
||||
}
|
||||
|
||||
.. group-tab:: SMP version 1
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"rc" : (int)
|
||||
}
|
||||
|
||||
where:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "count" | contains the total number of supported MCUmgr groups on the device. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "err" -> "group" | :c:enum:`mcumgr_group_t` group of the group-based error code. Only |
|
||||
| | appears if an error is returned when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "err" -> "rc" | contains the index of the group-based error code. Only appears if |
|
||||
| | non-zero (error condition) when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "rc" | :c:enum:`mcumgr_err_t` only appears if non-zero (error condition) when |
|
||||
| | using SMP version 1 or for SMP errors when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
|
||||
List supported groups command
|
||||
*****************************
|
||||
|
||||
List supported groups command allows listing the group IDs of supported MCUmgr groups on the
|
||||
device.
|
||||
|
||||
List supported groups request
|
||||
=============================
|
||||
|
||||
List supported groups request header fields:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+--------+--------------+----------------+
|
||||
| ``OP`` | ``Group ID`` | ``Command ID`` |
|
||||
+========+==============+================+
|
||||
| ``0`` | ``10`` | ``1`` |
|
||||
+--------+--------------+----------------+
|
||||
|
||||
The command sends an empty CBOR map as data.
|
||||
|
||||
List supported groups response
|
||||
==============================
|
||||
|
||||
List supported groups response header fields:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+--------+--------------+----------------+
|
||||
| ``OP`` | ``Group ID`` | ``Command ID`` |
|
||||
+========+==============+================+
|
||||
| ``1`` | ``10`` | ``1`` |
|
||||
+--------+--------------+----------------+
|
||||
|
||||
CBOR data of successful response:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"groups" : [
|
||||
(uint)
|
||||
...
|
||||
]
|
||||
}
|
||||
|
||||
In case of error the CBOR data takes the form:
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: SMP version 2
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"err" : {
|
||||
(str)"group" : (uint)
|
||||
(str)"rc" : (uint)
|
||||
}
|
||||
}
|
||||
|
||||
.. group-tab:: SMP version 1
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"rc" : (int)
|
||||
}
|
||||
|
||||
where:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "groups" | contains a list of the supported MCUmgr group IDs on the device. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "err" -> "group" | :c:enum:`mcumgr_group_t` group of the group-based error code. Only |
|
||||
| | appears if an error is returned when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "err" -> "rc" | contains the index of the group-based error code. Only appears if |
|
||||
| | non-zero (error condition) when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "rc" | :c:enum:`mcumgr_err_t` only appears if non-zero (error condition) when |
|
||||
| | using SMP version 1 or for SMP errors when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
|
||||
Fetch single group ID command
|
||||
*****************************
|
||||
|
||||
Fetch single group ID command allows listing the group IDs of supported MCUmgr groups on the
|
||||
device, one by one.
|
||||
|
||||
Fetch single group ID request
|
||||
=============================
|
||||
|
||||
Fetch single group ID request header fields:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+--------+--------------+----------------+
|
||||
| ``OP`` | ``Group ID`` | ``Command ID`` |
|
||||
+========+==============+================+
|
||||
| ``0`` | ``10`` | ``2`` |
|
||||
+--------+--------------+----------------+
|
||||
|
||||
CBOR data of request:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str,opt)"index" : (uint)
|
||||
}
|
||||
|
||||
where:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+----------+-----------------------------------------------------------------+
|
||||
| "index" | contains the (0-based) index of the group to return information |
|
||||
| | on, can be omitted to return the first group's details. |
|
||||
+----------+-----------------------------------------------------------------+
|
||||
|
||||
Fetch single group ID response
|
||||
==============================
|
||||
|
||||
Fetch single group ID response header fields:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+--------+--------------+----------------+
|
||||
| ``OP`` | ``Group ID`` | ``Command ID`` |
|
||||
+========+==============+================+
|
||||
| ``1`` | ``10`` | ``2`` |
|
||||
+--------+--------------+----------------+
|
||||
|
||||
CBOR data of successful response:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"group" : (uint)
|
||||
(str,opt)"end" : (bool)
|
||||
}
|
||||
|
||||
In case of error the CBOR data takes the form:
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: SMP version 2
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"err" : {
|
||||
(str)"group" : (uint)
|
||||
(str)"rc" : (uint)
|
||||
}
|
||||
}
|
||||
|
||||
.. group-tab:: SMP version 1
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"rc" : (int)
|
||||
}
|
||||
|
||||
where:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "group" | contains the list of the supported MCUmgr group IDs on the device. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "end" | will be set to true if the listed group is the final supported group on |
|
||||
| | the device, otherwise will be omitted. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "err" -> "group" | :c:enum:`mcumgr_group_t` group of the group-based error code. Only |
|
||||
| | appears if an error is returned when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "err" -> "rc" | contains the index of the group-based error code. Only appears if |
|
||||
| | non-zero (error condition) when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "rc" | :c:enum:`mcumgr_err_t` only appears if non-zero (error condition) when |
|
||||
| | using SMP version 1 or for SMP errors when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
|
||||
Details on supported groups command
|
||||
***********************************
|
||||
|
||||
Details on supported groups command allows fetching details on each supported MCUmgr group, such
|
||||
as the name and number of handlers. A device can specify an allow list of groups to return details
|
||||
on or details on all groups can be returned.
|
||||
|
||||
This command is optional, it can be enabled using :kconfig:option:`CONFIG_MCUMGR_GRP_ENUM_DETAILS`.
|
||||
The optional name and number of handlers can be enabled/disabled with
|
||||
:kconfig:option:`CONFIG_MCUMGR_GRP_ENUM_DETAILS_NAME` and
|
||||
:kconfig:option:`CONFIG_MCUMGR_GRP_ENUM_DETAILS_HANDLERS`.
|
||||
|
||||
Details on supported groups request
|
||||
===================================
|
||||
|
||||
Details on supported groups request header fields:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+--------+--------------+----------------+
|
||||
| ``OP`` | ``Group ID`` | ``Command ID`` |
|
||||
+========+==============+================+
|
||||
| ``0`` | ``10`` | ``3`` |
|
||||
+--------+--------------+----------------+
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Details on all groups
|
||||
|
||||
The command sends an empty CBOR map as data.
|
||||
|
||||
.. group-tab:: Details on specified groups
|
||||
|
||||
CBOR data of request:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"groups" : [
|
||||
(uint)
|
||||
...
|
||||
]
|
||||
}
|
||||
|
||||
where:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+----------+--------------------------------------------------------------+
|
||||
| "groups" | contains a list of the MCUmgr group IDs to fetch details on. |
|
||||
+----------+--------------------------------------------------------------+
|
||||
|
||||
Details on supported groups response
|
||||
====================================
|
||||
|
||||
Details on supported groups response header fields:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+--------+--------------+----------------+
|
||||
| ``OP`` | ``Group ID`` | ``Command ID`` |
|
||||
+========+==============+================+
|
||||
| ``1`` | ``10`` | ``3`` |
|
||||
+--------+--------------+----------------+
|
||||
|
||||
CBOR data of successful response:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"groups" : [
|
||||
{
|
||||
(str)"group" : (uint)
|
||||
(str,opt)"name" : (str)
|
||||
(str,opt)"handlers" : (uint)
|
||||
}
|
||||
...
|
||||
]
|
||||
}
|
||||
|
||||
In case of error the CBOR data takes the form:
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: SMP version 2
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"err" : {
|
||||
(str)"group" : (uint)
|
||||
(str)"rc" : (uint)
|
||||
}
|
||||
}
|
||||
|
||||
.. group-tab:: SMP version 1
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{
|
||||
(str)"rc" : (int)
|
||||
}
|
||||
|
||||
where:
|
||||
|
||||
.. table::
|
||||
:align: center
|
||||
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "group" | the group ID of the MCUmgr command group. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "name" | the name of the MCUmgr command group. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "handlers" | the number of handlers that the MCUmgr command group supports. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "err" -> "group" | :c:enum:`mcumgr_group_t` group of the group-based error code. Only |
|
||||
| | appears if an error is returned when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "err" -> "rc" | contains the index of the group-based error code. Only appears if |
|
||||
| | non-zero (error condition) when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
| "rc" | :c:enum:`mcumgr_err_t` only appears if non-zero (error condition) when |
|
||||
| | using SMP version 1 or for SMP errors when using SMP version 2. |
|
||||
+------------------+-------------------------------------------------------------------------+
|
||||
|
||||
Details on supported groups callback
|
||||
************************************
|
||||
|
||||
There is a details on supported groups MCUmgr callback available (see :ref:`mcumgr_callbacks` for
|
||||
details on callbacks) which allows for applications/modules to add additional fields to this
|
||||
response. This callback can be enabled with :kconfig:option:`CONFIG_MCUMGR_GRP_ENUM_DETAILS_HOOK`,
|
||||
registered with the event :c:enumerator:`MGMT_EVT_OP_ENUM_MGMT_DETAILS`, whereby the supplied
|
||||
callback data is :c:struct:`enum_mgmt_detail_output`. Note that
|
||||
:kconfig:option:`CONFIG_MCUMGR_GRP_ENUM_DETAILS_STATES` will need incrementing by the number of
|
||||
additional extra fields that are added.
|
Loading…
Add table
Add a link
Reference in a new issue