Téo DHIEN-FANE / Mbed 2 deprecated dashboard_f1

Dependencies:   F746_GUI mbed SI7021

Files at this revision

API Documentation at this revision

Comitter:
teoff
Date:
Tue Jun 22 10:01:32 2021 +0000
Parent:
0:85f60e3f81ab
Child:
2:8a932906e684
Commit message:
Programme termine;

Changed in this revision

F746_GUI.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
--- a/F746_GUI.lib	Tue Jun 22 06:37:09 2021 +0000
+++ b/F746_GUI.lib	Tue Jun 22 10:01:32 2021 +0000
@@ -1,1 +1,1 @@
-https://os.mbed.com/users/MikamiUitOpen/code/F746_GUI/#f8a3f9b61aee
+https://os.mbed.com/users/teoff/code/F746_GUI/#f8a3f9b61aee
--- a/main.cpp	Tue Jun 22 06:37:09 2021 +0000
+++ b/main.cpp	Tue Jun 22 10:01:32 2021 +0000
@@ -7,14 +7,14 @@
 Timer t;
 
 Ticker newReading;
-DigitalOut myled1 ( LED1 );
+DigitalOut led1 ( LED1 );
 
 SI7021::SI7021_vector_data_t     myData;
 SI7021::SI7021_status_t          mySI7021status;
 uint32_t                         myState;
 
 
-void readDATA ( void )
+void readData ( void )
 {
     myState++;
 }
