Address conflict between SpanButton and certain Adafruit Boards
Change enum from BUTTON and TOGGLE to HS_BUTTON and HS_TOGGLE to avoid conflict with #define BUTTON in certain Adafruit boards
This commit is contained in:
parent
5853989651
commit
889a326e02
|
|
@ -969,7 +969,7 @@ void Span::processSerialCommand(const char *c){
|
|||
for(auto button=PushButtons.begin(); button!=PushButtons.end(); button++){
|
||||
if((*button)->service==(*svc)){
|
||||
|
||||
if((*button)->buttonType==SpanButton::BUTTON)
|
||||
if((*button)->buttonType==SpanButton::HS_BUTTON)
|
||||
Serial.printf(" \u25bc SpanButton: Pin=%d, Single=%ums, Double=%ums, Long=%ums, Type=",(*button)->pin,(*button)->singleTime,(*button)->doubleTime,(*button)->longTime);
|
||||
else
|
||||
Serial.printf(" \u25bc SpanToggle: Pin=%d, Toggle=%ums, Type=",(*button)->pin,(*button)->longTime);
|
||||
|
|
@ -2118,7 +2118,7 @@ SpanRange::SpanRange(int min, int max, int step){
|
|||
SpanButton::SpanButton(int pin, uint16_t longTime, uint16_t singleTime, uint16_t doubleTime, triggerType_t triggerType) : PushButton(pin, triggerType){
|
||||
|
||||
if(homeSpan.Accessories.empty() || homeSpan.Accessories.back()->Services.empty()){
|
||||
if(buttonType==BUTTON)
|
||||
if(buttonType==HS_BUTTON)
|
||||
Serial.printf("\nFATAL ERROR! Can't create new SpanButton(%d,%u,%u,%u) without a defined Service ***\n",pin,longTime,singleTime,doubleTime);
|
||||
else
|
||||
Serial.printf("\nFATAL ERROR! Can't create new SpanToggle(%d,%u) without a defined Service ***\n",pin,longTime);
|
||||
|
|
@ -2139,8 +2139,8 @@ SpanButton::SpanButton(int pin, uint16_t longTime, uint16_t singleTime, uint16_t
|
|||
|
||||
void SpanButton::check(){
|
||||
|
||||
if( (buttonType==BUTTON && triggered(singleTime,longTime,doubleTime)) ||
|
||||
(buttonType==TOGGLE && toggled(longTime)) ) // if the underlying PushButton is triggered/toggled
|
||||
if( (buttonType==HS_BUTTON && triggered(singleTime,longTime,doubleTime)) ||
|
||||
(buttonType==HS_TOGGLE && toggled(longTime)) ) // if the underlying PushButton is triggered/toggled
|
||||
service->button(pin,type()); // call the Service's button() routine with pin and type as parameters
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -814,11 +814,11 @@ class SpanButton : public PushButton {
|
|||
protected:
|
||||
|
||||
enum buttonType_t {
|
||||
BUTTON,
|
||||
TOGGLE
|
||||
HS_BUTTON,
|
||||
HS_TOGGLE
|
||||
};
|
||||
|
||||
buttonType_t buttonType=BUTTON; // type of SpanButton
|
||||
buttonType_t buttonType=HS_BUTTON; // type of SpanButton
|
||||
|
||||
public:
|
||||
|
||||
|
|
@ -842,7 +842,7 @@ class SpanToggle : public SpanButton {
|
|||
|
||||
public:
|
||||
|
||||
SpanToggle(int pin, triggerType_t triggerType=TRIGGER_ON_LOW, uint16_t toggleTime=5) : SpanButton(pin,triggerType,toggleTime){buttonType=TOGGLE;};
|
||||
SpanToggle(int pin, triggerType_t triggerType=TRIGGER_ON_LOW, uint16_t toggleTime=5) : SpanButton(pin,triggerType,toggleTime){buttonType=HS_TOGGLE;};
|
||||
int position(){return(pressType);}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue