Stephane Cantrelle / Mbed 2 deprecated chrono_TIR_V1

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
stefcan
Date:
Wed Apr 08 12:17:04 2020 +0000
Parent:
0:f38ea4ed5621
Commit message:
Sequenceur de tirs;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r f38ea4ed5621 -r bc16891b0e66 main.cpp
--- a/main.cpp	Wed Jan 22 10:26:34 2020 +0000
+++ b/main.cpp	Wed Apr 08 12:17:04 2020 +0000
@@ -1,28 +1,22 @@
-/* 4d systems touch screen display.
 
-uses the mbed_genie library ported from the arduino
-visie-genie library by Christian B
-
-The display serial TX and RX pins are connected to pin PA_9
-and pin PA_10 of the mbed
-
-The reset pin is not connected as reset function is not implemented
-
-For setting up the display in Visie-Genie
-
-The display has an gauge meter object, a LED digits object, two buttons
-and three static text objects.
-
-The On and Off button has been set to report on change
-The baud rate of the display is set to 115200 baud
-*/
 #include "mbed.h"
 #include "mbed_genie.h"
 
-DigitalOut myled(LED1);   //LED 1 for indication
+AnalogIn analog_value(A0);
+AnalogIn analog_value1(A1);
 
-int flag = 0;        //holds the "power status" of the voltmeter. flag = 0 means voltmeter is "off", flag = 1 means the voltmeter is "on".
-float chrono;       //holds the digital voltage value to be sent to the angular meter
+int i;
+int flag ;  
+int lum ;    
+float NB = 0 ;    
+   
+float conversion_tension=0;
+float conversion_tension1=0;
+
+void batterie();
+void Interval();
+Ticker allbatterie ;
+Ticker Intens ;
 
 //Event handler for the 4d Systems display
 void myGenieEventHandler(void)
@@ -31,55 +25,339 @@
     genieDequeueEvent(&Event);
     //event report from an object
     if(Event.reportObject.cmd == GENIE_REPORT_EVENT) {
-        /*
-        for example here we check if we received a message from 4dbuttons objects
-        the index is the button number, refer to the 4dgenie project to know the index
-        */
-        if (Event.reportObject.object == GENIE_OBJ_4DBUTTON) {              // If the Reported Message was from a button
-            if (Event.reportObject.index == 0) {
-                //printf("Off Button pressed!\n\r");
-                wait(0.2);
-                flag=1;
+      
+        if (Event.reportObject.object == GENIE_OBJ_4DBUTTON) {              // Permet de recuperer un message qui provient de l'un des 4D boutons
+                                    //PAGE DE LA LIGNE 1         
+            if (Event.reportObject.index == 9) {          
+                flag=9;
+            }
+            
+            if (Event.reportObject.index == 10) {         //Permet de relier le bouton 10 a la variable 10
+                flag=10;
+            }
+            
+            if (Event.reportObject.index == 36) {
+                flag=36;   
+            }
+                                    //PAGE DE LA LIGNE 2 
+            if (Event.reportObject.index == 12) {
+                flag=12;
+            }
+            
+            if (Event.reportObject.index == 13) {
+                flag=13;
+            }
+            
+            if (Event.reportObject.index == 38) {
+                flag=38;   
+            }
+                                    //PAGE DE LA LIGNE 3
+            if (Event.reportObject.index == 16) {
+                flag=16;
+            }
+            
+            if (Event.reportObject.index == 17) {
+                flag=17;
+            }
+            
+            if (Event.reportObject.index == 41) {
+                flag=41;   
+            }
+                                   //PAGE DE LA LIGNE 4
+            if (Event.reportObject.index == 19) {
+                flag=19;
+            }
+            
+            if (Event.reportObject.index == 20) {
+                flag=20;
+            }
+            
+            if (Event.reportObject.index == 42) {
+                flag=42;   
+            }
+                                   //PAGE DE LA LIGNE 5
+            if (Event.reportObject.index == 22) {
+                flag=22;
+            }
+            
+            if (Event.reportObject.index == 23) {
+                flag=23;
             }
-            if (Event.reportObject.index == 1) {
-                //printf("On Button pressed!\n\r");
-                wait(0.2);
-                flag=0;
+            
+            if (Event.reportObject.index == 45) {
+                flag=45;   
+            }                       
+                                   //PAGE DE LA LIGNE 6
+            if (Event.reportObject.index == 25) {
+                flag=25;
+            }
+            
+            if (Event.reportObject.index == 26) {
+                flag=26;
+            }
+            
+            if (Event.reportObject.index == 46) {
+                flag=46;   
+            }
+                                   //PAGE DE LA LIGNE 7
+            if (Event.reportObject.index == 28) {
+                flag=28;
+            }
+            
+            if (Event.reportObject.index == 29) {
+                flag=29;
+            }
+            
+            if (Event.reportObject.index == 48) {
+                flag=48;   
+            }
+                                   //PAGE DE LA LIGNE 8
+            if (Event.reportObject.index == 31) {
+                flag=31;
             }
-        }
-    }
+            
+            if (Event.reportObject.index == 32) {
+                flag=32;
+            }
+            
+            if (Event.reportObject.index == 50) {
+                flag=50;   
+            }
+                         //CONTRAST     
+            if (Event.reportObject.index == 61) {
+                lum=1;
+            }
+            
+            if (Event.reportObject.index == 60) {
+                lum=2;   
+            }                    
+                                
+        
+       }
+       
+  }
+}
 
