传输管理组

传输管理组定义以下命令:

Command ID

命令描述

0

连接(桥接)传输

1

断开桥接的传输

2

获取桥接/传输状态

6

列出传输

7

传输模式详细信息

8

传输配置详细信息

备注

传输管理是实验性的,如有更改恕不另行通知。

连接(桥接)传输命令

将接收到 MCUmgr 数据包的传输桥接到另一个 MCUmgr 传输。

连接(桥接)传输请求

连接(桥接)传输请求头字段:

OP

Group ID

Command ID

2

11

0

请求的 CBOR 数据:

{
    (str)"transport" : (uint)
    (str,opt)"mode"  : (uint)
    ...
}

其中:

"transport"

smp_transport_type 包含要桥接(连接)到的目标传输类型。

"mode"

包含要使用的传输配置模式;可以省略,此时使用默认值 0。

...

建立连接时,传输可能需要其他字段;由于这些字段特定于传输,此处不做描述。

连接(桥接)传输响应

连接(桥接)传输响应头字段:

OP

Group ID

Command ID

3

11

0

成功时,该命令发送空 CBOR 映射作为数据。出错时,CBOR 数据采用以下形式:

{
    (str)"err" : {
        (str)"group"    : (uint)
        (str)"rc"       : (uint)
    }
}

其中:

"err" -> "group"

mcumgr_group_t 表示基于分组的错误代码所属的分组。仅在使用 SMP 版本 2 且返回错误时出现。

"err" -> "rc"

包含基于分组的错误代码的索引。仅在使用 SMP 版本 2 且为非零(错误情况)时出现。

"rc"

mcumgr_err_t 仅在使用 SMP 版本 1 且为非零(错误情况)时,或在使用 SMP 版本 2 发生 SMP 错误时出现。

断开桥接的传输命令

断开当前传输的桥接,或断开所有传输桥接。

断开桥接的传输请求

断开桥接的传输请求头字段:

OP

Group ID

Command ID

2

11

1

请求的 CBOR 数据:

该命令发送空 CBOR 映射作为数据。

其中:

"transport"

smp_transport_type 包含要断开桥接的传输类型;如果提供了 all,则不得提供此项。

"all"

设置为 true 可断开所有活动的桥接传输;如果提供了 transport,则不得提供此项。

断开桥接的传输响应

断开桥接的传输响应头字段:

OP

Group ID

Command ID

3

11

1

成功时,该命令发送空 CBOR 映射作为数据。出错时,CBOR 数据采用以下形式:

{
    (str)"err" : {
        (str)"group"    : (uint)
        (str)"rc"       : (uint)
    }
}

其中:

"err" -> "group"

mcumgr_group_t 表示基于分组的错误代码所属的分组。仅在使用 SMP 版本 2 且返回错误时出现。

"err" -> "rc"

包含基于分组的错误代码的索引。仅在使用 SMP 版本 2 且为非零(错误情况)时出现。

"rc"

mcumgr_err_t 仅在使用 SMP 版本 1 且为非零(错误情况)时,或在使用 SMP 版本 2 发生 SMP 错误时出现。

获取桥接/传输状态命令

返回有关活动桥接以及设备支持情况的信息。

获取桥接/传输状态请求

获取桥接/传输状态请求头字段:

OP

Group ID

Command ID

0

11

2

该命令发送空 CBOR 映射作为数据。

获取桥接/传输状态响应

获取桥接/传输状态响应头字段:

OP

Group ID

Command ID

1

11

2

成功响应的 CBOR 数据:

{
    (str)"supported"      : (uint)
    (str)"active"         : (uint)
    (str,opt)"bridged"    : (bool)
    (str,opt)"transport"  : (uint)
}

出错时,CBOR 数据采用以下形式:

{
    (str)"err" : {
        (str)"group"    : (uint)
        (str)"rc"       : (uint)
    }
}

其中:

"supported"

包含在给定时间可以有多少个活动桥接。

"active"

包含当前有多少个活动桥接。

"bridged"

如果当前传输已桥接,则出现并设置为 true,否则省略该字段。

"transport"

当前传输所桥接到的 MCUmgr 传输的传输 ID。仅在传输已桥接时出现。

"err" -> "group"

mcumgr_group_t 表示基于分组的错误代码所属的分组。仅在使用 SMP 版本 2 且返回错误时出现。

"err" -> "rc"

包含基于分组的错误代码的索引。仅在使用 SMP 版本 2 且为非零(错误情况)时出现。

"rc"

mcumgr_err_t 仅在使用 SMP 版本 1 且为非零(错误情况)时,或在使用 SMP 版本 2 发生 SMP 错误时出现。

列出传输命令

返回有关设备支持的传输的信息。

列出传输请求

列出传输请求头字段:

OP

Group ID

Command ID

0

11

6

该命令发送空 CBOR 映射作为数据。

列出传输响应

列出传输响应头字段:

OP

Group ID

Command ID

1

11

6

成功响应的 CBOR 数据:

{
    (str)"transports" : [
        {
            (str)"id"         : (uint)
            (str,opt)"name"   : (str)
        }
        ...
    ]
}

出错时,CBOR 数据采用以下形式:

{
    (str)"err" : {
        (str)"group"    : (uint)
        (str)"rc"       : (uint)
    }
}

其中:

"id"

支持桥接的 MCUmgr 传输的传输 ID。

"name"

MCUmgr 传输的可选名称(如果可用)。

"err" -> "group"

mcumgr_group_t 表示基于分组的错误代码所属的分组。仅在使用 SMP 版本 2 且返回错误时出现。

"err" -> "rc"

包含基于分组的错误代码的索引。仅在使用 SMP 版本 2 且为非零(错误情况)时出现。

"rc"

mcumgr_err_t 仅在使用 SMP 版本 1 且为非零(错误情况)时,或在使用 SMP 版本 2 发生 SMP 错误时出现。

传输模式详细信息命令

返回有关设备支持的某个传输的模式的信息。

传输模式详细信息请求

传输模式详细信息请求头字段:

OP

Group ID

Command ID

0

11

7

请求的 CBOR 数据:

{
    (str)"transport" : (uint)
}

其中:

"transport"

smp_transport_type 包含要获取详细信息的传输类型。

传输模式详细信息响应

传输模式详细信息响应头字段:

OP

Group ID

Command ID

1

11

7

成功响应的 CBOR 数据:

{
    (str)"modes" : [
        {
            (str)"id"            : (uint)
            (str)"description"   : (str)
            (str,opt)"incoming"  : (bool)
            (str,opt)"outgoing"  : (bool)
        }
        ...
    ]
}

出错时,CBOR 数据采用以下形式:

{
    (str)"err" : {
        (str)"group"    : (uint)
        (str)"rc"       : (uint)
    }
}

其中:

"id"

传输模式的 ID。

"description"

传输模式的描述。

"incoming"

如果传输模式支持传入桥接连接,则设置为 true。

"outgoing"

如果传输模式支持传出桥接连接,则设置为 true。

"err" -> "group"

mcumgr_group_t 表示基于分组的错误代码所属的分组。仅在使用 SMP 版本 2 且返回错误时出现。

"err" -> "rc"

包含基于分组的错误代码的索引。仅在使用 SMP 版本 2 且为非零(错误情况)时出现。

"rc"

mcumgr_err_t 仅在使用 SMP 版本 1 且为非零(错误情况)时,或在使用 SMP 版本 2 发生 SMP 错误时出现。

传输配置详细信息命令

返回有关支持的传输配置的信息。

传输配置详细信息请求

传输配置详细信息请求头字段:

OP

Group ID

Command ID

0

11

8

请求的 CBOR 数据:

{
    (str)"transport" : (uint)
    (str)"mode"      : (uint)
}

其中:

"transport"

smp_transport_type 包含要获取配置信息的传输类型。

"mode"

包含要获取配置信息的传输类型的配置模式。

传输配置详细信息响应

传输配置详细信息响应头字段:

OP

Group ID

Command ID

1

11

8

成功响应的 CBOR 数据:

{
    (str)"configs" : [
        {
            (str)"name"          : (str)
            (str)"type"          : (uint)
            (str,opt)"required"  : (bool)
        }
        ...
    ]
}

出错时,CBOR 数据采用以下形式:

{
    (str)"err" : {
        (str)"group"    : (uint)
        (str)"rc"       : (uint)
    }
}

其中:

"name"

配置项的名称。

"type"

配置项的类型,使用以下映射:
  • 0: uint

  • 1: int

  • 2: bool

  • 3: string

  • 4: byte string

"required"

如果该参数是必需的,则出现并设置为 true。

"err" -> "group"

mcumgr_group_t 表示基于分组的错误代码所属的分组。仅在使用 SMP 版本 2 且返回错误时出现。

"err" -> "rc"

包含基于分组的错误代码的索引。仅在使用 SMP 版本 2 且为非零(错误情况)时出现。

"rc"

mcumgr_err_t 仅在使用 SMP 版本 1 且为非零(错误情况)时,或在使用 SMP 版本 2 发生 SMP 错误时出现。