From 5aed4cde3397f8e5a8ba68a73eb3647bc1030c14 Mon Sep 17 00:00:00 2001 From: shaneapowell Date: Tue, 4 May 2021 19:54:39 -0500 Subject: [PATCH 1/3] Added a simple optional callback for state changes. --- src/IotWebConf.cpp | 9 +++++++++ src/IotWebConf.h | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/src/IotWebConf.cpp b/src/IotWebConf.cpp index bbf1b96..dd60348 100644 --- a/src/IotWebConf.cpp +++ b/src/IotWebConf.cpp @@ -258,6 +258,11 @@ void IotWebConf::setConfigSavedCallback(std::function func) this->_configSavedCallback = func; } +void IotWebConf::setStateChangedCallback(std::function func) +{ + this->_stateChangedCallback = func; +} + void IotWebConf::setFormValidator( std::function func) { @@ -629,6 +634,10 @@ void IotWebConf::changeState(NetworkState newState) NetworkState oldState = this->_state; this->_state = newState; this->stateChanged(oldState, newState); + if (this->_stateChangedCallback != nullptr) + { + this->_stateChangedCallback(oldState, newState); + } #ifdef IOTWEBCONF_DEBUG_TO_SERIAL Serial.print("State changed from: "); Serial.print(oldState); diff --git a/src/IotWebConf.h b/src/IotWebConf.h index ae7739c..2eb056b 100644 --- a/src/IotWebConf.h +++ b/src/IotWebConf.h @@ -293,6 +293,12 @@ class IotWebConf */ void setConfigSavedCallback(std::function func); + /** + * Specify a callback method, that will be called when ever the state is changed. + * See IOTWEBCONF_STATE_* for possible values + */ + void setStateChangedCallback(std::function func); + /** * Specify a callback method, that will be called when form validation is required. * If the method will return false, the configuration will not be saved. @@ -600,6 +606,7 @@ class IotWebConf std::function _wifiConnectionCallback = nullptr; std::function _configSavingCallback = nullptr; std::function _configSavedCallback = nullptr; + std::function _stateChangedCallback = nullptr; std::function _formValidator = nullptr; std::function _apConnectionHandler = &(IotWebConf::connectAp); From 4e67b6de8aab9a6e808a7a012d23ea0e646785c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Kelemen?= <10376327+prampec@users.noreply.github.com> Date: Mon, 15 Nov 2021 09:31:27 +0100 Subject: [PATCH 2/3] Update pull request to reflect recent changes. --- src/IotWebConf.cpp | 3 ++- src/IotWebConf.h | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/IotWebConf.cpp b/src/IotWebConf.cpp index dd60348..c72f8ef 100644 --- a/src/IotWebConf.cpp +++ b/src/IotWebConf.cpp @@ -258,7 +258,8 @@ void IotWebConf::setConfigSavedCallback(std::function func) this->_configSavedCallback = func; } -void IotWebConf::setStateChangedCallback(std::function func) +void IotWebConf::setStateChangedCallback(std::function func) { this->_stateChangedCallback = func; } diff --git a/src/IotWebConf.h b/src/IotWebConf.h index 2eb056b..f081008 100644 --- a/src/IotWebConf.h +++ b/src/IotWebConf.h @@ -295,9 +295,10 @@ class IotWebConf /** * Specify a callback method, that will be called when ever the state is changed. - * See IOTWEBCONF_STATE_* for possible values + * See NetworkState enum for possible values */ - void setStateChangedCallback(std::function func); + void setStateChangedCallback(std::function func); /** * Specify a callback method, that will be called when form validation is required. From 461d9dc82fc82f6af273ff037a53f807e3aaede0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Kelemen?= <10376327+prampec@users.noreply.github.com> Date: Mon, 15 Nov 2021 09:40:52 +0100 Subject: [PATCH 3/3] Update pull request to reflect recent changes. --- src/IotWebConf.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/IotWebConf.h b/src/IotWebConf.h index f081008..002ed92 100644 --- a/src/IotWebConf.h +++ b/src/IotWebConf.h @@ -607,7 +607,8 @@ class IotWebConf std::function _wifiConnectionCallback = nullptr; std::function _configSavingCallback = nullptr; std::function _configSavedCallback = nullptr; - std::function _stateChangedCallback = nullptr; + std::function + _stateChangedCallback = nullptr; std::function _formValidator = nullptr; std::function _apConnectionHandler = &(IotWebConf::connectAp);