From f32cad2987cfe4496f1920009eb0e95301115524 Mon Sep 17 00:00:00 2001 From: Marc Pasteur Date: Tue, 24 Feb 2026 14:39:22 +0100 Subject: [PATCH] ajout temp ext --- components/domotic_display/ihm.c | 67 +++++++++++-------- components/domotic_display/ihm_gateway.c | 6 +- components/domotic_display/include/ihm.h | 1 + components/eventsManager/eventsManager.c | 14 ++++ .../eventsManager/include/eventsManager.h | 6 +- main/main.c | 1 + 6 files changed, 63 insertions(+), 32 deletions(-) diff --git a/components/domotic_display/ihm.c b/components/domotic_display/ihm.c index 80de7b1..d8f25c0 100644 --- a/components/domotic_display/ihm.c +++ b/components/domotic_display/ihm.c @@ -36,7 +36,8 @@ LV_IMAGE_DECLARE(mqtt_ok); LV_IMAGE_DECLARE(mqtt_ko); lv_subject_t dateHeureSubj; -lv_obj_t *lblTempInt2; +lv_obj_t *lblTempInt; +lv_obj_t *lblTempExt; char tempExtStr[6]; char tempIntStr[6]; char hauteurCuveStr[9]; @@ -109,12 +110,18 @@ void draw_time(struct tm *dateHeure){ //} } +void draw_tempExt(char * tempHumid){ + //if(display_lock("draw_temp")){ + lv_label_set_text_fmt(lblTempExt,LV_SYMBOL_HOME "\xEF\x8B\x8A : %.1f°C", atof(tempHumid)); + // display_unlock("draw_temp"); + //} +} void draw_temp(char * tempHumid){ - if(display_lock("draw_temp")){ - lv_label_set_text(lblTempInt2,tempHumid); - display_unlock("draw_temp"); - } + //if(display_lock("draw_temp")){ + lv_label_set_text(lblTempInt,tempHumid); + // display_unlock("draw_temp"); + //} } void draw_meteo(meteo_event_payload_t *meteo){ @@ -1024,6 +1031,7 @@ static void cuve_click_cb(lv_event_t * e){ lv_tabview_set_active(tabview, 3, false); } +/* void draw_tabHome(lv_obj_t* parent){ lv_obj_t *supmain = parent; lv_obj_set_flex_flow(supmain, LV_FLEX_FLOW_COLUMN); @@ -1035,7 +1043,7 @@ void draw_tabHome(lv_obj_t* parent){ lv_obj_set_flex_flow(main, LV_FLEX_FLOW_ROW); lv_obj_set_style_pad_column(main, 1, 0); - /*Conteneur Colonne: Températures*/ + //Conteneur Colonne: Températures lv_obj_t *cont_colTemp = lv_obj_create(main); lv_obj_set_style_pad_all(cont_colTemp, 5, 0); lv_obj_set_size(cont_colTemp, lv_pct(40), lv_pct(100)); @@ -1043,7 +1051,7 @@ void draw_tabHome(lv_obj_t* parent){ lv_obj_set_flex_flow(cont_colTemp, LV_FLEX_FLOW_COLUMN); lv_obj_set_flex_align(cont_colTemp, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); - /*Create a container with COLUMN flex direction*/ + //Create a container with COLUMN flex direction lv_obj_t *cont_colVolets = lv_obj_create(main); lv_obj_set_style_pad_all(cont_colVolets, 5, 0); lv_obj_set_flex_align(cont_colVolets, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); @@ -1052,7 +1060,7 @@ void draw_tabHome(lv_obj_t* parent){ lv_obj_set_flex_flow(cont_colVolets, LV_FLEX_FLOW_COLUMN); lv_obj_set_flex_align(cont_colVolets, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_SPACE_BETWEEN, LV_FLEX_ALIGN_CENTER); - /*Conteneur Colonne: Meteo*/ + // Conteneur Colonne: Meteo lv_obj_t *cont_col3 = lv_obj_create(main); lv_obj_set_style_pad_all(cont_col3, 5, 0); lv_obj_set_size(cont_col3, lv_pct(40), lv_pct(100)); @@ -1079,7 +1087,7 @@ void draw_tabHome(lv_obj_t* parent){ lv_label_bind_text(lblTempExt, &tempExtSubj, "%s °C"); //Create a container with COLUMN flex direction - /* + // lv_obj_t *cont_tempInt = lv_obj_create(cont_colTemp); lv_obj_add_style(cont_tempInt, &style_container, 0); // lv_obj_set_height(cont_tempInt,50); @@ -1090,7 +1098,7 @@ void draw_tabHome(lv_obj_t* parent){ lv_obj_add_style(lblTempInt, &style_lbvValue, 0); lv_label_set_text(lblTempInt, ""); lv_label_bind_text(lblTempInt, &tempIntSubj, "%s °C"); - */ + // //Create a container with COLUMN flex direction lv_obj_t *cont_tempInt2 = lv_obj_create(cont_colTemp); @@ -1099,11 +1107,11 @@ void draw_tabHome(lv_obj_t* parent){ lv_obj_set_flex_flow(cont_tempInt2, LV_FLEX_FLOW_ROW); lv_obj_t * lblInt = lv_label_create(cont_tempInt2); lv_label_set_text(lblInt, "int."); - lblTempInt2 = lv_label_create(cont_tempInt2); - lv_obj_add_style(lblTempInt2, &style_lbvValue, 0); - lv_obj_set_style_text_font(lblTempInt2,lv_theme_get_font_large(lblTempInt2),0); + //lblTempInt2 = lv_label_create(cont_tempInt2); + //lv_obj_add_style(lblTempInt2, &style_lbvValue, 0); + //lv_obj_set_style_text_font(lblTempInt2,lv_theme_get_font_large(lblTempInt2),0); - lv_label_set_text(lblTempInt2, ""); + //lv_label_set_text(lblTempInt2, ""); //Create a container with COLUMN flex direction lv_obj_t *cont_Cuve = lv_obj_create(cont_colTemp); @@ -1149,15 +1157,8 @@ void draw_tabCuve(lv_obj_t* parent) lv_image_set_src(imgGraf, "A:/sdcard/hello2.png"); } -void draw_tabMeteo(lv_obj_t * parent) -{ - weatherDay_fragment_create_obj(0,parent, false); - weatherDay_fragment_create_obj(1,parent, false); - weatherDay_fragment_create_obj(2,parent, false); - //manager2 = lv_fragment_manager_create(NULL); - //fragment2 = lv_fragment_create(&meteodailyforecast_cls, (void *)1); - //lv_fragment_manager_add(manager2, fragment2, &parent); -} + +*/ void draw_tabVolets(lv_obj_t* parent) { @@ -1199,7 +1200,7 @@ void draw_tabVolets(lv_obj_t* parent) lv_obj_set_size(cont_btn_volets, lv_pct(15), lv_pct(100)); lv_obj_set_layout(cont_btn_volets, LV_LAYOUT_GRID); - static int32_t column_dsc[] = {LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST}; /*2 columns */ + static int32_t column_dsc[] = {LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST}; //2 columns static int32_t row_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST}; lv_obj_set_grid_dsc_array(cont_btn_volets, column_dsc, row_dsc); @@ -1243,6 +1244,16 @@ void draw_tabVolets(lv_obj_t* parent) } } +void draw_tabMeteo(lv_obj_t * parent) +{ + weatherDay_fragment_create_obj(0,parent, false); + weatherDay_fragment_create_obj(1,parent, false); + weatherDay_fragment_create_obj(2,parent, false); + //manager2 = lv_fragment_manager_create(NULL); + //fragment2 = lv_fragment_create(&meteodailyforecast_cls, (void *)1); + //lv_fragment_manager_add(manager2, fragment2, &parent); +} + typedef struct { lv_obj_t *date_group; lv_span_t *date_day; @@ -1270,7 +1281,7 @@ static void time_observer_cb(lv_observer_t *observer, lv_subject_t *subject) { LV_UNUSED(observer); - ESP_LOGE(TAG,"################### On passe dans le cb time"); + //ESP_LOGE(TAG,"################### On passe dans le cb time"); lv_obj_t *dateTimeObj = lv_observer_get_target_obj(observer); datetime_ctx_t *ctx = lv_obj_get_user_data(dateTimeObj); @@ -1284,7 +1295,7 @@ static void time_observer_cb(lv_observer_t *observer, lv_subject_t *subject) ESP_LOGE(TAG,"################### Pas de struct tm"); return; } - ESP_LOGE(TAG,"################################# %d %d %d %02d:%02d", t->tm_wday, t->tm_mday, t->tm_mon, t->tm_hour, t->tm_min); + //ESP_LOGE(TAG,"################################# %d %d %d %02d:%02d", t->tm_wday, t->tm_mday, t->tm_mon, t->tm_hour, t->tm_min); char buf[4]; bool refresh_date = false; @@ -1299,8 +1310,6 @@ static void time_observer_cb(lv_observer_t *observer, lv_subject_t *subject) //ESP_LOGE(TAG,"Jour %s",buf); lv_span_set_text(ctx->date_day, buf); refresh_date = true; - }else{ - ESP_LOGE(TAG, "########################### Meme date !"); } if ((t->tm_mon + 1) != ctx->last_month) { @@ -1822,7 +1831,7 @@ void messageCardContent(lv_obj_t *cont_messages) lv_obj_t *lblTempInt = lv_label_create(subContent); lv_label_set_text(lblTempInt, "\xEE\x86\xB0\xEF\x8B\x8A : 21°C"); lv_obj_set_style_text_font(lblTempInt, lv_theme_get_font_large(lblTempInt),0); - lv_obj_t *lblTempExt = lv_label_create(subContent); + lblTempExt = lv_label_create(subContent); lv_label_set_text(lblTempExt, LV_SYMBOL_HOME "\xEF\x8B\x8A : 12°C"); lv_obj_set_style_text_font(lblTempExt, lv_theme_get_font_large(lblTempExt),0); diff --git a/components/domotic_display/ihm_gateway.c b/components/domotic_display/ihm_gateway.c index 13fd061..18a222e 100644 --- a/components/domotic_display/ihm_gateway.c +++ b/components/domotic_display/ihm_gateway.c @@ -76,6 +76,10 @@ void traiteEvt(void *arg) draw_temp((char *)evt->pvData); break; + case IHM_EVT_TEMP_RECUE: + draw_tempExt((char *)evt->pvData); + break; + case IHM_EVT_PUISSANCE_EMISE: { int val = *(int *)evt->pvData; @@ -133,7 +137,7 @@ void traiteEvt(void *arg) } // Nettoyage mémoire sécurisé if (evt->bNeedToFreeData && evt->pvData){ - ESP_LOGE(TAG, "Libération mémoire"); + //ESP_LOGE(TAG, "Libération mémoire"); free(evt->pvData); } free(evt); diff --git a/components/domotic_display/include/ihm.h b/components/domotic_display/include/ihm.h index afc7cbb..404dcf6 100644 --- a/components/domotic_display/include/ihm.h +++ b/components/domotic_display/include/ihm.h @@ -23,6 +23,7 @@ void initHome(); void drawHome(); void draw_time(struct tm *dateHeure); +void draw_tempExt(char *tempHumid); void draw_minuteur(char *txt); void draw_temp(char *tempHumid); diff --git a/components/eventsManager/eventsManager.c b/components/eventsManager/eventsManager.c index 29b46a9..8b49f10 100644 --- a/components/eventsManager/eventsManager.c +++ b/components/eventsManager/eventsManager.c @@ -111,6 +111,20 @@ void send_event(domo_events evt, void* pDatas) { ihmEvt->bNeedToFreeData = true; break; + case EVT_TEMP_EXT: + const char *msg3 = (const char *)pDatas; + char *msg_copy3 = malloc(strlen(msg3) + 1); + if (!msg_copy3) { + ESP_LOGE(TAG, "malloc failed for message string"); + free(ihmEvt); + return; + } + strcpy(msg_copy3, msg3); + ihmEvt->eEventType = IHM_EVT_TEMP_RECUE; + ihmEvt->pvData = msg_copy3; + ihmEvt->bNeedToFreeData = true; + break; + case EVT_HAUTEUR_CUVE: { float *data = malloc(sizeof(float)); if (!data) { diff --git a/components/eventsManager/include/eventsManager.h b/components/eventsManager/include/eventsManager.h index 63600e1..7db86e6 100644 --- a/components/eventsManager/include/eventsManager.h +++ b/components/eventsManager/include/eventsManager.h @@ -14,7 +14,8 @@ typedef enum eIHMEvent_t{ IHM_EVT_PUISSANCE_EMISE, IHM_EVT_ETAT_MACHINE, IHM_EVT_HAUTEUR_CUVE, - IHM_EVT_METEO_RECUE + IHM_EVT_METEO_RECUE, + IHM_EVT_TEMP_RECUE } eIHMEvent_t; typedef struct IHM_EVENT @@ -31,7 +32,8 @@ typedef enum domo_events{ EVT_PUISSANCE_RECUE, EVT_ETAT_MACHINE, EVT_HAUTEUR_CUVE, - EVT_METEO_RECUE + EVT_METEO_RECUE, + EVT_TEMP_EXT } domo_events; void startEvtManager(); QueueHandle_t getIHMQueueHandle(); diff --git a/main/main.c b/main/main.c index 4a9c887..228b89a 100644 --- a/main/main.c +++ b/main/main.c @@ -136,6 +136,7 @@ void mqtt_cb(mqtt_evt evt, esp_mqtt_event_handle_t event){ float temp = strtof(event->data, NULL); char buff[5]; sprintf(buff,"%.1f",temp); + send_event(EVT_TEMP_EXT, buff); //lv_subject_copy_string(&tempExtSubj, buff); //lvgl_port_unlock();