#ifndef _BUTTON_H #define _BUTTON_H #include #include "beacon.h" #define DEBOUNCE_TIME 100 int lastExecTime = 0; int buttonState = 0; // variable for reading the pushbutton status #ifdef ARDUINO_HELTEC_WIFI_LORA_32 const int BUTTON_PRG = 0; // PRG Button #elif ARDUINO_M5Stick_C const int BUTTON_PRG = M5_BUTTON_HOME; // Home Button #elif ARDUINO_ESP32C3_DEV const int BUTTON_PRG = 9; // PRG Button #endif // ARDUINO_HELTEC_WIFI_LORA_32 & ARDUINO_M5Stick_C &ARDUINO_ESP32C3_DEV void onPrgFall(){ int currentExecTime=millis(); if(DEBOUNCE_TIME > (currentExecTime - lastExecTime)) { //Bouncing return; } Serial.println("onPrgFall"); lastExecTime=currentExecTime; //delay(BEACON_SLEEP_ADV); switch( beacon_type ) { case EN_BEACON_TYPE_entry: beacon_type = EN_BEACON_TYPE_hazard; beaconTypeStr="Hazard "; break; case EN_BEACON_TYPE_hazard: beacon_type = EN_BEACON_TYPE_safe; beaconTypeStr="Safe "; break; case EN_BEACON_TYPE_safe: beacon_type = EN_BEACON_TYPE_exit; beaconTypeStr="Exit "; break; case EN_BEACON_TYPE_exit: beacon_type = EN_BEACON_TYPE_entry; beaconTypeStr="Entry "; break; default: beacon_type = EN_BEACON_TYPE_safe; beaconTypeStr="Safe "; break; } Serial.println("Switching to "+beaconTypeStr); #ifdef _M5STICKC_H_ M5.Lcd.fillRect(0, LINE2, 160, 10, BLACK); M5.Lcd.fillRect(0, LINE4, 160, 20, BLACK); #endif //_M5STICKC_H_ beacon_changed = true; } void pollPrg() { if(false != beacon_changed) { EEPROM.write(0, beacon_type); EEPROM.commit(); DisplayButtonStatus(); beacon_changed = false; } } #endif //_BUTTON_H