Its like this i have a bigger function where i wrote everything, so this function is like 300 lines. But in this function i declare the sytles and so on.
Do you need more ?
lv_obj_t* screen;
lv_obj_t* bar;
lv_obj_t* tab;
lv_obj_t* tab_j;
lv_obj_t* lamelle;
lv_obj_t* jAnim;
lv_obj_t* jbild;
lv_obj_t* Neigung;
lv_obj_t* JalousienAnzeige;
lv_obj_t* label;
void setup() {
///
///
ui_init();
}
void loop(){
I2C_init();
unsigned int tickPeriod = millis() - lasTickMillies;
lv_tick_inc(tickPeriod);
lasTickMillies = millis();
lv_task_handler();
delay(5);
}
static void timer_anzeige(lv_timer_t* timer) {
label = (lv_obj_t*)(timer->user_data);
lv_label_set_text_fmt(label, "%d°C", temperatur);
}
static void timer_callback(lv_timer_t* timer) {
bar = (lv_obj_t*)(timer->user_data);
lv_bar_set_value(bar, temperatur, LV_ANIM_OFF);
}
static void JalousienLabel(lv_timer_t* labeltimer) {
JalousienAnzeige = (lv_obj_t*)(labeltimer->user_data);
lv_label_set_text_fmt(JalousienAnzeige, "%d%%", jalousieStand);
}
static void JalousienAnim(lv_timer_t* Animtimer) {
jAnim = (lv_obj_t*)(Animtimer->user_data);
lv_obj_set_size(jAnim, 110, (15 + (100 - jalousieStand)));
}
static void NeigungBalken(lv_timer_t* Neigungtimer) {
lamelle = (lv_obj_t*)(Neigungtimer->user_data);
lv_bar_set_value(lamelle, neigung, LV_ANIM_OFF);
}
}
////
////
////
void ui_init()
{
label = lv_label_create(tab);
lv_style_set_text_font(&style_base, &lv_font_montserrat_20);
lv_obj_add_style(label, &style_base, LV_PART_MAIN);
lv_obj_align(label, LV_ALIGN_RIGHT_MID, -70, 10);
lv_label_set_text_fmt(label, "%d°C", temperatur);
lv_timer_create(timer_anzeige, 1000, label);
// Temperatur Balken
static lv_style_t style_bar;
lv_style_init(&style_bar);
bar = lv_bar_create(tab);
lv_obj_add_style(bar, &style_bar, LV_PART_INDICATOR);
lv_obj_set_size(bar, 30, 190);
lv_obj_align(bar, LV_ALIGN_RIGHT_MID, -10, 0);
lv_bar_set_range(bar, -20, 40);
lv_style_set_bg_color(&style_bar, lv_palette_main(LV_PALETTE_RED));
lv_style_set_bg_grad_color(&style_bar, lv_palette_main(LV_PALETTE_BLUE));
lv_style_set_bg_grad_dir(&style_bar, LV_GRAD_DIR_VER);
lv_bar_set_value(bar, temperatur, LV_ANIM_ON);
lv_timer_create(timer_callback, 1000, bar);
JalousienAnzeige = lv_label_create(tab_j);
lv_style_set_text_font(&style_base, &lv_font_montserrat_20);
lv_obj_add_style(JalousienAnzeige, &style_base, LV_PART_MAIN);
lv_obj_align(JalousienAnzeige, LV_ALIGN_RIGHT_MID, 5, 70);
lv_label_set_text_fmt(JalousienAnzeige, "%d%%", jalousieStand);
lv_timer_create(JalousienLabel, 100, JalousienAnzeige);
jAnim = lv_obj_create(jbild);
lv_obj_set_size(jAnim, 110, (15 + (100 - jalousieStand)));
lv_obj_align(jAnim, LV_ALIGN_BOTTOM_MID, 0, 5);
lv_obj_clear_flag(jAnim, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_add_style(jAnim, &style_base, LV_PART_MAIN);
lv_timer_create(JalousienAnim, 100, jAnim);
lamelle = lv_bar_create(tab_j);
lv_obj_remove_style_all(lamelle); /*To have a clean start*/
lv_obj_add_style(lamelle, &style_bge, 0);
lv_obj_add_style(lamelle, &style_indi, LV_PART_INDICATOR);
lv_obj_set_size(lamelle, 20, 100);
lv_obj_align(lamelle, LV_ALIGN_LEFT_MID, 10, 0);
lv_bar_set_range(lamelle, 90, 0);
lv_bar_set_value(lamelle, neigung, LV_ANIM_ON);
lv_timer_create(NeigungBalken, 3000, lamelle);
}