Fabien MOULINNEUF
/
Projet
fini
Revision 27:1478931d1205, committed 2021-06-24
- Comitter:
- Pmpolo
- Date:
- Thu Jun 24 08:08:16 2021 +0000
- Parent:
- 26:31abf8bdcddb
- Commit message:
- code avec commentaires
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 31abf8bdcddb -r 1478931d1205 main.cpp --- a/main.cpp Wed Jun 23 11:51:05 2021 +0000 +++ b/main.cpp Thu Jun 24 08:08:16 2021 +0000 @@ -6,8 +6,9 @@ Serial Communication(PC_6, PC_7,115200); //Declaration serial Timer timerEnvoieTrame; // Timer pour l'envoie de trame -int tailleBuffer=100; +int tailleBuffer=100; // timer pour l'envoie de trame +// fonction pour affichage de l'image void drawImage_CCLogo(int offsetX, int offsetY) { int x = 0; @@ -24,8 +25,8 @@ } } - -int EmpDerVal(int *ptab){ //Recupere a quel emplacmeent il y a une valeur +//Recupère à quel emplacement il y a une valeur dans le buffer +int EmpDerVal(int *ptab){ int Emplacement=-1; @@ -42,14 +43,16 @@ return Emplacement*2; // revoie l'emplacement *2 car tab 2 dimension } -void AppendTableau(int *ptab, int index, int data){ //Ajouter valeur dans le buffer +// Ajoute une valeur dans le buffer +void AppendTableau(int *ptab, int index, int data){ int LastEmplacment=EmpDerVal((int*) ptab); *(ptab+LastEmplacment)=index; *(ptab+LastEmplacment+1)=data; } -void SendVal(int *ptab){ // Envoie une valeur +// Envoie une valeur +void SendVal(int *ptab){ int LastEmplacment=EmpDerVal((int*) ptab), index=-1, data=-1; if(LastEmplacment==0 || LastEmplacment==-1){ //Buffer vide @@ -68,20 +71,23 @@ } } + int main() { - int NumBoutonGroupMode=0, NumBoutonGroupeLeds=0; + // Variables d'état qui récupère le nombre du bouton appuyé pour switch cases + int NumBoutonGroupMode=0, NumBoutonGroupeLeds=0; + int TabBuffer[tailleBuffer][2]; int NivoBatt = 75,Vitesse=0, VitesseMax=25; - - for(int i=0; i<tailleBuffer-1; i++) { //initialisation du buffer + //initialisation du buffer + for(int i=0; i<tailleBuffer-1; i++) { TabBuffer[i][0]=-1; TabBuffer[i][1]=-1; } - - + +//////////////////////// Déclaration des groupes de boutons et mise en forme //////////////////////// Label Titre(240, 2, "Interface Trottinette", Label::CENTER, Font20); // titre SeekBar barVitesse(20, 230, 200, 0, 100, 0, "0", "Vitesse km/h",""); @@ -110,8 +116,9 @@ }, 2, 2, 4, 1, Font12); boutonGroupeBatt.InactivateAll(); - - drawImage_CCLogo(0,0); +////////////////////////////////////////////////////////////////////////////////////////////////// + + drawImage_CCLogo(0,0); // Appel de la fonction pour afficher l'image timerEnvoieTrame.start(); @@ -131,106 +138,108 @@ AppendTableau(*TabBuffer,0x02,NivoBatt); //Manipulation de la valeur du niveau de batterie - if (NivoBatt < 25 && NivoBatt > 0){ - boutonGroupeBatt.Activate(0); + if (NivoBatt < 25 && NivoBatt > 0){ // si batterie < 25% + boutonGroupeBatt.Activate(0); // Affichage de la premiere barre boutonGroupeBatt.Inactivate(1); boutonGroupeBatt.Inactivate(2); boutonGroupeBatt.Inactivate(3); - boutonGroupeBatt.Draw(0, 0xFFFF0000, 0xFFFF0000); + boutonGroupeBatt.Draw(0, 0xFFFF0000, 0xFFFF0000); // Barre en couleur rouge } - else if (NivoBatt < 50 && NivoBatt > 26){ - boutonGroupeBatt.Activate(0); + else if (NivoBatt < 50 && NivoBatt > 26){ // si env 50% batterie + boutonGroupeBatt.Activate(0); // activer les deux premières barres boutonGroupeBatt.Activate(1); boutonGroupeBatt.Inactivate(2); boutonGroupeBatt.Inactivate(3); - boutonGroupeBatt.Draw(0, 0xFFFFAA00, 0xFFFFAA00); + boutonGroupeBatt.Draw(0, 0xFFFFAA00, 0xFFFFAA00); // Barres en orange boutonGroupeBatt.Draw(1, 0xFFFFAA00, 0xFFFFAA00); } - else if (NivoBatt < 75 && NivoBatt > 51){ - boutonGroupeBatt.Activate(0); + else if (NivoBatt < 75 && NivoBatt > 51){ // Si env 75% batterie + boutonGroupeBatt.Activate(0); // activer 3 barres boutonGroupeBatt.Activate(1); boutonGroupeBatt.Activate(2); boutonGroupeBatt.Inactivate(3); - boutonGroupeBatt.Draw(0, 0xFFFCFF00, 0xFFFCFF00); + boutonGroupeBatt.Draw(0, 0xFFFCFF00, 0xFFFCFF00); // Barres en jaune boutonGroupeBatt.Draw(1, 0xFFFCFF00, 0xFFFCFF00); boutonGroupeBatt.Draw(2, 0xFFFCFF00, 0xFFFCFF00); } - else if (NivoBatt > 76){ - boutonGroupeBatt.ActivateAll(); - boutonGroupeBatt.Draw(0, 0xFF47FF00, 0xFF47FF00); + else if (NivoBatt > 76){ // si +75% + boutonGroupeBatt.ActivateAll(); // Activer toutes les barres + boutonGroupeBatt.Draw(0, 0xFF47FF00, 0xFF47FF00); // Barres en vert boutonGroupeBatt.Draw(1, 0xFF47FF00, 0xFF47FF00); boutonGroupeBatt.Draw(2, 0xFF47FF00, 0xFF47FF00); boutonGroupeBatt.Draw(3, 0xFF47FF00, 0xFF47FF00); } - else if (NivoBatt < 0){ - boutonGroupeBatt.InactivateAll(); + else if (NivoBatt < 0){ // Si plus de batterie + boutonGroupeBatt.InactivateAll(); // Ne pas afficher de barres } } - - NumBoutonGroupMode=boutonGroupeMode.GetTouchedNumber(); //actualisation groupe bouton mode + + NumBoutonGroupMode=boutonGroupeMode.GetTouchedNumber(); //lecture de la valeur du bouton appuyé + + // Switch case en fonction du bouton appuyé pour selection du mode de la trottinette if (boutonGroupeMode.GetTouchedNumber(NumBoutonGroupMode)) switch (NumBoutonGroupMode) { case 0: //mode Sport 25km/h Max - VitesseMax=25; - boutonGroupeMode.Inactivate(0); // activer et desactive les boutons - boutonGroupeMode.Activate(1); + VitesseMax=25; // mise à jour de la vmax possible avec ce mode + boutonGroupeMode.Inactivate(0); // désactiver le bouton appuyé + boutonGroupeMode.Activate(1); // Activer les autres boutons boutonGroupeMode.Activate(2); boutonGroupeMode.Activate(3); - AppendTableau(*TabBuffer,0x03,0x01); // envoie l'info du bouton + AppendTableau(*TabBuffer,0x03,0x01); // envoie de la trame liée à l'appuis de ce bouton BSP_LCD_SetBackColor(LCD_COLOR_BLACK); - ValMaxVitesse.Draw("%d",VitesseMax); //recalcul de la vitesse a partir de l'emplacement curseur du slide + ValMaxVitesse.Draw("%d",VitesseMax); //recalcul de la vitesse à partir de l'emplacement curseur du slide numLabeVitesse.Draw("%5.1f", (barVitesse.GetValue()*VitesseMax)/100); Vitesse = (int) (barVitesse.GetValue()*VitesseMax)/100; //AppendTableau(*TabBuffer,0x01,Vitesse); break; + case 1: //mode Normal 20km/h Max - VitesseMax=20; - boutonGroupeMode.Inactivate(1); - boutonGroupeMode.Activate(0); + VitesseMax=20; // mise à jour de la vmax possible avec ce mode + boutonGroupeMode.Inactivate(1); // désactiver le bouton appuyé + boutonGroupeMode.Activate(0); // Activer les autres boutons boutonGroupeMode.Activate(2); boutonGroupeMode.Activate(3); - AppendTableau(*TabBuffer,0x03,0x02); + AppendTableau(*TabBuffer,0x03,0x02); // envoie de la trame liée à l'appuis de ce bouton BSP_LCD_SetBackColor(LCD_COLOR_BLACK); - ValMaxVitesse.Draw("%d",VitesseMax); + ValMaxVitesse.Draw("%d",VitesseMax); //recalcul de la vitesse à partir de l'emplacement curseur du slide numLabeVitesse.Draw("%5.1f", (barVitesse.GetValue()*VitesseMax)/100); Vitesse = (int) (barVitesse.GetValue()*VitesseMax)/100; //AppendTableau(*TabBuffer,0x01,Vitesse); - break; case 2: //mode Eco 15km/h Max - VitesseMax=15; - boutonGroupeMode.Inactivate(2); - boutonGroupeMode.Activate(0); + VitesseMax=15; // mise à jour de la vmax possible avec ce mode + boutonGroupeMode.Inactivate(2); // désactiver le bouton appuyé + boutonGroupeMode.Activate(0); // Activer les autres boutons boutonGroupeMode.Activate(1); boutonGroupeMode.Activate(3); - AppendTableau(*TabBuffer,0x03,0x03); + AppendTableau(*TabBuffer,0x03,0x03); // envoie de la trame liée à l'appuis de ce bouton BSP_LCD_SetBackColor(LCD_COLOR_BLACK); - ValMaxVitesse.Draw("%d",VitesseMax); + ValMaxVitesse.Draw("%d",VitesseMax); //recalcul de la vitesse à partir de l'emplacement curseur du slide numLabeVitesse.Draw("%5.1f", (barVitesse.GetValue()*VitesseMax)/100); Vitesse = (int) (barVitesse.GetValue()*VitesseMax)/100; //AppendTableau(*TabBuffer,0x01,Vitesse); break; case 3: //mode Pieton 6km/h Max - VitesseMax=6; - boutonGroupeMode.Inactivate(3); - boutonGroupeMode.Activate(0); + VitesseMax=6; // mise à jour de la vmax possible avec ce mode + boutonGroupeMode.Inactivate(3); // désactiver le bouton appuyé + boutonGroupeMode.Activate(0); // Activer les autres boutons boutonGroupeMode.Activate(1); boutonGroupeMode.Activate(2); - AppendTableau(*TabBuffer,0x03,0x04); + AppendTableau(*TabBuffer,0x03,0x04); // envoie de la trame liée à l'appuis de ce bouton BSP_LCD_SetBackColor(LCD_COLOR_BLACK); - ValMaxVitesse.Draw("%d",VitesseMax); + ValMaxVitesse.Draw("%d",VitesseMax); //recalcul de la vitesse à partir de l'emplacement curseur du slide numLabeVitesse.Draw("%5.1f", (barVitesse.GetValue()*VitesseMax)/100); Vitesse = (int) (barVitesse.GetValue()*VitesseMax)/100; //AppendTableau(*TabBuffer,0x01,Vitesse); @@ -238,19 +247,21 @@ } - NumBoutonGroupeLeds=boutonsGroupeLed.GetTouchedNumber(); + NumBoutonGroupeLeds=boutonsGroupeLed.GetTouchedNumber(); //lecture de la valeur du bouton appuyé + + // Switch case en fonction du bouton appuyé pour activation ou non Led trott if (boutonsGroupeLed.GetTouchedNumber(NumBoutonGroupeLeds)) switch (NumBoutonGroupeLeds) { case 0: //Led ON - boutonsGroupeLed.Inactivate(0); - boutonsGroupeLed.Activate(1); - AppendTableau(*TabBuffer,0x04,0x01); + boutonsGroupeLed.Inactivate(0); // désactiver le bouton appuyé + boutonsGroupeLed.Activate(1); // Activer les autres boutons + AppendTableau(*TabBuffer,0x04,0x01); // envoie de la trame liée à l'appuis de ce bouton break; case 1: //Led OFF - boutonsGroupeLed.Inactivate(1); - boutonsGroupeLed.Activate(0); - AppendTableau(*TabBuffer,0x04,0x0F); + boutonsGroupeLed.Inactivate(1); // désactiver le bouton appuyé + boutonsGroupeLed.Activate(0); // Activer les autres boutons + AppendTableau(*TabBuffer,0x04,0x0F); // envoie de la trame liée à l'appuis de ce bouton break; }