summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/es
diff options
context:
space:
mode:
authorhaller2005-04-27 21:42:37 +0000
committerhaller2005-04-27 21:42:37 +0000
commit9b4d2709fc7ebd2285e5f5d0cb98d72e8d6e2d03 (patch)
tree3d2e1d07d1ee939d39be6e8794742c597141df9b /2005/i/robert/src/es
parentf0ccf37dce1373d0e3ca70a68772de98ed67d995 (diff)
Modification de deux trois choses
Y'a encore du boulot
Diffstat (limited to '2005/i/robert/src/es')
-rw-r--r--2005/i/robert/src/es/es.cc29
-rw-r--r--2005/i/robert/src/es/es.hh17
2 files changed, 33 insertions, 13 deletions
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