mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-25 20:26:41 +00:00
Dont use Cladd constants to optimize memory
This commit is contained in:
parent
95a7ed74e1
commit
0d34efbd89
@ -5,13 +5,40 @@
|
|||||||
#include "hasp_conf.h"
|
#include "hasp_conf.h"
|
||||||
#include "lv_conf.h"
|
#include "lv_conf.h"
|
||||||
|
|
||||||
|
#include "hasp_mqtt.h" // testing memory consumption
|
||||||
#include "hasp_button.h"
|
#include "hasp_button.h"
|
||||||
#include "hasp_dispatch.h"
|
#include "hasp_dispatch.h"
|
||||||
|
|
||||||
using namespace ace_button;
|
using namespace ace_button;
|
||||||
AceButton * button[HASP_NUM_INPUTS]; // Connect your button between pin 2 and GND
|
static AceButton * button[HASP_NUM_INPUTS]; // Connect your button between pin 2 and GND
|
||||||
|
|
||||||
void handleEvent(AceButton *, uint8_t, uint8_t);
|
static void IRAM_ATTR button_event_cb(AceButton * button, uint8_t eventType, uint8_t buttonState)
|
||||||
|
{
|
||||||
|
char buffer[8];
|
||||||
|
switch(eventType) {
|
||||||
|
case 0: // AceButton::kEventPressed:
|
||||||
|
memcpy_P(buffer, PSTR("DOWN"), sizeof(buffer));
|
||||||
|
break;
|
||||||
|
case 2: // AceButton::kEventClicked:
|
||||||
|
memcpy_P(buffer, PSTR("SHORT"), sizeof(buffer));
|
||||||
|
break;
|
||||||
|
// case AceButton::kEventDoubleClicked:
|
||||||
|
// memcpy_P(buffer, PSTR("DOUBLE"), sizeof(buffer));
|
||||||
|
// break;
|
||||||
|
case 4: // AceButton::kEventLongPressed:
|
||||||
|
memcpy_P(buffer, PSTR("LONG"), sizeof(buffer));
|
||||||
|
break;
|
||||||
|
case 5: // AceButton::kEventRepeatPressed:
|
||||||
|
return; // Fix needed for switches
|
||||||
|
memcpy_P(buffer, PSTR("HOLD"), sizeof(buffer));
|
||||||
|
break;
|
||||||
|
case 1: // AceButton::kEventReleased:
|
||||||
|
memcpy_P(buffer, PSTR("UP"), sizeof(buffer));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// dispatch_button(button->getId(), buffer);
|
||||||
|
mqtt_send_input(button->getId(), buffer);
|
||||||
|
}
|
||||||
|
|
||||||
void buttonSetup(void)
|
void buttonSetup(void)
|
||||||
{
|
{
|
||||||
@ -19,8 +46,10 @@ void buttonSetup(void)
|
|||||||
button[1] = new AceButton(3, HIGH, 1);
|
button[1] = new AceButton(3, HIGH, 1);
|
||||||
button[2] = new AceButton(4, HIGH, 2);
|
button[2] = new AceButton(4, HIGH, 2);
|
||||||
|
|
||||||
|
Log.verbose(F("BTNS: setup(): ready"));
|
||||||
|
|
||||||
ButtonConfig * buttonConfig = ButtonConfig::getSystemButtonConfig();
|
ButtonConfig * buttonConfig = ButtonConfig::getSystemButtonConfig();
|
||||||
buttonConfig->setEventHandler(handleEvent);
|
buttonConfig->setEventHandler(button_event_cb);
|
||||||
|
|
||||||
// Features
|
// Features
|
||||||
buttonConfig->setFeature(ButtonConfig::kFeatureClick);
|
buttonConfig->setFeature(ButtonConfig::kFeatureClick);
|
||||||
@ -35,50 +64,13 @@ void buttonSetup(void)
|
|||||||
buttonConfig->setLongPressDelay(LV_INDEV_DEF_LONG_PRESS_TIME);
|
buttonConfig->setLongPressDelay(LV_INDEV_DEF_LONG_PRESS_TIME);
|
||||||
buttonConfig->setRepeatPressDelay(LV_INDEV_DEF_LONG_PRESS_TIME);
|
buttonConfig->setRepeatPressDelay(LV_INDEV_DEF_LONG_PRESS_TIME);
|
||||||
buttonConfig->setRepeatPressInterval(LV_INDEV_DEF_LONG_PRESS_REP_TIME);
|
buttonConfig->setRepeatPressInterval(LV_INDEV_DEF_LONG_PRESS_REP_TIME);
|
||||||
|
|
||||||
Log.verbose(F("BTNS: setup(): ready"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void buttonLoop(void)
|
void IRAM_ATTR buttonLoop(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Should be called every 4-5ms or faster, for the default debouncing time
|
// Should be called every 4-5ms or faster, for the default debouncing time
|
||||||
// of ~20ms.
|
// of ~20ms.
|
||||||
for(uint8_t i = 0; i < (sizeof button / sizeof *button); i++) {
|
for(uint8_t i = 0; i < HASP_NUM_INPUTS; i++) {
|
||||||
if(button[i]) button[i]->check();
|
if(button[i]) button[i]->check();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// The event handler for the button.
|
|
||||||
void handleEvent(AceButton * button, uint8_t eventType, uint8_t buttonState)
|
|
||||||
{
|
|
||||||
char buffer[128];
|
|
||||||
|
|
||||||
// Print out a message for all events.
|
|
||||||
/* Serial.print(F("handleEvent(): eventType: "));
|
|
||||||
Serial.print(eventType);
|
|
||||||
Serial.print(F("; buttonState: "));
|
|
||||||
Serial.println(buttonState); */
|
|
||||||
|
|
||||||
switch(eventType) {
|
|
||||||
case AceButton::kEventPressed:
|
|
||||||
memcpy_P(buffer, PSTR("DOWN"), sizeof(buffer));
|
|
||||||
break;
|
|
||||||
case AceButton::kEventClicked:
|
|
||||||
memcpy_P(buffer, PSTR("SHORT"), sizeof(buffer));
|
|
||||||
break;
|
|
||||||
case AceButton::kEventDoubleClicked:
|
|
||||||
memcpy_P(buffer, PSTR("DOUBLE"), sizeof(buffer));
|
|
||||||
break;
|
|
||||||
case AceButton::kEventLongPressed:
|
|
||||||
memcpy_P(buffer, PSTR("LONG"), sizeof(buffer));
|
|
||||||
break;
|
|
||||||
case AceButton::kEventRepeatPressed:
|
|
||||||
memcpy_P(buffer, PSTR("HOLD"), sizeof(buffer));
|
|
||||||
break;
|
|
||||||
case AceButton::kEventReleased:
|
|
||||||
memcpy_P(buffer, PSTR("UP"), sizeof(buffer));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
dispatchButton(button->getId(), buffer);
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user