fonctionnel
This commit is contained in:
parent
1f5593de04
commit
b0f5150f81
100
main/main.c
100
main/main.c
@ -30,7 +30,7 @@
|
||||
#define EXAMPLE_LCD_LVGL_DIRECT_MODE (1)
|
||||
#define EXAMPLE_LCD_LVGL_AVOID_TEAR (1)
|
||||
#define EXAMPLE_LCD_RGB_BOUNCE_BUFFER_MODE (1)
|
||||
#define EXAMPLE_LCD_DRAW_BUFF_DOUBLE (0)
|
||||
#define EXAMPLE_LCD_DRAW_BUFF_DOUBLE (1)
|
||||
#define EXAMPLE_LCD_DRAW_BUFF_HEIGHT (100)
|
||||
#define EXAMPLE_LCD_RGB_BUFFER_NUMS (2)
|
||||
#define EXAMPLE_LCD_RGB_BOUNCE_BUFFER_HEIGHT (10)
|
||||
@ -93,6 +93,10 @@ static esp_lcd_touch_handle_t touch_handle = NULL;
|
||||
static lv_display_t *lvgl_disp = NULL;
|
||||
static lv_indev_t *lvgl_touch_indev = NULL;
|
||||
|
||||
lv_obj_t * chart;
|
||||
lv_chart_series_t * ser1;
|
||||
|
||||
|
||||
static esp_err_t app_lcd_init(void)
|
||||
{
|
||||
esp_err_t ret = ESP_OK;
|
||||
@ -300,15 +304,21 @@ static void app_main_display(void)
|
||||
|
||||
char tempExtStr[6];
|
||||
char tempIntStr[6];
|
||||
char hauteurCuveStr[6];
|
||||
char hauteurCuveStr[9];
|
||||
char hauteurCuveEvolStr[9];
|
||||
lv_subject_t tempIntSubj;
|
||||
lv_subject_t tempExtSubj;
|
||||
lv_subject_t hauteurCuveSubj;
|
||||
lv_subject_t hauteurCuveEvolSubj;
|
||||
|
||||
char *upEvent = "monter";
|
||||
char *downEvent = "descendre";
|
||||
|
||||
char *topicTempExt="house/temp/282A802600008059";
|
||||
char *topicHauteurCuve="house/cuve/hauteur";
|
||||
char *topicTempInt="house/temp/287DCF1E00008020";
|
||||
char *topicHauteurCuveEvol="house/cuve/hauteurEvol";
|
||||
|
||||
esp_mqtt_client_handle_t client;
|
||||
|
||||
static void event_handler(lv_event_t *e)
|
||||
@ -342,7 +352,8 @@ void draw_ihm()
|
||||
{
|
||||
lv_subject_init_string(&tempExtSubj, tempExtStr, NULL, 6, "--");
|
||||
lv_subject_init_string(&tempIntSubj, tempIntStr, NULL, 6, "--");
|
||||
lv_subject_init_string(&hauteurCuveSubj, hauteurCuveStr, NULL, 6, "--");
|
||||
lv_subject_init_string(&hauteurCuveSubj, hauteurCuveStr, NULL, 9, "--");
|
||||
lv_subject_init_string(&hauteurCuveEvolSubj, hauteurCuveEvolStr, NULL, 9, "--");
|
||||
|
||||
// keys.clear();
|
||||
lv_obj_clean(lv_scr_act());
|
||||
@ -353,8 +364,8 @@ void draw_ihm()
|
||||
// lv_style_set_bg_opa(&style_btn, LV_OPA_50);
|
||||
// lv_style_set_border_width(&style_btn, 2);
|
||||
// lv_style_set_border_color(&style_btn, lv_color_black());
|
||||
lv_style_set_width(&style_btn, 120);
|
||||
lv_style_set_height(&style_btn, 120);
|
||||
lv_style_set_width(&style_btn, 180);
|
||||
lv_style_set_height(&style_btn, 180);
|
||||
|
||||
// Un style pour les conteneurs (température, cuve ...)
|
||||
static lv_style_t style_container;
|
||||
@ -362,14 +373,14 @@ void draw_ihm()
|
||||
lv_style_set_pad_all(&style_container, 5);
|
||||
// lv_style_set_height(&style_container,LV_SIZE_CONTENT);
|
||||
lv_style_set_height(&style_container, 80);
|
||||
lv_style_set_width(&style_container, 130);
|
||||
lv_style_set_width(&style_container, 200);
|
||||
lv_style_set_bg_color(&style_container, lv_palette_lighten(LV_PALETTE_BLUE_GREY, 4));
|
||||
lv_style_set_align(&style_container, LV_ALIGN_BOTTOM_LEFT);
|
||||
lv_style_set_flex_cross_place(&style_container, LV_FLEX_ALIGN_END);
|
||||
|
||||
static lv_style_t style_lbvValue;
|
||||
lv_style_init(&style_lbvValue);
|
||||
lv_style_set_text_font(&style_lbvValue, &lv_font_montserrat_26);
|
||||
lv_style_set_text_font(&style_lbvValue, &lv_font_montserrat_40);
|
||||
|
||||
lv_obj_set_flex_flow(lv_screen_active(), LV_FLEX_FLOW_ROW);
|
||||
lv_obj_set_style_pad_column(lv_screen_active(), 1, 0);
|
||||
@ -437,6 +448,7 @@ void draw_ihm()
|
||||
lv_obj_align(btnUp, LV_ALIGN_CENTER, 0, -40);
|
||||
lv_obj_remove_flag(btnUp, LV_OBJ_FLAG_PRESS_LOCK);
|
||||
lv_obj_t *label = lv_label_create(btnUp);
|
||||
lv_obj_add_style(label, &style_lbvValue, 0);
|
||||
lv_label_set_text(label, LV_SYMBOL_UP);
|
||||
lv_obj_center(label);
|
||||
|
||||
@ -446,8 +458,22 @@ void draw_ihm()
|
||||
lv_obj_align(btnDwn, LV_ALIGN_CENTER, 0, -40);
|
||||
lv_obj_remove_flag(btnDwn, LV_OBJ_FLAG_PRESS_LOCK);
|
||||
label = lv_label_create(btnDwn);
|
||||
lv_obj_add_style(label, &style_lbvValue, 0);
|
||||
lv_label_set_text(label, LV_SYMBOL_DOWN);
|
||||
lv_obj_center(label);
|
||||
|
||||
/*Create a chart*/
|
||||
chart = lv_chart_create(lv_screen_active());
|
||||
lv_obj_set_size(chart, 200, 200);
|
||||
lv_chart_set_type(chart, LV_CHART_TYPE_LINE); /*Show lines and points too*/
|
||||
lv_chart_set_range(chart, LV_CHART_AXIS_PRIMARY_Y, 0, 130);
|
||||
ser1 = lv_chart_add_series(chart, lv_palette_main(LV_PALETTE_GREEN), LV_CHART_AXIS_PRIMARY_Y);;
|
||||
ser1->y_points[0] = lv_rand(0, 40);
|
||||
ser1->y_points[1] = lv_rand(0, 40);
|
||||
ser1->y_points[2] = lv_rand(0, 40);
|
||||
|
||||
lv_chart_refresh(chart); /*Required after direct set*/
|
||||
|
||||
}
|
||||
|
||||
/* The examples use WiFi configuration that you can set via project configuration menu
|
||||
@ -592,6 +618,24 @@ static void log_error_if_nonzero(const char *message, int error_code)
|
||||
}
|
||||
}
|
||||
|
||||
void splitIt(char * payload, unsigned int length, int * datas){
|
||||
char *sep=",";
|
||||
char *token;
|
||||
char *saveptr1;
|
||||
|
||||
token = strtok_r(payload, sep, &saveptr1);
|
||||
datas[0]=atoi(token);
|
||||
|
||||
token = strtok_r(NULL, sep, &saveptr1);
|
||||
datas[1]=atoi(token);
|
||||
|
||||
token = strtok_r(NULL, sep, &saveptr1);
|
||||
datas[2]=atoi(token);
|
||||
|
||||
token = strtok_r(NULL, sep, &saveptr1);
|
||||
datas[3]=atoi(token);
|
||||
}
|
||||
|
||||
/*
|
||||
* @brief Event handler registered to receive MQTT events
|
||||
*
|
||||
@ -617,6 +661,15 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_
|
||||
msg_id = esp_mqtt_client_subscribe(client, topicTempExt, 0);
|
||||
ESP_LOGI(TAG, "sent subscribe successful, msg_id=%d", msg_id);
|
||||
|
||||
msg_id = esp_mqtt_client_subscribe(client, topicTempInt, 0);
|
||||
ESP_LOGI(TAG, "sent subscribe successful, msg_id=%d", msg_id);
|
||||
|
||||
msg_id = esp_mqtt_client_subscribe(client, topicHauteurCuve, 0);
|
||||
ESP_LOGI(TAG, "sent subscribe successful, msg_id=%d", msg_id);
|
||||
|
||||
msg_id = esp_mqtt_client_subscribe(client, topicHauteurCuveEvol, 0);
|
||||
ESP_LOGI(TAG, "sent subscribe successful, msg_id=%d", msg_id);
|
||||
|
||||
msg_id = esp_mqtt_client_subscribe(client, "/topic/qos1", 1);
|
||||
ESP_LOGI(TAG, "sent subscribe successful, msg_id=%d", msg_id);
|
||||
|
||||
@ -642,8 +695,37 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_
|
||||
ESP_LOGI(TAG, "MQTT_EVENT_DATA");
|
||||
printf("TOPIC=%.*s\r\n", event->topic_len, event->topic);
|
||||
printf("DATA=%.*s\r\n", event->data_len, event->data);
|
||||
if(strncmp(event->topic, topicTempExt,27)==0){
|
||||
lvgl_port_lock(0);
|
||||
lv_subject_copy_string(&tempExtSubj, event->data);
|
||||
lvgl_port_unlock();
|
||||
}else if(strncmp(event->topic, topicTempInt,27)==0){
|
||||
lvgl_port_lock(0);
|
||||
lv_subject_copy_string(&tempIntSubj, event->data);
|
||||
lvgl_port_unlock();
|
||||
}else if(strncmp(event->topic, topicHauteurCuveEvol,22)==0){
|
||||
int datas[4] ={};
|
||||
splitIt(event->data, event->data_len, datas);
|
||||
ser1->y_points[0]=130-datas[0];
|
||||
ser1->y_points[1]=130-datas[1];
|
||||
ser1->y_points[2]=130-datas[2];
|
||||
ser1->y_points[3]=130-datas[3];
|
||||
lvgl_port_lock(0);
|
||||
lv_chart_refresh(chart);
|
||||
lvgl_port_unlock();
|
||||
|
||||
//lv_subject_copy_string(&hauteurCuveEvolSubj, event->data);
|
||||
}else if(strncmp(event->topic, topicHauteurCuve,18)==0){
|
||||
lvgl_port_lock(0);
|
||||
char *datas=NULL;
|
||||
datas = (char *) malloc( event->data_len * sizeof(char) );
|
||||
stpncpy(datas, event->data, event->data_len);
|
||||
datas[event->data_len]='\0';
|
||||
lv_subject_copy_string(&hauteurCuveSubj, datas);
|
||||
lvgl_port_unlock();
|
||||
}else{
|
||||
ESP_LOGE(TAG, "None match :-(");
|
||||
}
|
||||
break;
|
||||
case MQTT_EVENT_ERROR:
|
||||
ESP_LOGI(TAG, "MQTT_EVENT_ERROR");
|
||||
@ -716,6 +798,10 @@ void app_main(void)
|
||||
}
|
||||
ESP_ERROR_CHECK(ret);
|
||||
|
||||
/* Show LVGL objects */
|
||||
lvgl_port_lock(0);
|
||||
app_main_display();
|
||||
lvgl_port_unlock();
|
||||
ESP_LOGI(TAG, "ESP_WIFI_MODE_STA");
|
||||
wifi_init_sta();
|
||||
mqtt_app_start();
|
||||
|
||||
@ -1773,7 +1773,7 @@ CONFIG_LV_FONT_MONTSERRAT_26=y
|
||||
# CONFIG_LV_FONT_MONTSERRAT_34 is not set
|
||||
# CONFIG_LV_FONT_MONTSERRAT_36 is not set
|
||||
# CONFIG_LV_FONT_MONTSERRAT_38 is not set
|
||||
# CONFIG_LV_FONT_MONTSERRAT_40 is not set
|
||||
CONFIG_LV_FONT_MONTSERRAT_40=y
|
||||
# CONFIG_LV_FONT_MONTSERRAT_42 is not set
|
||||
# CONFIG_LV_FONT_MONTSERRAT_44 is not set
|
||||
# CONFIG_LV_FONT_MONTSERRAT_46 is not set
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user