-    //Cmd from a reported object (happens when an object read is requested)
-    // if(Event.reportObject.cmd == GENIE_REPORT_OBJ)
-    // {
-    // }
+void batterie(){
+    //batterie 6V
+    conversion_tension=analog_value.read();
+    conversion_tension=2.72/3.3;
+    conversion_tension=(conversion_tension*(100/1023.0))*1000;
+    genieWriteObject(GENIE_OBJ_TANK, 1,conversion_tension);
+         
+    //batterie 27V
+    conversion_tension1=analog_value.read();
+    conversion_tension1=2.67/3.3;
+    conversion_tension1=(conversion_tension*(100/1023.0))*1000;
+    genieWriteObject(GENIE_OBJ_TANK, 0,conversion_tension1);
+    return;
 }
 
-int main()
-
-{
-    SetupGenie();
-    genieAttachEventHandler(&myGenieEventHandler);
-    genieWriteContrast(10); //set screen contrast to full brightness
-    chrono=99;
-    
-    while(1) {
+void Interval(){
+    //PAGE DE LA LIGNE 1     
+        if (flag ==36) {
+                 NB= 0;
+                 genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00,NB);        //Permet de reset l'intervalle 
+                 wait (0.1);
+                 flag=0;
+            }else
+ 
+                 if (flag == 9) {
+                        NB=NB+1;
+                        genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00,NB);       //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur 
+                        wait (0.1);   
+                     }else 
+         
+                         if(flag == 10){
+                                NB=NB-1;
+                                genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00,NB);   //Permet de diminuer et d'afficher l'intervalle sur l'afficheur 
+                                wait (0.1);
+                                flag = 0 ; 
+                             }
+ //PAGE DE LA LIGNE 2
+        if (flag ==38) {
+                 NB= 0;
+                 genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x01,NB);        //Permet de reset l'intervalle 
+                 wait (0.1);
+                 flag=0;
+            }else
+ 
+                 if (flag == 12) {
+                        NB=NB+1;
+                        genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x01,NB);       //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur 
+                        wait (0.1);   
+                     }else 
+         
+                         if(flag == 13){
+                                NB=NB-1;
+                                genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x01,NB);   //Permet de diminuer et d'afficher l'intervalle sur l'afficheur 
+                                wait (0.1);
+                                flag = 0 ; 
+                             }
+//PAGE DE LA LIGNE 3
+        if (flag ==41) {
+                 NB= 0;
+                 genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x02,NB);        //Permet de reset l'intervalle 
+                 wait (0.1);
+                 flag=0;
+            }else
+ 
+                 if (flag == 16) {
+                        NB=NB+1;
+                        genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x02,NB);       //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur 
+                        wait (0.1);   
+                     }else 
+         
+                         if(flag == 17){
+                                NB=NB-1;
+                                genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x02,NB);   //Permet de diminuer et d'afficher l'intervalle sur l'afficheur 
+                                wait (0.1);
+                                flag = 0 ; 
+                             }
+//PAGE DE LA LIGNE 4
+        if (flag ==42) {
+                 NB= 0;
+                 genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x03,NB);        //Permet de reset l'intervalle 
+                 wait (0.1);
+                 flag=0;
+            }else
  
