From 6196925a8925a3c43ed60a0805c0aee450db8640 Mon Sep 17 00:00:00 2001 From: haller Date: Mon, 2 May 2005 19:03:39 +0000 Subject: Modification mineur et correction de bug Le programme compile et a été testé sur Mani --- 2005/i/robert/src/es/es.cc | 59 ++++++++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 20 deletions(-) (limited to '2005/i/robert/src/es/es.cc') diff --git a/2005/i/robert/src/es/es.cc b/2005/i/robert/src/es/es.cc index 6fe728a..6185328 100644 --- a/2005/i/robert/src/es/es.cc +++ b/2005/i/robert/src/es/es.cc @@ -24,13 +24,15 @@ // }}} #include "es/es.hh" +#include "config/config.hh" /// Constructeur Es::Es (const Config & config) - :proto_(*this), vitesseAsc(/*XXX*/), couleur(/*comment on la récup?*/) + :proto_(*this) { // Récupération des valeurs de configuration dans le fichier - pVentouses_ = config.get("es.pVentouses"); + loadConfig(config); + proto_.open(tty_); init(); } @@ -41,24 +43,30 @@ void Es::init(void) proto_.send('z'); // XXX z = reset AVR // XXX on récup les données de couleur_ et de jackOut(mais comment??) proto_.sync(); + angle1_ = 0; + dist1_ = 0; + angle2_ = 0; + dist2_ = 0; + angle3_ = 0; + dist3_ = 0; + ascIdle_ = true; + ascFailure_ = false; + proto_.send('P',"bbbbbb", ascMinHaut_, ascMaxHaut_, ascAccHaut_, + ascMinBas_, ascMaxBas_, ascAccBas_); + ascCurrentPos_ = false; } -bool Es::getColor(void) -{ - return couleur_; -} - -bool Es::getAscCurrentPos(void) +bool Es::getAscCurPos(void) { return ascCurrentPos_; } bool Es::getAscState(void) { - return ascFailure__; + return ascFailure_; } -bool Es::AscIsIdle(void) +bool Es::ascIsIdle(void) { return ascIdle_; } @@ -85,32 +93,43 @@ void Es::wait(int timeout) proto_.wait(timeout); } -void receive(char command, const Proto::Frame & frame) +void Es::loadConfig(const Config & config) +{ + tty_ = config.get("es.tty"); + ascMinHaut_ = config.get("es.ascMinHaut"); + ascMaxHaut_ = config.get("es.ascMaxHaut"); + ascAccHaut_ = config.get("es.ascAccHaut"); + ascMinBas_ = config.get("es.ascMinBas"); + ascMaxBas_ = config.get("es.ascMaxBas"); + ascAccBas_ = config.get("es.ascAccBas"); + + pVentouses_ = config.get("es.pVentouses"); +} + +void Es::receive(char command, const Proto::Frame & frame) { switch(command) { - case 'C': //couleur selectionné XXX A voir - if(frame.args[0]) - couleur_ = true; - else - couleur_ = false; - break; case 'T': //L'ascenceur est en haut proto_.send('F', "b", 0); //XXX on met l'arg?? ascCurrentPos_ = true; ascIdle_ = true; break; - case 'B': // XXX L'ascenceur est en bas (ca serait cool si c'était implenté) - proto_.send('F', "b", O); // XXX idem + case 'I': // XXX L'ascenceur est en bas (ca serait cool si c'était implenté) + proto_.send('F', "b", 0); // XXX idem ascCurrentPos_ = false; ascIdle_ = true; break; case 'E': // XXX Problème d'ascenseur proto_.send('F', "b", 0); // XXX idem ascCurrentPos_ = false; - ascIdle = true; + ascIdle_ = true; ascFailure_ = true; // XXX Mais alors pour le repasser à false... break; + case 't': // Cachalot de Romain(Tourelle) + // XXX A CODER + break; + } } -- cgit v1.2.3