跳到主要内容

系统服务使用指南

概述

通过系统服务,可以从手机应用进行重启、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() 或相应的系统服务后触发。

On this page