From 9b4d2709fc7ebd2285e5f5d0cb98d72e8d6e2d03 Mon Sep 17 00:00:00 2001 From: haller Date: Wed, 27 Apr 2005 21:42:37 +0000 Subject: Modification de deux trois choses Y'a encore du boulot --- 2005/i/robert/src/es/es.cc | 29 +++++++++++++++++++++-------- 2005/i/robert/src/es/es.hh | 17 ++++++++++++----- 2 files changed, 33 insertions(+), 13 deletions(-) (limited to '2005/i/robert/src/es') diff --git a/2005/i/robert/src/es/es.cc b/2005/i/robert/src/es/es.cc index b4aab7e..41baa51 100644 --- a/2005/i/robert/src/es/es.cc +++ b/2005/i/robert/src/es/es.cc @@ -34,6 +34,7 @@ Es::Es (const Config & config) 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 // on récup les données de couleur_ et de jackOut(mais comment??) @@ -42,25 +43,21 @@ void Es::init(void) bool Es::stateJack(void) { - proto_.sync(); - return jackOut_; // XXX Ou autre methode + return jackOut_; } bool Es::capteursContact(void) { - proto_.sync(); return stateCapteurs_; } -levelAsc Es::stateAsc(void) // XXX Probleme dans le nom +levelAsc Es::stateAsc(void) // XXX Au secours!! { - proto_sync(); return stateAsc_; } void Es::moveAsc(levelAsc niveau) { - proto.sync(); if(niveau == HAUT) proto_.send('a',"b",2); else if(niveau == MILIEU) @@ -72,12 +69,28 @@ void Es::moveAsc(levelAsc niveau) void Es::ventouses(void) { - proto_.sync(); proto_.send('v'); } void receive(char command, const Proto::Frame & frame) { - // XXX Voir comment on fait + switch(command) + { + case 'J': //position jack + if(frame.args[0]) + jackOut_ = true; + else + jackOut = false; + break; + case 'C': //couleur selectionné + if(frame.args[0]) + couleur_ = true; + else + couleur_ = false; + break; + case 'F': //J'ai fini (on suppose qu'il n'y a que l'asc) + proto.send('F'); // XXX On met un argument?? + ascIdle_ = true; + } } diff --git a/2005/i/robert/src/es/es.hh b/2005/i/robert/src/es/es.hh index 4828c85..86db4ed 100644 --- a/2005/i/robert/src/es/es.hh +++ b/2005/i/robert/src/es/es.hh @@ -38,9 +38,14 @@ class Es : public Proto::Receiver // Objet Proto de communication vers la carte es Proto proto_; // vitesse de déplacement de l'ascenceur - int vitesseAsc_; - // couleur de notre camp (rouge/vert); - int couleur_; + int ascMinHaut; + int ascMaxHaut; + int ascAscHaut; + int ascMinBas; + int ascMaxBas; + int ascAscBas; + // couleur de notre camp (rouge(true)/vert(false)); + bool couleur_; // Etat du jack (false si entré, true si sortie) bool jackOut_; /// Etat des capteurs enculeurs de murs (true si enfoncés) @@ -54,11 +59,13 @@ class Es : public Proto::Receiver /// Initialise les capteurs et actionneurs void init(void); // Renvoie la position du jack (false si entré, true si sortie) - bool stateJack(void); + bool getStateJack(void); + /// Renvoie la couleur sélectionné + bool getColor(void); /// Renvoie l'état des capteurs de contact(true si les 2 enfoncés) bool capteursContact(void); /// Renvoie la position de l'ascenceur(true en haut false en bas) - Es::levelAsc stateAsc(void); ///XXX au secours + levelAsc stateAsc(void); ///XXX au secours /// Execute un déplacement de l'ascenceur void moveAsc(bool monte); /// Désactive les ventouses pour X secondes XXX vérifier la durées arg/config -- cgit v1.2.3