Classes et code de la partie pompe du Robot 2021

Dependencies:   mbed ident_crac

bloc_monopompe.cpp

Committer:
smarecar
Date:
2021-03-05
Revision:
7:b7dc6201b520
Parent:
6:b06c430a7e14
Child:
8:ba95705cf7d4

File content as of revision 7:b7dc6201b520:

#include "bloc_monopompe.h"

bloc_monopompe::bloc_monopompe (PinName pompe, PinName electrovanne, PinName capteur) 
 : _pompe(pompe), _electrovanne(electrovanne), _capteur(capteur) 
{
    _pompe.period_us(20) ;
}

void bloc_monopompe::aspirer (void) 
{
    float val_cpt;
    _pompe = PWM_POMPE ;
    _electrovanne = ELEC_OUVERTE ;
    wait_ms(1000) ;
    val_cpt = _capteur.read() ;
    wait_ms(100) ;
    
    if( val_cpt >= SEUIL_CPT)
    {
        _gobelet_en_place = 1 ;
    }
    else
    {
        _gobelet_en_place = 0 ;
    }
}

void bloc_monopompe::relacher (void) 
{
    if(_capteur.read() >= SEUIL_CPT)
    {
        _pompe = PWM_STOP_POMPE;
        _electrovanne = ELEC_FERME ;
        wait_ms(100) ;
    }
    _gobelet_en_place = 0 ;
}

char bloc_monopompe::etat_actuel (void) 
{
    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 ;
        
    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 ;
}