Projet Station Domotique MONTEIRO Lenny
Dependencies: BSP_DISCO_F746NG ds3231
Revision 6:17d880088476, committed 2022-06-15
- Comitter:
- lenny14
- Date:
- Wed Jun 15 17:36:19 2022 +0000
- Parent:
- 5:071136c3eefa
- Commit message:
- Commit initiale
Changed in this revision
ds3231.lib | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ds3231.lib Wed Jun 15 17:36:19 2022 +0000 @@ -0,0 +1,1 @@ +http://os.mbed.com/teams/Maxim-Integrated/code/ds3231/#11630748e2f2
--- a/main.cpp Tue Jun 15 19:35:57 2021 +0000 +++ b/main.cpp Wed Jun 15 17:36:19 2022 +0000 @@ -2,17 +2,138 @@ * Notebook page https://os.mbed.com/users/JohnnyK/notebook/how-start-with-the-littlevgl/ */ -#include "mbed.h" +#include "lv_area.h" +#include "lv_btn.h" +#include "lv_disp.h" #include "lvgl/lvgl.h" #include "hal_stm_lvgl/tft/tft.h" #include "hal_stm_lvgl/touchpad/touchpad.h" -#include "lv_demo.h" /*Comment/uncomment will switch between LVGL demo and Hello word example*/ +#include "ds3231.h" +#include "mbed.h" + +static BufferedSerial pc(USBTX, USBRX);// Pour le debug #define LVGL_TICK 10 //Time tick value for lvgl in ms (1-10msa) #define TICKER_TIME 10ms //modified to miliseconds +int heure_actuel = 0;// heure actuel du provenant du RTC externe + +int heure_debut1 = 0;// heure de debut en h +int heure_debut2 = 0;// heure de debut en h +int heure_debut3 = 0;// heure de debut en h + +int heure_fin1 = 0;// heure de debut en h +int heure_fin2 = 0;// heure de debut en h +int heure_fin3 = 0;// heure de debut en h + +int select = 0;//0 = rien 1 = selection heure de debut 2 = selection heure de fin lors du clic sur les boutons concernés + + +// SDA SCL +Ds3231 rtc(D14, D15);// initialisation des broches I2C du RTC + +ds3231_time_t temps;//structure contenant l'heure/minute/sec actuel + Ticker ticker; //Ticker for lvgl - + +DigitalOut out1(A0);//Sortie1 +DigitalOut out2(A1);//Sortie2 +DigitalOut out3(A2);//Sortie3 + +//pointeur btn1 +lv_obj_t * btn1; + +//pointeur btn2 +lv_obj_t * btn2; + +//pointeur btn3 +lv_obj_t * btn3; + +/* Boutons pour incrémenter/décrémenter les heures */ + +//pointeur btn_incrementer1 +lv_obj_t * btn_inc1; + +//pointeur btn_decrementer1 +lv_obj_t * btn_dec1; + +//pointeur btn_incrementer2 +lv_obj_t * btn_inc2; + +//pointeur btn_decrementer2 +lv_obj_t * btn_dec2; + +//pointeur btn_incrementer3 +lv_obj_t * btn_inc3; + +//pointeur btn_decrementer3 +lv_obj_t * btn_dec3; + +/* A l'heure de début le relai est alimenté, et à l'heure de fin le relai n'est plus alimenté */ + +//pointeur bouton heure de début1 +lv_obj_t * btn_heure_debut1; + +//pointeur bouton heure de fin1 +lv_obj_t * btn_heure_fin1; + +//pointeur bouton heure de début2 +lv_obj_t * btn_heure_debut2; + +//pointeur bouton heure de fin2 +lv_obj_t * btn_heure_fin2; + +//pointeur bouton heure de début3 +lv_obj_t * btn_heure_debut3; + +//pointeur bouton heure de fin3 +lv_obj_t * btn_heure_fin3; + +//pointeur label heure de début1 +lv_obj_t * label_heure_debut1; + +//pointeur label heure de début2 +lv_obj_t * label_heure_debut2; + +//pointeur label heure de début3 +lv_obj_t * label_heure_debut3; + +//pointeur label heure de fin1 +lv_obj_t * label_heure_fin1; + +//pointeur label heure de début2 +lv_obj_t * label_heure_fin2; + +//pointeur label heure de début3 +lv_obj_t * label_heure_fin3; + +//pointeur label pour afficher l'heure actuelle +lv_obj_t * label_affichage_heure; + +//pointeur label pour afficher le status de la sortie 1 +lv_obj_t * label_status_1; + +//pointeur label pour afficher le status de la sortie 2 +lv_obj_t * label_status_2; + +//pointeur label pour afficher le status de la sortie 3 +lv_obj_t * label_status_3; + +static lv_style_t style_btn_inc_dec;//style pour tous les boutons inc et dec +static lv_style_t style_btn_heure;//style pour tous les boutons heure début et fin + + // style bouton1 +static lv_style_t style_btn1; +static lv_style_t style_btn1_pressed; + +// style bouton1 +static lv_style_t style_btn2; +static lv_style_t style_btn2_pressed; + +// style bouton1 +static lv_style_t style_btn3; +static lv_style_t style_btn3_pressed; + /* * Callback function for lvgl timing. * Call lv_tick_inc(x) every x milliseconds in a Timer or Task (x should be between 1 and 10). @@ -22,63 +143,653 @@ lv_tick_inc(LVGL_TICK); } -#ifndef LV_DEMO_H -static void event_handler(lv_event_t* event) +// event btn1 +static void event_btn1(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + out1 = !out1; + } +} + +// event btn2 +static void event_btn2(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + out2 = !out2; + } +} + +// event btn3 +static void event_btn3(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + out3 = !out3; + } +} + +// event btn_inc1 +static void event_btn_inc1(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + + //choix de l'heure à incrémenter(debut ou fin) + if(select == 1) + { + heure_debut1++; + } + else if(select == 2) + { + heure_fin1++; + } + else + { + + } + } +} + +// event btn_inc2 +static void event_btn_inc2(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + + //choix de l'heure à incrémenter(debut ou fin + if(select == 1) + { + heure_debut2++; + } + else if(select == 2) + { + heure_fin2++; + } + else + { + + } + } +} + +// event btn_inc3 +static void event_btn_inc3(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + + //choix de l'heure à incrémenter(debut ou fin + if(select == 1) + { + heure_debut3++; + } + else if(select == 2) + { + heure_fin3++; + } + else + { + + } + } +} + +// event btn_dec1 +static void event_btn_dec1(lv_event_t * e) { - lv_event_code_t code = lv_event_get_code(event); - if(code == LV_EVENT_CLICKED) { - printf("Clicked\n"); + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + + //choix de l'heure à decrémenter(debut ou fin) + if(select == 1) + { + heure_debut1--; + } + else if(select == 2) + { + heure_fin1--; + } + else + { + + } + } +} + +// event btn_dec2 +static void event_btn_dec2(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + + //choix de l'heure à decrémenter(debut ou fin) + if(select == 1) + { + heure_debut2--; + } + else if(select == 2) + { + heure_fin2--; + } + else + { + + } + } +} + +// event btn_dec3 +static void event_btn_dec3(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + + //choix de l'heure à decrémenter(debut ou fin) + if(select == 1) + { + heure_debut3--; + } + else if(select == 2) + { + heure_fin3--; + } + else + { + + } } - else if(code == LV_EVENT_VALUE_CHANGED) { - printf("Toggled\n"); +} + +// event btn_heure_début1 +static void event_btn_heure_debut1(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + + select = 1; //selection de l'heure de debut à incrementer ou à decrementer + + } +} + +// event btn_heure_début2 +static void event_btn_heure_debut2(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + + select = 1; //selection de l'heure de debut à incrementer ou à decrementer + } +} + +// event btn_heure_début3 +static void event_btn_heure_debut3(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + + select = 1; //selection de l'heure de debut à incrementer ou à decrementer + } +} + +// event btn_heure_fin1 +static void event_btn_heure_fin1(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + + select = 2; //selection de l'heure de fin à incrementer ou à decrementer + } +} + +// event btn_heure_fin2 +static void event_btn_heure_fin2(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + + select = 2; //selection de l'heure de fin à incrementer ou à decrementer + } +} + +// event btn_heure_fin3 +static void event_btn_heure_fin3(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED) //clic btn + { + LV_LOG_USER("Clicked"); + select = 2; //selection de l'heure de fin à incrementer ou à decrementer } } -#endif -// main() runs in its own thread in the OS + +void Init_Widgets()//Fonction qui initialise les Widgets +{ + //Init style btn1 + lv_style_init(&style_btn1); + lv_style_set_bg_color(&style_btn1, lv_color_hex(0x4542f5));//couleur bleu + + //Init style pressed btn1 + lv_style_init(&style_btn1_pressed); + lv_style_set_bg_color(&style_btn1_pressed, lv_color_hex(0xf54242));//couleur rouge quand on appuie sur le btn + + //init btn1 + btn1 = lv_btn_create(lv_scr_act());//creation du bouton + lv_obj_set_size(btn1, 100, 50);//dimention du bouton + lv_obj_set_pos(btn1, 60, 50);//position du bouton + lv_obj_add_style(btn1, &style_btn1, LV_STATE_DEFAULT);//couleur bleu + lv_obj_add_style(btn1, &style_btn1_pressed, LV_STATE_PRESSED);//couleur rouge quand on appuie sur le btn + lv_obj_add_event_cb(btn1, event_btn1, LV_EVENT_ALL, NULL);//ajout de la fonction callback + + //label btn1 + lv_obj_t * label1 = lv_label_create(btn1);//creation du label du bouton + lv_obj_set_align(label1, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label1, "SORTIE1");//ajout du texte + +//////////////////////////////////////////////////////////////////// + + + //Init style btn2 + lv_style_init(&style_btn2); + lv_style_set_bg_color(&style_btn2, lv_color_hex(0x4542f5));//couleur bleu + + //Init style pressed btn2 + lv_style_init(&style_btn2_pressed); + lv_style_set_bg_color(&style_btn2_pressed, lv_color_hex(0xf54242));//couleur rouge quand on appuie sur le btn + + //init btn2 + btn2 = lv_btn_create(lv_scr_act());//creation du bouton + lv_obj_set_size(btn2, 100, 50);//dimention du bouton + lv_obj_set_pos(btn2, 60, 110);//position du bouton + lv_obj_add_style(btn2, &style_btn2, LV_STATE_DEFAULT);//couleur bleu + lv_obj_add_style(btn2, &style_btn2_pressed, LV_STATE_PRESSED);//couleur rouge quand on appuie sur le btn + lv_obj_add_event_cb(btn2, event_btn2, LV_EVENT_ALL, NULL);//ajout de la fonction callback + + //label btn2 + lv_obj_t * label2 = lv_label_create(btn2);//creation du label du bouton + lv_obj_set_align(label2, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label2, "SORTIE2");//ajout du texte + +//////////////////////////////////////////////////////////////////// + + + //Init style btn3 + lv_style_init(&style_btn3); + lv_style_set_bg_color(&style_btn3, lv_color_hex(0x4542f5));//couleur bleu + + //Init style pressed btn3 + lv_style_init(&style_btn3_pressed); + lv_style_set_bg_color(&style_btn3_pressed, lv_color_hex(0xf54242));//couleur rouge quand on appuie sur le btn + + //init btn3 + btn3 = lv_btn_create(lv_scr_act());//creation du bouton + lv_obj_set_size(btn3, 100, 50);//dimention du bouton + lv_obj_set_pos(btn3, 60, 170);//position du bouton + lv_obj_add_style(btn3, &style_btn3, LV_STATE_DEFAULT);//couleur bleu + lv_obj_add_style(btn3, &style_btn3_pressed, LV_STATE_PRESSED);//couleur rouge quand on appuie sur le btn + lv_obj_add_event_cb(btn3, event_btn3, LV_EVENT_ALL, NULL);//ajout de la fonction callback + + //label btn3 + lv_obj_t * label3 = lv_label_create(btn3);//creation du label du bouton + lv_obj_set_align(label3, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label3, "SORTIE3");//ajout du texte + +//////////////////////////////////////////////////////////////////// + + lv_style_init(&style_btn_inc_dec);//Initialisation du style des boutons dec et inc + +//////////////////////////////////////////////////////////////////// + + lv_style_set_bg_color(&style_btn_inc_dec, lv_color_hex(0x01a600));//couleur verte pour le style + + //creation des boutons inc et dec + btn_inc1 = lv_btn_create(lv_scr_act()); + btn_inc2 = lv_btn_create(lv_scr_act()); + btn_inc3 = lv_btn_create(lv_scr_act()); + + btn_dec1 = lv_btn_create(lv_scr_act()); + btn_dec2 = lv_btn_create(lv_scr_act()); + btn_dec3 = lv_btn_create(lv_scr_act()); + + //ajout du style pour les btn inc et dec + lv_obj_add_style(btn_inc1, &style_btn_inc_dec, LV_STATE_DEFAULT); + lv_obj_add_style(btn_inc2, &style_btn_inc_dec, LV_STATE_DEFAULT); + lv_obj_add_style(btn_inc3, &style_btn_inc_dec, LV_STATE_DEFAULT); + + lv_obj_add_style(btn_dec1, &style_btn_inc_dec, LV_STATE_DEFAULT); + lv_obj_add_style(btn_dec2, &style_btn_inc_dec, LV_STATE_DEFAULT); + lv_obj_add_style(btn_dec3, &style_btn_inc_dec, LV_STATE_DEFAULT); + + //positionnement et dimensionnement des bouton + lv_obj_set_size(btn_inc1, 25, 25);//dimention du bouton + lv_obj_set_pos(btn_inc1, 200, 50);//position du bouton + + lv_obj_set_size(btn_inc2, 25, 25);//dimention du bouton + lv_obj_set_pos(btn_inc2, 200, 110);//position du bouton + + lv_obj_set_size(btn_inc3, 25, 25);//dimention du bouton + lv_obj_set_pos(btn_inc3, 200, 170);//position du bouton + + //label btn_inc1 + lv_obj_t * label_inc1 = lv_label_create(btn_inc1);//creation du label du bouton + lv_obj_set_align(label_inc1, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_inc1, "+");//ajout du texte + + //label btn_inc2 + lv_obj_t * label_inc2 = lv_label_create(btn_inc2);//creation du label du bouton + lv_obj_set_align(label_inc2, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_inc2, "+");//ajout du texte + + //label btn_inc3 + lv_obj_t * label_inc3 = lv_label_create(btn_inc3);//creation du label du bouton + lv_obj_set_align(label_inc3, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_inc3, "+");//ajout du texte + + //positionnement et dimensionnement des bouton + lv_obj_set_size(btn_dec1, 25, 25);//dimention du bouton + lv_obj_set_pos(btn_dec1, 200, 75);//position du bouton + + lv_obj_set_size(btn_dec2, 25, 25);//dimention du bouton + lv_obj_set_pos(btn_dec2, 200, 135);//position du bouton + + lv_obj_set_size(btn_dec3, 25, 25);//dimention du bouton + lv_obj_set_pos(btn_dec3, 200, 195);//position du bouton + + //label btn_dec1 + lv_obj_t * label_dec1 = lv_label_create(btn_dec1);//creation du label du bouton + lv_obj_set_align(label_dec1, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_dec1, "-");//ajout du texte + + //label btn_dec2 + lv_obj_t * label_dec2 = lv_label_create(btn_dec2);//creation du label du bouton + lv_obj_set_align(label_dec2, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_dec2, "-");//ajout du texte + + //label btn_dec3 + lv_obj_t * label_dec3 = lv_label_create(btn_dec3);//creation du label du bouton + lv_obj_set_align(label_dec3, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_dec3, "-");//ajout du texte + + //ajout des fonction callback des btn inc et dec + lv_obj_add_event_cb(btn_inc1, event_btn_inc1, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(btn_inc2, event_btn_inc2, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(btn_inc3, event_btn_inc3, LV_EVENT_ALL, NULL); + + lv_obj_add_event_cb(btn_dec1, event_btn_dec1, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(btn_dec2, event_btn_dec2, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(btn_dec3, event_btn_dec3, LV_EVENT_ALL, NULL); + +/////////////////////////////////////////////////////////////////////////// + + lv_style_set_bg_color(&style_btn_heure, lv_color_hex(0xf79e0d));//couleur orange pour le style + + //creation des boutons heure début/fin + btn_heure_debut1 = lv_btn_create(lv_scr_act()); + btn_heure_debut2 = lv_btn_create(lv_scr_act()); + btn_heure_debut3 = lv_btn_create(lv_scr_act()); + + btn_heure_fin1 = lv_btn_create(lv_scr_act()); + btn_heure_fin2 = lv_btn_create(lv_scr_act()); + btn_heure_fin3 = lv_btn_create(lv_scr_act()); + + //ajout du style pour les boutons heure début/fin + lv_obj_add_style(btn_heure_debut1, &style_btn_heure, LV_STATE_DEFAULT); + lv_obj_add_style(btn_heure_debut2, &style_btn_heure, LV_STATE_DEFAULT); + lv_obj_add_style(btn_heure_debut3, &style_btn_heure, LV_STATE_DEFAULT); + + lv_obj_add_style(btn_heure_fin1, &style_btn_heure, LV_STATE_DEFAULT); + lv_obj_add_style(btn_heure_fin2, &style_btn_heure, LV_STATE_DEFAULT); + lv_obj_add_style(btn_heure_fin3, &style_btn_heure, LV_STATE_DEFAULT); + + //positionnement et dimensionnement des bouton + lv_obj_set_size(btn_heure_debut1, 100, 50);//dimention du bouton + lv_obj_set_pos(btn_heure_debut1, 225, 50);//position du bouton + + lv_obj_set_size(btn_heure_debut2, 100, 50);//dimention du bouton + lv_obj_set_pos(btn_heure_debut2, 225, 110);//position du bouton + + lv_obj_set_size(btn_heure_debut3, 100, 50);//dimention du bouton + lv_obj_set_pos(btn_heure_debut3, 225, 170);//position du bouton + + lv_obj_set_size(btn_heure_fin1, 100, 50);//dimention du bouton + lv_obj_set_pos(btn_heure_fin1, 325, 50);//position du bouton + + lv_obj_set_size(btn_heure_fin2, 100, 50);//dimention du bouton + lv_obj_set_pos(btn_heure_fin2, 325, 110);//position du bouton + + lv_obj_set_size(btn_heure_fin3, 100, 50);//dimention du bouton + lv_obj_set_pos(btn_heure_fin3, 325, 170);//position du bouton + + + //label btn_heure de début1 + label_heure_debut1 = lv_label_create(btn_heure_debut1);//creation du label du bouton + lv_obj_set_align(label_heure_debut1, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_heure_debut1, "0h");//ajout du texte + + //label btn_heure de début2 + label_heure_debut2 = lv_label_create(btn_heure_debut2);//creation du label du bouton + lv_obj_set_align(label_heure_debut2, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_heure_debut2, "0h");//ajout du texte + + //label btn_heure de début1 + label_heure_debut3 = lv_label_create(btn_heure_debut3);//creation du label du bouton + lv_obj_set_align(label_heure_debut3, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_heure_debut3, "0h");//ajout du texte + + //label btn_heure de fin1 + label_heure_fin1 = lv_label_create(btn_heure_fin1);//creation du label du bouton + lv_obj_set_align(label_heure_fin1, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_heure_fin1, "0h");//ajout du texte + + //label btn_heure de début2 + label_heure_fin2 = lv_label_create(btn_heure_fin2);//creation du label du bouton + lv_obj_set_align(label_heure_fin2, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_heure_fin2, "0h");//ajout du texte + + //label btn_heure de début1 + label_heure_fin3 = lv_label_create(btn_heure_fin3);//creation du label du bouton + lv_obj_set_align(label_heure_fin3, LV_ALIGN_CENTER);//alignement + lv_label_set_text(label_heure_fin3, "0h");//ajout du texte + + //ajout des fonction callback des btn heure debut/fin + lv_obj_add_event_cb(btn_heure_debut1, event_btn_heure_debut1, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(btn_heure_debut2, event_btn_heure_debut2, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(btn_heure_debut3, event_btn_heure_debut3, LV_EVENT_ALL, NULL); + + lv_obj_add_event_cb(btn_heure_fin1, event_btn_heure_fin1, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(btn_heure_fin2, event_btn_heure_fin2, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(btn_heure_fin3, event_btn_heure_fin3, LV_EVENT_ALL, NULL); + +////////////////////////////////////////////////////////////////////////////////////// + + //label affichage de l'heure actuelle + label_affichage_heure = lv_label_create(lv_scr_act()); //creation du label + lv_obj_set_pos(label_affichage_heure, 220, 20); //position du labe + lv_label_set_text(label_affichage_heure, "00:00:00"); //ajout du texte + +////////////////////////////////////////////////////////////////////////////////////// + + + //label status_1 + label_status_1 = lv_label_create(lv_scr_act()); //creation du label + lv_obj_set_pos(label_status_1, 17, 65); //position du label + lv_label_set_text(label_status_1, "OFF"); //ajout du texte*/ + + //label status_2 + label_status_2 = lv_label_create(lv_scr_act()); //creation du label + lv_obj_set_pos(label_status_2, 17, 125); //position du label + lv_label_set_text(label_status_2, "OFF"); //ajout du texte*/ + + //label status_3 + label_status_3 = lv_label_create(lv_scr_act()); //creation du label + lv_obj_set_pos(label_status_3, 17, 185); //position du label + lv_label_set_text(label_status_3, "OFF"); //ajout du texte*/ +} + +void Init_gpio()//Initialisation des sorties +{ + out1.write(0); + out2.write(0); + out3.write(0); +} + int main() -{ +{ + char text[30] = "";// tableau de caractère à afficher printf("LVGL-"); lv_init(); //Initialize the LVGL tft_init(); //Initialize diplay touchpad_init(); //Initialize touchpad ticker.attach(callback(&lv_ticker_func),TICKER_TIME); //Attach callback to ticker -#ifdef LV_DEMO_H - printf("Demo\n"); - lv_demo_widgets(); -#else - printf("Hello world\n"); - lv_obj_t * label1 = lv_label_create(lv_scr_act()); - lv_label_set_long_mode(label1, LV_LABEL_LONG_WRAP); /*Break the long lines*/ - lv_label_set_recolor(label1, true); /*Enable re-coloring by commands in the text*/ - lv_label_set_text(label1, "#0000ff Hello# #ff00ff world# #ff0000 - the LVGL and MbedOS#"); - lv_obj_set_width(label1, 150); - lv_obj_align(label1, LV_ALIGN_TOP_MID, 0, 20); - - lv_obj_t * label2 = lv_label_create(lv_scr_act()); - lv_label_set_long_mode(label2, LV_LABEL_LONG_SCROLL_CIRCULAR); /*Circular scroll*/ - lv_obj_set_width(label2, 150); - lv_label_set_text(label2, "It is a circularly scrolling text. "); - lv_obj_align(label2, LV_ALIGN_BOTTOM_MID, 0, 0); - - lv_obj_t * label; - lv_obj_t * btn1 = lv_btn_create(lv_scr_act()); - lv_obj_add_event_cb(btn1, event_handler, LV_EVENT_ALL, NULL); - lv_obj_align(btn1, LV_ALIGN_CENTER, 0, -25); - label = lv_label_create(btn1); - lv_label_set_text(label, "Button"); - lv_obj_t * btn2 = lv_btn_create(lv_scr_act()); - lv_obj_add_event_cb(btn2, event_handler,LV_EVENT_ALL, NULL); - lv_obj_align(btn2, LV_ALIGN_CENTER, 0, 25); - lv_obj_add_flag(btn2, LV_OBJ_FLAG_CHECKABLE); - label = lv_label_create(btn2); - lv_label_set_text(label, "Toggled"); -#endif + Init_Widgets(); //initialisation Widgets while (true){ lv_task_handler(); //Call lv_task_handler() periodically every few milliseconds. //It will redraw the screen if required, handle input devices etc. thread_sleep_for(LVGL_TICK); + + rtc.get_time(&temps);//lecture de l'heure actuel + heure_actuel = temps.hours;//stockage + + /* Affichage de l'heure actuelle */ + sprintf(text, "%d:%d:%d", temps.hours, temps.minutes, temps.seconds); + lv_label_set_text(label_affichage_heure, text);//affichage + + /* Affichage des heure de debut et fin sur les label des bouton */ + + sprintf(text, "%dh", heure_debut1);//Formatage chaine + lv_label_set_text(label_heure_debut1, text);//Affichage de la chaine formaté + + sprintf(text, "%dh", heure_debut2);//Formatage chaine + lv_label_set_text(label_heure_debut2, text);//Affichage de la chaine formaté + + sprintf(text, "%dh", heure_debut3);//Formatage chaine + lv_label_set_text(label_heure_debut3, text);//Affichage de la chaine formaté + + sprintf(text, "%dh", heure_fin1);//Formatage chaine + lv_label_set_text(label_heure_fin1, text);//Affichage de la chaine formaté + + sprintf(text, "%dh", heure_fin2);//Formatage chaine + lv_label_set_text(label_heure_fin2, text);//Affichage de la chaine formaté + + sprintf(text, "%dh", heure_fin3);//Formatage chaine + lv_label_set_text(label_heure_fin3, text);//Affichage de la chaine formaté + + /* A l'heure de début le relai est alimenté, et à l'heure de fin le relai n'est plus alimenté */ + + if(heure_debut1 == heure_fin1)// si les heure(debut et fin) sont égaux + { + //on fait rien + } + else if(heure_actuel == heure_debut1)//si heure actuel est égal à l'heure de début + { + out1 = 1;//on active le relay + } + else if(heure_actuel == heure_fin1)//si heure actuel est égal à l'heure de fin + { + out1 = 0;//on desactive le relay + } + + if(heure_debut2 == heure_fin2)// si les heure(debut et fin) sont égaux + { + //on fait rien² + } + else if(heure_actuel == heure_debut2)//si heure actuel est égal à l'heure de début + { + out2 = 1;//on active le relay + } + else if(heure_actuel == heure_fin2)//si heure actuel est égal à l'heure de fin + { + out2 = 0;//on desactive le relay + } + + if(heure_debut3 == heure_fin3)// si les heure(debut et fin) sont égaux + { + //on fait rien + } + else if(heure_actuel == heure_debut3)//si heure actuel est égal à l'heure de début + { + out3 = 1;//on active le relay + } + else if(heure_actuel == heure_fin3)//si heure actuel est égal à l'heure de fin + { + out3 = 1;//on desactive le relay + } + + /* Actualisation du status des sorties */ + + if(out1 == 1)// si la sortie est activé + { + lv_label_set_text(label_status_1, "ON"); + } + else if(out1 == 0)// si la sortie est désactivé + { + lv_label_set_text(label_status_1, "OFF"); + } + + if(out2 == 1)// si la sortie est activé + { + lv_label_set_text(label_status_2, "ON"); + } + else if(out2 == 0)// si la sortie est désactivé + { + lv_label_set_text(label_status_2, "OFF"); + } + + if(out3 == 1)// si la sortie est activé + { + lv_label_set_text(label_status_3, "ON"); + } + else if(out3 == 0)// si la sortie est désactivé + { + lv_label_set_text(label_status_3, "OFF"); + } + } } \ No newline at end of file