1ere implem queue IHM
This commit is contained in:
parent
d0e336a4ee
commit
38530b799c
@ -330,7 +330,7 @@ static void http_request_task(void* domotic_event_group)
|
|||||||
// Waiting until either the connection is established (WIFI_CONNECTED_BIT).
|
// Waiting until either the connection is established (WIFI_CONNECTED_BIT).
|
||||||
EventBits_t bits = xEventGroupWaitBits(domotic_event_group,
|
EventBits_t bits = xEventGroupWaitBits(domotic_event_group,
|
||||||
BIT0,
|
BIT0,
|
||||||
pdTRUE,
|
pdFALSE,
|
||||||
pdFALSE,
|
pdFALSE,
|
||||||
portMAX_DELAY);
|
portMAX_DELAY);
|
||||||
if (bits & BIT0){
|
if (bits & BIT0){
|
||||||
|
|||||||
@ -126,7 +126,7 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void mqtt_app_start(mqtt_callback callback)
|
void mqtt_app_start(mqtt_callback callback, EventGroupHandle_t domotic_event_group)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
@ -169,8 +169,18 @@ void mqtt_app_start(mqtt_callback callback)
|
|||||||
client = esp_mqtt_client_init(&mqtt_cfg);
|
client = esp_mqtt_client_init(&mqtt_cfg);
|
||||||
/* The last argument may be used to pass data to the event handler, in this example mqtt_event_handler */
|
/* The last argument may be used to pass data to the event handler, in this example mqtt_event_handler */
|
||||||
esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, NULL);
|
esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, NULL);
|
||||||
|
// Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum
|
||||||
|
// number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above)
|
||||||
|
EventBits_t bits = xEventGroupWaitBits(domotic_event_group,
|
||||||
|
BIT0,
|
||||||
|
pdFALSE,
|
||||||
|
pdFALSE,
|
||||||
|
portMAX_DELAY);
|
||||||
|
if (bits & BIT0)
|
||||||
|
{
|
||||||
esp_mqtt_client_start(client);
|
esp_mqtt_client_start(client);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* FreeRTOS event group to signal when we are connected*/
|
/* FreeRTOS event group to signal when we are connected*/
|
||||||
|
|||||||
78
main/ihm.c
78
main/ihm.c
@ -37,7 +37,85 @@ char dateHeureStr[30];
|
|||||||
|
|
||||||
static lv_style_t no_padding;
|
static lv_style_t no_padding;
|
||||||
static const char *TAG = "IHM";
|
static const char *TAG = "IHM";
|
||||||
|
static lv_subject_t wifiStatus;
|
||||||
|
|
||||||
|
LV_IMAGE_DECLARE(wifi_ok);
|
||||||
|
LV_IMAGE_DECLARE(wifi_ko);
|
||||||
|
|
||||||
|
|
||||||
|
static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject)
|
||||||
|
{
|
||||||
|
ESP_LOGE(TAG, "On passe dans le callback de chgt de statut; %li", lv_subject_get_int(subject));
|
||||||
|
bsp_display_lock(0);
|
||||||
|
if(lv_layer_top()!=NULL && lv_obj_get_child_cnt(lv_layer_top())){
|
||||||
|
lv_obj_t * wifiSt = lv_obj_get_child(lv_obj_get_child(lv_layer_top(), 0),2);
|
||||||
|
if(lv_obj_check_type(wifiSt, &lv_image_class)){
|
||||||
|
switch (lv_subject_get_int(subject))
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
lv_image_set_src(wifiSt,&wifi_ko);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
lv_image_set_src(wifiSt,&wifi_ok);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
ESP_LOGE(TAG, "L'objet recuip en semble pas etre du bon type");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
ESP_LOGI(TAG,"Pour le moment l'icone de statut n'existe pas");
|
||||||
|
}
|
||||||
|
|
||||||
|
bsp_display_unlock();
|
||||||
|
//int32_t prev_v = lv_subject_get_previous_int(subject);
|
||||||
|
//int32_t cur_v = lv_subject_get_int(subject);
|
||||||
|
|
||||||
|
//lv_obj_t * btn = lv_observer_get_target(observer);
|
||||||
|
}
|
||||||
|
|
||||||
|
void drawIhm(void *xIHMEventQueue){
|
||||||
|
|
||||||
|
init_display();
|
||||||
|
|
||||||
|
lv_subject_init_int(&wifiStatus,0);
|
||||||
|
lv_subject_add_observer_obj(&wifiStatus, wifiStatus_obs_cb, NULL, NULL);
|
||||||
|
|
||||||
|
display_lock("app_main");
|
||||||
|
app_main_display();
|
||||||
|
display_unlock("app_main");
|
||||||
|
// Show LVGL objects
|
||||||
|
if(display_lock("draw_ihm")){
|
||||||
|
draw_ihm();
|
||||||
|
display_unlock("draw_ihm");
|
||||||
|
}else{
|
||||||
|
ESP_LOGE(TAG,"Impossible d'obtenir le mutex pour draw_ihm");
|
||||||
|
}
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
xIPStackEvent_t xReceivedEvent;
|
||||||
|
// On cree une queue qui va permettre de recevoir les informations a afficher
|
||||||
|
xQueueReceive(xIHMEventQueue,&xReceivedEvent, portMAX_DELAY );
|
||||||
|
switch (xReceivedEvent.eEventType)
|
||||||
|
{
|
||||||
|
case IHM_EVT_WIFI_STATUS:
|
||||||
|
ESP_LOGE(TAG, "On a recu un evt wifi");
|
||||||
|
lv_subject_set_int(&wifiStatus, (int)xReceivedEvent.pvData);
|
||||||
|
break;
|
||||||
|
case IHM_EVT_TIME_SETTED:
|
||||||
|
ESP_LOGE(TAG, "On a recu un evt timesetted");
|
||||||
|
draw_time(xReceivedEvent.pvData);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ESP_LOGE(TAG, "Evt inconnu");
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
vTaskDelay(5/portTICK_PERIOD_MS);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void draw_time(char* dateHeure){
|
void draw_time(char* dateHeure){
|
||||||
|
|||||||
14
main/ihm.h
14
main/ihm.h
@ -30,3 +30,17 @@ void tabChgEvt(lv_event_t *event);
|
|||||||
void draw_tabCuve(lv_obj_t * parent);
|
void draw_tabCuve(lv_obj_t * parent);
|
||||||
void draw_tabHome(lv_obj_t * parent);
|
void draw_tabHome(lv_obj_t * parent);
|
||||||
void draw_tabSettings(lv_obj_t * parent);
|
void draw_tabSettings(lv_obj_t * parent);
|
||||||
|
|
||||||
|
typedef enum eIHMEvent_t{
|
||||||
|
IHM_EVT_WIFI_STATUS,
|
||||||
|
IHM_EVT_TIME_SETTED
|
||||||
|
} eIHMEvent_t;
|
||||||
|
|
||||||
|
typedef struct IP_TASK_COMMANDS
|
||||||
|
{
|
||||||
|
eIHMEvent_t eEventType; /* Tells the receiving task what the event is. */
|
||||||
|
void *pvData; /* Holds or points to any data associated with the event. */
|
||||||
|
} xIPStackEvent_t;
|
||||||
|
|
||||||
|
|
||||||
|
void drawIhm(void *pvParameter);
|
||||||
|
|||||||
@ -15,7 +15,7 @@ typedef enum mqtt_evt{
|
|||||||
typedef void (*wifi_callback)(wifi_evt evt);
|
typedef void (*wifi_callback)(wifi_evt evt);
|
||||||
typedef void (*mqtt_callback)(mqtt_evt evt, esp_mqtt_event_handle_t evt_data);
|
typedef void (*mqtt_callback)(mqtt_evt evt, esp_mqtt_event_handle_t evt_data);
|
||||||
void wifi_init_sta(wifi_callback cb);
|
void wifi_init_sta(wifi_callback cb);
|
||||||
void mqtt_app_start(mqtt_callback cb);
|
void mqtt_app_start(mqtt_callback cb, EventGroupHandle_t evtGroup);
|
||||||
|
|
||||||
|
|
||||||
#define topicTempExt "house/temp/282A802600008059"
|
#define topicTempExt "house/temp/282A802600008059"
|
||||||
|
|||||||
146
main/main.c
146
main/main.c
@ -46,47 +46,18 @@ static const char *TAG = "domoTic";
|
|||||||
|
|
||||||
extern esp_mqtt_client_handle_t client;
|
extern esp_mqtt_client_handle_t client;
|
||||||
|
|
||||||
typedef enum domo_events{
|
|
||||||
EVT_WIFI_CONNECTED,
|
|
||||||
EVT_TIME_SETTED
|
|
||||||
} domo_events;
|
|
||||||
|
|
||||||
static EventGroupHandle_t hevt;
|
|
||||||
#define WIFI_RDY 0b0001
|
#define WIFI_RDY 0b0001
|
||||||
|
|
||||||
static lv_subject_t wifiStatus;
|
|
||||||
LV_IMAGE_DECLARE(wifi_ok);
|
EventGroupHandle_t domotic_event_group;
|
||||||
LV_IMAGE_DECLARE(wifi_ko);
|
QueueHandle_t ihm_queue;
|
||||||
|
|
||||||
static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject);
|
static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject);
|
||||||
|
|
||||||
|
|
||||||
static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject)
|
|
||||||
{
|
|
||||||
ESP_LOGE(TAG, "On passe dans le callback de chgt de statut; %li", lv_subject_get_int(subject));
|
|
||||||
bsp_display_lock(0);
|
|
||||||
lv_obj_t * wifiSt = lv_obj_get_child(lv_obj_get_child(lv_layer_top(), 0),2);
|
|
||||||
if(lv_obj_check_type(wifiSt, &lv_image_class)){
|
|
||||||
switch (lv_subject_get_int(subject))
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
lv_image_set_src(wifiSt,&wifi_ko);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
lv_image_set_src(wifiSt,&wifi_ok);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
ESP_LOGE(TAG, "L'objet recuip en semble pas etre du bon type");
|
|
||||||
}
|
|
||||||
bsp_display_unlock();
|
|
||||||
//int32_t prev_v = lv_subject_get_previous_int(subject);
|
|
||||||
//int32_t cur_v = lv_subject_get_int(subject);
|
|
||||||
|
|
||||||
//lv_obj_t * btn = lv_observer_get_target(observer);
|
|
||||||
}
|
|
||||||
lv_subject_t mqttStatus;
|
lv_subject_t mqttStatus;
|
||||||
|
|
||||||
extern lv_subject_t tempIntSubj;
|
extern lv_subject_t tempIntSubj;
|
||||||
@ -186,22 +157,27 @@ void mqtt_cb(mqtt_evt evt, esp_mqtt_event_handle_t event){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EventGroupHandle_t domotic_event_group;
|
|
||||||
|
|
||||||
void send_event(domo_events evt){
|
void send_event(domo_events evt, void* pDatas){
|
||||||
ESP_LOGE(TAG,"On est dans l'event handler %i", evt);
|
ESP_LOGE(TAG,"On est dans l'event handler %i", evt);
|
||||||
switch(evt){
|
switch(evt){
|
||||||
case EVT_WIFI_CONNECTED:
|
case EVT_WIFI_CONNECTED:
|
||||||
xEventGroupSetBits(domotic_event_group, WIFI_CONNECTED_BIT);
|
xEventGroupSetBits(domotic_event_group, WIFI_CONNECTED_BIT);
|
||||||
ESP_LOGI(TAG, "connected to ap SSID");
|
ESP_LOGI(TAG, "connected to ap SSID");
|
||||||
if(lvgl_port_lock(0)){
|
xIPStackEvent_t evt = {
|
||||||
ESP_LOGE(TAG,"Statut Wifi 1");
|
.eEventType = IHM_EVT_WIFI_STATUS,
|
||||||
lv_subject_set_int(&wifiStatus,1);
|
.pvData = (void *)true
|
||||||
lvgl_port_unlock();
|
};
|
||||||
}
|
if(xQueueSendToFront( ihm_queue, ( void * ) &evt, ( TickType_t ) 10 ) != pdPASS){
|
||||||
|
ESP_LOGE(TAG, "La queue est pleine");
|
||||||
|
};
|
||||||
break;
|
break;
|
||||||
case EVT_TIME_SETTED:
|
case EVT_TIME_SETTED:
|
||||||
|
xIPStackEvent_t m = {
|
||||||
|
.eEventType = IHM_EVT_TIME_SETTED,
|
||||||
|
.pvData = pDatas
|
||||||
|
};
|
||||||
|
xQueueSendToFront(ihm_queue,&m,5);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -402,35 +378,19 @@ void wifi_cb(wifi_evt evt){
|
|||||||
switch(evt){
|
switch(evt){
|
||||||
case WIFI_CONNECTED:
|
case WIFI_CONNECTED:
|
||||||
mainState.wifi_init=true;
|
mainState.wifi_init=true;
|
||||||
send_event(WIFI_CONNECTED);
|
send_event(WIFI_CONNECTED,NULL);
|
||||||
break;
|
break;
|
||||||
case WIFI_DISCONNECTED:
|
case WIFI_DISCONNECTED:
|
||||||
if(lvgl_port_lock(0)){
|
mainState.wifi_init=true;
|
||||||
ESP_LOGE(TAG,"Statut Wifi 0");
|
send_event(WIFI_DISCONNECTED,NULL);
|
||||||
lv_subject_set_int(&wifiStatus,0);
|
|
||||||
lvgl_port_unlock();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case WIFI_GOT_IP:
|
case WIFI_GOT_IP:
|
||||||
if(lvgl_port_lock(0)){
|
mainState.wifi_init=true;
|
||||||
ESP_LOGE(TAG,"Statut Wifi 1");
|
send_event(WIFI_CONNECTED,NULL);
|
||||||
lv_subject_set_int(&wifiStatus,1);
|
|
||||||
lvgl_port_unlock();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case WIFI_CONNECT_FAIL:
|
case WIFI_CONNECT_FAIL:
|
||||||
if(lvgl_port_lock(0)){
|
|
||||||
ESP_LOGE(TAG,"Statut Wifi 0");
|
|
||||||
lv_subject_set_int(&wifiStatus,0);
|
|
||||||
lvgl_port_unlock();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if(lvgl_port_lock(0)){
|
|
||||||
ESP_LOGE(TAG,"Statut Wifi 0");
|
|
||||||
lv_subject_set_int(&wifiStatus,0);
|
|
||||||
lvgl_port_unlock();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -541,37 +501,14 @@ void app_main(void)
|
|||||||
{
|
{
|
||||||
|
|
||||||
domotic_event_group = xEventGroupCreate();
|
domotic_event_group = xEventGroupCreate();
|
||||||
printf("Minimum free heap size: %" PRIu32 " bytes\n", esp_get_minimum_free_heap_size());
|
ihm_queue = xQueueCreate(10,sizeof(xIPStackEvent_t));
|
||||||
printf("Free heap size: %" PRIu32 " bytes\n", esp_get_free_heap_size());
|
|
||||||
heap_caps_print_heap_info(MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT);
|
|
||||||
heap_caps_register_failed_alloc_callback(alloc_fail);
|
|
||||||
|
|
||||||
printf("1- Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
|
|
||||||
esp_log_level_set("wifi", ESP_LOG_ERROR);
|
esp_log_level_set("wifi", ESP_LOG_ERROR);
|
||||||
esp_log_level_set(TAG, ESP_LOG_VERBOSE);
|
esp_log_level_set(TAG, ESP_LOG_VERBOSE);
|
||||||
|
|
||||||
printf("2- Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
|
|
||||||
//mount_sd_card();
|
//mount_sd_card();
|
||||||
bsp_sdcard_mount();
|
bsp_sdcard_mount();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//lv_log_register_print_cb(log_cb);
|
|
||||||
// LCD HW initialization
|
|
||||||
//ESP_ERROR_CHECK(app_lcd_init());
|
|
||||||
|
|
||||||
printf("4 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
// Touch initialization
|
|
||||||
//ESP_ERROR_CHECK(app_touch_init());
|
|
||||||
|
|
||||||
printf("5 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
// LVGL initialization
|
|
||||||
//ESP_ERROR_CHECK(app_lvgl_init());
|
|
||||||
|
|
||||||
printf("6 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
|
|
||||||
ESP_LOGI(TAG, "Initializing LittleFS");
|
ESP_LOGI(TAG, "Initializing LittleFS");
|
||||||
|
|
||||||
esp_vfs_littlefs_conf_t conflfs = {
|
esp_vfs_littlefs_conf_t conflfs = {
|
||||||
@ -608,12 +545,8 @@ void app_main(void)
|
|||||||
|
|
||||||
// On affiche au plus tot l'ecran de démarrage
|
// On affiche au plus tot l'ecran de démarrage
|
||||||
// ESP_ERROR_CHECK(esp_lcd_panel_mirror(lcd_panel,true,true));
|
// ESP_ERROR_CHECK(esp_lcd_panel_mirror(lcd_panel,true,true));
|
||||||
init_display();
|
xTaskCreatePinnedToCore(&drawIhm,"ihm_task",10000,ihm_queue,10,NULL,0);
|
||||||
display_lock("app_main");
|
|
||||||
app_main_display();
|
|
||||||
display_unlock("app_main");
|
|
||||||
|
|
||||||
printf("7 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
// Initialize NVS
|
// Initialize NVS
|
||||||
esp_err_t ret = nvs_flash_init();
|
esp_err_t ret = nvs_flash_init();
|
||||||
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND)
|
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND)
|
||||||
@ -623,11 +556,8 @@ void app_main(void)
|
|||||||
}
|
}
|
||||||
ESP_ERROR_CHECK(ret);
|
ESP_ERROR_CHECK(ret);
|
||||||
|
|
||||||
printf("8 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
ESP_LOGI(TAG, "ESP_WIFI_MODE_STA");
|
ESP_LOGI(TAG, "ESP_WIFI_MODE_STA");
|
||||||
|
|
||||||
lv_subject_init_int(&wifiStatus,0);
|
|
||||||
lv_subject_add_observer_obj(&wifiStatus, wifiStatus_obs_cb, NULL, NULL);
|
|
||||||
wifi_init_sta(wifi_cb);
|
wifi_init_sta(wifi_cb);
|
||||||
|
|
||||||
on_weather_data_retrieval(weather_data_retreived);
|
on_weather_data_retrieval(weather_data_retreived);
|
||||||
@ -650,38 +580,14 @@ void app_main(void)
|
|||||||
}
|
}
|
||||||
/* Tache updateTime - FIN*/
|
/* Tache updateTime - FIN*/
|
||||||
|
|
||||||
mqtt_app_start(mqtt_cb);
|
mqtt_app_start(mqtt_cb, domotic_event_group);
|
||||||
|
|
||||||
start_wifi_logger();
|
start_wifi_logger();
|
||||||
wifi_log_e("test", "%s %d %f", "hello world wifi logger", 43, 45.341223242); // write log over wifi with log level -> ERROR }
|
wifi_log_e("test", "%s %d %f", "hello world wifi logger", 43, 45.341223242); // write log over wifi with log level -> ERROR }
|
||||||
|
|
||||||
|
|
||||||
//esp_log_level_set("tcp_handler", ESP_LOG_NONE);
|
|
||||||
printf("8b - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
|
|
||||||
printf("9 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
|
|
||||||
|
|
||||||
printf("10. Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
heap_caps_print_heap_info(MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT);
|
|
||||||
|
|
||||||
|
|
||||||
printf("11. Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
|
|
||||||
printf("12. Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize());
|
|
||||||
// Show LVGL objects
|
|
||||||
if(display_lock("draw_ihm")){
|
|
||||||
draw_ihm();
|
|
||||||
display_unlock("draw_ihm");
|
|
||||||
}else{
|
|
||||||
ESP_LOGE(TAG,"Impossible d'obtenir le mutex pour draw_ihm");
|
|
||||||
}
|
|
||||||
|
|
||||||
lv_subject_init_int(&mqttStatus,-1);
|
lv_subject_init_int(&mqttStatus,-1);
|
||||||
lv_subject_add_observer_obj(&mqttStatus, mqttStatus_obs_cb, NULL, NULL);
|
lv_subject_add_observer_obj(&mqttStatus, mqttStatus_obs_cb, NULL, NULL);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Configuration de la sonde Temp/Humid.
|
// Configuration de la sonde Temp/Humid.
|
||||||
am2302_config_t am2302_config = {
|
am2302_config_t am2302_config = {
|
||||||
.gpio_num = AM2302_GPIO,
|
.gpio_num = AM2302_GPIO,
|
||||||
@ -690,8 +596,6 @@ void app_main(void)
|
|||||||
.clk_src = RMT_CLK_SRC_DEFAULT,
|
.clk_src = RMT_CLK_SRC_DEFAULT,
|
||||||
};
|
};
|
||||||
ESP_ERROR_CHECK(am2302_new_sensor_rmt(&am2302_config, &rmt_config, &sensor));
|
ESP_ERROR_CHECK(am2302_new_sensor_rmt(&am2302_config, &rmt_config, &sensor));
|
||||||
|
|
||||||
|
|
||||||
xTaskCreate(&readTempHumid, "read_temp_task", 8192, NULL, 5, NULL);
|
xTaskCreate(&readTempHumid, "read_temp_task", 8192, NULL, 5, NULL);
|
||||||
|
|
||||||
//xTaskCreate(&simple_ota_example_task, "ota_example_task", 8192, NULL, 5, NULL);
|
//xTaskCreate(&simple_ota_example_task, "ota_example_task", 8192, NULL, 5, NULL);
|
||||||
|
|||||||
@ -1,2 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#define WIFI_CONNECTED_BIT BIT0
|
#define WIFI_CONNECTED_BIT BIT0
|
||||||
|
typedef enum domo_events{
|
||||||
|
EVT_WIFI_CONNECTED,
|
||||||
|
EVT_TIME_SETTED
|
||||||
|
} domo_events;
|
||||||
|
void send_event(domo_events evt, void* pDatas);
|
||||||
|
|||||||
@ -25,7 +25,7 @@ void time_sync_notification_cb(struct timeval *tv)
|
|||||||
//strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);
|
//strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);
|
||||||
sprintf(strftime_buf, "%s %d %s %02d:%02d", days[timeinfo.tm_wday], timeinfo.tm_mday, months[timeinfo.tm_mon], timeinfo.tm_hour, timeinfo.tm_min);
|
sprintf(strftime_buf, "%s %d %s %02d:%02d", days[timeinfo.tm_wday], timeinfo.tm_mday, months[timeinfo.tm_mon], timeinfo.tm_hour, timeinfo.tm_min);
|
||||||
localtime_r(&now, &timeinfo);
|
localtime_r(&now, &timeinfo);
|
||||||
draw_time(strftime_buf);
|
send_event(EVT_TIME_SETTED,&strftime_buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
void obtain_time()
|
void obtain_time()
|
||||||
@ -63,12 +63,7 @@ void updateTime(void *pvParameter)
|
|||||||
struct tm timeinfo = {0};
|
struct tm timeinfo = {0};
|
||||||
localtime_r(&now, &timeinfo);
|
localtime_r(&now, &timeinfo);
|
||||||
sprintf(strftime_buf, "%s %d %s %02d:%02d", days[timeinfo.tm_wday], timeinfo.tm_mday, months[timeinfo.tm_mon], timeinfo.tm_hour, timeinfo.tm_min);
|
sprintf(strftime_buf, "%s %d %s %02d:%02d", days[timeinfo.tm_wday], timeinfo.tm_mday, months[timeinfo.tm_mon], timeinfo.tm_hour, timeinfo.tm_min);
|
||||||
draw_time(strftime_buf);
|
send_event(EVT_TIME_SETTED,&strftime_buf);
|
||||||
/*
|
|
||||||
lv_obj_refr_size(lv_obj_get_child(lv_obj_get_child(lv_layer_top(),0),0));
|
|
||||||
lv_obj_refr_size(lv_obj_get_child(lv_layer_top(),0));
|
|
||||||
lvgl_port_unlock();
|
|
||||||
}*/
|
|
||||||
vTaskDelay(60000 / portTICK_PERIOD_MS);
|
vTaskDelay(60000 / portTICK_PERIOD_MS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user