SensESP
3.6.1-alpha
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
wifi_watchdog_policy.h
Go to the documentation of this file.
1
#ifndef SENSESP_SRC_SENSESP_SYSTEM_WIFI_WATCHDOG_POLICY_H_
2
#define SENSESP_SRC_SENSESP_SYSTEM_WIFI_WATCHDOG_POLICY_H_
3
4
#include <cstdint>
5
6
#include "
sensesp/net/wifi_state.h
"
7
8
namespace
sensesp
{
9
17
enum class
WiFiWatchdogLink
{
kUp
,
kDown
,
kNeutral
};
18
27
inline
WiFiWatchdogLink
wifi_watchdog_link_from_state
(
WiFiState
state) {
28
switch
(state) {
29
case
WiFiState::kWifiConnectedToAP
:
30
return
WiFiWatchdogLink::kUp
;
31
case
WiFiState::kWifiNoAP
:
32
case
WiFiState::kWifiDisconnected
:
33
return
WiFiWatchdogLink::kDown
;
34
case
WiFiState::kWifiAPModeActivated
:
35
case
WiFiState::kWifiManagerActivated
:
36
return
WiFiWatchdogLink::kNeutral
;
37
}
38
return
WiFiWatchdogLink::kNeutral
;
39
}
40
56
class
WiFiWatchdogPolicy
{
57
public
:
58
void
set_link_state
(
WiFiWatchdogLink
link, uint32_t now_ms) {
59
switch
(link) {
60
case
WiFiWatchdogLink::kUp
:
61
armed_ =
true
;
62
down_ =
false
;
63
break
;
64
case
WiFiWatchdogLink::kDown
:
65
if
(!down_) {
66
down_ =
true
;
67
down_since_ms_ = now_ms;
68
}
69
break
;
70
case
WiFiWatchdogLink::kNeutral
:
71
down_ =
false
;
72
break
;
73
}
74
}
75
76
bool
restart_due
(uint32_t now_ms, uint32_t timeout_ms)
const
{
77
if
(timeout_ms == 0 || !armed_ || !down_) {
78
return
false
;
79
}
80
return
static_cast<
uint32_t
>
(now_ms - down_since_ms_) >= timeout_ms;
81
}
82
83
private
:
84
bool
armed_ =
false
;
85
bool
down_ =
false
;
86
uint32_t down_since_ms_ = 0;
87
};
88
89
}
// namespace sensesp
90
91
#endif
// SENSESP_SRC_SENSESP_SYSTEM_WIFI_WATCHDOG_POLICY_H_
sensesp::WiFiWatchdogPolicy
Pure decision logic for the WiFi watchdog.
Definition
wifi_watchdog_policy.h:56
sensesp::WiFiWatchdogPolicy::set_link_state
void set_link_state(WiFiWatchdogLink link, uint32_t now_ms)
Definition
wifi_watchdog_policy.h:58
sensesp::WiFiWatchdogPolicy::restart_due
bool restart_due(uint32_t now_ms, uint32_t timeout_ms) const
Definition
wifi_watchdog_policy.h:76
sensesp
Definition
sensesp.cpp:7
sensesp::wifi_watchdog_link_from_state
WiFiWatchdogLink wifi_watchdog_link_from_state(WiFiState state)
Map a NetworkState (WiFiState) to the watchdog's view of the link.
Definition
wifi_watchdog_policy.h:27
sensesp::WiFiState
WiFiState
Definition
wifi_state.h:6
sensesp::WiFiState::kWifiConnectedToAP
@ kWifiConnectedToAP
sensesp::WiFiState::kWifiAPModeActivated
@ kWifiAPModeActivated
sensesp::WiFiState::kWifiNoAP
@ kWifiNoAP
sensesp::WiFiState::kWifiManagerActivated
@ kWifiManagerActivated
sensesp::WiFiState::kWifiDisconnected
@ kWifiDisconnected
sensesp::WiFiWatchdogLink
WiFiWatchdogLink
Link state as seen by the WiFi watchdog.
Definition
wifi_watchdog_policy.h:17
sensesp::WiFiWatchdogLink::kDown
@ kDown
sensesp::WiFiWatchdogLink::kNeutral
@ kNeutral
sensesp::WiFiWatchdogLink::kUp
@ kUp
wifi_state.h
src
sensesp
system
wifi_watchdog_policy.h
Generated by
1.9.8