@@ -23,35 +23,35 @@
 
 int main()
 {
-    int NumBoutonGroupMode=0, nLap = 1;
-    float readTime = 0;
-    char text[100];
-    
+    int NumBoutonGroup1=0, NumBoutonGroup2=0, nLap = 1;
+
     Label titre(240, 2, "Dashboard F1", Label::CENTER, Font16);
-    Label temperature(180, 110, "Temperature : ");
-    Label humidite(180, 135, "Humidite : ");
-    Label labelTime(180, 155,"Lap Time : ");
+    Label temperature(168, 110, "Temperature : ");
+    Label humidite(168, 135, "Humidite : ");
+    Label labelTime(168, 155,"Lap Time : ");
     Label pneu(260, 40,"Pneu");
-    Label allTime(180, 175,"");
+    Label mode(57, 40,"Mode puissance",Label::CENTER);
 
-    Button button1(10, 54, 30, 35, "1");
-    Button button2(42, 54, 30, 35, "2");
-    //Button doNotTouch(250, 220, 120, 40, "Page 2", Font12, GuiBase::ENUM_TEXT, GuiBase::ENUM_BACK, LCD_COLOR_DARKGREEN, LCD_COLOR_RED);
-    Button talk(10, 120, 60, 35, "Radio");
+    Button stand(10, 145, 60, 40, "Stand", Font12, GuiBase::ENUM_TEXT, GuiBase::ENUM_BACK, LCD_COLOR_BLUE, LCD_COLOR_RED);
+    Button talk(10, 100, 60, 35, "Radio");
+    Button start(400, 135, 60, 35, "Start", Font12, GuiBase::ENUM_TEXT, GuiBase::ENUM_BACK, LCD_COLOR_DARKGREEN);
+
 
     const int NUMBER_BUTTONS = 3;
     const string PNEU[NUMBER_BUTTONS] = {"Soft", "Medium", "Hard"};
+    const string MODE[NUMBER_BUTTONS] = {"1", "2", "3"};
     ButtonGroup bGroup1(168, 54, 66, 35,  NUMBER_BUTTONS, PNEU, 2, 2, 3, 1, Font12, LCD_COLOR_WHITE, LCD_COLOR_BLACK);
+    ButtonGroup bGroupMode(10, 54, 30, 35,  NUMBER_BUTTONS, MODE, 2, 2, 3, 1, Font12, LCD_COLOR_WHITE, LCD_COLOR_BLACK);
     NumericLabel<int> bTouch(240, 112, "", Label::LEFT, Font12, LCD_COLOR_WHITE);
     NumericLabel<float> valTemp(290,110, "", Label::CENTER, Font12, LCD_COLOR_WHITE, LCD_COLOR_BLACK);
     NumericLabel<float> valHumi(260,135, "", Label::CENTER, Font12, LCD_COLOR_WHITE, LCD_COLOR_BLACK);
     NumericLabel<float> time(280,155, "", Label::CENTER, Font12, LCD_COLOR_WHITE, LCD_COLOR_BLACK);
     NumericLabel<int> lap(420,25, "");
-    NumericLabel<int> valBias(110,250, "");
-    NumericLabel<int> valDiff(350,250, "");
+    NumericLabel<int> valBias(110,260, "");
+    NumericLabel<int> valDiff(350,260, "");
 
-    SeekBar bias(20, 230, 200, 0, 100, 50, "0", "Bias","");
-    SeekBar diff(260, 230, 200, 0, 100, 50, "0", "Differentiel","");
+    SeekBar bias(20, 240, 200, 0, 100, 50, "0", "Bias","");
+    SeekBar diff(260, 240, 200, 0, 100, 50, "0", "Differentiel","");
 
     bGroup1.Draw(0,0xFFFF0000,0xFFFFFFFF); //Red
     bGroup1.Draw(1,0xFFFFE800,0xFFFFFFFF); //Yellow
@@ -59,25 +59,18 @@
 
     pc.baud ( 115200 );
 
-    t.start();
-    // Reset the device
+
+    // Reset le capteur
     mySI7021status   =   myTempRHsensor.SI7021_SoftReset ();
-    //wait_ms ( 15 );
-    // Configure the device
+    // Configuration du capteur
     mySI7021status   =   myTempRHsensor.SI7021_Conf ( SI7021::SI7021_RESOLUTION_RH_12_TEMP_14, SI7021::SI7021_HTRE_DISABLED );
-    // Get the Electronic Serial Number
-    mySI7021status   =   myTempRHsensor.SI7021_GetElectronicSerialNumber ( &myData );
-    // Get the Firmware revision
-    mySI7021status   =   myTempRHsensor.SI7021_GetFirmwareRevision       ( &myData );
-
-    newReading.attach( &readDATA, 0.1 );                                          // the address of the function to be attached ( readDATA ) and the interval ( 1s )
+    // L'adresse de la fonction a utilisé ( readData ) l'intervale de temps ( 1s )
+    newReading.attach( &readData, 0.1 );
     while (1) {
-        if (button1.Touched()) button2.Draw();
-        if (button2.Touched()) button1.Draw();
 
-        NumBoutonGroupMode=bGroup1.GetTouchedNumber();
-        if(bGroup1.GetTouchedNumber(NumBoutonGroupMode)) {
-            switch (NumBoutonGroupMode) {
+        NumBoutonGroup1=bGroup1.GetTouchedNumber();
+        if(bGroup1.GetTouchedNumber(NumBoutonGroup1)) {
+            switch (NumBoutonGroup1) {
                 case 0 :
                     bGroup1.Inactivate(0);
                     bGroup1.Activate(1);
@@ -102,51 +95,81 @@
             }
         }
 
+        NumBoutonGroup2=bGroupMode.GetTouchedNumber();
+        if(bGroupMode.GetTouchedNumber(NumBoutonGroup2)) {
+            switch (NumBoutonGroup2) {
+                case 0 :
+                    bGroupMode.Inactivate(0);
+                    bGroupMode.Activate(1);
+                    bGroupMode.Activate(2);
+
+                    break;
+                case 1 :
+                    bGroupMode.Inactivate(1);
+                    bGroupMode.Activate(0);
+                    bGroupMode.Activate(2);
+
+                    break;
+                case 2 :
+                    bGroupMode.Inactivate(2);
+                    bGroupMode.Activate(0);
+                    bGroupMode.Activate(1);
+                    break;
+            }
+        }
+
+        if(start.Touched()==1) {
+            t.start();
+            start.Inactivate();
+        }
+
+        // Si "stand" bouton appuyé, affichage retour au stand, on envoie plus aucune info
+        if (stand.Touched())
+            BlinkLabel warning(250, 180, "Retour au stand", Label::LEFT, Font16);
+
         if (bias.Slide()) {
-
             valBias.Draw("%d",bias.GetValue());
         }
         if (diff.Slide()) {
-
             valDiff.Draw("%d",diff.GetValue());
         }
 
         sleep();
 
         if ( myState == 1 ) {
-            // Trigger a new Humidity conversion ( the temperature conversion is triggered by default )
-            myled1    =  1;
+            //Déclenche une nouvelle mesure d'humidité et de température
+            led1    =  1;
 
-            mySI7021status   =    myTempRHsensor.SI7021_TriggerHumidity       ( SI7021::SI7021_NO_HOLD_MASTER_MODE );
-            mySI7021status   =    myTempRHsensor.SI7021_TriggerTemperature    ( SI7021::SI7021_NO_HOLD_MASTER_MODE );
-        } 
-        else if ( myState == 2 ) {
-            // Read Humidity and Temperature result
-            mySI7021status   =    myTempRHsensor.SI7021_ReadHumidity          ( &myData );
-            mySI7021status   =    myTempRHsensor.SI7021_ReadTemperatureFromRH ( &myData );
+            mySI7021status = myTempRHsensor.SI7021_TriggerHumidity ( SI7021::SI7021_NO_HOLD_MASTER_MODE );
+            mySI7021status = myTempRHsensor.SI7021_TriggerTemperature( SI7021::SI7021_NO_HOLD_MASTER_MODE );
+        } else if ( myState == 2 ) {
+            // Lecture des mesures de température et d'humidité
+            mySI7021status = myTempRHsensor.SI7021_ReadHumidity ( &myData );
+            mySI7021status = myTempRHsensor.SI7021_ReadTemperatureFromRH ( &myData );
 
+            //Affichage sur l'écran LCD des valeurs
             valTemp.Draw("%0.1f", myData.Temperature);
             valHumi.Draw("%0.0f", myData.RelativeHumidity);
-            time.Draw("%3.3f", t.read());
 
-            myState   =  0; // Reset state
-            myled1    =  0;
+            myState = 0; // Reset state
+            led1 = 0;
 
-            readTime = t.read();
-            //sprintf(text,"%0.3f",readTime);
+        }
+        time.Draw("%3.3f", t.read());
 
-            if(t.read() >= 30) {
-                nLap++;
-                //allTime.Draw(text);
-                t.reset();
-            }
+        if(t.read() >= 30) { //Condition fin de tour
+            nLap++;
+            t.reset();
+        }
+
+        lap.Draw("Lap %d/5",nLap);
 
-            if(nLap == 5) {
-                t.stop();
-                t.reset();
-            }
+        if(nLap == 5) { //Condition pour arreter le nombre de tour
+            t.stop();
+            t.reset();
+            BlinkLabel finish(240, 180,"Course Termine",Label::CENTER);
+        }
 
-            lap.Draw("Lap %d/5",nLap);
-        }
+
     }
 }