From 4e23c5e357436b4d7de5fa58b5696d688d27b7bb Mon Sep 17 00:00:00 2001 From: HomeSpan Date: Mon, 24 Oct 2022 06:46:04 -0400 Subject: [PATCH] Updating hsEventCallback with more events --- src/HomeSpan.cpp | 42 ++++++++++++++++++++++++++++++++++-------- src/HomeSpan.h | 9 ++++++++- 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/src/HomeSpan.cpp b/src/HomeSpan.cpp index d987953..42f3ddd 100644 --- a/src/HomeSpan.cpp +++ b/src/HomeSpan.cpp @@ -341,7 +341,8 @@ void Span::commandMode(){ int mode=1; boolean done=false; statusLED->start(500,0.3,mode,1000); - + if(hsEventCallback) + hsEventCallback(HS_CONFIG_MODE_EXIT); unsigned long alarmTime=millis()+comModeLife; while(!done){ @@ -360,6 +361,8 @@ void Span::commandMode(){ if(mode==6) mode=1; statusLED->start(500,0.3,mode,1000); + if(hsEventCallback) + hsEventCallback((HS_EVENT)(HS_CONFIG_MODE_EXIT+mode-1)); } else { done=true; } @@ -373,13 +376,28 @@ void Span::commandMode(){ case 1: Serial.print("*** NO ACTION\n\n"); - if(strlen(network.wifiData.ssid)==0) + if(strlen(network.wifiData.ssid)==0){ statusLED->start(LED_WIFI_NEEDED); + if(hsEventCallback) + hsEventCallback(HS_WIFI_NEEDED); + } else - if(!HAPClient::nAdminControllers()) + if(WiFi.status()!=WL_CONNECTED){ + statusLED->start(LED_WIFI_CONNECTING); + if(hsEventCallback) + hsEventCallback(HS_WIFI_CONNECTING); + } + else + if(!HAPClient::nAdminControllers()){ statusLED->start(LED_PAIRING_NEEDED); - else + if(hsEventCallback) + hsEventCallback(HS_PAIRING_NEEDED); + } + else{ statusLED->on(); + if(hsEventCallback) + hsEventCallback(HS_PAIRED); + } break; case 2: @@ -411,12 +429,14 @@ void Span::checkConnect(){ if(WiFi.status()==WL_CONNECTED) return; - addWebLog(true,"*** WiFi Connection Lost!"); // losing and re-establishing connection has not been tested + addWebLog(true,"*** WiFi Connection Lost!"); connected++; waitTime=60000; alarmConnect=0; statusLED->start(LED_WIFI_CONNECTING); - } + if(hsEventCallback) + hsEventCallback(HS_WIFI_CONNECTING); + } if(WiFi.status()!=WL_CONNECTED){ if(millis()start(LED_PAIRING_NEEDED); - else + if(hsEventCallback) + hsEventCallback(HS_PAIRING_NEEDED); + } + else{ statusLED->on(); + if(hsEventCallback) + hsEventCallback(HS_PAIRED); + } connected++; diff --git a/src/HomeSpan.h b/src/HomeSpan.h index 0e5a75c..156695d 100644 --- a/src/HomeSpan.h +++ b/src/HomeSpan.h @@ -69,7 +69,14 @@ enum { enum HS_EVENT { HS_WIFI_NEEDED, - HS_WIFI_CONNECTING + HS_WIFI_CONNECTING, + HS_PAIRING_NEEDED, + HS_PAIRED, + HS_CONFIG_MODE_EXIT, + HS_CONFIG_MODE_REBOOT, + HS_CONFIG_MODE_LAUNCH_AP, + HS_CONFIG_MODE_UNPAIR, + HS_CONFIG_MODE_ERASE_WIFI }; ///////////////////////////////