mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-24 11:46:34 +00:00
Improve value_str reliability
This commit is contained in:
parent
bc5b5bdbb2
commit
647d1bc1f2
@ -183,7 +183,7 @@ static bool attribute_update_lv_property(lv_obj_t * obj, const char * attr_p, ui
|
||||
#endif
|
||||
|
||||
// OK - this function is missing in lvgl
|
||||
static uint8_t lv_roller_get_visible_row_count(lv_obj_t * roller)
|
||||
static uint8_t my_roller_get_visible_row_count(lv_obj_t * roller)
|
||||
{
|
||||
const lv_font_t * font = lv_obj_get_style_text_font(roller, LV_ROLLER_PART_BG);
|
||||
lv_style_int_t line_space = lv_obj_get_style_text_line_space(roller, LV_ROLLER_PART_BG);
|
||||
@ -196,55 +196,55 @@ static uint8_t lv_roller_get_visible_row_count(lv_obj_t * roller)
|
||||
}
|
||||
|
||||
// OK - this function is missing in lvgl
|
||||
static inline int16_t lv_arc_get_rotation(lv_obj_t * arc)
|
||||
static inline int16_t my_arc_get_rotation(lv_obj_t * arc)
|
||||
{
|
||||
lv_arc_ext_t * ext = (lv_arc_ext_t *)lv_obj_get_ext_attr(arc);
|
||||
return ext->rotation_angle;
|
||||
}
|
||||
|
||||
// OK - this function is missing in lvgl
|
||||
static inline int16_t lv_arc_get_bg_start_angle(lv_obj_t * arc)
|
||||
static inline int16_t my_arc_get_bg_start_angle(lv_obj_t * arc)
|
||||
{
|
||||
lv_arc_ext_t * ext = (lv_arc_ext_t *)lv_obj_get_ext_attr(arc);
|
||||
return ext->bg_angle_start;
|
||||
}
|
||||
|
||||
// OK - this function is missing in lvgl
|
||||
static inline int16_t lv_arc_get_bg_end_angle(lv_obj_t * arc)
|
||||
static inline int16_t my_arc_get_bg_end_angle(lv_obj_t * arc)
|
||||
{
|
||||
lv_arc_ext_t * ext = (lv_arc_ext_t *)lv_obj_get_ext_attr(arc);
|
||||
return ext->bg_angle_end;
|
||||
}
|
||||
|
||||
// OK - this function is missing in lvgl
|
||||
static inline int16_t lv_arc_get_start_angle(lv_obj_t * arc)
|
||||
static inline int16_t my_arc_get_start_angle(lv_obj_t * arc)
|
||||
{
|
||||
lv_arc_ext_t * ext = (lv_arc_ext_t *)lv_obj_get_ext_attr(arc);
|
||||
return ext->arc_angle_start;
|
||||
}
|
||||
|
||||
// OK - this function is missing in lvgl
|
||||
static inline int16_t lv_arc_get_end_angle(lv_obj_t * arc)
|
||||
static inline int16_t my_arc_get_end_angle(lv_obj_t * arc)
|
||||
{
|
||||
lv_arc_ext_t * ext = (lv_arc_ext_t *)lv_obj_get_ext_attr(arc);
|
||||
return ext->arc_angle_end;
|
||||
}
|
||||
|
||||
// OK - this function is missing in lvgl
|
||||
static inline int16_t lv_chart_get_min_value(lv_obj_t * chart)
|
||||
static inline int16_t my_chart_get_min_value(lv_obj_t * chart)
|
||||
{
|
||||
lv_chart_ext_t * ext = (lv_chart_ext_t *)lv_obj_get_ext_attr(chart);
|
||||
return ext->ymin[LV_CHART_AXIS_PRIMARY_Y];
|
||||
}
|
||||
|
||||
// OK - this function is missing in lvgl
|
||||
static inline int16_t lv_chart_get_max_value(lv_obj_t * chart)
|
||||
static inline int16_t my_chart_get_max_value(lv_obj_t * chart)
|
||||
{
|
||||
lv_chart_ext_t * ext = (lv_chart_ext_t *)lv_obj_get_ext_attr(chart);
|
||||
return ext->ymax[LV_CHART_AXIS_PRIMARY_Y];
|
||||
}
|
||||
|
||||
lv_chart_series_t * lv_chart_get_series(lv_obj_t * chart, uint8_t ser_num)
|
||||
lv_chart_series_t * my_chart_get_series(lv_obj_t * chart, uint8_t ser_num)
|
||||
{
|
||||
lv_chart_ext_t * ext = (lv_chart_ext_t *)lv_obj_get_ext_attr(chart);
|
||||
lv_chart_series_t * ser = (lv_chart_series_t *)_lv_ll_get_tail(&ext->series_ll);
|
||||
@ -255,6 +255,79 @@ lv_chart_series_t * lv_chart_get_series(lv_obj_t * chart, uint8_t ser_num)
|
||||
return ser;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a new value_str for an object. Memory will be allocated to store the text by the object.
|
||||
* @param obj pointer to a object
|
||||
* @param text '\0' terminated character string. NULL to refresh with the current text.
|
||||
*/
|
||||
void my_obj_set_value_str_txt(lv_obj_t * obj, uint8_t part, lv_state_t state, const char * text)
|
||||
{
|
||||
Log.verbose(TAG_ATTR, "%s %d", __FILE__, __LINE__);
|
||||
|
||||
const void * value_str_p = lv_obj_get_style_value_str(obj, part);
|
||||
lv_obj_invalidate(obj);
|
||||
|
||||
if(text == NULL || text[0] == 0) {
|
||||
Log.verbose(TAG_ATTR, "%s %d", __FILE__, __LINE__);
|
||||
lv_obj_set_style_local_value_str(obj, part, state, NULL);
|
||||
lv_mem_free(value_str_p);
|
||||
Log.verbose(TAG_ATTR, "%s %d", __FILE__, __LINE__);
|
||||
return;
|
||||
}
|
||||
|
||||
LV_ASSERT_STR(text);
|
||||
|
||||
if(value_str_p == NULL) {
|
||||
/*Get the size of the text*/
|
||||
size_t len = strlen(text) + 1;
|
||||
|
||||
/*Allocate space for the new text*/
|
||||
Log.verbose(TAG_ATTR, "%s %d", __FILE__, __LINE__);
|
||||
value_str_p = (char *)lv_mem_alloc(len);
|
||||
LV_ASSERT_MEM(value_str_p);
|
||||
if(value_str_p == NULL) return;
|
||||
|
||||
Log.verbose(TAG_ATTR, "%s %d", __FILE__, __LINE__);
|
||||
strncpy((char *)value_str_p, text, len);
|
||||
lv_obj_set_style_local_value_str(obj, part, state, (char *)value_str_p);
|
||||
Log.verbose(TAG_ATTR, "%s %d", __FILE__, __LINE__);
|
||||
return;
|
||||
}
|
||||
|
||||
// lv_obj_set_style_local_value_str(obj, part, state, str_p);
|
||||
|
||||
if(value_str_p == text) {
|
||||
/*If set its own text then reallocate it (maybe its size changed)*/
|
||||
Log.warning(TAG_ATTR, "%s %d", __FILE__, __LINE__);
|
||||
return; // don't touch the data
|
||||
|
||||
// value_str_p = lv_mem_realloc(value_str_p, strlen(text) + 1);
|
||||
|
||||
// LV_ASSERT_MEM(value_str_p);
|
||||
// if(value_str_p == NULL) return;
|
||||
} else {
|
||||
/*Free the old text*/
|
||||
if(value_str_p != NULL) {
|
||||
Log.verbose(TAG_ATTR, "%s %d", __FILE__, __LINE__);
|
||||
lv_mem_free(value_str_p);
|
||||
value_str_p = NULL;
|
||||
Log.verbose(TAG_ATTR, "%s %d", __FILE__, __LINE__);
|
||||
}
|
||||
|
||||
/*Get the size of the text*/
|
||||
size_t len = strlen(text) + 1;
|
||||
|
||||
/*Allocate space for the new text*/
|
||||
value_str_p = lv_mem_alloc(len);
|
||||
LV_ASSERT_MEM(value_str_p);
|
||||
if(value_str_p != NULL) strcpy((char *)value_str_p, text);
|
||||
lv_obj_set_style_local_value_str(obj, part, state, (char *)value_str_p);
|
||||
}
|
||||
|
||||
// lv_label_refr_text(label);
|
||||
Log.verbose(TAG_ATTR, "%s %d", __FILE__, __LINE__);
|
||||
}
|
||||
|
||||
void btnmatrix_clear_map(lv_obj_t * obj)
|
||||
{
|
||||
lv_btnmatrix_ext_t * ext = (lv_btnmatrix_ext_t *)lv_obj_get_ext_attr(obj);
|
||||
@ -900,22 +973,24 @@ static void hasp_local_style_attr(lv_obj_t * obj, const char * attr_p, uint16_t
|
||||
case ATTR_VALUE_STR: {
|
||||
if(update) {
|
||||
|
||||
size_t len = strlen(payload);
|
||||
if(len > 0) {
|
||||
// Free previous string
|
||||
const char * str = lv_obj_get_style_value_str(obj, part);
|
||||
my_obj_set_value_str_txt(obj, part, state, payload);
|
||||
|
||||
// Create new string
|
||||
len++;
|
||||
char * str_p = (char *)lv_mem_alloc(len);
|
||||
memset(str_p, 0, len);
|
||||
memccpy(str_p, payload, 0, len);
|
||||
lv_obj_set_style_local_value_str(obj, part, state, str_p);
|
||||
// size_t len = strlen(payload);
|
||||
// if(len > 0) {
|
||||
// // Free previous string
|
||||
// const char * str = lv_obj_get_style_value_str(obj, part);
|
||||
|
||||
if(str != NULL) {
|
||||
// lv_mem_free(str); // TODO : BIG Memory Leak ! / crashes
|
||||
}
|
||||
}
|
||||
// // Create new string
|
||||
// len++;
|
||||
// char * str_p = (char *)lv_mem_alloc(len);
|
||||
// memset(str_p, 0, len);
|
||||
// memccpy(str_p, payload, 0, len);
|
||||
// lv_obj_set_style_local_value_str(obj, part, state, str_p);
|
||||
|
||||
// if(str != NULL) {
|
||||
// // lv_mem_free(str); // TODO : BIG Memory Leak ! / crashes
|
||||
// }
|
||||
// }
|
||||
} else {
|
||||
hasp_out_str(obj, attr, lv_obj_get_style_value_str(obj, part));
|
||||
}
|
||||
@ -976,7 +1051,7 @@ static void hasp_process_arc_attribute(lv_obj_t * obj, const char * attr_p, uint
|
||||
return (update) ? lv_arc_set_type(obj, val % 3) : hasp_out_int(obj, attr, lv_arc_get_type(obj));
|
||||
|
||||
case ATTR_ROTATION:
|
||||
return (update) ? lv_arc_set_rotation(obj, val) : hasp_out_int(obj, attr, lv_arc_get_rotation(obj));
|
||||
return (update) ? lv_arc_set_rotation(obj, val) : hasp_out_int(obj, attr, my_arc_get_rotation(obj));
|
||||
|
||||
case ATTR_ADJUSTABLE:
|
||||
if(update) {
|
||||
@ -990,16 +1065,16 @@ static void hasp_process_arc_attribute(lv_obj_t * obj, const char * attr_p, uint
|
||||
|
||||
case ATTR_START_ANGLE:
|
||||
return (update) ? lv_arc_set_bg_start_angle(obj, val)
|
||||
: hasp_out_int(obj, attr, lv_arc_get_bg_start_angle(obj));
|
||||
: hasp_out_int(obj, attr, my_arc_get_bg_start_angle(obj));
|
||||
|
||||
case ATTR_END_ANGLE:
|
||||
return (update) ? lv_arc_set_bg_end_angle(obj, val) : hasp_out_int(obj, attr, lv_arc_get_bg_end_angle(obj));
|
||||
return (update) ? lv_arc_set_bg_end_angle(obj, val) : hasp_out_int(obj, attr, my_arc_get_bg_end_angle(obj));
|
||||
|
||||
case ATTR_START_ANGLE1:
|
||||
return (update) ? lv_arc_set_start_angle(obj, val) : hasp_out_int(obj, attr, lv_arc_get_start_angle(obj));
|
||||
return (update) ? lv_arc_set_start_angle(obj, val) : hasp_out_int(obj, attr, my_arc_get_start_angle(obj));
|
||||
|
||||
case ATTR_END_ANGLE1:
|
||||
return (update) ? lv_arc_set_end_angle(obj, val) : hasp_out_int(obj, attr, lv_arc_get_end_angle(obj));
|
||||
return (update) ? lv_arc_set_end_angle(obj, val) : hasp_out_int(obj, attr, my_arc_get_end_angle(obj));
|
||||
}
|
||||
|
||||
Log.warning(TAG_ATTR, F("Unknown property %s"), attr_p);
|
||||
@ -1356,8 +1431,8 @@ static void hasp_process_obj_attribute_range(lv_obj_t * obj, const char * attr,
|
||||
}
|
||||
|
||||
if(check_obj_type(obj, LV_HASP_CHART)) {
|
||||
int16_t min = lv_chart_get_min_value(obj);
|
||||
int16_t max = lv_chart_get_max_value(obj);
|
||||
int16_t min = my_chart_get_min_value(obj);
|
||||
int16_t max = my_chart_get_max_value(obj);
|
||||
if(update && (set_min ? val : min) >= (set_max ? val : max)) return; // prevent setting min>=max
|
||||
return update ? lv_chart_set_range(obj, set_min ? val : min, set_max ? val : max)
|
||||
: hasp_out_int(obj, attr, set_min ? min : max);
|
||||
@ -1427,6 +1502,18 @@ void hasp_process_obj_attribute(lv_obj_t * obj, const char * attr_p, const char
|
||||
case ATTR_ID:
|
||||
return update ? (void)(obj->user_data.id = (uint8_t)val) : hasp_out_int(obj, attr, obj->user_data.id);
|
||||
|
||||
case ATTR_GROUPID:
|
||||
return update ? (void)(obj->user_data.groupid = (uint8_t)val)
|
||||
: hasp_out_int(obj, attr, obj->user_data.groupid);
|
||||
|
||||
case ATTR_OBJID:
|
||||
if(update) {
|
||||
Log.warning(TAG_ATTR, F("%s is read-only"), attr_p);
|
||||
} else {
|
||||
hasp_out_int(obj, attr, obj->user_data.objid);
|
||||
}
|
||||
return;
|
||||
|
||||
case ATTR_VIS:
|
||||
return update ? lv_obj_set_hidden(obj, !is_true(payload))
|
||||
: hasp_out_int(obj, attr, !lv_obj_get_hidden(obj));
|
||||
@ -1466,7 +1553,7 @@ void hasp_process_obj_attribute(lv_obj_t * obj, const char * attr_p, const char
|
||||
case ATTR_ROWS:
|
||||
if(check_obj_type(obj, LV_HASP_ROLLER)) {
|
||||
return update ? lv_roller_set_visible_row_count(obj, (uint8_t)val)
|
||||
: hasp_out_int(obj, attr, lv_roller_get_visible_row_count(obj));
|
||||
: hasp_out_int(obj, attr, my_roller_get_visible_row_count(obj));
|
||||
}
|
||||
|
||||
if(check_obj_type(obj, LV_HASP_TABLE)) {
|
||||
@ -1581,8 +1668,9 @@ void hasp_process_obj_attribute(lv_obj_t * obj, const char * attr_p, const char
|
||||
return hasp_process_btnmatrix_attribute(obj, attr_p, attr_hash, payload, update);
|
||||
}
|
||||
return; // don't try local attributes anymore
|
||||
// default:
|
||||
// hasp_local_style_attr(obj, attr, payload, update);
|
||||
|
||||
// default:
|
||||
// hasp_local_style_attr(obj, attr, payload, update);
|
||||
}
|
||||
|
||||
hasp_local_style_attr(obj, attr, attr_hash, payload, update);
|
||||
|
@ -2,50 +2,51 @@
|
||||
For full license information read the LICENSE file in the project folder */
|
||||
|
||||
#ifndef HASP_ATTR_SET_H
|
||||
#define HASP_ATTR_SET_H
|
||||
#define HASP_ATTR_SET_H
|
||||
|
||||
#include "lvgl.h"
|
||||
#if LVGL_VERSION_MAJOR != 7
|
||||
#include "../lv_components.h"
|
||||
#endif
|
||||
#include "lvgl.h"
|
||||
#if LVGL_VERSION_MAJOR != 7
|
||||
#include "../lv_components.h"
|
||||
#endif
|
||||
|
||||
#include "hasp_conf.h"
|
||||
#include "hasp.h"
|
||||
#include "hasp_object.h"
|
||||
#include "hasp_conf.h"
|
||||
#include "hasp.h"
|
||||
#include "hasp_object.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// test
|
||||
lv_chart_series_t * lv_chart_get_series(lv_obj_t * chart, uint8_t ser_num);
|
||||
lv_chart_series_t * my_chart_get_series(lv_obj_t * chart, uint8_t ser_num);
|
||||
void my_obj_set_value_str_txt(lv_obj_t * obj, uint8_t part, lv_state_t state, const char * text);
|
||||
|
||||
void btnmatrix_clear_map(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);
|
||||
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// use shorter name for readability
|
||||
#define hasp_out_int hasp_send_obj_attribute_int
|
||||
#define hasp_out_str hasp_send_obj_attribute_str
|
||||
#define hasp_out_color hasp_send_obj_attribute_color
|
||||
// use shorter name for readability
|
||||
#define hasp_out_int hasp_send_obj_attribute_int
|
||||
#define hasp_out_str hasp_send_obj_attribute_str
|
||||
#define hasp_out_color hasp_send_obj_attribute_color
|
||||
|
||||
#define _HASP_ATTRIBUTE(prop_name, func_name, value_type) \
|
||||
static inline void attribute_##func_name(lv_obj_t * obj, uint8_t part, lv_state_t state, bool update, \
|
||||
const char * attr, value_type val) \
|
||||
{ \
|
||||
if(update) { \
|
||||
return lv_obj_set_style_local_##func_name(obj, part, state, (value_type)val); \
|
||||
} else { \
|
||||
value_type temp = lv_obj_get_style_##func_name(obj, part); \
|
||||
/*lv_obj_get_style_##func_name(obj, part, state, &temp);*/ \
|
||||
return hasp_send_obj_attribute_int(obj, attr, temp); \
|
||||
} \
|
||||
}
|
||||
#define _HASP_ATTRIBUTE(prop_name, func_name, value_type) \
|
||||
static inline void attribute_##func_name(lv_obj_t * obj, uint8_t part, lv_state_t state, bool update, \
|
||||
const char * attr, value_type val) \
|
||||
{ \
|
||||
if(update) { \
|
||||
return lv_obj_set_style_local_##func_name(obj, part, state, (value_type)val); \
|
||||
} else { \
|
||||
value_type temp = lv_obj_get_style_##func_name(obj, part); \
|
||||
/*lv_obj_get_style_##func_name(obj, part, state, &temp);*/ \
|
||||
return hasp_send_obj_attribute_int(obj, attr, temp); \
|
||||
} \
|
||||
}
|
||||
|
||||
_HASP_ATTRIBUTE(RADIUS, radius, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(CLIP_CORNER, clip_corner, bool)
|
||||
@ -57,10 +58,10 @@ _HASP_ATTRIBUTE(PAD_TOP, pad_top, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(PAD_BOTTOM, pad_bottom, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(PAD_LEFT, pad_left, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(PAD_RIGHT, pad_right, lv_style_int_t)
|
||||
#if LVGL_VERSION_MAJOR == 7
|
||||
#if LVGL_VERSION_MAJOR == 7
|
||||
_HASP_ATTRIBUTE(PAD_INNER, pad_inner, lv_style_int_t)
|
||||
#endif
|
||||
#if LV_USE_BLEND_MODES
|
||||
#endif
|
||||
#if LV_USE_BLEND_MODES
|
||||
_HASP_ATTRIBUTE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t)
|
||||
_HASP_ATTRIBUTE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t)
|
||||
_HASP_ATTRIBUTE(OUTLINE_BLEND_MODE, outline_blend_mode, lv_blend_mode_t)
|
||||
@ -70,7 +71,7 @@ _HASP_ATTRIBUTE(VALUE_BLEND_MODE, value_blend_mode, lv_blend_mode_t)
|
||||
_HASP_ATTRIBUTE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t)
|
||||
_HASP_ATTRIBUTE(LINE_BLEND_MODE, line_blend_mode, lv_blend_mode_t)
|
||||
_HASP_ATTRIBUTE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t)
|
||||
#endif
|
||||
#endif
|
||||
_HASP_ATTRIBUTE(BG_MAIN_STOP, bg_main_stop, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(BG_GRAD_STOP, bg_grad_stop, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(BG_GRAD_DIR, bg_grad_dir, lv_grad_dir_t)
|
||||
@ -86,14 +87,14 @@ _HASP_ATTRIBUTE(OUTLINE_WIDTH, outline_width, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(OUTLINE_PAD, outline_pad, lv_style_int_t)
|
||||
//_HASP_ATTRIBUTE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
|
||||
_HASP_ATTRIBUTE(OUTLINE_OPA, outline_opa, lv_opa_t)
|
||||
#if LV_USE_SHADOW
|
||||
#if LV_USE_SHADOW
|
||||
_HASP_ATTRIBUTE(SHADOW_WIDTH, shadow_width, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(SHADOW_SPREAD, shadow_spread, lv_style_int_t)
|
||||
//_HASP_ATTRIBUTE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
|
||||
_HASP_ATTRIBUTE(SHADOW_OPA, shadow_opa, lv_opa_t)
|
||||
#endif
|
||||
#endif
|
||||
_HASP_ATTRIBUTE(PATTERN_REPEAT, pattern_repeat, bool)
|
||||
//_HASP_ATTRIBUTE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
|
||||
_HASP_ATTRIBUTE(PATTERN_OPA, pattern_opa, lv_opa_t)
|
||||
@ -137,161 +138,164 @@ _HASP_ATTRIBUTE(SCALE_WIDTH, scale_width, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(SCALE_BORDER_WIDTH, scale_border_width, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(SCALE_END_BORDER_WIDTH, scale_end_border_width, lv_style_int_t)
|
||||
_HASP_ATTRIBUTE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t)
|
||||
//_HASP_ATTRIBUTE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
|
||||
//_HASP_ATTRIBUTE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
|
||||
//_HASP_ATTRIBUTE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
|
||||
//_HASP_ATTRIBUTE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
|
||||
|
||||
/* attribute hashes */
|
||||
/* Object Part Attributes */
|
||||
#define ATTR_SIZE 16417
|
||||
#define ATTR_RADIUS 20786
|
||||
#define ATTR_CLIP_CORNER 9188
|
||||
#define ATTR_OPA_SCALE 64875
|
||||
#define ATTR_TRANSFORM_HEIGHT 55994
|
||||
#define ATTR_TRANSFORM_WIDTH 48627
|
||||
/* attribute hashes */
|
||||
/* Object Part Attributes */
|
||||
#define ATTR_SIZE 16417
|
||||
#define ATTR_RADIUS 20786
|
||||
#define ATTR_CLIP_CORNER 9188
|
||||
#define ATTR_OPA_SCALE 64875
|
||||
#define ATTR_TRANSFORM_HEIGHT 55994
|
||||
#define ATTR_TRANSFORM_WIDTH 48627
|
||||
|
||||
/* Background Attributes */
|
||||
#define ATTR_BG_OPA 48966
|
||||
#define ATTR_BG_COLOR 64969
|
||||
#define ATTR_BG_GRAD_DIR 41782
|
||||
#define ATTR_BG_GRAD_STOP 4025
|
||||
#define ATTR_BG_MAIN_STOP 63118
|
||||
#define ATTR_BG_BLEND_MODE 31147
|
||||
#define ATTR_BG_GRAD_COLOR 44140
|
||||
/* Background Attributes */
|
||||
#define ATTR_BG_OPA 48966
|
||||
#define ATTR_BG_COLOR 64969
|
||||
#define ATTR_BG_GRAD_DIR 41782
|
||||
#define ATTR_BG_GRAD_STOP 4025
|
||||
#define ATTR_BG_MAIN_STOP 63118
|
||||
#define ATTR_BG_BLEND_MODE 31147
|
||||
#define ATTR_BG_GRAD_COLOR 44140
|
||||
|
||||
/* Padding Attributes */
|
||||
#define ATTR_PAD_TOP 59081
|
||||
#define ATTR_PAD_LEFT 43123
|
||||
#define ATTR_PAD_INNER 9930
|
||||
#define ATTR_PAD_RIGHT 65104
|
||||
#define ATTR_PAD_BOTTOM 3767
|
||||
/* Padding Attributes */
|
||||
#define ATTR_PAD_TOP 59081
|
||||
#define ATTR_PAD_LEFT 43123
|
||||
#define ATTR_PAD_INNER 9930
|
||||
#define ATTR_PAD_RIGHT 65104
|
||||
#define ATTR_PAD_BOTTOM 3767
|
||||
|
||||
/* Text Attributes */
|
||||
#define ATTR_TEXT_OPA 37166
|
||||
#define ATTR_TEXT_FONT 22465
|
||||
#define ATTR_TEXT_COLOR 23473
|
||||
#define ATTR_TEXT_DECOR 1971
|
||||
#define ATTR_TEXT_LETTER_SPACE 62079
|
||||
#define ATTR_TEXT_SEL_COLOR 32076
|
||||
#define ATTR_TEXT_LINE_SPACE 54829
|
||||
#define ATTR_TEXT_BLEND_MODE 32195
|
||||
/* Text Attributes */
|
||||
#define ATTR_TEXT_OPA 37166
|
||||
#define ATTR_TEXT_FONT 22465
|
||||
#define ATTR_TEXT_COLOR 23473
|
||||
#define ATTR_TEXT_DECOR 1971
|
||||
#define ATTR_TEXT_LETTER_SPACE 62079
|
||||
#define ATTR_TEXT_SEL_COLOR 32076
|
||||
#define ATTR_TEXT_LINE_SPACE 54829
|
||||
#define ATTR_TEXT_BLEND_MODE 32195
|
||||
|
||||
/* Border Attributes */
|
||||
#define ATTR_BORDER_OPA 2061
|
||||
#define ATTR_BORDER_SIDE 53962
|
||||
#define ATTR_BORDER_POST 49491
|
||||
#define ATTR_BORDER_BLEND_MODE 23844
|
||||
#define ATTR_BORDER_WIDTH 24531
|
||||
#define ATTR_BORDER_COLOR 21264
|
||||
/* Border Attributes */
|
||||
#define ATTR_BORDER_OPA 2061
|
||||
#define ATTR_BORDER_SIDE 53962
|
||||
#define ATTR_BORDER_POST 49491
|
||||
#define ATTR_BORDER_BLEND_MODE 23844
|
||||
#define ATTR_BORDER_WIDTH 24531
|
||||
#define ATTR_BORDER_COLOR 21264
|
||||
|
||||
/* Outline Attributes */
|
||||
#define ATTR_OUTLINE_OPA 23011
|
||||
#define ATTR_OUTLINE_PAD 26038
|
||||
#define ATTR_OUTLINE_COLOR 6630
|
||||
#define ATTR_OUTLINE_BLEND_MODE 25038
|
||||
#define ATTR_OUTLINE_WIDTH 9897
|
||||
/* Outline Attributes */
|
||||
#define ATTR_OUTLINE_OPA 23011
|
||||
#define ATTR_OUTLINE_PAD 26038
|
||||
#define ATTR_OUTLINE_COLOR 6630
|
||||
#define ATTR_OUTLINE_BLEND_MODE 25038
|
||||
#define ATTR_OUTLINE_WIDTH 9897
|
||||
|
||||
/* Shadow Attributes */
|
||||
#define ATTR_SHADOW_OPA 38401
|
||||
#define ATTR_SHADOW_WIDTH 13255
|
||||
#define ATTR_SHADOW_OFS_X 44278
|
||||
#define ATTR_SHADOW_OFS_Y 44279
|
||||
#define ATTR_SHADOW_SPREAD 21138
|
||||
#define ATTR_SHADOW_BLEND_MODE 64048
|
||||
#define ATTR_SHADOW_COLOR 9988
|
||||
/* Shadow Attributes */
|
||||
#define ATTR_SHADOW_OPA 38401
|
||||
#define ATTR_SHADOW_WIDTH 13255
|
||||
#define ATTR_SHADOW_OFS_X 44278
|
||||
#define ATTR_SHADOW_OFS_Y 44279
|
||||
#define ATTR_SHADOW_SPREAD 21138
|
||||
#define ATTR_SHADOW_BLEND_MODE 64048
|
||||
#define ATTR_SHADOW_COLOR 9988
|
||||
|
||||
/* Line Attributes */
|
||||
#define ATTR_LINE_OPA 24501
|
||||
#define ATTR_LINE_WIDTH 25467
|
||||
#define ATTR_LINE_COLOR 22200
|
||||
#define ATTR_LINE_DASH_WIDTH 32676
|
||||
#define ATTR_LINE_ROUNDED 15042
|
||||
#define ATTR_LINE_DASH_GAP 49332
|
||||
#define ATTR_LINE_BLEND_MODE 60284
|
||||
/* Line Attributes */
|
||||
#define ATTR_LINE_OPA 24501
|
||||
#define ATTR_LINE_WIDTH 25467
|
||||
#define ATTR_LINE_COLOR 22200
|
||||
#define ATTR_LINE_DASH_WIDTH 32676
|
||||
#define ATTR_LINE_ROUNDED 15042
|
||||
#define ATTR_LINE_DASH_GAP 49332
|
||||
#define ATTR_LINE_BLEND_MODE 60284
|
||||
|
||||
/* Value Attributes */
|
||||
#define ATTR_VALUE_OPA 50482
|
||||
#define ATTR_VALUE_STR 1091
|
||||
#define ATTR_VALUE_FONT 9405
|
||||
#define ATTR_VALUE_ALIGN 27895
|
||||
#define ATTR_VALUE_COLOR 52661
|
||||
#define ATTR_VALUE_OFS_X 21415
|
||||
#define ATTR_VALUE_OFS_Y 21416
|
||||
#define ATTR_VALUE_LINE_SPACE 26921
|
||||
#define ATTR_VALUE_BLEND_MODE 4287
|
||||
#define ATTR_VALUE_LETTER_SPACE 51067
|
||||
/* Value Attributes */
|
||||
#define ATTR_VALUE_OPA 50482
|
||||
#define ATTR_VALUE_STR 1091
|
||||
#define ATTR_VALUE_FONT 9405
|
||||
#define ATTR_VALUE_ALIGN 27895
|
||||
#define ATTR_VALUE_COLOR 52661
|
||||
#define ATTR_VALUE_OFS_X 21415
|
||||
#define ATTR_VALUE_OFS_Y 21416
|
||||
#define ATTR_VALUE_LINE_SPACE 26921
|
||||
#define ATTR_VALUE_BLEND_MODE 4287
|
||||
#define ATTR_VALUE_LETTER_SPACE 51067
|
||||
|
||||
/* Pattern attributes */
|
||||
#define ATTR_PATTERN_BLEND_MODE 43456
|
||||
#define ATTR_PATTERN_RECOLOR_OPA 35074
|
||||
#define ATTR_PATTERN_RECOLOR 7745
|
||||
#define ATTR_PATTERN_REPEAT 31338
|
||||
#define ATTR_PATTERN_OPA 43633
|
||||
#define ATTR_PATTERN_IMAGE 61292
|
||||
/* Pattern attributes */
|
||||
#define ATTR_PATTERN_BLEND_MODE 43456
|
||||
#define ATTR_PATTERN_RECOLOR_OPA 35074
|
||||
#define ATTR_PATTERN_RECOLOR 7745
|
||||
#define ATTR_PATTERN_REPEAT 31338
|
||||
#define ATTR_PATTERN_OPA 43633
|
||||
#define ATTR_PATTERN_IMAGE 61292
|
||||
|
||||
#define ATTR_TRANSITION_PROP_1 49343
|
||||
#define ATTR_TRANSITION_PROP_2 49344
|
||||
#define ATTR_TRANSITION_PROP_3 49345
|
||||
#define ATTR_TRANSITION_PROP_4 49346
|
||||
#define ATTR_TRANSITION_PROP_5 49347
|
||||
#define ATTR_TRANSITION_PROP_6 49348
|
||||
#define ATTR_TRANSITION_TIME 26263
|
||||
#define ATTR_TRANSITION_PATH 43343
|
||||
#define ATTR_TRANSITION_DELAY 64537
|
||||
#define ATTR_TRANSITION_PROP_1 49343
|
||||
#define ATTR_TRANSITION_PROP_2 49344
|
||||
#define ATTR_TRANSITION_PROP_3 49345
|
||||
#define ATTR_TRANSITION_PROP_4 49346
|
||||
#define ATTR_TRANSITION_PROP_5 49347
|
||||
#define ATTR_TRANSITION_PROP_6 49348
|
||||
#define ATTR_TRANSITION_TIME 26263
|
||||
#define ATTR_TRANSITION_PATH 43343
|
||||
#define ATTR_TRANSITION_DELAY 64537
|
||||
|
||||
#define ATTR_IMAGE_OPA 58140
|
||||
#define ATTR_IMAGE_RECOLOR 52204
|
||||
#define ATTR_IMAGE_BLEND_MODE 11349
|
||||
#define ATTR_IMAGE_RECOLOR_OPA 43949
|
||||
#define ATTR_IMAGE_OPA 58140
|
||||
#define ATTR_IMAGE_RECOLOR 52204
|
||||
#define ATTR_IMAGE_BLEND_MODE 11349
|
||||
#define ATTR_IMAGE_RECOLOR_OPA 43949
|
||||
|
||||
#define ATTR_SCALE_END_LINE_WIDTH 30324
|
||||
#define ATTR_SCALE_END_BORDER_WIDTH 34380
|
||||
#define ATTR_SCALE_BORDER_WIDTH 2440
|
||||
#define ATTR_SCALE_GRAD_COLOR 47239
|
||||
#define ATTR_SCALE_WIDTH 36017
|
||||
#define ATTR_SCALE_END_COLOR 44074
|
||||
#define ATTR_SCALE_END_LINE_WIDTH 30324
|
||||
#define ATTR_SCALE_END_BORDER_WIDTH 34380
|
||||
#define ATTR_SCALE_BORDER_WIDTH 2440
|
||||
#define ATTR_SCALE_GRAD_COLOR 47239
|
||||
#define ATTR_SCALE_WIDTH 36017
|
||||
#define ATTR_SCALE_END_COLOR 44074
|
||||
|
||||
/* Object Attributes */
|
||||
#define ATTR_X 120
|
||||
#define ATTR_Y 121
|
||||
#define ATTR_W 119
|
||||
#define ATTR_H 104
|
||||
#define ATTR_OPTIONS 29886
|
||||
#define ATTR_ENABLED 28193
|
||||
#define ATTR_OPACITY 10155
|
||||
#define ATTR_TOGGLE 38580
|
||||
#define ATTR_HIDDEN 11082
|
||||
#define ATTR_VIS 16320
|
||||
#define ATTR_MODE 45891
|
||||
// #define ATTR_RECT 11204
|
||||
#define ATTR_ROWS 52153
|
||||
#define ATTR_COLS 36307
|
||||
#define ATTR_MIN 46130
|
||||
#define ATTR_MAX 45636
|
||||
#define ATTR_VAL 15809
|
||||
#define ATTR_TXT 9328
|
||||
#define ATTR_SRC 4964
|
||||
#define ATTR_ID 6715
|
||||
#define ATTR_DELETE 50027
|
||||
/* Object Attributes */
|
||||
#define ATTR_X 120
|
||||
#define ATTR_Y 121
|
||||
#define ATTR_W 119
|
||||
#define ATTR_H 104
|
||||
#define ATTR_OPTIONS 29886
|
||||
#define ATTR_ENABLED 28193
|
||||
#define ATTR_OPACITY 10155
|
||||
#define ATTR_TOGGLE 38580
|
||||
#define ATTR_HIDDEN 11082
|
||||
#define ATTR_VIS 16320
|
||||
#define ATTR_MODE 45891
|
||||
// #define ATTR_RECT 11204
|
||||
#define ATTR_ROWS 52153
|
||||
#define ATTR_COLS 36307
|
||||
#define ATTR_MIN 46130
|
||||
#define ATTR_MAX 45636
|
||||
#define ATTR_VAL 15809
|
||||
#define ATTR_TXT 9328
|
||||
#define ATTR_SRC 4964
|
||||
#define ATTR_ID 6715
|
||||
#define ATTR_DELETE 50027
|
||||
|
||||
// Gauge
|
||||
#define ATTR_CRITICAL_VALUE 39281
|
||||
#define ATTR_ANGLE 2387
|
||||
#define ATTR_LABEL_COUNT 20356
|
||||
#define ATTR_LINE_COUNT 57860
|
||||
#define ATTR_FORMAT 38871
|
||||
// Gauge
|
||||
#define ATTR_CRITICAL_VALUE 39281
|
||||
#define ATTR_ANGLE 2387
|
||||
#define ATTR_LABEL_COUNT 20356
|
||||
#define ATTR_LINE_COUNT 57860
|
||||
#define ATTR_FORMAT 38871
|
||||
|
||||
// Arc
|
||||
#define ATTR_TYPE 1658
|
||||
#define ATTR_ROTATION 44830
|
||||
#define ATTR_ADJUSTABLE 19145
|
||||
#define ATTR_START_ANGLE 44310
|
||||
#define ATTR_END_ANGLE 41103
|
||||
#define ATTR_START_ANGLE1 39067
|
||||
#define ATTR_END_ANGLE1 33634
|
||||
// Arc
|
||||
#define ATTR_TYPE 1658
|
||||
#define ATTR_ROTATION 44830
|
||||
#define ATTR_ADJUSTABLE 19145
|
||||
#define ATTR_START_ANGLE 44310
|
||||
#define ATTR_END_ANGLE 41103
|
||||
#define ATTR_START_ANGLE1 39067
|
||||
#define ATTR_END_ANGLE1 33634
|
||||
|
||||
// Buttonmatrix
|
||||
#define ATTR_MAP 45628
|
||||
#endif
|
||||
// Buttonmatrix
|
||||
#define ATTR_MAP 45628
|
||||
|
||||
/* hasp user data */
|
||||
#define ATTR_GROUPID 48986
|
||||
#define ATTR_OBJID 41010
|
||||
|
||||
/* Named COLOR attributes */
|
||||
#define ATTR_RED 177
|
||||
@ -336,3 +340,5 @@ _HASP_ATTRIBUTE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t)
|
||||
#define ATTR_YELLOW 10484
|
||||
#define ATTR_FUCHSIA 5463
|
||||
#define ATTR_MAGENTA 49385
|
||||
|
||||
#endif
|
||||
|
@ -354,6 +354,9 @@ static void btnmap_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
if(event == LV_EVENT_VALUE_CHANGED) {
|
||||
hasp_update_sleep_state(); // wakeup?
|
||||
hasp_send_obj_attribute_val(obj, lv_btnmatrix_get_active_btn(obj));
|
||||
} else if(event == LV_EVENT_DELETE) {
|
||||
Log.verbose(TAG_HASP, F("Object deleted Event %d occured"), event);
|
||||
hasp_object_delete(obj);
|
||||
}
|
||||
}
|
||||
|
||||
@ -383,6 +386,9 @@ void IRAM_ATTR toggle_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
if(event == LV_EVENT_VALUE_CHANGED) {
|
||||
hasp_update_sleep_state(); // wakeup?
|
||||
hasp_send_obj_attribute_val(obj, lv_checkbox_is_checked(obj));
|
||||
} else if(event == LV_EVENT_DELETE) {
|
||||
Log.verbose(TAG_HASP, F("Object deleted Event %d occured"), event);
|
||||
hasp_object_delete(obj);
|
||||
}
|
||||
}
|
||||
|
||||
@ -396,6 +402,9 @@ static void switch_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
if(event == LV_EVENT_VALUE_CHANGED) {
|
||||
hasp_update_sleep_state(); // wakeup?
|
||||
hasp_send_obj_attribute_val(obj, lv_switch_get_state(obj));
|
||||
} else if(event == LV_EVENT_DELETE) {
|
||||
Log.verbose(TAG_HASP, F("Object deleted Event %d occured"), event);
|
||||
hasp_object_delete(obj);
|
||||
}
|
||||
}
|
||||
|
||||
@ -406,39 +415,14 @@ static void switch_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
*/
|
||||
static void checkbox_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
{
|
||||
if(event == LV_EVENT_VALUE_CHANGED) hasp_send_obj_attribute_val(obj, lv_checkbox_is_checked(obj));
|
||||
if(event == LV_EVENT_VALUE_CHANGED) {
|
||||
hasp_send_obj_attribute_val(obj, lv_checkbox_is_checked(obj));
|
||||
} else if(event == LV_EVENT_DELETE) {
|
||||
Log.verbose(TAG_HASP, F("Object deleted Event %d occured"), event);
|
||||
hasp_object_delete(obj);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a dropdown list is clicked
|
||||
* @param obj pointer to a dropdown list
|
||||
* @param event type of event that occured
|
||||
*/
|
||||
/*static void ddlist_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
{
|
||||
if(event == LV_EVENT_VALUE_CHANGED) {
|
||||
hasp_send_obj_attribute_val(obj, lv_dropdown_get_selected(obj));
|
||||
char buffer[128];
|
||||
lv_dropdown_get_selected_str(obj, buffer, sizeof(buffer));
|
||||
hasp_send_obj_attribute_txt(obj, buffer);
|
||||
}
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Called when a roller object is clicked
|
||||
* @param obj pointer to a roller object
|
||||
* @param event type of event that occured
|
||||
*/
|
||||
/*static void roller_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
{
|
||||
if(event == LV_EVENT_VALUE_CHANGED) {
|
||||
hasp_send_obj_attribute_val(obj, lv_roller_get_selected(obj));
|
||||
char buffer[128];
|
||||
lv_roller_get_selected_str(obj, buffer, sizeof(buffer));
|
||||
hasp_send_obj_attribute_txt(obj, buffer);
|
||||
}
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Called when a dropdown or roller list is clicked
|
||||
* @param obj pointer to a dropdown list or roller
|
||||
@ -448,9 +432,11 @@ static void selector_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
{
|
||||
if(event == LV_EVENT_VALUE_CHANGED) {
|
||||
uint16_t val = 0;
|
||||
char property[16];
|
||||
char property[20];
|
||||
char buffer[128];
|
||||
|
||||
hasp_update_sleep_state(); // wakeup?
|
||||
|
||||
switch(obj->user_data.objid) {
|
||||
case LV_HASP_DDLIST:
|
||||
val = lv_dropdown_get_selected(obj);
|
||||
@ -467,6 +453,9 @@ static void selector_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
}
|
||||
snprintf_P(property, sizeof(property), PSTR("val\":%d,\"txt"), val);
|
||||
hasp_send_obj_attribute_str(obj, property, buffer);
|
||||
} else if(event == LV_EVENT_DELETE) {
|
||||
Log.verbose(TAG_HASP, F("Object deleted Event %d occured"), event);
|
||||
hasp_object_delete(obj);
|
||||
}
|
||||
}
|
||||
|
||||
@ -492,6 +481,9 @@ void slider_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
*/
|
||||
hasp_send_obj_attribute_val(obj, lv_slider_get_value(obj));
|
||||
// last_change_event = millis();
|
||||
} else if(event == LV_EVENT_DELETE) {
|
||||
Log.verbose(TAG_HASP, F("Object deleted Event %d occured"), event);
|
||||
hasp_object_delete(obj);
|
||||
}
|
||||
}
|
||||
|
||||
@ -505,8 +497,12 @@ static void cpicker_event_handler(lv_obj_t * obj, lv_event_t event)
|
||||
char color[6];
|
||||
snprintf_P(color, sizeof(color), PSTR("color"));
|
||||
|
||||
if(event == LV_EVENT_VALUE_CHANGED) hasp_send_obj_attribute_color(obj, color, lv_cpicker_get_color(obj));
|
||||
// if(event == LV_EVENT_RELEASED) hasp_send_obj_attribute_color(obj, color, lv_cpicker_get_color(obj));
|
||||
if(event == LV_EVENT_VALUE_CHANGED) {
|
||||
hasp_send_obj_attribute_color(obj, color, lv_cpicker_get_color(obj));
|
||||
} else if(event == LV_EVENT_DELETE) {
|
||||
Log.verbose(TAG_HASP, F("Object deleted Event %d occured"), event);
|
||||
hasp_object_delete(obj);
|
||||
}
|
||||
}
|
||||
|
||||
// ##################### State Changers ########################################################
|
||||
@ -568,9 +564,9 @@ void hasp_new_object(const JsonObject & config, uint8_t & saved_page_id)
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t groupid = config[F("groupid")].as<uint8_t>();
|
||||
uint8_t objid = config[F("objid")].as<uint8_t>();
|
||||
uint8_t id = config[F("id")].as<uint8_t>();
|
||||
uint8_t groupid = config[F("groupid")].as<uint8_t>();
|
||||
|
||||
/* Define Objects*/
|
||||
lv_obj_t * obj = hasp_find_obj_from_parent_id(parent_obj, id);
|
||||
@ -775,7 +771,7 @@ void hasp_new_object(const JsonObject & config, uint8_t & saved_page_id)
|
||||
lv_chart_add_series(obj, LV_COLOR_GREEN);
|
||||
lv_chart_add_series(obj, LV_COLOR_BLUE);
|
||||
|
||||
lv_chart_series_t * ser = lv_chart_get_series(obj, 2);
|
||||
lv_chart_series_t * ser = my_chart_get_series(obj, 2);
|
||||
lv_chart_set_next(obj, ser, 10);
|
||||
lv_chart_set_next(obj, ser, 20);
|
||||
lv_chart_set_next(obj, ser, 30);
|
||||
@ -828,9 +824,10 @@ void hasp_new_object(const JsonObject & config, uint8_t & saved_page_id)
|
||||
|
||||
/* id tag the object */
|
||||
// lv_obj_set_user_data(obj, id);
|
||||
obj->user_data.id = id;
|
||||
obj->user_data.objid = objid; //& 0b11111;
|
||||
obj->user_data.groupid = groupid; // & 0b111;
|
||||
obj->user_data.id = id;
|
||||
obj->user_data.objid = objid; //& 0b11111;
|
||||
|
||||
// obj->user_data.groupid = groupid; // get/set in atttr
|
||||
|
||||
/** testing start **/
|
||||
uint8_t temp;
|
||||
@ -879,4 +876,6 @@ void hasp_object_delete(lv_obj_t * obj)
|
||||
}
|
||||
|
||||
// TODO: delete value_str data for all parts
|
||||
|
||||
my_obj_set_value_str_txt(obj, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, NULL);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user