From c6b850b13d940ea3c710f3b8b36d65f70d038306 Mon Sep 17 00:00:00 2001 From: Sanket Wadekar <67091512+sanketwadekar@users.noreply.github.com> Date: Fri, 31 Mar 2023 17:16:27 +0530 Subject: [PATCH] Rainmaker: Added enableSystemService API (#7875) * Rainmaker: Added enableSystemService API * Fixed broken links in espnow docs --- docs/source/api/espnow.rst | 4 ++-- docs/source/api/rainmaker.rst | 20 +++++++++++++++++++ .../examples/RMakerSwitch/RMakerSwitch.ino | 2 ++ libraries/RainMaker/src/RMaker.cpp | 13 ++++++++++++ libraries/RainMaker/src/RMaker.h | 1 + 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/docs/source/api/espnow.rst b/docs/source/api/espnow.rst index b26d47c38..e6c5328c1 100644 --- a/docs/source/api/espnow.rst +++ b/docs/source/api/espnow.rst @@ -13,13 +13,13 @@ Examples ESP-NOW Master ************** -.. literalinclude:: ../../../libraries/ESP32/examples/ESPNow/Basic/Master/Master.ino +.. literalinclude:: ../../../libraries/ESP32/examples/ESPNow/ESPNow_Basic_Master/ESPNow_Basic_Master.ino :language: arduino ESP-NOW Slave ************* -.. literalinclude:: ../../../libraries/ESP32/examples/ESPNow/Basic/Slave/Slave.ino +.. literalinclude:: ../../../libraries/ESP32/examples/ESPNow/ESPNow_Basic_Slave/ESPNow_Basic_Slave.ino :language: arduino Resources diff --git a/docs/source/api/rainmaker.rst b/docs/source/api/rainmaker.rst index 1b157a790..baa7ec1d1 100644 --- a/docs/source/api/rainmaker.rst +++ b/docs/source/api/rainmaker.rst @@ -139,6 +139,26 @@ This function will return 1. `ESP_OK` : On success 2. Error in case of failure +RMaker.enableSystemService +************************** + +This API enables the System service for the node. It should be called after `RMaker.initNode()` and before `RMaker.start()`. +For more information, check `here `__. + +.. code-block:: arduino + + esp_err_t enableSystemService(uint16_t flags, int8_t reboot_seconds, int8_t reset_seconds, int8_t reset_reboot_seconds) + +* ``flags`` : Logical OR of system service flags (SYSTEM_SERV_FLAG_REBOOT, SYSTEM_SERV_FLAG_FACTORY_RESET, SYSTEM_SERV_FLAG_WIFI_RESET) as required or SYSTEM_SERV_FLAGS_ALL. +* ``reboot_seconds`` Time in seconds after which the device should reboot. Recommended value: 2 +* ``reset_seconds`` Time in seconds after which the device should reset(Wi-Fi or Factory). Recommended value: 2 +* ``reset_reboot_seconds`` Time in seconds after which the device should reboot after it has been reset. Zero as a value would mean there won't be any reboot after the reset. Recommended value: 2 + +This function will return + +1. `ESP_OK` : On success +2. Error in case of failure + RMaker.setTimeZone ****************** diff --git a/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino b/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino index fed5ea929..32a1a2860 100644 --- a/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino +++ b/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino @@ -99,6 +99,8 @@ void setup() RMaker.enableScenes(); + RMaker.enableSystemService(SYSTEM_SERV_FLAGS_ALL, 2, 2, 2); + RMaker.start(); WiFi.onEvent(sysProvEvent); diff --git a/libraries/RainMaker/src/RMaker.cpp b/libraries/RainMaker/src/RMaker.cpp index c7e3e921d..4f1780e26 100644 --- a/libraries/RainMaker/src/RMaker.cpp +++ b/libraries/RainMaker/src/RMaker.cpp @@ -155,5 +155,18 @@ esp_err_t RMakerClass::enableScenes() } return err; } + +esp_err_t RMakerClass::enableSystemService(uint16_t flags, int8_t reboot_seconds, int8_t reset_seconds, int8_t reset_reboot_seconds) +{ + esp_rmaker_system_serv_config_t config = { + .flags = flags, + .reboot_seconds = reboot_seconds, + .reset_seconds = reset_seconds, + .reset_reboot_seconds = reset_reboot_seconds + }; + err = esp_rmaker_system_service_enable(&config); + return err; +} + RMakerClass RMaker; #endif diff --git a/libraries/RainMaker/src/RMaker.h b/libraries/RainMaker/src/RMaker.h index 69930052f..0d6420c44 100644 --- a/libraries/RainMaker/src/RMaker.h +++ b/libraries/RainMaker/src/RMaker.h @@ -36,6 +36,7 @@ class RMakerClass esp_err_t enableTZService(); esp_err_t enableOTA(ota_type_t type, const char *cert = ESP_RMAKER_OTA_DEFAULT_SERVER_CERT); esp_err_t enableScenes(); + esp_err_t enableSystemService(uint16_t flags, int8_t reboot_seconds = 2, int8_t reset_seconds = 2, int8_t reset_reboot_seconds = 2); esp_err_t start(); esp_err_t stop(); };