Classes et code de la partie pompe du Robot 2021

Dependencies:   mbed ident_crac

Revision:
4:4bae30d48662
Parent:
0:253443d82cba
Child:
5:88ab89ab12ad
Child:
6:b06c430a7e14
diff -r ac32a4abb2cc -r 4bae30d48662 bloc_monopompe.cpp
--- a/bloc_monopompe.cpp	Fri Jan 15 07:59:57 2021 +0000
+++ b/bloc_monopompe.cpp	Mon Jan 18 15:24:35 2021 +0000
@@ -6,7 +6,7 @@
     _pompe.period_us(20) ;
 }
 
-bool bloc_monopompe::aspirer (void) 
+void bloc_monopompe::aspirer (void) 
 {
     _pompe = PWM_POMPE ;
     _electrovanne = ELEC_OUVERTE ;
@@ -26,12 +26,10 @@
             _electrovanne = ELEC_OUVERTE ;
             _gobelet_en_place = 0 ;
         }
-        return _gobelet_en_place ;
     }
-    
 }
 
-bool bloc_monopompe::relacher (void) 
+void bloc_monopompe::relacher (void) 
 {
     _electrovanne = ELEC_OUVERTE ;
     wait_ms(100) ;
@@ -39,16 +37,36 @@
         _gobelet_en_place = 1 ;
     else 
        _gobelet_en_place = 0 ;
-       
-       return _gobelet_en_place ;
 }
 
-bool bloc_monopompe::possession (void) 
+char bloc_monopompe::etat_actuel (void) 
 {
-    if(_capteur.read() >= SEUIL_CPT)
+    char etat_groupe = 0 ;
+    bool etat_pompe;
+    bool etat_electrovanne ;
+    
+    if(_pompe.read() != 0)              //test de la pompe
+        etat_pompe = 1 ;
+    else 
+        etat_pompe = 0 ;
+    
+    if(_capteur.read() >= SEUIL_CPT)    //test du capteur
         _gobelet_en_place = 1 ;
     else 
         _gobelet_en_place = 0 ;
         
-        return _gobelet_en_place ;
+    if(_electrovanne.read())              //test de l'electrovanne
+        etat_pompe = 1 ;
+    else 
+        etat_pompe = 0 ;
+    
+    // contenue du char : (cela evite l'utilisation de pointeurs (car on a la flemme))
+    //0000 0 "bit pompe" "bit elec" "bit cpt"
+    return etat_groupe = (etat_pompe << 2) + (etat_electrovanne << 1) + _gobelet_en_place ;    
+}
+
+void bloc_monopompe::stop_pompe (void)
+{
+    _pompe = PWM_STOP_POMPE ;
+    _electrovanne = ELEC_OUVERTE ;
 }
\ No newline at end of file