Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: F746_GUI mbed SI7021
Revision 1:0883bd051a78, committed 2021-06-22
- 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);
- }
+
}
}