From 8b9487b9d44829c51029a7f72ba77b8ba58674fe Mon Sep 17 00:00:00 2001 From: Gregg Date: Sun, 4 Sep 2022 07:31:08 -0500 Subject: [PATCH] Created homeSpan.setStatusPixel(float h=0, float s=100, float v=100) This is now the official API method to set an RGB NeoPixel as the status LED. It defaults to bright red unless an HSV color is specified. --- src/HomeSpan.h | 8 ++++++-- src/extras/Blinker.h | 15 +++++++++++++++ src/extras/PwmPin.h | 13 ------------- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/HomeSpan.h b/src/HomeSpan.h index d378a47..f24a893 100644 --- a/src/HomeSpan.h +++ b/src/HomeSpan.h @@ -257,11 +257,15 @@ class Span{ boolean deleteAccessory(uint32_t aid); // deletes Accessory with matching aid; returns true if found, else returns false void setControlPin(uint8_t pin){controlButton=new PushButton(pin);} // sets Control Pin - void setStatusPin(uint8_t pin){statusDevice=new LED(pin);} // sets Status Device to a simple LED on specified pin - void setStatusDevice(Blinkable *dev){statusDevice=dev;} // sets Status Device to generic Blinkable object + void setStatusPin(uint8_t pin){statusDevice=new GenericLED(pin);} // sets Status Device to a simple LED on specified pin void setStatusAutoOff(uint16_t duration){autoOffLED=duration;} // sets Status LED auto off (seconds) int getStatusPin(){return(statusLED->getPin());} // get Status Pin (getPin will return -1 if underlying statusDevice is undefined) int getControlPin(){return(controlButton?controlButton->getPin():-1);} // get Control Pin (returns -1 if undefined) + + void setStatusPixel(uint8_t pin,float h=0,float s=100,float v=100){ // sets Status Device to an RGB Pixel on specified pin + statusDevice=((new Pixel(pin))->setOnColor(Pixel::HSV(h,s,v))); + } + void setApSSID(const char *ssid){network.apSSID=ssid;} // sets Access Point SSID void setApPassword(const char *pwd){network.apPassword=pwd;} // sets Access Point Password void setApTimeout(uint16_t nSec){network.lifetime=nSec*1000;} // sets Access Point Timeout (seconds) diff --git a/src/extras/Blinker.h b/src/extras/Blinker.h index 13aec3f..633bc19 100644 --- a/src/extras/Blinker.h +++ b/src/extras/Blinker.h @@ -111,3 +111,18 @@ class Blinker { // Returns pin number of connected LED }; + +//////////////////////////////// +// GenericLED // +//////////////////////////////// + +class GenericLED : public Blinkable { + int pin; + + public: + + GenericLED(int pin) : pin{pin} {pinMode(pin,OUTPUT);digitalWrite(pin,0);} + void on() {digitalWrite(pin,HIGH);} + void off() {digitalWrite(pin,LOW);} + int getPin() {return(pin);} +}; diff --git a/src/extras/PwmPin.h b/src/extras/PwmPin.h index 3edecc3..d9506ec 100644 --- a/src/extras/PwmPin.h +++ b/src/extras/PwmPin.h @@ -81,20 +81,7 @@ class LedPin : public LedC { static void HSVtoRGB(float h, float s, float v, float *r, float *g, float *b ); // converts Hue/Saturation/Brightness to R/G/B }; -//////////////////////////////// -// LED // -//////////////////////////////// -class LED : public Blinkable { - int pin; - - public: - - LED(int pin) : pin{pin} {pinMode(pin,OUTPUT);digitalWrite(pin,0);} - void on() {digitalWrite(pin,HIGH);} - void off() {digitalWrite(pin,LOW);} - int getPin() {return(pin);} -}; //////////////////////////////// // ServoPin //