From 7d1f86949f4b72895aaf675a1f001d834160369b Mon Sep 17 00:00:00 2001 From: haller Date: Sun, 24 Apr 2005 21:27:07 +0000 Subject: Début d'implémentation des fonctions Y'a encore du boulot --- 2005/i/robert/src/es/es.cc | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 2005/i/robert/src/es/es.hh | 16 ++++++++++--- 2 files changed, 71 insertions(+), 3 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 b494d6d..b4aab7e 100644 --- a/2005/i/robert/src/es/es.cc +++ b/2005/i/robert/src/es/es.cc @@ -23,3 +23,61 @@ // // }}} +#include "es/es.hh" + +/// Constructeur +Es::Es (const Config & config) + :proto_(*this), vitesseAsc(/*XXX*/), couleur(/*comment on la récup?*/), jackOut(/*idem*/) +{ + init(); +} + +void Es::init(void) +{ + // On reset l'AVR + proto_.send('z'); // XXX z = reset AVR + // on récup les données de couleur_ et de jackOut(mais comment??) + proto_.sync(); +} + +bool Es::stateJack(void) +{ + proto_.sync(); + return jackOut_; // XXX Ou autre methode +} + +bool Es::capteursContact(void) +{ + proto_.sync(); + return stateCapteurs_; +} + +levelAsc Es::stateAsc(void) // XXX Probleme dans le nom +{ + proto_sync(); + return stateAsc_; +} + +void Es::moveAsc(levelAsc niveau) +{ + proto.sync(); + if(niveau == HAUT) + proto_.send('a',"b",2); + else if(niveau == MILIEU) + proto_.send('a',"b",1); + else + proto_.send('a',"b",0); + ascIdle_ == false; +} + +void Es::ventouses(void) +{ + proto_.sync(); + proto_.send('v'); +} + +void receive(char command, const Proto::Frame & frame) +{ + // XXX Voir comment on fait +} + diff --git a/2005/i/robert/src/es/es.hh b/2005/i/robert/src/es/es.hh index 5eebc46..4828c85 100644 --- a/2005/i/robert/src/es/es.hh +++ b/2005/i/robert/src/es/es.hh @@ -25,9 +25,15 @@ // // }}} +#include "proto/proto.hh" + +class Config; + /// Gère la carte es et ses capteurs et actionneurs class Es : public Proto::Receiver { + public: + typedef enum{HAUT, MILIEU, BAS} levelAsc; private: // Objet Proto de communication vers la carte es Proto proto_; @@ -35,6 +41,12 @@ class Es : public Proto::Receiver int vitesseAsc_; // couleur de notre camp (rouge/vert); int couleur_; + // Etat du jack (false si entré, true si sortie) + bool jackOut_; + /// Etat des capteurs enculeurs de murs (true si enfoncés) + bool stateCapteurs_; + levelAsc stateAsc; + bool ascIdle_; public: /// Constructeur @@ -46,13 +58,11 @@ class Es : public Proto::Receiver /// 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) - bool stateAsc(void); + Es::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 void ventouses(void); - /// Indique la position des ventouses(false quand désactivé) - bool stateVentouses (void); /// définition du receiver::receive void receive(char command, const Proto::Frame & frame); }; -- cgit v1.2.3