Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions src/ESPEasy/net/DataStructs/NWPluginData_static_runtime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -246,12 +246,16 @@ void NWPluginData_static_runtime::processEvents()

if (connected_changed || establishConnect_changed)
{
if (_connectedStats.isOn()) {
log_connected();

// _establishConnectStats.resetCount();
} else if (_connectedStats.isOff() && !_establishConnectStats.isOn()) {
log_disconnected();
if (_establishConnectStats.isSet()) {
if (_connectedStats.isOn()) {
log_connected();

// _establishConnectStats.resetCount();
} else if (_establishConnectStats.isSet() &&
_connectedStats.isOff() &&
!_establishConnectStats.isOn()) {
log_disconnected();
}
}
}

Expand Down
54 changes: 54 additions & 0 deletions src/ESPEasy/net/wifi/ESPEasyWiFi_STA_State.dotuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
StateDiagram [frame=true framecolor=steelblue label="State Diagram ESPEasy WiFi_STA_State_e"] {
state Disabled [fillcolor=lightblue]
state TimeOut as "TimeOut/\nError" [fillcolor=orangered]
state Idle
state IdleWaiting
state STA_Scanning as "STA\nScanning"
state STA_AP_Scanning as "STA+AP\nScanning"
state STA_Connecting as "STA\nConnecting"
state STA_Reconnecting as "STA\nReconnecting"
state STA_Connected as "STA\nConnected" [fillcolor=palegreen]

choice AlreadyConnected
choice AP_on_no_nw_found
choice KnownAPfound
choice KnownAPonDisconnect

choice ExitSTA

initialState->Disabled


Disabled -> IdleWaiting "Init STA"
Disabled <- ExitSTA "Exit STA"
IdleWaiting -> AlreadyConnected "Already\nConnected?"
AlreadyConnected -> STA_Connected "Connected"
AlreadyConnected -> Idle "Ready"
Idle -> KnownAPfound "Known\nNetwork\nfound?"
KnownAPfound -> AP_on_no_nw_found "Scan\nNeeded"
KnownAPfound -> STA_Connecting "No Scan\nNeeded"
AP_on_no_nw_found -> STA_AP_Scanning "AP"
AP_on_no_nw_found -> STA_Scanning "No AP"

STA_Connecting -> STA_Connected
STA_Reconnecting -> STA_Connected
KnownAPonDisconnect -> STA_Reconnecting "No Scan\nNeeded"
KnownAPonDisconnect <- STA_Connected "Disconnect"
IdleWaiting <- KnownAPonDisconnect "Scan\nNeeded"


IdleWaiting <- STA_Scanning "Scan\nDone"
IdleWaiting <- STA_AP_Scanning "Scan\nDone"

STA_AP_Scanning <- STA_AP_Scanning "Next\nChannel"

TimeOut <- STA_Scanning "Scan\nFail"
TimeOut <- STA_AP_Scanning "Scan\nFail"
TimeOut <- STA_Connecting "Connect\nFail"

TimeOut -> IdleWaiting

IdleWaiting <- IdleWaiting "Wait for\nStartup Delay/\nSetup"

TimeOut <- STA_Reconnecting "Reconnect\nFail"
}
55 changes: 55 additions & 0 deletions src/ESPEasy/net/wifi/ESPEasyWiFi_mode_state_machine.dotuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
StateDiagram [frame=true framecolor=steelblue label="State Diagram ESPEasyWiFi_mode_e"] {
choice NeedSetup
choice HasCredentials
choice HasCredentialsSetupRequired
choice APalwaysOn
choice APalwaysOnNoCred

state STA_only
state STA_AP
state AP_only

state Off [fillcolor=lightblue]
state Setup with behaviors "WiFi scan\nStart webUI\nEnter Credentials\nSave" [fillcolor=yellow] {
state Scan as "STA_only Scan"
state StartAP as "AP_only\nWebUI"
state ClientConnect as "User Connects\nCaptive Portal to /setup"
state EnterCredentials as "Enter WiFi Credentials"
state ClientDisconnect as "User\nDisconnects"
state CredentialsUpdated as "Credentials Updated"

initialState -> Scan
Scan -> StartAP
StartAP -> ClientConnect
ClientDisconnect <- ClientConnect
Scan <- ClientDisconnect
Scan <- StartAP "Time Out"
ClientConnect -> EnterCredentials
EnterCredentials -> CredentialsUpdated
CredentialsUpdated -> finalState
}


initialState->Off
NeedSetup <- Off "Check\nNeed Setup?"
NeedSetup -> HasCredentials "Setup not\nAllowed/\nRequired"
HasCredentials -> APalwaysOn "Has\nCredentials"
APalwaysOn -> STA_AP "AP Always On\nor\nSetup 1st connect"
APalwaysOn -> STA_only "No AP"
HasCredentials -> APalwaysOnNoCred "No\nCredentials"
Off <- APalwaysOnNoCred "No AP"
APalwaysOnNoCred -> AP_only "AP"
NeedSetup -> HasCredentialsSetupRequired "Setup\nAllowed"
HasCredentialsSetupRequired -> APalwaysOn "Has Credentials,\nNo Setup"

Setup <- HasCredentialsSetupRequired "No Credentials,\nEnter Setup"
Setup -> NeedSetup "Setup\nDone"

STA_only <- STA_only "Retry/\nReconnect"
STA_AP -> AP_only "No Known\nNetwork found"

STA_AP <- STA_AP "Retry/\nReconnect"

Setup <- STA_AP "Setup\nFailed 1st\nConnect"

}
Loading
Loading