summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/es/es.cc
diff options
context:
space:
mode:
Diffstat (limited to '2005/i/robert/src/es/es.cc')
-rw-r--r--2005/i/robert/src/es/es.cc44
1 files changed, 25 insertions, 19 deletions
diff --git a/2005/i/robert/src/es/es.cc b/2005/i/robert/src/es/es.cc
index 6185328..3673fb3 100644
--- a/2005/i/robert/src/es/es.cc
+++ b/2005/i/robert/src/es/es.cc
@@ -28,31 +28,25 @@
/// Constructeur
Es::Es (const Config & config)
- :proto_(*this)
+ :proto_(*this), log_("Es")
{
// Récupération des valeurs de configuration dans le fichier
loadConfig(config);
proto_.open(tty_);
- init();
}
void Es::init(void)
{
- // XXX Bon ca serait cool que l'AVR renvoie toute ses info au reset
// On reset l'AVR
- proto_.send('z'); // XXX z = reset AVR
- // XXX on récup les données de couleur_ et de jackOut(mais comment??)
+ proto_.send('z');
proto_.sync();
- angle1_ = 0;
- dist1_ = 0;
- angle2_ = 0;
- dist2_ = 0;
- angle3_ = 0;
- dist3_ = 0;
ascIdle_ = true;
ascFailure_ = false;
+ // Envoire des paramètre ascenceur vers l'AVR
proto_.send('P',"bbbbbb", ascMinHaut_, ascMaxHaut_, ascAccHaut_,
ascMinBas_, ascMaxBas_, ascAccBas_);
+ // Envoie de la période de retour des mesure télémètre
+ proto_.send('C',"b", pStatTele_);
ascCurrentPos_ = false;
}
@@ -71,6 +65,14 @@ bool Es::ascIsIdle(void)
return ascIdle_;
}
+bool Es::obsTropPres(void)
+{
+ if(distGauche_ > teleSeuil_ || distDroite_ > teleSeuil_)
+ return true;
+ else
+ return false;
+}
+
void Es::monterAsc(void)
{
proto_.send('m');
@@ -104,6 +106,9 @@ void Es::loadConfig(const Config & config)
ascAccBas_ = config.get<int>("es.ascAccBas");
pVentouses_ = config.get<int>("es.pVentouses");
+
+ pStatTele_ = config.get<int>("es.pStatTele");
+ teleSeuil_ = config.get<int>("es.teleSeuil");
}
void Es::receive(char command, const Proto::Frame & frame)
@@ -111,23 +116,24 @@ void Es::receive(char command, const Proto::Frame & frame)
switch(command)
{
case 'T': //L'ascenceur est en haut
- proto_.send('F', "b", 0); //XXX on met l'arg??
+ proto_.send('F', "b", 0);
ascCurrentPos_ = true;
ascIdle_ = true;
break;
- case 'I': // XXX L'ascenceur est en bas (ca serait cool si c'était implenté)
- proto_.send('F', "b", 0); // XXX idem
+ case 'I': // L'ascenceur est en bas
+ proto_.send('F', "b", 0);
ascCurrentPos_ = false;
ascIdle_ = true;
break;
- case 'E': // XXX Problème d'ascenseur
- proto_.send('F', "b", 0); // XXX idem
+ case 'E': // Problème d'ascenseur
+ proto_.send('F', "b", 0);
ascCurrentPos_ = false;
ascIdle_ = true;
- ascFailure_ = true; // XXX Mais alors pour le repasser à false...
+ ascFailure_ = true;
break;
- case 't': // Cachalot de Romain(Tourelle)
- // XXX A CODER
+ case 'C': // retour télémètre
+ proto_.decode(frame,"ww", distGauche_, distDroite_);
+ log_("Télémètre") << "Valeur gauche" << distGauche_ << "Valeur Droite" << distDroite_;
break;
}