programme final projet s4
Dependencies: BSP_DISCO_F746NG SDFileSystem TS_DISCO_F746NG affichage_des_ecrans mbed rtc_lib
Diff: main_glb.cpp
- Revision:
- 2:a6c2f346bca5
- Child:
- 3:53f3194a919e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main_glb.cpp Thu Oct 13 06:58:40 2016 +0000 @@ -0,0 +1,930 @@ +#include "mbed.h" +#include "TS_DISCO_F746NG.h" +#include "LCD_DISCO_F746NG.h" +#include "ds1338.h" +//définition de la zone tactile dans l'ecran principal +#define TOUCHADMINISTRATEUR ((TS_State.touchDetected) && ( TS_State.touchX[0]>0) &&( TS_State.touchX[0]< 240)&& ( TS_State.touchY[0]>0) && (TS_State.touchY[0] < 272)) +#define TOUCHUTILISATEUR ((TS_State.touchDetected) && ( TS_State.touchX[0]> 240) &&( TS_State.touchX[0]< 480)&& ( TS_State.touchY[0]> 0) && (TS_State.touchY[0] < 272)) + +// définitions des touches tactiles qui interviennent dans l'écran 1 +#define TOUCHTIMEDATE ((TS_State.touchDetected) && ( TS_State.touchX[0]>10) && (TS_State.touchX[0]< 165)&& (TS_State.touchY[0]>50) && (TS_State.touchY[0] < 180)) +#define TOUCHFREQ ((TS_State.touchDetected) && ( TS_State.touchX[0]>170) && (TS_State.touchX[0]< 328)&& (TS_State.touchY[0]>60) && (TS_State.touchY[0] < 180)) +#define TOUCHAFFICHAGE ((TS_State.touchDetected) && ( TS_State.touchX[0]>333) &&( TS_State.touchX[0]< 475)&& ( TS_State.touchY[0]> 60) && (TS_State.touchY[0] < 180)) + +//définitions des touches tactiles qui intervient dans les écrans paramettrable +#define TOUCHRETOUR ((TS_State.touchDetected) && ( TS_State.touchX[0]>30) &&( TS_State.touchX[0]< 110)&& ( TS_State.touchY[0]> 210) && (TS_State.touchY[0] < 240)) +#define TOUCHMoins ((TS_State.touchDetected) && ( TS_State.touchX[0]>145) &&( TS_State.touchX[0]< 225)&& ( TS_State.touchY[0]> 210) && (TS_State.touchY[0] < 240)) +#define TOUCHPlus ((TS_State.touchDetected) && ( TS_State.touchX[0]> 245) &&( TS_State.touchX[0]< 325)&& ( TS_State.touchY[0]> 210) && (TS_State.touchY[0] < 240)) +#define TOUCHOK ((TS_State.touchDetected) && ( TS_State.touchX[0]> 360) &&( TS_State.touchX[0]< 440)&& ( TS_State.touchY[0]> 210) && (TS_State.touchY[0] < 240)) + +//définitions des touches tactiles pour régler l'heure et la date +#define TOUCHDAY ((TS_State.touchDetected) && ( TS_State.touchX[0]> 30) &&( TS_State.touchX[0]< 85)&& ( TS_State.touchY[0]> 82) && (TS_State.touchY[0] < 110)) +#define TOUCHMonth ((TS_State.touchDetected) && ( TS_State.touchX[0]> 100) &&( TS_State.touchX[0]< 160)&& ( TS_State.touchY[0]> 82) && (TS_State.touchY[0] < 110)) +#define TOUCHYear ((TS_State.touchDetected) && ( TS_State.touchX[0]> 170) &&( TS_State.touchX[0]< 240)&& ( TS_State.touchY[0]> 82) && (TS_State.touchY[0] < 110)) +#define TOUCHHour ((TS_State.touchDetected) && ( TS_State.touchX[0]> 30) &&( TS_State.touchX[0]< 60)&& ( TS_State.touchY[0]> 164) && (TS_State.touchY[0] < 204)) +#define TOUCHMinute ((TS_State.touchDetected) && ( TS_State.touchX[0]> 100) &&( TS_State.touchX[0]< 159)&& ( TS_State.touchY[0]> 164) && (TS_State.touchY[0] < 204)) +#define TOUCHSeconde ((TS_State.touchDetected) && ( TS_State.touchX[0]> 172) &&( TS_State.touchX[0]< 240)&& ( TS_State.touchY[0]> 164) && (TS_State.touchY[0] < 204)) + +//définition des touches tactiles pour le réglage de la fréquence d'envoi des données sur la carte SD +#define TOUCHPerHour ((TS_State.touchDetected) && ( TS_State.touchX[0]> 25) &&( TS_State.touchX[0]< 175)&& ( TS_State.touchY[0]> 115) && (TS_State.touchY[0] < 145)) +#define TOUCHPerDay ((TS_State.touchDetected) && ( TS_State.touchX[0]> 245) &&( TS_State.touchX[0]< 405)&& ( TS_State.touchY[0]> 115) && (TS_State.touchY[0] < 145)) +#define TOUCHPerWeek ((TS_State.touchDetected) && ( TS_State.touchX[0]> 25) &&( TS_State.touchX[0]< 175)&& ( TS_State.touchY[0]> 155) && (TS_State.touchY[0] < 185)) +#define TOUCHPermonth ((TS_State.touchDetected) && ( TS_State.touchX[0]> 245) &&( TS_State.touchX[0]< 405)&& ( TS_State.touchY[0]> 155) && (TS_State.touchY[0] < 185)) + +//définition de l'attente avant l'affichage d'un nouvel écran +#define ATTENTE wait(0.2); + +int affiche=0; +void horloge(); +char jour[6]; +char mois[6]; +char annee[6]; +char heure[6]; +char minute[6]; +char seconde[6]; + +LCD_DISCO_F746NG lcd; +TS_DISCO_F746NG ts; + +DigitalOut led1(LED1); +///////////////////////////// AFFICHAGE_DES_ECRANS//////////////////////////////////////////// + + ///////FONTCTION QUI AFFICHE LE MODE UTILISATEUR ET LE MODE ADMINISTRATEUR/// + void Ecranprincipal() + { + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.FillRect(0,0,239,272); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"ADMINISTRATOR", LEFT_MODE); + + + lcd.SetBackColor(LCD_COLOR_BLACK); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.FillRect(240,0,240,272); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"USER ACCOUNT", RIGHT_MODE); + } + + + ////FONTCTION QUI AFFICHE LE MENU PRINCIPAL/////// + + void EcranAdminis() + { + lcd.Clear(LCD_COLOR_WHITE); + + + //AFFICHAGE DU BOUTON POUR REGLER L'HEURE ET LA DATE + + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.DrawRect(10,50,155,130); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_DARKCYAN); + lcd.DisplayStringAt(13, LINE(3), (uint8_t *)"Adjust", LEFT_MODE); + lcd.DisplayStringAt(13, LINE(4), (uint8_t *)"the date", LEFT_MODE); + lcd.DisplayStringAt(13, LINE(5), (uint8_t *)"and time", LEFT_MODE); + + +//AFFICHAGE DU BOUTON POUR REGLER LA FREQUENCE D'ENVOI SUR LA CARTE SD + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.DrawRect(170,50,158,130); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_DARKRED); + lcd.DisplayStringAt(173, LINE(3), (uint8_t *)"Adjust ", LEFT_MODE); + lcd.DisplayStringAt(173, LINE(4), (uint8_t *)"the ", LEFT_MODE); + lcd.DisplayStringAt(173, LINE(5), (uint8_t *)"Delivery", LEFT_MODE); + lcd.DisplayStringAt(173, LINE(6), (uint8_t *)"frequency", LEFT_MODE); + +//AFFICHAGE DU BOUTON POUR AFFICHAGER LES DONNEES ARRIVEES SUR LA CARTE + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.DrawRect(332, 50, 145,130); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_DARKGREEN); + lcd.DisplayStringAt(333, LINE(3), (uint8_t *)"The ", LEFT_MODE); + lcd.DisplayStringAt(333, LINE(4), (uint8_t *)"data", LEFT_MODE); + lcd.DisplayStringAt(333, LINE(5), (uint8_t *)"display", LEFT_MODE); + + //AFFICHAGE DU BOUTON RETOUR + lcd.SetTextColor(LCD_COLOR_DARKRED); + lcd.FillRect(30, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKRED); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(30, LINE(9), (uint8_t *)"BACK", LEFT_MODE); + + } + + void EcranUtilis() + { + lcd.Clear(LCD_COLOR_DARKGRAY); + lcd.SetBackColor(LCD_COLOR_DARKGRAY); + lcd.SetTextColor(LCD_COLOR_YELLOW); + lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"THE DATA DISPLAY", CENTER_MODE); + +//AFFICHAGE DU BOUTON POUR AFFICHAGER LES DONNEES ARRIVEES SUR LA CARTE + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + + //AFFICHAGE DU BOUTON RETOUR + lcd.SetTextColor(LCD_COLOR_RED); + lcd.FillRect(30, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_RED); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(30, LINE(9), (uint8_t *)"BACK", LEFT_MODE); + } + ///////FONCTION QUI AFFICHE LE NOUVEL ECRAN APRES L'APPUIE DE SUR TIME DATE + + + void Ecran2() + { + void horloge (); + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetBackColor(LCD_COLOR_WHITE); + + lcd.DisplayStringAt(30, LINE(2), (uint8_t *)"DATE:", LEFT_MODE); + // sprintf((char*)jour,"%02d",time.tm_mday); + lcd.DisplayStringAt(30, 82, (uint8_t *)jour, LEFT_MODE); + lcd.DisplayStringAt(65, 82, (uint8_t *)"/", LEFT_MODE); + // sprintf((char*)mois,"%02d",time.tm_mon); + lcd.DisplayStringAt(80, 82, (uint8_t *) mois, LEFT_MODE); + lcd.DisplayStringAt(115, 82, (uint8_t *)"/", LEFT_MODE); + // sprintf((char*)annee,"%04d",time.tm_year); + lcd.DisplayStringAt(130, 82, (uint8_t *)annee, LEFT_MODE); + + lcd.DisplayStringAt(30, 135, (uint8_t *)"TIME:", LEFT_MODE); + // sprintf((char*)heure,"%02d",time.tm_hour); + lcd.DisplayStringAt(30, 164, (uint8_t *)heure, LEFT_MODE); + lcd.DisplayStringAt(65, 164, (uint8_t *)":", LEFT_MODE); + sprintf((char*)minute,"%02d",time.tm_min); + lcd.DisplayStringAt(80, 164, (uint8_t *)minute, LEFT_MODE); + lcd.DisplayStringAt(115, 164, (uint8_t *)":", LEFT_MODE); + // sprintf((char*)seconde,"%02d",time.tm_sec); + lcd.DisplayStringAt(130, 164, (uint8_t *)seconde, LEFT_MODE); + + + //AFFICHAGE DU BOUTON QUITTER + lcd.SetTextColor(LCD_COLOR_DARKRED); + lcd.FillRect(30, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKRED); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(30,LINE(9), (uint8_t *)"BACK", LEFT_MODE); + + } + + void Ecran2_Day() + { + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.DisplayStringAt(30, LINE(2), (uint8_t *)"DATE:", LEFT_MODE); + lcd.DisplayStringAt(65, 82, (uint8_t *)"/", LEFT_MODE); + sprintf((char*)mois,"%02d",time.tm_mon); + lcd.DisplayStringAt(80, 82, (uint8_t *) mois, LEFT_MODE); + lcd.DisplayStringAt(115, 82, (uint8_t *)"/", LEFT_MODE); + sprintf((char*)annee,"%04d",time.tm_year); + lcd.DisplayStringAt(130, 82, (uint8_t *)annee, LEFT_MODE); + + lcd.DisplayStringAt(30, 135, (uint8_t *)"TIME:", LEFT_MODE); + sprintf((char*)heure,"%02d",time.tm_hour); + lcd.DisplayStringAt(30, 164, (uint8_t *)heure, LEFT_MODE); + lcd.DisplayStringAt(65, 164, (uint8_t *)":", LEFT_MODE); + sprintf((char*)minute,"%02d",time.tm_min); + lcd.DisplayStringAt(80, 164, (uint8_t *)minute, LEFT_MODE); + lcd.DisplayStringAt(115, 164, (uint8_t *)":", LEFT_MODE); + sprintf((char*)seconde,"%02d ",time.tm_sec); + lcd.DisplayStringAt(130, 164, (uint8_t *)seconde, LEFT_MODE); + + lcd.SetBackColor(LCD_COLOR_BLUE); + sprintf((char*)jour,"%02d",time.tm_mday); + lcd.DisplayStringAt(30, 82, (uint8_t *)jour, LEFT_MODE); + + + + //AFFICHAGE DU BOUTON POUR AUGMENTER + lcd.SetTextColor(LCD_COLOR_DARKBLUE); + lcd.FillRect(145, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKBLUE); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(145, LINE(9), (uint8_t *)" - ", LEFT_MODE); + + +//AFFICHAGE DU BOUTON POUR DIMINUER + lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); + lcd.FillRect(245, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKMAGENTA); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(245, LINE(9), (uint8_t *)" + ", LEFT_MODE); + +//AFFICHAGE DU BOUTON OK + lcd.SetTextColor(LCD_COLOR_DARKGREEN); + lcd.FillRect(360, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKGREEN); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(360, LINE(9), (uint8_t *)" OK ", LEFT_MODE); + + } + + void Ecran2_Month() + { + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(30, LINE(2), (uint8_t *)"DATE:", LEFT_MODE); + sprintf((char*)jour,"%02d",time.tm_mday); + lcd.DisplayStringAt(30, 82, (uint8_t *)jour, LEFT_MODE); + lcd.DisplayStringAt(65, 82, (uint8_t *)"/", LEFT_MODE); + lcd.DisplayStringAt(115, 82, (uint8_t *)"/", LEFT_MODE); + sprintf((char*)annee,"%04d",time.tm_year); + lcd.DisplayStringAt(130, 82, (uint8_t *)annee, LEFT_MODE); + lcd.DisplayStringAt(30, 135, (uint8_t *)"TIME:", LEFT_MODE); + sprintf((char*)heure,"%02d",time.tm_hour); + lcd.DisplayStringAt(30, 164, (uint8_t *)heure, LEFT_MODE); + lcd.DisplayStringAt(65, 164, (uint8_t *)":", LEFT_MODE); + sprintf((char*)minute,"%02d",time.tm_min); + lcd.DisplayStringAt(65, 115, (uint8_t *)":", LEFT_MODE); + lcd.DisplayStringAt(80, 164, (uint8_t *)minute, LEFT_MODE); + sprintf((char*)seconde,"%02d",time.tm_sec); + lcd.DisplayStringAt(115, 164, (uint8_t *)"/", LEFT_MODE); + lcd.DisplayStringAt(130, 164, (uint8_t *)seconde, LEFT_MODE); + + lcd.SetBackColor(LCD_COLOR_BLUE); + sprintf((char*)mois,"%02d",time.tm_mon); + lcd.DisplayStringAt(80, 82, (uint8_t *) mois, LEFT_MODE); + + + //AFFICHAGE DU BOUTON POUR AUGMENTER + lcd.SetTextColor(LCD_COLOR_DARKBLUE); + lcd.FillRect(145, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKBLUE); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(145, LINE(9), (uint8_t *)" - ", LEFT_MODE); + + +//AFFICHAGE DU BOUTON POUR DIMINUER + lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); + lcd.FillRect(245, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKMAGENTA); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(245, LINE(9), (uint8_t *)" + ", LEFT_MODE); + +//AFFICHAGE DU BOUTON OK + lcd.SetTextColor(LCD_COLOR_DARKGREEN); + lcd.FillRect(360, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKGREEN); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(360, LINE(9), (uint8_t *)" OK ", LEFT_MODE); + + + } + + void Ecran2_Year() + { + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(30, LINE(2), (uint8_t *)"DATE:", LEFT_MODE); + sprintf((char*)jour,"%02d",time.tm_mday); + lcd.DisplayStringAt(30, 82, (uint8_t *)jour, LEFT_MODE); + lcd.DisplayStringAt(65, 82, (uint8_t *)"/", LEFT_MODE); + sprintf((char*)mois,"%02d",time.tm_mon); + lcd.DisplayStringAt(80, 82, (uint8_t *) mois, LEFT_MODE); + lcd.DisplayStringAt(115, 82, (uint8_t *)"/", LEFT_MODE); + lcd.DisplayStringAt(30, 135, (uint8_t *)"TIME:", LEFT_MODE); + sprintf((char*)heure,"%02d",time.tm_hour); + lcd.DisplayStringAt(30, 164, (uint8_t *)heure, LEFT_MODE); + lcd.DisplayStringAt(65, 164, (uint8_t *)":", LEFT_MODE); + sprintf((char*)minute,"%02d",time.tm_min); + lcd.DisplayStringAt(80, 164, (uint8_t *)minute, LEFT_MODE); + lcd.DisplayStringAt(115, 164, (uint8_t *)"/", LEFT_MODE); + sprintf((char*)seconde,"%02d",time.tm_sec); + lcd.DisplayStringAt(130, 164, (uint8_t *)seconde, LEFT_MODE); + + lcd.SetBackColor(LCD_COLOR_BLUE); + sprintf((char*)annee,"%04d",time.tm_year); + lcd.DisplayStringAt(130, 82, (uint8_t *)annee, LEFT_MODE); + + + + //AFFICHAGE DU BOUTON POUR AUGMENTER + lcd.SetTextColor(LCD_COLOR_DARKBLUE); + lcd.FillRect(145, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKBLUE); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(145, LINE(9), (uint8_t *)" - ", LEFT_MODE); + + +//AFFICHAGE DU BOUTON POUR DIMINUER + lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); + lcd.FillRect(245, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKMAGENTA); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(245, LINE(9), (uint8_t *)" + ", LEFT_MODE); + +//AFFICHAGE DU BOUTON OK + lcd.SetTextColor(LCD_COLOR_DARKGREEN); + lcd.FillRect(360, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKGREEN); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(360, LINE(9), (uint8_t *)" OK ", LEFT_MODE); + + + } + + void Ecran2_Hour() + { + + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(30, LINE(2), (uint8_t *)"DATE:", LEFT_MODE); + sprintf((char*)jour,"%02d",time.tm_mday); + lcd.DisplayStringAt(30, 82, (uint8_t *)jour, LEFT_MODE); + lcd.DisplayStringAt(65, 82, (uint8_t *)"/", LEFT_MODE); + sprintf((char*)mois,"%02d",time.tm_mon); + lcd.DisplayStringAt(80, 82, (uint8_t *) mois, LEFT_MODE); + lcd.DisplayStringAt(115, 82, (uint8_t *)"/", LEFT_MODE); + sprintf((char*)annee,"%04d",time.tm_year); + lcd.DisplayStringAt(130, 82, (uint8_t *)annee, LEFT_MODE); + lcd.DisplayStringAt(30, 135, (uint8_t *)"TIME:", LEFT_MODE); + lcd.DisplayStringAt(65, 164, (uint8_t *)":", LEFT_MODE); + sprintf((char*)minute,"%02d",time.tm_min); + lcd.DisplayStringAt(80, 164, (uint8_t *)minute, LEFT_MODE); + lcd.DisplayStringAt(115, 164, (uint8_t *)":", LEFT_MODE); + sprintf((char*)seconde,"%02d",time.tm_sec); + lcd.DisplayStringAt(130, 164, (uint8_t *)seconde, LEFT_MODE); + + lcd.SetBackColor(LCD_COLOR_BLUE); + sprintf((char*)heure,"%02d",time.tm_hour); + lcd.DisplayStringAt(30, 164, (uint8_t *)heure, LEFT_MODE); + + + + //AFFICHAGE DU BOUTON POUR AUGMENTER + lcd.SetTextColor(LCD_COLOR_DARKBLUE); + lcd.FillRect(145, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKBLUE); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(145, LINE(9), (uint8_t *)" - ", LEFT_MODE); + + +//AFFICHAGE DU BOUTON POUR DIMINUER + lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); + lcd.FillRect(245, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKMAGENTA); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(245, LINE(9), (uint8_t *)" + ", LEFT_MODE); + +//AFFICHAGE DU BOUTON OK + lcd.SetTextColor(LCD_COLOR_DARKGREEN); + lcd.FillRect(360, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKGREEN); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(360, LINE(9), (uint8_t *)" OK ", LEFT_MODE); + + + } + + void Ecran2_Minutes() + { + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(30, LINE(2), (uint8_t *)"DATE:", LEFT_MODE); + sprintf(jour,"%02d",time.tm_mday); + lcd.DisplayStringAt(30, 82, (uint8_t *)jour, LEFT_MODE); + lcd.DisplayStringAt(65, 82, (uint8_t *)"/", LEFT_MODE); + sprintf(mois,"%02d",time.tm_mon); + lcd.DisplayStringAt(80, 82, (uint8_t *) mois, LEFT_MODE); + lcd.DisplayStringAt(115, 82, (uint8_t *)"/", LEFT_MODE); + sprintf(annee,"%04d",time.tm_year); + lcd.DisplayStringAt(130, 82, (uint8_t *)annee, LEFT_MODE); + lcd.DisplayStringAt(30, 135, (uint8_t *)"TIME:", LEFT_MODE); + sprintf(heure,"%02d",time.tm_hour); + lcd.DisplayStringAt(30, 164, (uint8_t *)heure, LEFT_MODE); + lcd.DisplayStringAt(65, 164, (uint8_t *)":", LEFT_MODE); + lcd.DisplayStringAt(115, 164, (uint8_t *)":", LEFT_MODE); + sprintf(seconde,"%02d",time.tm_sec); + lcd.DisplayStringAt(130, 164, (uint8_t *)seconde, LEFT_MODE); + + lcd.SetBackColor(LCD_COLOR_BLUE); + sprintf(minute,"%02d",time.tm_min); + lcd.DisplayStringAt(80, 164, (uint8_t *)minute, LEFT_MODE); + + + +//AFFICHAGE DU BOUTON POUR AUGMENTER + lcd.SetTextColor(LCD_COLOR_DARKBLUE); + lcd.FillRect(145, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKBLUE); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(145, LINE(9), (uint8_t *)" - ", LEFT_MODE); + + +//AFFICHAGE DU BOUTON POUR DIMINUER + lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); + lcd.FillRect(245, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKMAGENTA); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(245, LINE(9), (uint8_t *)" + ", LEFT_MODE); + +//AFFICHAGE DU BOUTON OK + lcd.SetTextColor(LCD_COLOR_DARKGREEN); + lcd.FillRect(360, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKGREEN); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(360, LINE(9), (uint8_t *)" OK ", LEFT_MODE); + + + } + + void Ecran2_Seconde() + { + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(30, LINE(2), (uint8_t *)"TIME:", LEFT_MODE); + sprintf(jour,"%02d",time.tm_mday); + lcd.DisplayStringAt(30, 82, (uint8_t *)jour, LEFT_MODE); + lcd.DisplayStringAt(65, 82, (uint8_t *)"/", LEFT_MODE); + sprintf(mois,"%02d",time.tm_mon); + lcd.DisplayStringAt(80, 82, (uint8_t *) mois, LEFT_MODE); + lcd.DisplayStringAt(115, 82, (uint8_t *)"/", LEFT_MODE); + sprintf(annee," %04d",time.tm_year); + lcd.DisplayStringAt(130, 82, (uint8_t *)annee, LEFT_MODE); + lcd.DisplayStringAt(30, 135, (uint8_t *)"DATE:", LEFT_MODE); + sprintf(heure,"%02d",time.tm_hour); + lcd.DisplayStringAt(30, 164, (uint8_t *)heure, LEFT_MODE); + lcd.DisplayStringAt(65, 164, (uint8_t *)":", LEFT_MODE); + sprintf(minute,"%02d",time.tm_min); + lcd.DisplayStringAt(80, 164, (uint8_t *)minute, LEFT_MODE); + lcd.DisplayStringAt(115, 164, (uint8_t *)":", LEFT_MODE); + + lcd.SetBackColor(LCD_COLOR_BLUE); + sprintf(seconde,"%02d ",time.tm_sec); + lcd.DisplayStringAt(130, 164, (uint8_t *)seconde, LEFT_MODE); + + + +//AFFICHAGE DU BOUTON POUR AUGMENTER + lcd.SetTextColor(LCD_COLOR_DARKBLUE); + lcd.FillRect(145, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKBLUE); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(145, LINE(9), (uint8_t *)" - ", LEFT_MODE); + + +//AFFICHAGE DU BOUTON POUR DIMINUER + lcd.SetTextColor(LCD_COLOR_DARKMAGENTA); + lcd.FillRect(245, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKMAGENTA); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(245, LINE(9), (uint8_t *)" + ", LEFT_MODE); + +//AFFICHAGE DU BOUTON OK + lcd.SetTextColor(LCD_COLOR_DARKGREEN); + lcd.FillRect(360, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_DARKGREEN); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(360, LINE(9), (uint8_t *)" OK ", LEFT_MODE); + } + + +///////FONCTION QUI AFFICHE LE NOUVEL ECRAN APRES L'APPUIE DE SUR FREQ + void Ecran3() + { + + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_DARKGRAY); + lcd.DisplayStringAt(10, LINE(1), (uint8_t *)"Select the frequency of", CENTER_MODE); + lcd.DisplayStringAt(10, LINE(2), (uint8_t *)"sending of the data on the", CENTER_MODE); + lcd.DisplayStringAt(10, LINE(3), (uint8_t *)"SD card: ", CENTER_MODE); + + lcd.DisplayStringAt(30,120, (uint8_t *)"Per hour ", LEFT_MODE); + lcd.DisplayStringAt(250, 120, (uint8_t *)"Per day", LEFT_MODE); + lcd.DisplayStringAt(30, 160, (uint8_t *)"Per week ", LEFT_MODE); + lcd.DisplayStringAt(250, 160, (uint8_t *)"Per month", LEFT_MODE); + + + lcd.SetTextColor(LCD_COLOR_DARKRED); + lcd.DrawRect(25, 115, 160, 30); + lcd.DrawRect(245, 115, 160,30); + lcd.DrawRect(25, 155, 160, 30); + lcd.DrawRect(245, 155, 160,30); + + //AFFICHAGE DU BOUTON RETOUR + + lcd.SetBackColor(LCD_COLOR_DARKRED); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(30, LINE(9), (uint8_t *)"BACK", LEFT_MODE); + } + + void Ecran3_PerHour() + { + + } + void Ecran3_PerDay() + { + + } + void Ecran3_PerWeek() + { + + } + void Ecran3_PerMonth() + { + + } + + +///////FONCTION QUI AFFICHE LE NOUVEL ECRAN APRES L'APPUIE DE SUR AFFICHAGE + + void Ecran4() + { + + //AFFICHAGE DU BOUTON QUITTER + lcd.SetTextColor(LCD_COLOR_RED); + lcd.FillRect(30, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_RED); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(30, LINE(9), (uint8_t *)"QUIT", LEFT_MODE); + + + //AFFICHAGE DU BOUTON RETOUR + lcd.SetTextColor(LCD_COLOR_CYAN); + lcd.FillRect(145, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_CYAN); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(145, LINE(9), (uint8_t *)"BACK", LEFT_MODE); + + //AFFICHAGE DU BOUTON SUIVANT + lcd.SetTextColor(LCD_COLOR_CYAN); + lcd.FillRect(245, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_CYAN); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(245, LINE(9), (uint8_t *)"NEXT", LEFT_MODE); + +//AFFICHAGE DU BOUTON OK + lcd.SetTextColor(LCD_COLOR_GREEN); + lcd.FillRect(360, 210, 80,30); + lcd.SetBackColor(LCD_COLOR_GREEN); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(360, LINE(9), (uint8_t *)" OK ", LEFT_MODE); + } + + + void horloge(){ + /////////////////////////initialisation horloge/////////////////// + AnalogIn Vpan(A0); + AnalogIn Ipan(A1); + AnalogIn Tpan(A2); + AnalogIn Irr(A3); + AnalogIn Vbat(A4); + AnalogIn Ibat(A5); + + struct tm time; + int count; + + Serial pc(USBTX, USBRX); + pc.baud(9600); + pc.printf("DS1338 Demo\r\n"); + DS1338 ds1338(D14,D15); +//#ifdef INIT_TIME + count=0; + time.tm_sec=0; + time.tm_min=28; + time.tm_hour=14; + time.tm_mday=10; + time.tm_year=116; + time.tm_mon=0; + time.tm_wday=2; + time.tm_yday=0; + time.tm_isdst=0; + ds1338.writeTime(&time); +//#endif +////////////////////////////////////////////////////////////////// +} + int main() + { + + lcd.Clear(LCD_COLOR_BLACK); + lcd.SetBackColor(LCD_COLOR_BLACK); + lcd.SetTextColor(LCD_COLOR_WHITE); + lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"WELCOME TO LAOS PROJET", CENTER_MODE); + + wait(1); + affiche=1; + + TS_StateTypeDef TS_State; + ts.Init(480, 272); + + while(1) + { + ts.GetState(&TS_State); + + + + typedef enum {etat0, etat1, etat1_1,etat_reg_minute, etat3, etat4 ,etat2, etat_reg_day, etat_reg_month,etat_reg_year, etat_reg_hour} type_etat; + static type_etat etat= etat0; + + switch (etat) + { + case etat0: + if (affiche==1) + { + Ecranprincipal (); + affiche=0; + } + + if (TOUCHUTILISATEUR) + { + etat= etat1_1; + affiche=1; + ATTENTE + } + + if (TOUCHADMINISTRATEUR) + { + etat= etat1; + affiche=1; + ATTENTE + } + break; + + case etat1_1: + if(affiche==1) + { + ATTENTE + EcranUtilis (); + affiche=0; + } + /*if (TOUCHAFF) + { + etat=etat4; + affiche=1; + }*/ + if (TOUCHRETOUR) + { + etat= etat0; + affiche=1; + ATTENTE + } + break; + + case etat1: + if (affiche==1) + { + ATTENTE + EcranAdminis (); + ; + affiche=0; + } + + if (TOUCHTIMEDATE) + { + etat = etat2; + affiche=1; + } + if (TOUCHFREQ) + { + etat= etat3; + affiche=1; + } + if (TOUCHAFFICHAGE) + { + etat=etat4; + affiche=1; + } + if (TOUCHRETOUR) + { + etat= etat0; + affiche=1; + ATTENTE; + } + break; + + case etat2: + if (affiche==1) + { + Ecran2(); + affiche=0; + } + if (TOUCHRETOUR) + { + etat= etat1; + affiche=1; + ATTENTE + } + if (TOUCHDAY) + { + etat= etat_reg_day; + affiche=1; + } + if (TOUCHMonth) + { + etat=etat_reg_month; + affiche=1; + } + if (TOUCHYear) + { + etat=etat_reg_year; + affiche=1; + } + if (TOUCHHour) + { + etat=etat_reg_hour; + affiche=1; + } + if (TOUCHMinute) + { + etat=etat_reg_minute; + affiche=1; + } + if (TOUCHRETOUR) + { + etat= etat1; + affiche=1; + ATTENTE + } + if (TOUCHSeconde) + { + time.tm_sec=0; + affiche=1; + } + break; + + + + + case etat_reg_day: + if (affiche==1) + { + Ecran2_Day(); + affiche=0; + } + + if(TOUCHPlus){ + time.tm_mday=time.tm_mday+1; + ATTENTE + Ecran2_Day(); + //if(day>30) day=0; + } + if(TOUCHMoins) + { + time.tm_mday=time.tm_mday-1; + wait (0.3); + Ecran2_Day(); + //if(day<2) day=32; + } + if ( (TOUCHOK)||(TOUCHRETOUR) ) + { + etat= etat2; + affiche=1; + ATTENTE + } + break; + + case etat_reg_month: + if (affiche==1){ + Ecran2_Month(); + affiche=0; + } + if(TOUCHPlus) + { + time.tm_mon=time.tm_mon+1; + ATTENTE + Ecran2_Month(); + //if(month>11) month=0; + } + if(TOUCHMoins) + { + time.tm_mon=time.tm_mon-1; + ATTENTE + Ecran2_Month(); + //if(month<2) month=13; + + } + if ( (TOUCHOK)|| (TOUCHRETOUR)) + { + etat= etat2; + affiche=1; + ATTENTE + } + + break; + case etat_reg_year: + if (affiche==1){ + Ecran2_Year (); + affiche=0; + } + + if(TOUCHPlus) + { + time.tm_year=time.tm_year+1; + ATTENTE + Ecran2_Year(); + //if(year>3000) year=2000; + } + if(TOUCHMoins) + { + time.tm_year=time.tm_year-1; + ATTENTE + Ecran2_Year(); + //if(year<2000) year=3000; + } + if ((TOUCHOK) ||(TOUCHRETOUR)) + { + etat= etat2; + affiche=1; + ATTENTE + } + + break; + + case etat_reg_hour: + if (affiche==1){ + affiche=0; + Ecran2_Hour(); + } + + if(TOUCHPlus){ + time.tm_hour=time.tm_hour+1; + ATTENTE + Ecran2_Hour(); + //if(hour>22) hour=0; + } + if(TOUCHMoins){ + time.tm_hour=time.tm_hour-1; + ATTENTE + Ecran2_Hour(); + //if(hour<1) hour=24; + } + + if ((TOUCHOK)||(TOUCHRETOUR)){ + etat= etat2; + affiche=1; + ATTENTE + } + break; + + + case etat_reg_minute: + if (affiche==1) + { Ecran2_Minutes(); + affiche=0; + } + + if(TOUCHPlus) + { + time.tm_min=time.tm_min+1; + ATTENTE + Ecran2_Minutes(); + //if(min>58) min=0; + } + if(TOUCHMoins) + { + time.tm_min=time.tm_min-1; + wait (0.3); + Ecran2_Minutes(); + //if(min>2) min=59; + } + if ((TOUCHOK) || (TOUCHRETOUR)){ + etat= etat2; + affiche=1; + ATTENTE + } + break; + + case etat3: + if (affiche==1) + { + Ecran3(); + affiche=0; + } + if (TOUCHRETOUR) + { + etat= etat1; + affiche=1; + ATTENTE + } + break; + + case etat4: + if (affiche==1) + { + Ecran4(); + affiche=0; + } + if (TOUCHRETOUR) + { + etat= etat1; + affiche=1; + ATTENTE + } + break; + } + } + } + + \ No newline at end of file