系统服务使用指南
概述
通过系统服务,可以从手机应用进行重启、Wi-Fi 重置和出厂重置等操作。
要了解更多关于此功能的信息,请参阅此文档。
使用指南
可以使用以下代码片段在 esp_rmaker_start()
函数之前添加服务:
esp_rmaker_system_serv_config_t system_serv_config = {
.flags = SYSTEM_SERV_FLAGS_ALL,
.reboot_seconds = 2,
.reset_seconds = 2,
.reset_reboot_seconds = 2
};
esp_rmaker_system_service_enable(&system_serv_config);
配置系统服务
可以设置 system_serv_config
中的以下值来配置系统服务。
flags
- 通过 OR 运算操作 flag 来选择要包含的参数:
SYSTEM_SERV_FLAG_REBOOT
SYSTEM_SERV_FLAG_FACTORY_RESET
SYSTEM_SERV_FLAG_WIFI_RESET
reboot_seconds
- 设备重启前的等待秒数。向此参数写入 0 将立即执行重启。
推荐值:2
reset_seconds
- 设备重置前的等待秒数(重置 Wi-Fi 或重置为出厂设置)。向 Wi-Fi 重置或出场重置参数写入 0 将立即执行重置。
推荐值:2
reset_reboot_seconds
- 设备在重置后、重启前的等待秒数。如果值为 0,则表示重置后不会重启。
推荐值:2
通过上述调用,以下服务会被添加到节点配置中:
JSON 载荷(展开/收起)
{
"name": "System",
"type": "esp.service.system",
"params": [{
"name": "Reboot",
"type": "esp.param.reboot",
"data_type": "bool",
"properties": ["read", "write"]
}, {
"name": "Factory-Reset",
"type": "esp.param.factory-reset",
"data_type": "bool",
"properties": ["read", "write"]
}, {
"name": "Wi-Fi-Reset",
"type": "esp.param.wifi-reset",
"data_type": "bool",
"properties": ["read", "write"]
}]
}
这些参数在客户端显示如下:
JSON 载荷(展开/收起)
{
"System": {
"Reboot": false,
"Factory-Reset": false,
"Wi-Fi-Reset": false
}
}
从客户端使用系统服务
在这些参数中写入 true
会触发相应的操作。例如, {"System":{"Factory-Reset":true}}
会触发出厂重置。
事件
每当触发重启/重置时,都会生成事件通知,向应用程序代码发出有关操作的提示。以下是生成的各类事件。
RMAKER_EVENT_REBOOT
已触发节点重启。相关事件数据表示节点重启前的等待时间(类型:uint8_t)。注意,由于事件是异步接收的,该时间可能不够准确。
RMAKER_EVENT_WIFI_RESET
Wi-Fi 凭据已重置。在调用 esp_rmaker_wifi_reset()
或相应的系统服务后触发。
RMAKER_EVENT_FACTORY_RESET
节点已重置为出厂默认设置。在调用 esp_rmaker_factory_reset()
或相应的系统服务后触发。