-        if (flag == 1) {
-            //printf("Flag status: %d \r\n", flag);
-            chrono=chrono-1;
-            genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00, chrono);      //write to Leddigits0 the value of voltLED
-            genieWriteObject(GENIE_OBJ_GAUGE , 0x00, chrono); //write to Angularmeter0 the value of voltMeter*/
-            wait (0.5);
-        }
-
-        else if(flag == 0){
-            genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x00, 0);  
-            genieWriteObject(GENIE_OBJ_GAUGE , 0x00, 0); //write to Angularmeter0 the value of voltMeter
-            chrono=99;
-            wait (0.5);
+                 if (flag == 19) {
+                        NB=NB+1;
+                        genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x03,NB);       //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur 
+                        wait (0.1);   
+                     }else 
+         
+                         if(flag == 20){
+                                NB=NB-1;
+                                genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x03,NB);   //Permet de diminuer et d'afficher l'intervalle sur l'afficheur 
+                                wait (0.1);
+                                flag = 0 ; 
+                             }
+//PAGE DE LA LIGNE 5
+        if (flag ==45) {
+                 NB= 0;
+                 genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x04,NB);        //Permet de reset l'intervalle 
+                 wait (0.1);
+                 flag=0;
+            }else
+ 
+                 if (flag == 22) {
+                        NB=NB+1;
+                        genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x04,NB);       //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur 
+                        wait (0.1);   
+                     }else 
+         
+                         if(flag == 23){
+                                NB=NB-1;
+                                genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x04,NB);   //Permet de diminuer et d'afficher l'intervalle sur l'afficheur 
+                                wait (0.1);
+                                flag = 0 ; 
+                             }
+//PAGE DE LA LIGNE 6
+        if (flag ==46) {
+                 NB= 0;
+                 genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x05,NB);        //Permet de reset l'intervalle 
+                 wait (0.1);
+                 flag=0;
+            }else
+ 
+                 if (flag == 25) {
+                        NB=NB+1;
+                        genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x05,NB);       //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur 
+                        wait (0.1);   
+                     }else 
+         
+                         if(flag == 26){
+                                NB=NB-1;
+                                genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x05,NB);   //Permet de diminuer et d'afficher l'intervalle sur l'afficheur 
+                                wait (0.1);
+                                flag = 0 ; 
+                             }
+//PAGE DE LA LIGNE 7
+        if (flag ==48) {
+                 NB= 0;
+                 genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x06,NB);        //Permet de reset l'intervalle 
+                 wait (0.1);
+                 flag=0;
+            }else
+ 
+                 if (flag == 28) {
+                        NB=NB+1;
+                        genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x06,NB);       //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur 
+                        wait (0.1);   
+                     }else 
+         
+                         if(flag == 29){
+                                NB=NB-1;
+                                genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x06,NB);   //Permet de diminuer et d'afficher l'intervalle sur l'afficheur 
+                                wait (0.1);
+                                flag = 0 ; 
+                             } 
+//PAGE DE LA LIGNE 8
+        if (flag ==50) {
+                 NB= 0;
+                 genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x07,NB);        //Permet de reset l'intervalle 
+                 wait (0.1);
+                 flag=0;
+            }else
+ 
+                 if (flag == 31) {
+                        NB=NB+1;
+                        genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x07,NB);       //Permet d'augmenter et d'afficher l'intervalle sur l'afficheur 
+                        wait (0.1);   
+                     }else 
+         
+                         if(flag == 32){
+                                NB=NB-1;
+                                genieWriteObject(GENIE_OBJ_LED_DIGITS, 0x07,NB);   //Permet de diminuer et d'afficher l'intervalle sur l'afficheur 
+                                wait (0.1);
+                                flag = 0 ; 
+                             }                            
+          if(NB==999){
+              NB = 0;
             }
-
+    
     }
 
-}
\ No newline at end of file
+int main(){
+      
+      SetupGenie();
+      genieAttachEventHandler(&myGenieEventHandler);
+      
+      allbatterie.attach(&batterie,60);      //Permet d'appeler la fonction batterie tous les 60 sec
+      
+
+      
+     while(1) {
+           
+     Interval();
+           //CONTRAST
+        
+    if(lum==1){
+        i=i+1;
+        lum=0;
+        genieWriteContrast(i);
+         genieWriteObject(GENIE_OBJ_LED_DIGITS, 16,i);
+   }    
+    if(lum==2){
+        i=i-1;
+        lum=0;
+        genieWriteContrast(i);
+         genieWriteObject(GENIE_OBJ_LED_DIGITS, 16,i);
+   }
+    if(i>=15){
+        i=15;
+        genieWriteContrast(i);
+        genieWriteObject(GENIE_OBJ_LED_DIGITS, 16,i);
+   }   
+    if(i<1){
+        i=1;
+        genieWriteContrast(i);
+        genieWriteObject(GENIE_OBJ_LED_DIGITS, 16,i);
+   }   
+   
+
+                      
+    }    
+}