
le test
Dependencies: LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI
Alarme/alarme.cpp
- Committer:
- ascheriit
- Date:
- 2019-05-23
- Revision:
- 39:b069cf6be013
- Parent:
- 35:bda112796505
File content as of revision 39:b069cf6be013:
# include "alarme.h" DigitalIn pinTgAl(PE_6); DigitalIn pinSeAl(PE_5); DigitalOut pinAlarme(PG_13); extern int GLOBAL_BOOL_ALARME; //booléen de gestion du son void A_initAlarmes(STalarmes* all){ all->ListeAlarmes = (temps*) malloc(sizeof(temps) * NOMBREDALARMES); for(int i=0;i<NOMBREDALARMES;i++){ (all->ListeAlarmes+i)->heure = 0; (all->ListeAlarmes+i)->minute = 0; all->ListeActivation[i] = 0; } } void A_DisplayAlarmes(STalarmes* alarmesPNT){ STalarmes alarmes = *alarmesPNT; int positionYinit = 5; int positionYIncrement = 25; int alarmeTaille = 1; int positionXinit = 10; for(int i=0;i<NOMBREDALARMES;i++){ if(alarmes.positionCurseur==i){ DisplayMatrix(positionXinit,positionYinit + positionYIncrement * i,BS_fleche(),alarmeTaille * 2,COULEUR_FLECHE); }else{ DisplayMatrix(positionXinit,positionYinit + positionYIncrement * i,BS_fleche(),alarmeTaille * 2,COULEUR_FOND); } if(alarmes.ListeActivation[i]){ DisplayMatrix(positionXinit + alarmeTaille * 26,positionYinit + positionYIncrement * i,BS_cloche(),alarmeTaille,COULEUR_ACTIVE); }else{ DisplayMatrix(positionXinit + alarmeTaille * 26,positionYinit + positionYIncrement * i,BS_cloche(),alarmeTaille,COULEUR_OFF); } H_afficheHorlogeElemClean(*(alarmes.ListeAlarmes + i),positionXinit + alarmeTaille * 54,positionYinit + positionYIncrement * i,alarmeTaille * 2,COULEUR_HEURE_ALARME,COULEUR_FOND); } } void A_DisplayFleche(STalarmes* alarmesPNT){ int positionYinit = 5; int positionYIncrement = 25; int alarmeTaille = 1; int positionXinit = 10; for(int i=0;i<NOMBREDALARMES;i++){ if(alarmesPNT->positionCurseur==i){ DisplayMatrix(positionXinit,positionYinit + positionYIncrement * i,BS_fleche(),alarmeTaille * 2,COULEUR_FLECHE); }else{ DisplayMatrix(positionXinit,positionYinit + positionYIncrement * i,BS_fleche(),alarmeTaille * 2,COULEUR_FOND); } } } void A_getSelection(STalarmes* alarmesPNT){ alarmesPNT->positionCurseur=CR_donneSelection(CR_position(CR_readPins())); } void A_toogleAlarme(STalarmes* alarmesPNT){ if(pinTgAl.read() && alarmesPNT->positionCurseur < NOMBREDALARMES){ while(pinTgAl.read()){ ; } *(alarmesPNT->ListeActivation + alarmesPNT->positionCurseur)=!*(alarmesPNT->ListeActivation + alarmesPNT->positionCurseur); A_DisplayAlarmes(alarmesPNT); } } void A_setAlarme(STalarmes* alarmesPNT){ if(pinSeAl.read() && alarmesPNT->positionCurseur < NOMBREDALARMES){ while(pinSeAl.read()){ ; } int positionYinit = 5; int positionYIncrement = 25; int alarmeTaille = 1; int positionXinit = 10; H_reglage(alarmesPNT->ListeAlarmes + alarmesPNT->positionCurseur,positionXinit + alarmeTaille * 54,positionYinit + positionYIncrement * alarmesPNT->positionCurseur,alarmeTaille * 2,COULEUR_HEURE_ALARME_MOD,COULEUR_FOND); A_DisplayAlarmes(alarmesPNT); } } void A_checkAlarmes(STalarmes* alarmesPNT,temps* maintenant){ int isOn=0; //booléen pour test l'activation d'une alarme. for(int i=0;i<NOMBREDALARMES;i++){ if(*(alarmesPNT->ListeActivation + i) && (alarmesPNT->ListeAlarmes + i)->heure==maintenant->heure && (alarmesPNT->ListeAlarmes + i)->minute==maintenant->minute){ isOn=1; break; } } pinAlarme=isOn; GLOBAL_BOOL_ALARME=isOn; } void A_test(){ STalarmes alarmes; A_initAlarmes(&alarmes); clean(); A_DisplayAlarmes(&alarmes); alarmes.positionCurseur=2; *(alarmes.ListeActivation+3)=1; (alarmes.ListeAlarmes+4)->minute=23; (alarmes.ListeAlarmes+4)->heure=17; wait(0.5); while(1){ //clean(); //wait(0.05); A_getSelection(&alarmes); A_toogleAlarme(&alarmes); A_setAlarme(&alarmes); A_DisplayFleche(&alarmes); //H_toogleElem(); wait(0.15); } }