diff --git a/src/HomeSpan.cpp b/src/HomeSpan.cpp index b59b237..88481b4 100644 --- a/src/HomeSpan.cpp +++ b/src/HomeSpan.cpp @@ -57,6 +57,8 @@ void Span::begin(Category catID, const char *displayName, const char *hostNameBa this->modelName=modelName; sprintf(this->category,"%d",(int)catID); + statusLED=new Blinker(statusDevice,autoOffLED); + esp_task_wdt_delete(xTaskGetIdleTaskHandleForCPU(0)); // required to avoid watchdog timeout messages from ESP32-C3 if(requestedMaxCongetPin():-1);} // get Status Pin (returns -1 if undefined) int getControlPin(){return(controlButton?controlButton->getPin():-1);} // get Control Pin (returns -1 if undefined) diff --git a/src/extras/Blinker.cpp b/src/extras/Blinker.cpp index 8f1dd62..93130a0 100644 --- a/src/extras/Blinker.cpp +++ b/src/extras/Blinker.cpp @@ -64,7 +64,10 @@ void Blinker::start(int period, float dutyCycle){ ////////////////////////////////////// void Blinker::start(int period, float dutyCycle, int nBlinks, int delayTime){ - + + if(!led) + return; + onTime=dutyCycle*period; offTime=period-onTime; this->delayTime=delayTime+offTime; @@ -81,6 +84,9 @@ void Blinker::start(int period, float dutyCycle, int nBlinks, int delayTime){ ////////////////////////////////////// void Blinker::stop(){ + + if(!led) + return; if(blinkHandle!=NULL){ Serial.printf("Deleting Blink Task\n"); @@ -95,6 +101,9 @@ void Blinker::stop(){ void Blinker::on(){ + if(!led) + return; + stop(); led->on(); @@ -106,6 +115,9 @@ void Blinker::on(){ void Blinker::off(){ + if(!led) + return; + stop(); led->off(); } @@ -114,6 +126,9 @@ void Blinker::off(){ void Blinker::check(){ + if(!led) + return; + if(pauseDuration==0 || isPaused || (millis()-pauseTime)getPin()); } diff --git a/src/extras/extras.ino b/src/extras/extras.ino index f44cf48..b179ae1 100644 --- a/src/extras/extras.ino +++ b/src/extras/extras.ino @@ -3,9 +3,10 @@ #include "Blinker.h" #include "Pixel.h" +#include -//Blinker p(new LED(26)); -Blinker p(new Pixel(8)); +Blinker p(new Pixel(2),10); +//Blinker p(NULL,10); void setup() { @@ -14,7 +15,7 @@ void setup() { delay(1000); // wait for interface to flush Serial.println("\n\nHomeSpan Blinker Example\n"); -// Serial.printf("Pins = %d %d\n",b.getPin(),p.getPin()); + Serial.printf("Pins = %d\n",p.getPin()); p.on(); delay(2000); @@ -24,8 +25,6 @@ void setup() { delay(5000); Serial.printf("New Pattern\n"); p.start(200,0.2,2,200); - delay(3000); - p.off(); } void loop(){