Changed hsEventCallback to statusCallback
This commit is contained in:
parent
4e23c5e357
commit
7ff91ccf02
|
|
@ -195,13 +195,13 @@ void Span::pollTask() {
|
|||
} else {
|
||||
Serial.print("YOU MAY CONFIGURE BY TYPING 'W <RETURN>'.\n\n");
|
||||
statusLED->start(LED_WIFI_NEEDED);
|
||||
if(hsEventCallback)
|
||||
hsEventCallback(HS_WIFI_NEEDED);
|
||||
if(statusCallback)
|
||||
statusCallback(HS_WIFI_NEEDED);
|
||||
}
|
||||
} else {
|
||||
statusLED->start(LED_WIFI_CONNECTING);
|
||||
if(hsEventCallback)
|
||||
hsEventCallback(HS_WIFI_CONNECTING);
|
||||
if(statusCallback)
|
||||
statusCallback(HS_WIFI_CONNECTING);
|
||||
}
|
||||
|
||||
if(controlButton)
|
||||
|
|
@ -332,7 +332,7 @@ int Span::getFreeSlot(){
|
|||
|
||||
void Span::commandMode(){
|
||||
|
||||
if(!statusDevice && !hsEventCallback){
|
||||
if(!statusDevice && !statusCallback){
|
||||
Serial.print("*** ERROR: CAN'T ENTER COMMAND MODE WITHOUT A DEFINED STATUS LED OR EVENT HANDLER CALLBACK***\n\n");
|
||||
return;
|
||||
}
|
||||
|
|
@ -341,8 +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);
|
||||
if(statusCallback)
|
||||
statusCallback(HS_CONFIG_MODE_EXIT);
|
||||
unsigned long alarmTime=millis()+comModeLife;
|
||||
|
||||
while(!done){
|
||||
|
|
@ -361,8 +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));
|
||||
if(statusCallback)
|
||||
statusCallback((HS_STATUS)(HS_CONFIG_MODE_EXIT+mode-1));
|
||||
} else {
|
||||
done=true;
|
||||
}
|
||||
|
|
@ -376,28 +376,7 @@ void Span::commandMode(){
|
|||
|
||||
case 1:
|
||||
Serial.print("*** NO ACTION\n\n");
|
||||
if(strlen(network.wifiData.ssid)==0){
|
||||
statusLED->start(LED_WIFI_NEEDED);
|
||||
if(hsEventCallback)
|
||||
hsEventCallback(HS_WIFI_NEEDED);
|
||||
}
|
||||
else
|
||||
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);
|
||||
if(hsEventCallback)
|
||||
hsEventCallback(HS_PAIRING_NEEDED);
|
||||
}
|
||||
else{
|
||||
statusLED->on();
|
||||
if(hsEventCallback)
|
||||
hsEventCallback(HS_PAIRED);
|
||||
}
|
||||
resetStatus();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
|
@ -434,8 +413,8 @@ void Span::checkConnect(){
|
|||
waitTime=60000;
|
||||
alarmConnect=0;
|
||||
statusLED->start(LED_WIFI_CONNECTING);
|
||||
if(hsEventCallback)
|
||||
hsEventCallback(HS_WIFI_CONNECTING);
|
||||
if(statusCallback)
|
||||
statusCallback(HS_WIFI_CONNECTING);
|
||||
}
|
||||
|
||||
if(WiFi.status()!=WL_CONNECTED){
|
||||
|
|
@ -462,17 +441,7 @@ void Span::checkConnect(){
|
|||
return;
|
||||
}
|
||||
|
||||
if(!HAPClient::nAdminControllers()){
|
||||
statusLED->start(LED_PAIRING_NEEDED);
|
||||
if(hsEventCallback)
|
||||
hsEventCallback(HS_PAIRING_NEEDED);
|
||||
}
|
||||
else{
|
||||
statusLED->on();
|
||||
if(hsEventCallback)
|
||||
hsEventCallback(HS_PAIRED);
|
||||
}
|
||||
|
||||
resetStatus();
|
||||
connected++;
|
||||
|
||||
addWebLog(true,"WiFi Connected! IP Address = %s",WiFi.localIP().toString().c_str());
|
||||
|
|
@ -796,10 +765,7 @@ void Span::processSerialCommand(const char *c){
|
|||
Serial.print("\nDEVICE NOT YET PAIRED -- PLEASE PAIR WITH HOMEKIT APP\n\n");
|
||||
mdns_service_txt_item_set("_hap","_tcp","sf","1"); // set Status Flag = 1 (Table 6-8)
|
||||
|
||||
if(strlen(network.wifiData.ssid)==0)
|
||||
statusLED->start(LED_WIFI_NEEDED);
|
||||
else
|
||||
statusLED->start(LED_PAIRING_NEEDED);
|
||||
resetStatus();
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
@ -1150,6 +1116,33 @@ void Span::processSerialCommand(const char *c){
|
|||
|
||||
///////////////////////////////
|
||||
|
||||
void Span::resetStatus(){
|
||||
if(strlen(network.wifiData.ssid)==0){
|
||||
statusLED->start(LED_WIFI_NEEDED);
|
||||
if(statusCallback)
|
||||
statusCallback(HS_WIFI_NEEDED);
|
||||
}
|
||||
else
|
||||
if(WiFi.status()!=WL_CONNECTED){
|
||||
statusLED->start(LED_WIFI_CONNECTING);
|
||||
if(statusCallback)
|
||||
statusCallback(HS_WIFI_CONNECTING);
|
||||
}
|
||||
else
|
||||
if(!HAPClient::nAdminControllers()){
|
||||
statusLED->start(LED_PAIRING_NEEDED);
|
||||
if(statusCallback)
|
||||
statusCallback(HS_PAIRING_NEEDED);
|
||||
}
|
||||
else{
|
||||
statusLED->on();
|
||||
if(statusCallback)
|
||||
statusCallback(HS_PAIRED);
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////
|
||||
|
||||
void Span::setWifiCredentials(const char *ssid, const char *pwd){
|
||||
sprintf(network.wifiData.ssid,"%.*s",MAX_SSID,ssid);
|
||||
sprintf(network.wifiData.pwd,"%.*s",MAX_PWD,pwd);
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ enum {
|
|||
|
||||
///////////////////////////////
|
||||
|
||||
enum HS_EVENT {
|
||||
enum HS_STATUS {
|
||||
HS_WIFI_NEEDED,
|
||||
HS_WIFI_CONNECTING,
|
||||
HS_PAIRING_NEEDED,
|
||||
|
|
@ -217,7 +217,7 @@ class Span{
|
|||
void (*pairCallback)(boolean isPaired)=NULL; // optional callback function to invoke when pairing is established (true) or lost (false)
|
||||
boolean autoStartAPEnabled=false; // enables auto start-up of Access Point when WiFi Credentials not found
|
||||
void (*apFunction)()=NULL; // optional function to invoke when starting Access Point
|
||||
void (*hsEventCallback)(HS_EVENT hsEvent)=NULL; // optional callback for various HomeSpan events
|
||||
void (*statusCallback)(HS_STATUS status)=NULL; // optional callback when HomeSpan status changes
|
||||
|
||||
WiFiServer *hapServer; // pointer to the HAP Server connection
|
||||
Blinker *statusLED; // indicates HomeSpan status
|
||||
|
|
@ -241,6 +241,7 @@ class Span{
|
|||
int getFreeSlot(); // returns free HAPClient slot number. HAPClients slot keep track of each active HAPClient connection
|
||||
void checkConnect(); // check WiFi connection; connect if needed
|
||||
void commandMode(); // allows user to control and reset HomeSpan settings with the control button
|
||||
void resetStatus(); // resets statusLED and calls statusCallback based on current HomeSpan status
|
||||
|
||||
int sprintfAttributes(char *cBuf, int flags=GET_VALUE|GET_META|GET_PERMS|GET_TYPE|GET_DESC); // prints Attributes JSON database into buf, unless buf=NULL; return number of characters printed, excluding null terminator
|
||||
|
||||
|
|
@ -299,7 +300,7 @@ class Span{
|
|||
void setApFunction(void (*f)()){apFunction=f;} // sets an optional user-defined function to call when activating the WiFi Access Point
|
||||
void enableAutoStartAP(){autoStartAPEnabled=true;} // enables auto start-up of Access Point when WiFi Credentials not found
|
||||
void setWifiCredentials(const char *ssid, const char *pwd); // sets WiFi Credentials
|
||||
void setEventCallback(void (*f)(HS_EVENT hsEvent)){hsEventCallback=f;} // sets an optional user-defined function to call for various HomeSpan Events
|
||||
void setStatusCallback(void (*f)(HS_STATUS status)){statusCallback=f;} // sets an optional user-defined function to call when HomeSpan status changes
|
||||
|
||||
void setPairingCode(const char *s){sprintf(pairingCodeCommand,"S %9s",s);} // sets the Pairing Code - use is NOT recommended. Use 'S' from CLI instead
|
||||
void deleteStoredValues(){processSerialCommand("V");} // deletes stored Characteristic values from NVS
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ void setup() {
|
|||
homeSpan.setSketchVersion("OTA Test 8");
|
||||
homeSpan.setWifiCallback(wifiEstablished);
|
||||
|
||||
homeSpan.setEventCallback(hsEvents);
|
||||
homeSpan.setStatusCallback(statusUpdate);
|
||||
|
||||
new SpanUserCommand('d',"- My Description",userCom1);
|
||||
new SpanUserCommand('e',"- My second Description",userCom2);
|
||||
|
|
@ -167,6 +167,6 @@ void userCom2(const char *v){
|
|||
|
||||
//////////////////////////////////////
|
||||
|
||||
void hsEvents(HS_EVENT event){
|
||||
Serial.printf("\n*** HOMESPAN EVENT: %d\n",event);
|
||||
void statusUpdate(HS_STATUS status){
|
||||
Serial.printf("\n*** HOMESPAN STATUS CHANGE: %d\n",status);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue