mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-24 11:46:34 +00:00
Decorate Loop() functions with IRAM_ATTR
This commit is contained in:
parent
0b7bda066d
commit
dca9a5d8b8
@ -55,9 +55,9 @@ enum zifont_codepage_t8_t { ASCII = 0x01, ISO_8859_1 = 0x03, UTF_8 = 0x18 };
|
||||
/**********************
|
||||
* STATIC PROTOTYPES
|
||||
**********************/
|
||||
const uint8_t* IRAM_ATTR lv_font_get_bitmap_fmt_zifont(const lv_font_t* font, uint32_t unicode_letter);
|
||||
bool IRAM_ATTR lv_font_get_glyph_dsc_fmt_zifont(const lv_font_t* font, lv_font_glyph_dsc_t* dsc_out,
|
||||
uint32_t unicode_letter, uint32_t unicode_letter_next);
|
||||
HASP_ATTRIBUTE_FAST_MEM const uint8_t* lv_font_get_bitmap_fmt_zifont(const lv_font_t* font, uint32_t unicode_letter);
|
||||
HASP_ATTRIBUTE_FAST_MEM bool lv_font_get_glyph_dsc_fmt_zifont(const lv_font_t* font, lv_font_glyph_dsc_t* dsc_out,
|
||||
uint32_t unicode_letter, uint32_t unicode_letter_next);
|
||||
|
||||
/**********************
|
||||
* STATIC VARIABLES
|
||||
@ -83,8 +83,8 @@ static uint8_t* charBitmap_p;
|
||||
* GLOBAL FUNCTIONS
|
||||
**********************/
|
||||
|
||||
static void IRAM_ATTR blackAdd(uint8_t* charBitmap_p, uint16_t pos);
|
||||
static void IRAM_ATTR colorsAdd(uint8_t* charBitmap_p, uint8_t color1, uint16_t pos);
|
||||
HASP_ATTRIBUTE_FAST_MEM static void blackAdd(uint8_t* charBitmap_p, uint16_t pos);
|
||||
HASP_ATTRIBUTE_FAST_MEM static void colorsAdd(uint8_t* charBitmap_p, uint8_t color1, uint16_t pos);
|
||||
// static uint16_t unicode2codepoint(uint32_t unicode, uint8_t codepage);
|
||||
// static void printBuffer(uint8_t * charBitmap_p, uint8_t w, uint8_t h);
|
||||
|
||||
@ -282,7 +282,7 @@ int lv_zifont_font_init(lv_font_t** font, const char* font_path, uint16_t size)
|
||||
* @param unicode_letter an unicode letter which bitmap should be get
|
||||
* @return pointer to the bitmap or NULL if not found
|
||||
*/
|
||||
const uint8_t* IRAM_ATTR lv_font_get_bitmap_fmt_zifont(const lv_font_t* font, uint32_t unicode_letter)
|
||||
HASP_ATTRIBUTE_FAST_MEM const uint8_t* lv_font_get_bitmap_fmt_zifont(const lv_font_t* font, uint32_t unicode_letter)
|
||||
{
|
||||
/* Bitmap still in buffer */
|
||||
if(charInBuffer == unicode_letter && charBitmap_p) {
|
||||
@ -469,8 +469,8 @@ const uint8_t* IRAM_ATTR lv_font_get_bitmap_fmt_zifont(const lv_font_t* font, ui
|
||||
* @return true: descriptor is successfully loaded into `dsc_out`.
|
||||
* false: the letter was not found, no data is loaded to `dsc_out`
|
||||
*/
|
||||
bool IRAM_ATTR lv_font_get_glyph_dsc_fmt_zifont(const lv_font_t* font, lv_font_glyph_dsc_t* dsc_out,
|
||||
uint32_t unicode_letter, uint32_t unicode_letter_next)
|
||||
HASP_ATTRIBUTE_FAST_MEM bool lv_font_get_glyph_dsc_fmt_zifont(const lv_font_t* font, lv_font_glyph_dsc_t* dsc_out,
|
||||
uint32_t unicode_letter, uint32_t unicode_letter_next)
|
||||
{
|
||||
/* Only ascii characteres supported for now */
|
||||
// returning true with a box_h of 0 does not display an error
|
||||
@ -564,7 +564,7 @@ bool IRAM_ATTR lv_font_get_glyph_dsc_fmt_zifont(const lv_font_t* font, lv_font_g
|
||||
return true;
|
||||
}
|
||||
|
||||
static void IRAM_ATTR blackAdd(uint8_t* charBitmap_p, uint16_t pos)
|
||||
HASP_ATTRIBUTE_FAST_MEM static void blackAdd(uint8_t* charBitmap_p, uint16_t pos)
|
||||
{
|
||||
uint8_t col = pos & 0x0001; // remainder
|
||||
uint16_t map_p = pos >> 1; // devide by 2
|
||||
@ -576,7 +576,7 @@ static void IRAM_ATTR blackAdd(uint8_t* charBitmap_p, uint16_t pos)
|
||||
}
|
||||
}
|
||||
|
||||
static inline void IRAM_ATTR colorsAdd(uint8_t* charBitmap_p, uint8_t color1, uint16_t pos)
|
||||
HASP_ATTRIBUTE_FAST_MEM static inline void colorsAdd(uint8_t* charBitmap_p, uint8_t color1, uint16_t pos)
|
||||
{
|
||||
uint32_t col = pos & 0x0001; // remainder
|
||||
uint32_t map_p = pos >> 1; // devide by 2
|
||||
|
@ -116,12 +116,13 @@ build_flags =
|
||||
-D NO_GLOBAL_HTTPUPDATE ; dont instantiate httpUpdate
|
||||
; -- lvgl build options -----------------------------
|
||||
-D LV_MEM_SIZE=61440U ; 60kB lvgl memory
|
||||
-D LV_ATTRIBUTE_FAST_MEM=IRAM_ATTR
|
||||
-D LV_ATTRIBUTE_FAST_MEM=
|
||||
; -- ArduinoJson build options ----------------------------
|
||||
-D ARDUINOJSON_ENABLE_PROGMEM=1 ; for PROGMEM arguments
|
||||
; -- tft_espi build options ------------------------
|
||||
;-D USE_DMA_TO_TFT
|
||||
; -- openHASP build options ------------------------
|
||||
-D HASP_ATTRIBUTE_FAST_MEM=IRAM_ATTR
|
||||
-D HASP_USE_TELNET=1
|
||||
;-D HASP_USE_SPIFFS=1
|
||||
-D HASP_USE_LITTLEFS=1
|
||||
@ -189,10 +190,12 @@ build_flags=
|
||||
-D PIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
|
||||
; -- lvgl build options -----------------------------
|
||||
-D LV_MEM_SIZE=12288U ; 12kB lvgl memory
|
||||
-D LV_ATTRIBUTE_FAST_MEM=
|
||||
; -- ArduinoJson build options ----------------------------
|
||||
-D ARDUINOJSON_ENABLE_PROGMEM=1 ; for PROGMEM arguments
|
||||
-D ARDUINOJSON_ENABLE_STD_STRING=1 ; for std::string
|
||||
; -- openHASP build options -------------------------
|
||||
-D HASP_ATTRIBUTE_FAST_MEM=
|
||||
-D HASP_USE_TELNET=1
|
||||
;-D HASP_USE_SPIFFS=1
|
||||
-D HASP_USE_LITTLEFS=1
|
||||
|
@ -1,10 +1,10 @@
|
||||
/* MIT License - Copyright (c) 2019-2021 Francis Van Roie
|
||||
For full license information read the LICENSE file in the project folder */
|
||||
|
||||
#include "hasplib.h"
|
||||
|
||||
#include "hasp_drv_touch.h"
|
||||
#include "hasp/hasp.h"
|
||||
#include "drv/tft_driver.h"
|
||||
#include "lvgl.h"
|
||||
|
||||
#if TOUCH_DRIVER == 2046
|
||||
#if defined(USE_FSMC)
|
||||
@ -174,7 +174,7 @@ static inline bool drv_touchpad_getXY(int16_t* touchX, int16_t* touchY)
|
||||
return touched;
|
||||
}
|
||||
|
||||
bool IRAM_ATTR drv_touch_read(lv_indev_drv_t* indev_driver, lv_indev_data_t* data)
|
||||
IRAM_ATTR bool drv_touch_read(lv_indev_drv_t* indev_driver, lv_indev_data_t* data)
|
||||
{
|
||||
#if TOUCH_DRIVER > 0
|
||||
int16_t touchX = 0;
|
||||
@ -211,7 +211,7 @@ bool IRAM_ATTR drv_touch_read(lv_indev_drv_t* indev_driver, lv_indev_data_t* dat
|
||||
return false;
|
||||
}
|
||||
|
||||
void IRAM_ATTR drv_touch_loop()
|
||||
IRAM_ATTR void drv_touch_loop()
|
||||
{
|
||||
#if TOUCH_DRIVER == 911
|
||||
GT911_loop();
|
||||
|
@ -4,14 +4,14 @@
|
||||
#ifndef HASP_DRV_TOUCH_H
|
||||
#define HASP_DRV_TOUCH_H
|
||||
|
||||
#include "lvgl.h"
|
||||
#include "hasplib.h"
|
||||
|
||||
#ifndef TOUCH_DRIVER
|
||||
#define TOUCH_DRIVER -1 // No Touch
|
||||
#endif
|
||||
|
||||
void drv_touch_init(uint8_t rotation);
|
||||
bool drv_touch_read(lv_indev_drv_t* indev_driver, lv_indev_data_t* data);
|
||||
void drv_touch_loop();
|
||||
IRAM_ATTR bool drv_touch_read(lv_indev_drv_t* indev_driver, lv_indev_data_t* data);
|
||||
IRAM_ATTR void drv_touch_loop();
|
||||
|
||||
#endif
|
@ -11,7 +11,7 @@
|
||||
FT6336U* touchpanel;
|
||||
|
||||
// Read touch points
|
||||
bool IRAM_ATTR FT6336U_getXY(int16_t* touchX, int16_t* touchY, bool debug)
|
||||
HASP_ATTRIBUTE_FAST_MEM bool FT6336U_getXY(int16_t* touchX, int16_t* touchY, bool debug)
|
||||
{
|
||||
if(touchpanel->read_touch_number() != 1) return false;
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
#include "hasp_debug.h" // for TAG_DRVR
|
||||
|
||||
bool FT6336U_getXY(int16_t* touchX, int16_t* touchY, bool debug);
|
||||
HASP_ATTRIBUTE_FAST_MEM bool FT6336U_getXY(int16_t* touchX, int16_t* touchY, bool debug);
|
||||
void FT6336U_init();
|
||||
|
||||
#endif
|
||||
|
@ -1,66 +1,65 @@
|
||||
#if TOUCH_DRIVER == 610
|
||||
|
||||
#include <SPI.h>
|
||||
#include "Adafruit_STMPE610.h"
|
||||
#include "ArduinoLog.h"
|
||||
#include <SPI.h>
|
||||
#include "Adafruit_STMPE610.h"
|
||||
#include "ArduinoLog.h"
|
||||
|
||||
#include "hasp_drv_stmpe610.h"
|
||||
#include "hasp_drv_stmpe610.h"
|
||||
|
||||
// This is calibration data for the raw touch data to the screen coordinates
|
||||
#define TS_MINX 3800
|
||||
#define TS_MAXX 100
|
||||
#define TS_MINY 100
|
||||
#define TS_MAXY 3750
|
||||
#define TS_MINX 3800
|
||||
#define TS_MAXX 100
|
||||
#define TS_MINY 100
|
||||
#define TS_MAXY 3750
|
||||
|
||||
static Adafruit_STMPE610 touch = Adafruit_STMPE610(STMPE_CS);
|
||||
|
||||
// Read touch points from global variable
|
||||
bool IRAM_ATTR STMPE610_getXY(int16_t * touchX, int16_t * touchY, uint8_t touchRotation, bool debug)
|
||||
HASP_ATTRIBUTE_FAST_MEM bool STMPE610_getXY(int16_t* touchX, int16_t* touchY, uint8_t touchRotation, bool debug)
|
||||
{
|
||||
uint16_t x, y;
|
||||
uint8_t z;
|
||||
if(! touch.touched()) return false;
|
||||
if(!touch.touched()) return false;
|
||||
|
||||
while (! touch.bufferEmpty()) {
|
||||
while(!touch.bufferEmpty()) {
|
||||
touch.readData(&x, &y, &z);
|
||||
if(debug) Log.trace(TAG_DRVR, F("STMPE610: x=%i y=%i z=%i r=%i"), x, y, z, touchRotation);
|
||||
}
|
||||
touch.writeRegister8(STMPE_INT_STA, 0xFF);
|
||||
if (1 == touchRotation) {
|
||||
#if HX8357D_DRIVER == 1
|
||||
if(1 == touchRotation) {
|
||||
#if HX8357D_DRIVER == 1
|
||||
y = map(y, TS_MINX, TS_MAXX, 0, TFT_HEIGHT);
|
||||
x = map(x, TS_MINY, TS_MAXY, TFT_WIDTH, 0);
|
||||
#else
|
||||
#else
|
||||
x = map(x, TS_MAXX, TS_MINX, 0, TFT_WIDTH);
|
||||
y = map(y, TS_MAXY, TS_MINY, 0, TFT_HEIGHT);
|
||||
#endif
|
||||
} else if (2 == touchRotation) {
|
||||
#if HX8357D_DRIVER == 1
|
||||
#endif
|
||||
} else if(2 == touchRotation) {
|
||||
#if HX8357D_DRIVER == 1
|
||||
x = map(x, TS_MAXX, TS_MINX, TFT_WIDTH, 0);
|
||||
y = map(y, TS_MAXY, TS_MINY, 0, TFT_HEIGHT);
|
||||
#else
|
||||
#else
|
||||
x = map(x, TS_MAXX, TS_MINX, 0, TFT_WIDTH);
|
||||
y = map(y, TS_MAXY, TS_MINY, 0, TFT_HEIGHT);
|
||||
#endif
|
||||
#endif
|
||||
} else {
|
||||
#if HX8357D_DRIVER == 1
|
||||
#if HX8357D_DRIVER == 1
|
||||
x = map(x, TS_MINX, TS_MAXX, TFT_WIDTH, 0);
|
||||
y = map(y, TS_MINY, TS_MAXY, 0, TFT_HEIGHT);
|
||||
#else
|
||||
#else
|
||||
x = map(x, TS_MINX, TS_MAXX, 0, TFT_WIDTH);
|
||||
y = map(y, TS_MINY, TS_MAXY, 0, TFT_HEIGHT);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
*touchX = x;
|
||||
*touchY = y;
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
void STMPE610_init()
|
||||
{
|
||||
if (! touch.begin()) {
|
||||
if(!touch.begin()) {
|
||||
Log.trace(TAG_DRVR, F("STMPE610 not found!"));
|
||||
} else {
|
||||
Log.trace(TAG_DRVR, F("STMPE610 touch driver started"));
|
||||
|
@ -6,9 +6,9 @@
|
||||
|
||||
#if TOUCH_DRIVER == 610
|
||||
|
||||
#include "hasp_debug.h" // for TAG_DRVR
|
||||
#include "hasp_debug.h" // for TAG_DRVR
|
||||
|
||||
bool IRAM_ATTR STMPE610_getXY(int16_t * touchX, int16_t * touchY, uint8_t touchRotation, bool debug);
|
||||
HASP_ATTRIBUTE_FAST_MEM bool STMPE610_getXY(int16_t* touchX, int16_t* touchY, uint8_t touchRotation, bool debug);
|
||||
void STMPE610_init();
|
||||
|
||||
#endif
|
||||
|
@ -102,7 +102,7 @@ lv_font_t* hasp_get_font(uint8_t fontid)
|
||||
/**
|
||||
* Check if sleep state needs to be updated
|
||||
*/
|
||||
bool IRAM_ATTR hasp_update_sleep_state()
|
||||
HASP_ATTRIBUTE_FAST_MEM bool hasp_update_sleep_state()
|
||||
{
|
||||
uint32_t idle = lv_disp_get_inactive_time(NULL);
|
||||
|
||||
@ -470,7 +470,7 @@ void haspSetup(void)
|
||||
* STATIC FUNCTIONS
|
||||
**********************/
|
||||
|
||||
void haspLoop(void)
|
||||
IRAM_ATTR void haspLoop(void)
|
||||
{
|
||||
dispatchLoop();
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ extern "C" {
|
||||
* Create a hasp application
|
||||
*/
|
||||
void haspSetup(void);
|
||||
void haspLoop(void);
|
||||
IRAM_ATTR void haspLoop(void);
|
||||
void haspEverySecond(void);
|
||||
|
||||
void haspReconnect(void);
|
||||
@ -67,7 +67,7 @@ bool haspSetConfig(const JsonObject& settings);
|
||||
|
||||
lv_font_t* hasp_get_font(uint8_t fontid);
|
||||
|
||||
bool hasp_update_sleep_state();
|
||||
HASP_ATTRIBUTE_FAST_MEM bool hasp_update_sleep_state();
|
||||
void hasp_get_sleep_state(char* payload);
|
||||
void hasp_get_sleep_time(uint16_t& short_time, uint16_t& long_time);
|
||||
void hasp_set_sleep_time(uint16_t short_time, uint16_t long_time);
|
||||
|
@ -1449,7 +1449,8 @@ static void hasp_process_obj_attribute_range(lv_obj_t* obj, const char* attr, co
|
||||
* @param update bool: change/set the value if true, dispatch/get value if false
|
||||
* @note setting a value won't return anything, getting will dispatch the value
|
||||
*/
|
||||
void IRAM_ATTR hasp_process_obj_attribute(lv_obj_t* obj, const char* attr_p, const char* payload, bool update)
|
||||
HASP_ATTRIBUTE_FAST_MEM void hasp_process_obj_attribute(lv_obj_t* obj, const char* attr_p, const char* payload,
|
||||
bool update)
|
||||
{
|
||||
// unsigned long start = millis();
|
||||
if(!obj) {
|
||||
|
@ -16,7 +16,8 @@ void my_obj_set_value_str_text(lv_obj_t* obj, uint8_t part, lv_state_t state, co
|
||||
void my_btnmatrix_map_clear(lv_obj_t* obj);
|
||||
void line_clear_points(lv_obj_t* obj);
|
||||
|
||||
void hasp_process_obj_attribute(lv_obj_t* obj, const char* attr_p, const char* payload, bool update);
|
||||
HASP_ATTRIBUTE_FAST_MEM void hasp_process_obj_attribute(lv_obj_t* obj, const char* attr_p, const char* payload,
|
||||
bool update);
|
||||
bool hasp_process_obj_attribute_val(lv_obj_t* obj, const char* attr, int16_t intval, bool booval, bool update);
|
||||
|
||||
void attr_out_str(lv_obj_t* obj, const char* attribute, const char* data);
|
||||
|
@ -991,7 +991,7 @@ void dispatchSetup()
|
||||
/* WARNING: remember to expand the commands array when adding new commands */
|
||||
}
|
||||
|
||||
void dispatchLoop()
|
||||
IRAM_ATTR void dispatchLoop()
|
||||
{
|
||||
lv_task_handler(); // process animations
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ enum hasp_event_t { // even = released, odd = pressed
|
||||
|
||||
/* ===== Default Event Processors ===== */
|
||||
void dispatchSetup(void);
|
||||
void dispatchLoop(void);
|
||||
IRAM_ATTR void dispatchLoop(void);
|
||||
void dispatchEverySecond(void);
|
||||
void dispatchStart(void);
|
||||
void dispatchStop(void);
|
||||
|
@ -32,7 +32,7 @@
|
||||
static lv_style_int_t last_value_sent;
|
||||
static lv_color_t last_color_sent;
|
||||
|
||||
void IRAM_ATTR swipe_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void swipe_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
|
||||
/**
|
||||
* Clean-up allocated memory before an object is deleted
|
||||
@ -137,7 +137,7 @@ void event_timer_refresh(lv_task_t* task)
|
||||
* @param event type of event that occured
|
||||
* @param eventid returns the hasp eventid
|
||||
*/
|
||||
static bool IRAM_ATTR translate_event(lv_obj_t* obj, lv_event_t event, uint8_t& eventid)
|
||||
static bool translate_event(lv_obj_t* obj, lv_event_t event, uint8_t& eventid)
|
||||
{
|
||||
switch(event) {
|
||||
case LV_EVENT_GESTURE:
|
||||
@ -173,7 +173,7 @@ static bool IRAM_ATTR translate_event(lv_obj_t* obj, lv_event_t event, uint8_t&
|
||||
|
||||
// ##################### Value Senders ########################################################
|
||||
|
||||
static void IRAM_ATTR event_send_object_data(lv_obj_t* obj, const char* data)
|
||||
static void event_send_object_data(lv_obj_t* obj, const char* data)
|
||||
{
|
||||
uint8_t pageid;
|
||||
uint8_t objid;
|
||||
@ -187,7 +187,7 @@ static void IRAM_ATTR event_send_object_data(lv_obj_t* obj, const char* data)
|
||||
}
|
||||
|
||||
// Send out events with a val attribute
|
||||
static void IRAM_ATTR event_object_val_event(lv_obj_t* obj, uint8_t eventid, int16_t val)
|
||||
static void event_object_val_event(lv_obj_t* obj, uint8_t eventid, int16_t val)
|
||||
{
|
||||
char data[40];
|
||||
char eventname[8];
|
||||
@ -198,7 +198,7 @@ static void IRAM_ATTR event_object_val_event(lv_obj_t* obj, uint8_t eventid, int
|
||||
}
|
||||
|
||||
// Send out events with a val and text attribute
|
||||
static void IRAM_ATTR event_object_selection_changed(lv_obj_t* obj, uint8_t eventid, int16_t val, const char* text)
|
||||
static void event_object_selection_changed(lv_obj_t* obj, uint8_t eventid, int16_t val, const char* text)
|
||||
{
|
||||
char data[200];
|
||||
char eventname[8];
|
||||
@ -211,7 +211,7 @@ static void IRAM_ATTR event_object_selection_changed(lv_obj_t* obj, uint8_t even
|
||||
// ##################### Event Handlers ########################################################
|
||||
|
||||
#if HASP_USE_GPIO > 0
|
||||
void IRAM_ATTR event_gpio_input(uint8_t pin, uint8_t group, uint8_t eventid)
|
||||
void event_gpio_input(uint8_t pin, uint8_t group, uint8_t eventid)
|
||||
{
|
||||
char payload[64];
|
||||
char topic[8];
|
||||
@ -289,7 +289,7 @@ static void log_event(const char* name, lv_event_t event)
|
||||
* @param obj pointer to a button matrix
|
||||
* @param event type of event that occured
|
||||
*/
|
||||
void IRAM_ATTR wakeup_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
void wakeup_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
log_event("wakeup", event);
|
||||
|
||||
@ -302,7 +302,7 @@ void IRAM_ATTR wakeup_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
}
|
||||
}
|
||||
|
||||
void IRAM_ATTR swipe_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
void swipe_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
if(!obj || obj->user_data.swipeid == 0) return;
|
||||
|
||||
@ -330,7 +330,7 @@ void IRAM_ATTR swipe_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
* @param obj pointer to a button object
|
||||
* @param event type of event that occured
|
||||
*/
|
||||
void IRAM_ATTR generic_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
void generic_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
log_event("generic", event);
|
||||
|
||||
@ -429,7 +429,7 @@ void IRAM_ATTR generic_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
* @param obj pointer to a switch object
|
||||
* @param event type of event that occured
|
||||
*/
|
||||
void IRAM_ATTR toggle_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
void toggle_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
log_event("toggle", event);
|
||||
|
||||
@ -472,7 +472,7 @@ void IRAM_ATTR toggle_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
* @param obj pointer to a dropdown list or roller
|
||||
* @param event type of event that occured
|
||||
*/
|
||||
void IRAM_ATTR selector_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
void selector_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
log_event("selector", event);
|
||||
|
||||
@ -544,7 +544,7 @@ void IRAM_ATTR selector_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
* @param obj pointer to a dropdown list or roller
|
||||
* @param event type of event that occured
|
||||
*/
|
||||
void IRAM_ATTR btnmatrix_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
void btnmatrix_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
log_event("btnmatrix", event);
|
||||
|
||||
@ -579,7 +579,7 @@ void IRAM_ATTR btnmatrix_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
* @param obj pointer to a dropdown list or roller
|
||||
* @param event type of event that occured
|
||||
*/
|
||||
void IRAM_ATTR msgbox_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
void msgbox_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
log_event("msgbox", event);
|
||||
|
||||
@ -611,7 +611,7 @@ void IRAM_ATTR msgbox_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
* @param obj pointer to a slider
|
||||
* @param event type of event that occured
|
||||
*/
|
||||
void IRAM_ATTR slider_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
void slider_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
log_event("slider", event);
|
||||
|
||||
@ -651,7 +651,7 @@ void IRAM_ATTR slider_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
* @param obj pointer to a color picker
|
||||
* @param event type of event that occured
|
||||
*/
|
||||
void IRAM_ATTR cpicker_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
void cpicker_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
log_event("cpicker", event);
|
||||
|
||||
@ -678,7 +678,7 @@ void IRAM_ATTR cpicker_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
// dispatch_normalized_group_values(obj->user_data.groupid, obj, val, min, max);
|
||||
}
|
||||
|
||||
void IRAM_ATTR calendar_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
void calendar_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
log_event("calendar", event);
|
||||
|
||||
|
@ -15,19 +15,19 @@
|
||||
void event_timer_calendar(lv_task_t* task);
|
||||
|
||||
// Object event Handlers
|
||||
void IRAM_ATTR wakeup_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void IRAM_ATTR generic_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void IRAM_ATTR toggle_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void IRAM_ATTR slider_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void IRAM_ATTR selector_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void IRAM_ATTR btnmatrix_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void IRAM_ATTR msgbox_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void IRAM_ATTR cpicker_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void IRAM_ATTR calendar_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void wakeup_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void generic_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void toggle_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void slider_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void selector_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void btnmatrix_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void msgbox_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void cpicker_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void calendar_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
|
||||
#if HASP_USE_GPIO > 0
|
||||
// GPIO event Handler
|
||||
void IRAM_ATTR event_gpio_input(uint8_t pin, uint8_t group, uint8_t eventid);
|
||||
void event_gpio_input(uint8_t pin, uint8_t group, uint8_t eventid);
|
||||
#endif
|
||||
|
||||
#endif // HASP_EVENT_H
|
@ -133,7 +133,7 @@ extern "C" {
|
||||
|
||||
// Functions used by ANDROID, WINDOWS and POSSIX
|
||||
void debugLvglLogEvent(lv_log_level_t level, const char* file, uint32_t line, const char* funcname, const char* descr);
|
||||
void debugLoop(void);
|
||||
IRAM_ATTR void debugLoop(void);
|
||||
void debugEverySecond(void);
|
||||
void debugStart(void);
|
||||
void debugStop(void);
|
||||
|
@ -48,7 +48,7 @@ File pFileOut;
|
||||
#define INVERT_COLORS 0
|
||||
#endif
|
||||
|
||||
// static void IRAM_ATTR lv_tick_handler(void);
|
||||
// HASP_ATTRIBUTE_FAST_MEM static void lv_tick_handler(void);
|
||||
|
||||
gui_conf_t gui_settings = {.show_pointer = false,
|
||||
.backlight_pin = TFT_BCKL,
|
||||
@ -73,7 +73,7 @@ gui_conf_t gui_settings = {.show_pointer = false,
|
||||
// lv_tick_inc(LVGL_TICK_PERIOD);
|
||||
// }
|
||||
|
||||
void IRAM_ATTR gui_flush_cb(lv_disp_drv_t* disp, const lv_area_t* area, lv_color_t* color_p)
|
||||
IRAM_ATTR void gui_flush_cb(lv_disp_drv_t* disp, const lv_area_t* area, lv_color_t* color_p)
|
||||
{
|
||||
haspTft.flush_pixels(disp, area, color_p);
|
||||
}
|
||||
@ -285,7 +285,7 @@ void guiSetup(void)
|
||||
LOG_INFO(TAG_LVGL, F(D_SERVICE_STARTED));
|
||||
}
|
||||
|
||||
void IRAM_ATTR guiLoop(void)
|
||||
IRAM_ATTR void guiLoop(void)
|
||||
{
|
||||
#if defined(STM32F4xx)
|
||||
// tick.update();
|
||||
|
@ -17,7 +17,7 @@ struct gui_conf_t
|
||||
|
||||
/* ===== Default Event Processors ===== */
|
||||
void guiSetup(void);
|
||||
void guiLoop(void);
|
||||
IRAM_ATTR void guiLoop(void);
|
||||
void guiEverySecond(void);
|
||||
void guiStart(void);
|
||||
void guiStop(void);
|
||||
|
@ -333,7 +333,7 @@ void debugSetupWithoutLogging(JsonObject settings)
|
||||
}
|
||||
}
|
||||
|
||||
void debugLoop(void)
|
||||
IRAM_ATTR void debugLoop(void)
|
||||
{
|
||||
int16_t keypress;
|
||||
do {
|
||||
|
@ -68,10 +68,6 @@ void setup()
|
||||
haspSetup();
|
||||
}
|
||||
|
||||
#if HASP_USE_GPIO > 0
|
||||
gpioSetup();
|
||||
#endif
|
||||
|
||||
/****************************
|
||||
* Apply User Configuration
|
||||
***************************/
|
||||
@ -80,6 +76,10 @@ void setup()
|
||||
mqttSetup(); // Load Hostname before starting WiFi
|
||||
#endif
|
||||
|
||||
#if HASP_USE_GPIO > 0
|
||||
gpioSetup();
|
||||
#endif
|
||||
|
||||
#if HASP_USE_WIFI > 0 || HASP_USE_ETHERNET > 0
|
||||
networkSetup();
|
||||
#endif
|
||||
@ -109,7 +109,7 @@ void setup()
|
||||
// guiStart();
|
||||
}
|
||||
|
||||
void IRAM_ATTR loop()
|
||||
IRAM_ATTR void loop()
|
||||
{
|
||||
guiLoop();
|
||||
haspLoop();
|
||||
|
@ -23,7 +23,7 @@ typedef enum {
|
||||
} hasp_mqtt_error_t;
|
||||
|
||||
void mqttSetup();
|
||||
void mqttLoop();
|
||||
IRAM_ATTR void mqttLoop();
|
||||
void mqttEvery5Seconds(bool wifiIsConnected);
|
||||
void mqttStart();
|
||||
void mqttStop();
|
||||
|
@ -430,7 +430,7 @@ void mqttStop()
|
||||
|
||||
void mqttSetup(){};
|
||||
|
||||
void mqttLoop(){};
|
||||
IRAM_ATTR void mqttLoop(){};
|
||||
|
||||
void mqttEvery5Seconds(bool wifiIsConnected){};
|
||||
|
||||
|
@ -403,7 +403,7 @@ void mqttSetup()
|
||||
printf("%s %d\n", __FILE__, __LINE__);
|
||||
}
|
||||
|
||||
void mqttLoop()
|
||||
IRAM_ATTR void mqttLoop()
|
||||
{
|
||||
int topicLen;
|
||||
char* topicName; // Freed by msgarrvd
|
||||
|
@ -355,7 +355,7 @@ void mqttSetup()
|
||||
}
|
||||
}
|
||||
|
||||
void mqttLoop(void)
|
||||
IRAM_ATTR void mqttLoop(void)
|
||||
{
|
||||
if(mqttEnabled) mqttClient.loop();
|
||||
}
|
||||
|
@ -333,7 +333,7 @@ void gpioSetup()
|
||||
LOG_INFO(TAG_GPIO, F(D_SERVICE_STARTED));
|
||||
}
|
||||
|
||||
void gpioLoop(void)
|
||||
IRAM_ATTR void gpioLoop(void)
|
||||
{
|
||||
// Should be called every 4-5ms or faster, for the default debouncing time of ~20ms.
|
||||
for(uint8_t i = 0; i < gpioUsedInputCount; i++) {
|
||||
@ -349,7 +349,7 @@ void gpioSetup(void)
|
||||
gpioSavePinConfig(2, 13, HASP_GPIO_LED, 0, -1);
|
||||
gpioSavePinConfig(3, 14, HASP_GPIO_DAC, 0, -1);
|
||||
}
|
||||
void gpioLoop(void)
|
||||
IRAM_ATTR void gpioLoop(void)
|
||||
{}
|
||||
#endif // ARDUINO
|
||||
|
||||
|
@ -22,7 +22,7 @@ struct hasp_gpio_config_t
|
||||
};
|
||||
|
||||
void gpioSetup(void);
|
||||
void gpioLoop(void);
|
||||
IRAM_ATTR void gpioLoop(void);
|
||||
void gpioEvery5Seconds(void);
|
||||
|
||||
// void gpio_set_group_onoff(uint8_t groupid, bool ison);
|
||||
|
@ -55,7 +55,7 @@ void ethernetSetup()
|
||||
ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE, ETH_CLKMODE);
|
||||
}
|
||||
|
||||
void ethernetLoop(void)
|
||||
IRAM_ATTR void ethernetLoop(void)
|
||||
{}
|
||||
|
||||
bool ethernetEvery5Seconds()
|
||||
|
@ -9,7 +9,7 @@
|
||||
static bool eth_connected = false;
|
||||
|
||||
void ethernetSetup();
|
||||
void ethernetLoop(void);
|
||||
IRAM_ATTR void ethernetLoop(void);
|
||||
|
||||
bool ethernetEverySecond();
|
||||
bool ethernetEvery5Seconds();
|
||||
|
@ -58,7 +58,7 @@ void networkSetup()
|
||||
#endif
|
||||
}
|
||||
|
||||
void networkLoop(void)
|
||||
IRAM_ATTR void networkLoop(void)
|
||||
{
|
||||
#if HASP_USE_ETHERNET > 0
|
||||
ethernetLoop();
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
/* ===== Default Event Processors ===== */
|
||||
void networkSetup();
|
||||
void networkLoop(void);
|
||||
IRAM_ATTR void networkLoop(void);
|
||||
bool networkEvery5Seconds(void);
|
||||
// bool networkEverySecond(void);
|
||||
void networkStart(void);
|
||||
|
@ -2219,7 +2219,7 @@ void httpReconnect()
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
void httpLoop(void)
|
||||
IRAM_ATTR void httpLoop(void)
|
||||
{
|
||||
if(http_config.enable) webServer.handleClient();
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ struct hasp_http_config_t
|
||||
};
|
||||
|
||||
void httpSetup();
|
||||
void httpLoop(void);
|
||||
IRAM_ATTR void httpLoop(void);
|
||||
void httpEvery5Seconds(void);
|
||||
// void httpReconnect(void);
|
||||
void httpStart(void);
|
||||
|
@ -78,7 +78,7 @@ void mdnsStart()
|
||||
}
|
||||
}
|
||||
|
||||
void mdnsLoop(void)
|
||||
IRAM_ATTR void mdnsLoop(void)
|
||||
{
|
||||
#if defined(ARDUINO_ARCH_ESP8266)
|
||||
if(mdns_config.enable) {
|
||||
|
@ -13,7 +13,7 @@ struct hasp_mdns_config_t
|
||||
|
||||
/* ===== Default Event Processors ===== */
|
||||
void mdnsSetup();
|
||||
void mdnsLoop(void);
|
||||
IRAM_ATTR void mdnsLoop(void);
|
||||
void mdnsStart(void);
|
||||
void mdnsStop(void);
|
||||
|
||||
|
@ -200,7 +200,7 @@ void otaSetup(void)
|
||||
}
|
||||
}
|
||||
|
||||
void otaLoop(void)
|
||||
IRAM_ATTR void otaLoop(void)
|
||||
{
|
||||
ArduinoOTA.handle();
|
||||
}
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
/* ===== Default Event Processors ===== */
|
||||
void otaSetup(void);
|
||||
void otaLoop(void);
|
||||
IRAM_ATTR void otaLoop(void);
|
||||
void otaEverySecond(void);
|
||||
|
||||
/* ===== Special Event Processors ===== */
|
||||
|
@ -258,7 +258,7 @@ void telnetSetup()
|
||||
}
|
||||
}
|
||||
|
||||
void telnetLoop()
|
||||
IRAM_ATTR void telnetLoop()
|
||||
{
|
||||
// Basic telnet client handling code from: https://gist.github.com/tablatronix/4793677ca748f5f584c95ec4a2b10303
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
/* ===== Default Event Processors ===== */
|
||||
void telnetSetup();
|
||||
void telnetLoop(void);
|
||||
IRAM_ATTR void telnetLoop(void);
|
||||
void telnetEvery5Seconds(void);
|
||||
void telnetEverySecond(void);
|
||||
void telnetStart(void);
|
||||
|
Loading…
x
Reference in New Issue
Block a user