Skip to content
Snippets Groups Projects
EventButton.ino 1.03 KiB
Newer Older
#include "Button.h"

const int pin = 2;
const int ID = 0;

Button b(pin, ID);

void ICACHE_RAM_ATTR ISR() {
  b.tick();
}

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  b.initInterrupts(ISR);
  b.setEventHandler(cb);
  delay(500);
  
  Serial.println("\n\nESP8266 Button Test:");
}

void loop() {
  // put your main code here, to run repeatedly:
  b.check();
}

void cb(Button* button, uint8_t eventType, bool state) {
  /*
   * Rotary Encoder event handler that triggers WallVis behaviours
   */
   
  String idString = String(button->getId());

  Serial.println("Button ID: " + idString + " Event Type: " + String(eventType) + " State: " + String(state));

  switch(eventType) {
    case Button::kEventPressed:
    //Do something
    break;
    
    case Button::kEventReleased:
    //Do something else
    break;

    case Button::kEventClicked:
    //Do something else
    break;

    case Button::kEventHeld:
    //Do something else
    break;

    case Button::kEventTick:
    //Do something else
    break;
  }
}