theme et factorisation
This commit is contained in:
parent
af72af7150
commit
e8026b0f88
14
.vscode/settings.json
vendored
14
.vscode/settings.json
vendored
@ -88,7 +88,19 @@
|
|||||||
"typeinfo": "cpp",
|
"typeinfo": "cpp",
|
||||||
"variant": "cpp",
|
"variant": "cpp",
|
||||||
"esp_task_wdt.h": "c",
|
"esp_task_wdt.h": "c",
|
||||||
"stdio.h": "c"
|
"stdio.h": "c",
|
||||||
|
"lv_color.h": "c",
|
||||||
|
"lv_theme_simple.h": "c",
|
||||||
|
"esp_log.h": "c",
|
||||||
|
"lv_theme_domotic.h": "c",
|
||||||
|
"event_groups.h": "c",
|
||||||
|
"freertos.h": "c",
|
||||||
|
"ihm.h": "c",
|
||||||
|
"esp_check.h": "c",
|
||||||
|
"esp-bsp.h": "c",
|
||||||
|
"esp_littlefs.h": "c",
|
||||||
|
"esp_vfs_fat.h": "c",
|
||||||
|
"esp_http_client.h": "c"
|
||||||
},
|
},
|
||||||
"idf.pythonInstallPath": "/usr/local/bin/python"
|
"idf.pythonInstallPath": "/usr/local/bin/python"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
|
#pragma once
|
||||||
#include "time.h"
|
#include "time.h"
|
||||||
|
#include "stdbool.h"
|
||||||
|
|
||||||
struct node {
|
/*struct node {
|
||||||
struct node *next;
|
struct node *next;
|
||||||
int e;
|
int e;
|
||||||
};
|
};
|
||||||
@ -10,6 +11,7 @@ struct Hashtable {
|
|||||||
unsigned Tablesize;
|
unsigned Tablesize;
|
||||||
struct node *Cells;
|
struct node *Cells;
|
||||||
};
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
struct dailyforecast_prev{
|
struct dailyforecast_prev{
|
||||||
float min;
|
float min;
|
||||||
@ -24,17 +26,17 @@ struct forecast_prev{
|
|||||||
char icon[9];
|
char icon[9];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct meteodailyforecast_data{
|
typedef struct meteodailyforecast_data{
|
||||||
time_t datetime;
|
time_t datetime;
|
||||||
bool isValid;
|
bool isValid;
|
||||||
struct dailyforecast_prev previsions;
|
struct dailyforecast_prev previsions;
|
||||||
};
|
} meteodailyforecast_data;
|
||||||
|
|
||||||
struct meteoforecast_data{
|
typedef struct meteoforecast_data{
|
||||||
time_t datetime;
|
time_t datetime;
|
||||||
bool isValid;
|
bool isValid;
|
||||||
struct forecast_prev previsions;
|
struct forecast_prev previsions;
|
||||||
};
|
} meteoforecast_data;
|
||||||
|
|
||||||
typedef void (*weather_data_callback)(struct meteodailyforecast_data *datas, struct meteoforecast_data *datasf);
|
typedef void (*weather_data_callback)(struct meteodailyforecast_data *datas, struct meteoforecast_data *datasf);
|
||||||
typedef void (*weather_data_start_callback)();
|
typedef void (*weather_data_start_callback)();
|
||||||
|
|||||||
@ -9,6 +9,8 @@
|
|||||||
See the file LICENSE for details.
|
See the file LICENSE for details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "meteofrance.h"
|
||||||
|
|
||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
#include "esp_system.h"
|
#include "esp_system.h"
|
||||||
@ -17,7 +19,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "meteofrance.h"
|
|
||||||
#include "cJSON.h"
|
#include "cJSON.h"
|
||||||
#include "esp_http_client.h"
|
#include "esp_http_client.h"
|
||||||
#include "esp_tls.h"
|
#include "esp_tls.h"
|
||||||
@ -389,7 +390,7 @@ void initialise_weather_data_retrieval(unsigned long retreival_period)
|
|||||||
// http_client_on_process_chunk(&http_client, process_chunk);
|
// http_client_on_process_chunk(&http_client, process_chunk);
|
||||||
// http_client_on_disconnected(&http_client, disconnected);
|
// http_client_on_disconnected(&http_client, disconnected);
|
||||||
TaskHandle_t xHandle = NULL;
|
TaskHandle_t xHandle = NULL;
|
||||||
BaseType_t ret1 = xTaskCreate(&http_request_task, "http_request_task", 5 * 1024, NULL, 5, &xHandle);
|
BaseType_t ret1 = xTaskCreate(&http_request_task, "http_meteof", 5 * 1024, NULL, 5, &xHandle);
|
||||||
if(ret1!=pdPASS ){
|
if(ret1!=pdPASS ){
|
||||||
ESP_LOGE(TAG, "Impossible de creer la tache %i", ret1);
|
ESP_LOGE(TAG, "Impossible de creer la tache %i", ret1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -104,7 +104,7 @@ dependencies:
|
|||||||
type: service
|
type: service
|
||||||
version: 1.2.0
|
version: 1.2.0
|
||||||
espressif/esp_hosted:
|
espressif/esp_hosted:
|
||||||
component_hash: ef6bc803451fab3c3f9a679bbc1c48fba0ceeeabc5af4178dd7d2300fafa423e
|
component_hash: 9e7a202cc18c08fa9b67c0261f9733b33af9b3af73eafd4ef6704cdb37bde7c2
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: idf
|
- name: idf
|
||||||
require: private
|
require: private
|
||||||
@ -112,7 +112,7 @@ dependencies:
|
|||||||
source:
|
source:
|
||||||
registry_url: https://components.espressif.com
|
registry_url: https://components.espressif.com
|
||||||
type: service
|
type: service
|
||||||
version: 1.4.0
|
version: 1.4.1
|
||||||
espressif/esp_lcd_ek79007:
|
espressif/esp_lcd_ek79007:
|
||||||
component_hash: 07c1afab7e9fd4dd2fd06ff9245e65327c5bbd5485efec199496e19a9304d47b
|
component_hash: 07c1afab7e9fd4dd2fd06ff9245e65327c5bbd5485efec199496e19a9304d47b
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -262,6 +262,6 @@ direct_dependencies:
|
|||||||
- joltwallet/littlefs
|
- joltwallet/littlefs
|
||||||
- lvgl/lvgl
|
- lvgl/lvgl
|
||||||
- suda-morris/am2302_rmt
|
- suda-morris/am2302_rmt
|
||||||
manifest_hash: 63eaaa4e8d94182764c8e6d23da6beff61e56db0cec736ba19ba0f825469c47c
|
manifest_hash: 15284e0a2c7903f038a0abcadaa03469042782b30abea68977d3e3e45b11bbaa
|
||||||
target: esp32p4
|
target: esp32p4
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
espressif/esp_wifi_remote: "0.8.5"
|
espressif/esp_wifi_remote: "0.8.5"
|
||||||
espressif/esp32_p4_function_ev_board: "^4.1.1"
|
#espressif/esp32_p4_function_ev_board: "^4.1.1"
|
||||||
suda-morris/am2302_rmt: "^1.0.0"
|
suda-morris/am2302_rmt: "^1.0.0"
|
||||||
espressif/esp_websocket_client: "^1.3.0"
|
espressif/esp_websocket_client: "^1.3.0"
|
||||||
joltwallet/littlefs: ^1.14.8
|
joltwallet/littlefs: ^1.14.8
|
||||||
@ -12,8 +12,8 @@ dependencies:
|
|||||||
version: '5.4.*'
|
version: '5.4.*'
|
||||||
lvgl/lvgl:
|
lvgl/lvgl:
|
||||||
version: 9.2.0
|
version: 9.2.0
|
||||||
espressif/esp32_p4_function_ev_board:
|
#espressif/esp32_p4_function_ev_board:
|
||||||
version: "4.1.*"
|
# version: "4.1.*"
|
||||||
|
|
||||||
chmorgan/esp-audio-player:
|
chmorgan/esp-audio-player:
|
||||||
version: "1.0.*"
|
version: "1.0.*"
|
||||||
|
|||||||
1055
main/ihm.c
Normal file
1055
main/ihm.c
Normal file
File diff suppressed because it is too large
Load Diff
31
main/ihm.h
Normal file
31
main/ihm.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "meteofrance.h"
|
||||||
|
#include "esp_lvgl_port.h"
|
||||||
|
#include "bsp/esp-bsp.h"
|
||||||
|
|
||||||
|
void app_main_display(void);
|
||||||
|
|
||||||
|
bool display_lock(const char *TAG);
|
||||||
|
|
||||||
|
void display_unlock(const char *TAG);
|
||||||
|
|
||||||
|
void meteo_obs_cb(lv_observer_t *observer, lv_subject_t *subject);
|
||||||
|
|
||||||
|
void showMeteoIcon(const char *icon, lv_obj_t *desc_icon, int childNr);
|
||||||
|
|
||||||
|
void draw_tabVolets();
|
||||||
|
void draw_ihm();
|
||||||
|
|
||||||
|
void weather_data_retreived_start();
|
||||||
|
|
||||||
|
void weather_data_retreived(meteodailyforecast_data dailyDatas[3], meteoforecast_data datas[3]);
|
||||||
|
|
||||||
|
void draw_time(char * dateHeure);
|
||||||
|
void show_temp(char * tempHumid);
|
||||||
|
void draw_tabMeteo();
|
||||||
|
|
||||||
|
void tabChgEvt(lv_event_t *event);
|
||||||
|
|
||||||
|
void draw_tabCuve();
|
||||||
|
void draw_tabHome();
|
||||||
|
void draw_tabSettings();
|
||||||
@ -1,83 +0,0 @@
|
|||||||
static void weatherdata_obs_cb(lv_observer_t *observer, lv_subject_t *subject)
|
|
||||||
{
|
|
||||||
// Retrieve weatherdata
|
|
||||||
struct meteodailyforecast_data *data = subject->value.pointer;
|
|
||||||
//printffd(data);
|
|
||||||
char buff[40] = {};
|
|
||||||
// sprintf(buff,"%s %.1f %.1f", data->previsions.desc, data->previsions.min, data->previsions.max);
|
|
||||||
|
|
||||||
lv_obj_t *parent = (lv_obj_t *)(observer->target);
|
|
||||||
lv_obj_t *datefld = lv_obj_get_child(parent, 0);
|
|
||||||
lv_obj_t *desc_icon = lv_obj_get_child(parent, 1);
|
|
||||||
lv_obj_t *temps = lv_obj_get_child(parent, 2);
|
|
||||||
if (strcmp(data->previsions.icon, "p1j") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p1j);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p2j") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p2j);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p3j") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p3j);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p5bisj") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p5bisj);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p12j") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p12j);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p12bisj") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p12bisj);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p14j") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p14j);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p24j") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p24j);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p25j") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p25j);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p26j") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p26j);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p27j") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p27j);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p28j") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p28j);
|
|
||||||
}else if (strcmp(data->previsions.icon, "p29j") == 0)
|
|
||||||
{
|
|
||||||
lv_image_set_src(lv_obj_get_child(desc_icon, 0), &p29j);
|
|
||||||
}else{
|
|
||||||
ESP_LOGE(TAG, "Image %s non connue",data->previsions.icon);
|
|
||||||
}
|
|
||||||
|
|
||||||
char buffer[80];
|
|
||||||
dtToString(data->datetime,buffer);
|
|
||||||
|
|
||||||
lv_label_set_text(datefld, buffer);
|
|
||||||
lv_label_set_text(lv_obj_get_child(desc_icon, 1), data->previsions.desc);
|
|
||||||
lv_label_set_text_fmt(lv_obj_get_child(temps, 0), "%.1f°C", data->previsions.max);
|
|
||||||
lv_label_set_text_fmt(lv_obj_get_child(temps, 1), "%.1f°C", data->previsions.min);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct weatherDay_fragment_t
|
|
||||||
{
|
|
||||||
/* IMPORTANT: don't miss this part */
|
|
||||||
lv_fragment_t base;
|
|
||||||
/* States, object references and data fields for this fragment */
|
|
||||||
int dayNr;
|
|
||||||
bool showTitle;
|
|
||||||
const char *title;
|
|
||||||
float minTemp;
|
|
||||||
float maxTemp;
|
|
||||||
};
|
|
||||||
static void weatherDay_fragment_ctor(lv_fragment_t *self, void * args)
|
|
||||||
{
|
|
||||||
int dayNo = ((int *)args)[0];
|
|
||||||
bool showDate = ((int*)args)[1];
|
|
||||||
((struct weatherDay_fragment_t *)self)->dayNr = dayNo;
|
|
||||||
((struct weatherDay_fragment_t *)self)->showTitle = showDate;
|
|
||||||
ESP_LOGI(TAG, "Fragment initialisé avec le jour n°%d - Afficher la date %d",dayNo, showDate);
|
|
||||||
}
|
|
||||||
177
main/lv_theme_domotic.c
Normal file
177
main/lv_theme_domotic.c
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
/**
|
||||||
|
* @file lv_theme_simple.c
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LV_USE_THEME_SIMPLE_DOMOTIC 1
|
||||||
|
/*********************
|
||||||
|
* INCLUDES
|
||||||
|
*********************/
|
||||||
|
#if LV_USE_THEME_SIMPLE_DOMOTIC
|
||||||
|
#include "lv_theme_domotic.h"
|
||||||
|
#include "esp_lvgl_port.h"
|
||||||
|
/*********************
|
||||||
|
* DEFINES
|
||||||
|
*********************/
|
||||||
|
LV_FONT_DECLARE(montserrat_medium_12)
|
||||||
|
LV_FONT_DECLARE(montserrat_medium_18)
|
||||||
|
LV_FONT_DECLARE(montserrat_medium_24)
|
||||||
|
|
||||||
|
|
||||||
|
struct _my_theme_t;
|
||||||
|
typedef struct _my_theme_t my_theme_t;
|
||||||
|
|
||||||
|
#define theme_def (*(my_theme_t **)(&LV_GLOBAL_DEFAULT()->theme_simple))
|
||||||
|
|
||||||
|
#define COLOR_SCR lv_palette_lighten(LV_PALETTE_GREY, 4)
|
||||||
|
#define COLOR_WHITE lv_color_white()
|
||||||
|
#define COLOR_LIGHT lv_palette_lighten(LV_PALETTE_GREY, 2)
|
||||||
|
#define COLOR_DARK lv_palette_main(LV_PALETTE_GREY)
|
||||||
|
#define COLOR_DIM lv_palette_darken(LV_PALETTE_GREY, 2)
|
||||||
|
#define SCROLLBAR_WIDTH 2
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
* TYPEDEFS
|
||||||
|
**********************/
|
||||||
|
typedef struct {
|
||||||
|
lv_style_t scr;
|
||||||
|
lv_style_t transp;
|
||||||
|
lv_style_t white;
|
||||||
|
lv_style_t light;
|
||||||
|
lv_style_t dark;
|
||||||
|
lv_style_t dim;
|
||||||
|
lv_style_t scrollbar;
|
||||||
|
#if LV_USE_ARC
|
||||||
|
lv_style_t arc_line;
|
||||||
|
lv_style_t arc_knob;
|
||||||
|
#endif
|
||||||
|
#if LV_USE_TEXTAREA
|
||||||
|
lv_style_t ta_cursor;
|
||||||
|
#endif
|
||||||
|
} my_theme_styles_t;
|
||||||
|
|
||||||
|
struct _my_theme_t {
|
||||||
|
lv_theme_t base;
|
||||||
|
my_theme_styles_t styles;
|
||||||
|
bool inited;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
* STATIC PROTOTYPES
|
||||||
|
**********************/
|
||||||
|
static void style_init_reset(lv_style_t * style);
|
||||||
|
static void theme_apply(lv_theme_t * th, lv_obj_t * obj);
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
* STATIC VARIABLES
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
* MACROS
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
* STATIC FUNCTIONS
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
static void style_init(my_theme_t * theme)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
* GLOBAL FUNCTIONS
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
bool lv_theme_domotic_is_inited(void)
|
||||||
|
{
|
||||||
|
my_theme_t * theme = theme_def;
|
||||||
|
if(theme == NULL) return false;
|
||||||
|
return theme->inited;
|
||||||
|
}
|
||||||
|
|
||||||
|
lv_theme_t * lv_theme_domotic_get(void)
|
||||||
|
{
|
||||||
|
if(!lv_theme_domotic_is_inited()) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (lv_theme_t *)theme_def;
|
||||||
|
}
|
||||||
|
|
||||||
|
void lv_theme_domotic_deinit(void)
|
||||||
|
{
|
||||||
|
my_theme_t * theme = theme_def;
|
||||||
|
if(theme) {
|
||||||
|
if(theme->inited) {
|
||||||
|
lv_style_t * theme_styles = (lv_style_t *)(&(theme->styles));
|
||||||
|
uint32_t i;
|
||||||
|
for(i = 0; i < sizeof(my_theme_styles_t) / sizeof(lv_style_t); i++) {
|
||||||
|
lv_style_reset(theme_styles + i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lv_free(theme_def);
|
||||||
|
theme_def = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lv_theme_t * lv_theme_domotic_init(lv_display_t * disp)
|
||||||
|
{
|
||||||
|
/*This trick is required only to avoid the garbage collection of
|
||||||
|
*styles' data if LVGL is used in a binding (e.g. MicroPython)
|
||||||
|
*In a general case styles could be in simple `static lv_style_t my_style...` variables*/
|
||||||
|
if(!lv_theme_domotic_is_inited()) {
|
||||||
|
theme_def = lv_malloc_zeroed(sizeof(my_theme_t));
|
||||||
|
}
|
||||||
|
|
||||||
|
my_theme_t * theme = theme_def;
|
||||||
|
|
||||||
|
theme->base.disp = disp;
|
||||||
|
theme->base.font_small = &montserrat_medium_12;
|
||||||
|
theme->base.font_normal = &montserrat_medium_18;
|
||||||
|
theme->base.font_large = &montserrat_medium_24;
|
||||||
|
theme->base.apply_cb = theme_apply;
|
||||||
|
|
||||||
|
lv_theme_t * th_act = lv_display_get_theme(NULL);
|
||||||
|
lv_theme_set_parent((lv_theme_t *)theme, th_act);
|
||||||
|
|
||||||
|
style_init(theme);
|
||||||
|
|
||||||
|
if(disp == NULL || lv_display_get_theme(disp) == (lv_theme_t *)theme) {
|
||||||
|
lv_obj_report_style_change(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
theme->inited = true;
|
||||||
|
|
||||||
|
return (lv_theme_t *)theme_def;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void theme_apply(lv_theme_t * th, lv_obj_t * obj)
|
||||||
|
{
|
||||||
|
LV_UNUSED(th);
|
||||||
|
|
||||||
|
my_theme_t * theme = theme_def;
|
||||||
|
lv_obj_t * parent = lv_obj_get_parent(obj);
|
||||||
|
|
||||||
|
if(parent == NULL) {
|
||||||
|
lv_obj_add_style(obj, &theme->styles.scr, 0);
|
||||||
|
lv_obj_add_style(obj, &theme->styles.scrollbar, LV_PART_SCROLLBAR);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
* STATIC FUNCTIONS
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
static void style_init_reset(lv_style_t * style)
|
||||||
|
{
|
||||||
|
if(lv_theme_simple_is_inited()) {
|
||||||
|
lv_style_reset(style);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lv_style_init(style);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
62
main/lv_theme_domotic.h
Normal file
62
main/lv_theme_domotic.h
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/**
|
||||||
|
* @file lv_theme_domotic.h
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef LV_THEME_domotic_DOMOTIC_H
|
||||||
|
#define LV_THEME_domotic_DOMOTIC_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*********************
|
||||||
|
* INCLUDES
|
||||||
|
*********************/
|
||||||
|
#include "esp_lvgl_port.h"
|
||||||
|
|
||||||
|
/*********************
|
||||||
|
* DEFINES
|
||||||
|
*********************/
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
* TYPEDEFS
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
* GLOBAL PROTOTYPES
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize the theme
|
||||||
|
* @param disp pointer to display to attach the theme
|
||||||
|
* @return a pointer to reference this theme later
|
||||||
|
*/
|
||||||
|
lv_theme_t * lv_theme_domotic_init(lv_display_t * disp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the theme is initialized
|
||||||
|
* @return true if default theme is initialized, false otherwise
|
||||||
|
*/
|
||||||
|
bool lv_theme_domotic_is_inited(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get domotic theme
|
||||||
|
* @return a pointer to domotic theme, or NULL if this is not initialized
|
||||||
|
*/
|
||||||
|
lv_theme_t * lv_theme_domotic_get(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deinitialize the domotic theme
|
||||||
|
*/
|
||||||
|
void lv_theme_domotic_deinit(void);
|
||||||
|
|
||||||
|
/**********************
|
||||||
|
* MACROS
|
||||||
|
**********************/
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /*extern "C"*/
|
||||||
|
#endif
|
||||||
1084
main/main.c
1084
main/main.c
File diff suppressed because it is too large
Load Diff
11
main/main.h
11
main/main.h
@ -1,13 +1,2 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "mqtt_client.h"
|
#include "mqtt_client.h"
|
||||||
static void showMeteoIcon(const char *icon, lv_obj_t *desc_icon, int childNr);
|
|
||||||
|
|
||||||
static void draw_tabVolets();
|
|
||||||
|
|
||||||
static void draw_tabMeteo();
|
|
||||||
|
|
||||||
static void tabChgEvt(lv_event_t *event);
|
|
||||||
|
|
||||||
static void draw_tabCuve();
|
|
||||||
static void draw_tabHome();
|
|
||||||
static void draw_tabSettings();
|
|
||||||
|
|||||||
75
sdkconfig
75
sdkconfig
@ -2562,7 +2562,7 @@ CONFIG_LV_DRAW_SW_DRAW_UNIT_CNT=1
|
|||||||
# CONFIG_LV_USE_DRAW_ARM2D_SYNC is not set
|
# CONFIG_LV_USE_DRAW_ARM2D_SYNC is not set
|
||||||
# CONFIG_LV_USE_NATIVE_HELIUM_ASM is not set
|
# CONFIG_LV_USE_NATIVE_HELIUM_ASM is not set
|
||||||
CONFIG_LV_DRAW_SW_COMPLEX=y
|
CONFIG_LV_DRAW_SW_COMPLEX=y
|
||||||
# CONFIG_LV_USE_DRAW_SW_COMPLEX_GRADIENTS is not set
|
CONFIG_LV_USE_DRAW_SW_COMPLEX_GRADIENTS=y
|
||||||
CONFIG_LV_DRAW_SW_SHADOW_CACHE_SIZE=0
|
CONFIG_LV_DRAW_SW_SHADOW_CACHE_SIZE=0
|
||||||
CONFIG_LV_DRAW_SW_CIRCLE_CACHE_SIZE=4
|
CONFIG_LV_DRAW_SW_CIRCLE_CACHE_SIZE=4
|
||||||
CONFIG_LV_DRAW_SW_ASM_NONE=y
|
CONFIG_LV_DRAW_SW_ASM_NONE=y
|
||||||
@ -2632,7 +2632,7 @@ CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h"
|
|||||||
# CONFIG_LV_ENABLE_GLOBAL_CUSTOM is not set
|
# CONFIG_LV_ENABLE_GLOBAL_CUSTOM is not set
|
||||||
CONFIG_LV_CACHE_DEF_SIZE=0
|
CONFIG_LV_CACHE_DEF_SIZE=0
|
||||||
CONFIG_LV_IMAGE_HEADER_CACHE_DEF_CNT=0
|
CONFIG_LV_IMAGE_HEADER_CACHE_DEF_CNT=0
|
||||||
CONFIG_LV_GRADIENT_MAX_STOPS=2
|
CONFIG_LV_GRADIENT_MAX_STOPS=50
|
||||||
CONFIG_LV_COLOR_MIX_ROUND_OFS=128
|
CONFIG_LV_COLOR_MIX_ROUND_OFS=128
|
||||||
# CONFIG_LV_OBJ_STYLE_CACHE is not set
|
# CONFIG_LV_OBJ_STYLE_CACHE is not set
|
||||||
# CONFIG_LV_USE_OBJ_ID is not set
|
# CONFIG_LV_USE_OBJ_ID is not set
|
||||||
@ -2648,7 +2648,7 @@ CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE=1
|
|||||||
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
|
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
|
||||||
# CONFIG_LV_USE_FLOAT is not set
|
# CONFIG_LV_USE_FLOAT is not set
|
||||||
# CONFIG_LV_USE_MATRIX is not set
|
# CONFIG_LV_USE_MATRIX is not set
|
||||||
# CONFIG_LV_USE_PRIVATE_API is not set
|
CONFIG_LV_USE_PRIVATE_API=y
|
||||||
# end of Compiler Settings
|
# end of Compiler Settings
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -2658,27 +2658,27 @@ CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
|
|||||||
#
|
#
|
||||||
# Enable built-in fonts
|
# Enable built-in fonts
|
||||||
#
|
#
|
||||||
CONFIG_LV_FONT_MONTSERRAT_8=y
|
# CONFIG_LV_FONT_MONTSERRAT_8 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_10=y
|
# CONFIG_LV_FONT_MONTSERRAT_10 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_12=y
|
CONFIG_LV_FONT_MONTSERRAT_12=y
|
||||||
CONFIG_LV_FONT_MONTSERRAT_14=y
|
CONFIG_LV_FONT_MONTSERRAT_14=y
|
||||||
CONFIG_LV_FONT_MONTSERRAT_16=y
|
CONFIG_LV_FONT_MONTSERRAT_16=y
|
||||||
CONFIG_LV_FONT_MONTSERRAT_18=y
|
CONFIG_LV_FONT_MONTSERRAT_18=y
|
||||||
CONFIG_LV_FONT_MONTSERRAT_20=y
|
CONFIG_LV_FONT_MONTSERRAT_20=y
|
||||||
CONFIG_LV_FONT_MONTSERRAT_22=y
|
CONFIG_LV_FONT_MONTSERRAT_22=y
|
||||||
CONFIG_LV_FONT_MONTSERRAT_24=y
|
# CONFIG_LV_FONT_MONTSERRAT_24 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_26=y
|
# CONFIG_LV_FONT_MONTSERRAT_26 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_28=y
|
# CONFIG_LV_FONT_MONTSERRAT_28 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_30=y
|
# CONFIG_LV_FONT_MONTSERRAT_30 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_32=y
|
# CONFIG_LV_FONT_MONTSERRAT_32 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_34=y
|
# CONFIG_LV_FONT_MONTSERRAT_34 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_36=y
|
# CONFIG_LV_FONT_MONTSERRAT_36 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_38=y
|
# CONFIG_LV_FONT_MONTSERRAT_38 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_40=y
|
CONFIG_LV_FONT_MONTSERRAT_40=y
|
||||||
CONFIG_LV_FONT_MONTSERRAT_42=y
|
# CONFIG_LV_FONT_MONTSERRAT_42 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_44=y
|
# CONFIG_LV_FONT_MONTSERRAT_44 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_46=y
|
# CONFIG_LV_FONT_MONTSERRAT_46 is not set
|
||||||
CONFIG_LV_FONT_MONTSERRAT_48=y
|
# CONFIG_LV_FONT_MONTSERRAT_48 is not set
|
||||||
# CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED is not set
|
# CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED is not set
|
||||||
# CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set
|
# CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set
|
||||||
# CONFIG_LV_FONT_SIMSUN_14_CJK is not set
|
# CONFIG_LV_FONT_SIMSUN_14_CJK is not set
|
||||||
@ -2734,46 +2734,41 @@ CONFIG_LV_TXT_LINE_BREAK_LONG_LEN=0
|
|||||||
# Widget Usage
|
# Widget Usage
|
||||||
#
|
#
|
||||||
CONFIG_LV_WIDGETS_HAS_DEFAULT_VALUE=y
|
CONFIG_LV_WIDGETS_HAS_DEFAULT_VALUE=y
|
||||||
CONFIG_LV_USE_ANIMIMG=y
|
# CONFIG_LV_USE_ANIMIMG is not set
|
||||||
CONFIG_LV_USE_ARC=y
|
# CONFIG_LV_USE_ARC is not set
|
||||||
CONFIG_LV_USE_BAR=y
|
CONFIG_LV_USE_BAR=y
|
||||||
CONFIG_LV_USE_BUTTON=y
|
CONFIG_LV_USE_BUTTON=y
|
||||||
CONFIG_LV_USE_BUTTONMATRIX=y
|
CONFIG_LV_USE_BUTTONMATRIX=y
|
||||||
CONFIG_LV_USE_CALENDAR=y
|
# CONFIG_LV_USE_CALENDAR is not set
|
||||||
# CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY is not set
|
|
||||||
CONFIG_LV_USE_CALENDAR_HEADER_ARROW=y
|
|
||||||
CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN=y
|
|
||||||
# CONFIG_LV_USE_CALENDAR_CHINESE is not set
|
|
||||||
CONFIG_LV_USE_CANVAS=y
|
CONFIG_LV_USE_CANVAS=y
|
||||||
CONFIG_LV_USE_CHART=y
|
CONFIG_LV_USE_CHART=y
|
||||||
CONFIG_LV_USE_CHECKBOX=y
|
CONFIG_LV_USE_CHECKBOX=y
|
||||||
CONFIG_LV_USE_DROPDOWN=y
|
# CONFIG_LV_USE_DROPDOWN is not set
|
||||||
CONFIG_LV_USE_IMAGE=y
|
CONFIG_LV_USE_IMAGE=y
|
||||||
CONFIG_LV_USE_IMAGEBUTTON=y
|
CONFIG_LV_USE_IMAGEBUTTON=y
|
||||||
CONFIG_LV_USE_KEYBOARD=y
|
# CONFIG_LV_USE_KEYBOARD is not set
|
||||||
CONFIG_LV_USE_LABEL=y
|
CONFIG_LV_USE_LABEL=y
|
||||||
CONFIG_LV_LABEL_TEXT_SELECTION=y
|
CONFIG_LV_LABEL_TEXT_SELECTION=y
|
||||||
CONFIG_LV_LABEL_LONG_TXT_HINT=y
|
CONFIG_LV_LABEL_LONG_TXT_HINT=y
|
||||||
CONFIG_LV_LABEL_WAIT_CHAR_COUNT=3
|
CONFIG_LV_LABEL_WAIT_CHAR_COUNT=3
|
||||||
CONFIG_LV_USE_LED=y
|
# CONFIG_LV_USE_LED is not set
|
||||||
CONFIG_LV_USE_LINE=y
|
# CONFIG_LV_USE_LINE is not set
|
||||||
CONFIG_LV_USE_LIST=y
|
# CONFIG_LV_USE_LIST is not set
|
||||||
CONFIG_LV_USE_MENU=y
|
# CONFIG_LV_USE_MENU is not set
|
||||||
CONFIG_LV_USE_MSGBOX=y
|
# CONFIG_LV_USE_MSGBOX is not set
|
||||||
CONFIG_LV_USE_ROLLER=y
|
CONFIG_LV_USE_ROLLER=y
|
||||||
CONFIG_LV_USE_SCALE=y
|
# CONFIG_LV_USE_SCALE is not set
|
||||||
CONFIG_LV_USE_SLIDER=y
|
CONFIG_LV_USE_SLIDER=y
|
||||||
CONFIG_LV_USE_SPAN=y
|
# CONFIG_LV_USE_SPAN is not set
|
||||||
CONFIG_LV_SPAN_SNIPPET_STACK_SIZE=64
|
# CONFIG_LV_USE_SPINBOX is not set
|
||||||
CONFIG_LV_USE_SPINBOX=y
|
# CONFIG_LV_USE_SPINNER is not set
|
||||||
CONFIG_LV_USE_SPINNER=y
|
|
||||||
CONFIG_LV_USE_SWITCH=y
|
CONFIG_LV_USE_SWITCH=y
|
||||||
CONFIG_LV_USE_TEXTAREA=y
|
CONFIG_LV_USE_TEXTAREA=y
|
||||||
CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME=1500
|
CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME=1500
|
||||||
CONFIG_LV_USE_TABLE=y
|
# CONFIG_LV_USE_TABLE is not set
|
||||||
CONFIG_LV_USE_TABVIEW=y
|
CONFIG_LV_USE_TABVIEW=y
|
||||||
CONFIG_LV_USE_TILEVIEW=y
|
# CONFIG_LV_USE_TILEVIEW is not set
|
||||||
CONFIG_LV_USE_WIN=y
|
# CONFIG_LV_USE_WIN is not set
|
||||||
# end of Widget Usage
|
# end of Widget Usage
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -2867,7 +2862,7 @@ CONFIG_LV_USE_OBSERVER=y
|
|||||||
#
|
#
|
||||||
# Examples
|
# Examples
|
||||||
#
|
#
|
||||||
CONFIG_LV_BUILD_EXAMPLES=y
|
# CONFIG_LV_BUILD_EXAMPLES is not set
|
||||||
# end of Examples
|
# end of Examples
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user