HomeSpan/docs/HS_STATUS.md

3.1 KiB

HomeSpan Status

The optional homeSpan method, void setStatusCallback(void (*func)(HS_STATUS status)), can be used to create a callback function, func, that HomeSpan calls whenever its status changes. HomeSpan passes func a single argument, status, of type HS_STATUS, defined as follows:

enum HS_STATUS {
  HS_WIFI_NEEDED,
  HS_WIFI_CONNECTING,
  HS_PAIRING_NEEDED,
  HS_PAIRED,
  HS_ENTERING_CONFIG_MODE,
  HS_CONFIG_MODE_EXIT,  
  HS_CONFIG_MODE_REBOOT,
  HS_CONFIG_MODE_LAUNCH_AP,
  HS_CONFIG_MODE_UNPAIR,
  HS_CONFIG_MODE_ERASE_WIFI,
  HS_CONFIG_MODE_EXIT_SELECTED, 
  HS_CONFIG_MODE_REBOOT_SELECTED,
  HS_CONFIG_MODE_LAUNCH_AP_SELECTED,
  HS_CONFIG_MODE_UNPAIR_SELECTED,
  HS_CONFIG_MODE_ERASE_WIFI_SELECTED,
  HS_REBOOTING,
  HS_FACTORY_RESET,
  HS_AP_STARTED,
  HS_AP_CONNECTED,
  HS_AP_TERMINATED,  
  HS_OTA_STARTED    
};

The homeSpan method char* statusString(HS_STATUS s), is a convenience function for converting any of the above enumerations to short, pre-defined character string messages as follows:

const char* Span::statusString(HS_STATUS s){
  switch(s){
    case HS_WIFI_NEEDED: return("WiFi Credentials Needed");
    case HS_WIFI_CONNECTING: return("WiFi Connecting");
    case HS_PAIRING_NEEDED: return("Device not yet Paired");
    case HS_PAIRED: return("Device Paired");
    case HS_ENTERING_CONFIG_MODE: return("Entering Command Mode");
    case HS_CONFIG_MODE_EXIT: return("1. Exit Command Mode"); 
    case HS_CONFIG_MODE_REBOOT: return("2. Reboot Device");
    case HS_CONFIG_MODE_LAUNCH_AP: return("3. Launch Access Point");
    case HS_CONFIG_MODE_UNPAIR: return("4. Unpair Device");
    case HS_CONFIG_MODE_ERASE_WIFI: return("5. Erase WiFi Credentials");
    case HS_CONFIG_MODE_EXIT_SELECTED: return("Exiting Command Mode...");
    case HS_CONFIG_MODE_REBOOT_SELECTED: return("Rebooting Device...");
    case HS_CONFIG_MODE_LAUNCH_AP_SELECTED: return("Launching Access Point...");
    case HS_CONFIG_MODE_UNPAIR_SELECTED: return("Unpairing Device...");
    case HS_CONFIG_MODE_ERASE_WIFI_SELECTED: return("Erasing WiFi Credentials...");
    case HS_REBOOTING: return("REBOOTING!");
    case HS_FACTORY_RESET: return("Performing Factory Reset...");
    case HS_AP_STARTED: return("Access Point Started");
    case HS_AP_CONNECTED: return("Access Point Connected");
    case HS_AP_TERMINATED: return("Access Point Terminated");
    case HS_OTA_STARTED: return("OTA Update Started");
    default: return("Unknown");
  }
}

Example:

#include "HomeSpan.h"

void setup(){
  homeSpan.setStatusCallback(statusUpdate);   // set callback function
  ...
  homeSpan.begin();
  ...
}

// create a callback function that simply prints the pre-defined short messages on the Serial Monitor whenever the HomeSpan status changes

void statusUpdate(HS_STATUS status){
  Serial.printf("\n*** HOMESPAN STATUS CHANGE: %s\n",homeSpan.statusString(status));
}

You can of course create any alternative messsages, or take any actions desired, in func and do not need to use the pre-defined strings above.


↩️ Back to the Reference API page