设置(配置)管理组
设置管理组(在原始 MCUmgr 仓库中称为 Configuration Manager)定义了以下命令:
|
命令描述 |
|---|---|
|
读/写设置 |
|
删除设置 |
|
提交设置 |
|
加载/保存设置 |
请注意,Zephyr 版本增加了原始上游版本不支持的额外命令和功能,不过原始客户端的功能对于读/写操作应该仍然可用。
读/写设置命令
读/写设置命令用于更新设备上的设置条目,或从设备获取设置的当前值。
读取设置请求
读取设置请求头部字段:
|
|
|
|---|---|---|
|
|
|
请求的 CBOR 数据:
{
(str)"name" : (str)
(str,opt)"max_size" : (uint)
}
其中:
“name” |
要读取的设置名称字符串 |
“max_size” |
要返回的数据的最大大小(可选) |
读取设置响应
读取设置响应头部字段:
|
|
|
|---|---|---|
|
|
|
成功响应的 CBOR 数据:
{
(str)"val" : (bstr)
(str,opt)"max_size" : (uint)
}
出错时,CBOR 数据的形式如下:
{
(str)"err" : {
(str)"group" : (uint)
(str)"rc" : (uint)
}
}
{
(str)"rc" : (int)
}
其中:
“val” |
返回数据的二进制字符串;注意,无法通过此接口指定底层数据类型,客户端必须自行了解该类型。 |
“max_size” |
如果设备支持的最大数据大小小于请求的最大数据大小,则会设置该字段,其中包含设备支持的最大数据大小,相当于 Kconfig 选项 |
“err” -> “group” |
|
“err” -> “rc” |
包含基于分组的错误码的索引。仅在使用 SMP 版本 2 且该值非零(错误状态)时出现。 |
“rc” |
|
写入设置请求
写入设置请求头部字段:
|
|
|
|---|---|---|
|
|
|
请求的 CBOR 数据:
{
(str)"name" : (str)
(str)"val" : (bstr)
}
其中:
“name” |
要更新/设置的设置名称字符串 |
“val” |
要将设置设为的值 |
写入设置响应
写入设置响应头部字段:
|
|
|
|---|---|---|
|
|
|
成功时,该命令发送一个空的 CBOR 映射作为数据。出错时,CBOR 数据的形式如下:
{
(str)"err" : {
(str)"group" : (uint)
(str)"rc" : (uint)
}
}
{
(str)"rc" : (int)
}
其中:
“err” -> “group” |
|
“err” -> “rc” |
包含基于分组的错误码的索引。仅在使用 SMP 版本 2 且该值非零(错误状态)时出现。 |
“rc” |
|
删除设置命令
删除设置命令用于删除设备上的设置。
删除设置请求
删除设置请求头部字段:
|
|
|
|---|---|---|
|
|
|
请求的 CBOR 数据:
{
(str)"name" : (str)
}
其中:
“name” |
要删除的设置名称字符串 |
删除设置响应
删除设置响应头部字段:
|
|
|
|---|---|---|
|
|
|
成功时,该命令发送一个空的 CBOR 映射作为数据。出错时,CBOR 数据的形式如下:
{
(str)"err" : {
(str)"group" : (uint)
(str)"rc" : (uint)
}
}
{
(str)"rc" : (int)
}
其中:
“err” -> “group” |
|
“err” -> “rc” |
包含基于分组的错误码的索引。仅在使用 SMP 版本 2 且该值非零(错误状态)时出现。 |
“rc” |
|
提交设置命令
提交设置命令用于将所有已设置但尚未在设备上应用的设置提交。
提交设置请求
提交设置请求头部字段:
|
|
|
|---|---|---|
|
|
|
该命令发送一个空的 CBOR 映射作为数据。
提交设置响应
提交设置响应头部字段:
|
|
|
|---|---|---|
|
|
|
成功时,该命令发送一个空的 CBOR 映射作为数据。出错时,CBOR 数据的形式如下:
{
(str)"err" : {
(str)"group" : (uint)
(str)"rc" : (uint)
}
}
{
(str)"rc" : (int)
}
其中:
“err” -> “group” |
|
“err” -> “rc” |
包含基于分组的错误码的索引。仅在使用 SMP 版本 2 且该值非零(错误状态)时出现。 |
“rc” |
|
加载/保存设置命令
加载/保存设置命令用于从设备上的持久存储加载所有已序列化的项,或将其保存到其中。
加载设置请求
加载设置请求头部字段:
|
|
|
|---|---|---|
|
|
|
该命令发送一个空的 CBOR 映射作为数据。
加载设置响应
加载设置响应头部字段:
|
|
|
|---|---|---|
|
|
|
成功时,该命令发送一个空的 CBOR 映射作为数据。出错时,CBOR 数据的形式如下:
{
(str)"err" : {
(str)"group" : (uint)
(str)"rc" : (uint)
}
}
{
(str)"rc" : (int)
}
其中:
“err” -> “group” |
|
“err” -> “rc” |
包含基于分组的错误码的索引。仅在使用 SMP 版本 2 且该值非零(错误状态)时出现。 |
“rc” |
|
保存设置请求
保存设置请求头部字段:
|
|
|
|---|---|---|
|
|
|
请求的 CBOR 数据:
{
(str,opt)"name" : (str)
}
其中:
“name” |
如果提供,则包含要保存的设置子树名称(如果启用了 |
保存设置响应
保存设置响应头部字段:
|
|
|
|---|---|---|
|
|
|
成功时,该命令发送一个空的 CBOR 映射作为数据。出错时,CBOR 数据的形式如下:
{
(str)"err" : {
(str)"group" : (uint)
(str)"rc" : (uint)
}
}
{
(str)"rc" : (int)
}
其中:
“err” -> “group” |
|
“err” -> “rc” |
包含基于分组的错误码的索引。仅在使用 SMP 版本 2 且该值非零(错误状态)时出现。 |
“rc” |
|
设置访问回调
MCUmgr 提供了一个设置访问回调(有关回调的详细信息,请参见 MCUmgr 回调),它让应用/模块可以得知何时使用了设置管理命令,并可选择阻止访问(例如通过安全机制)。该回调可通过 CONFIG_MCUMGR_GRP_SETTINGS_ACCESS_HOOK 启用,并使用事件 MGMT_EVT_OP_SETTINGS_MGMT_ACCESS 注册,提供的回调数据为 settings_mgmt_access。