summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/es
diff options
context:
space:
mode:
authorhaller2005-04-24 21:27:07 +0000
committerhaller2005-04-24 21:27:07 +0000
commit7d1f86949f4b72895aaf675a1f001d834160369b (patch)
tree1106951bb6dbb634d4ec8b6a510dac3714d6f37e /2005/i/robert/src/es
parent3fe94413d04df7057ea54e15f3b4dd59565749dd (diff)
Début d'implémentation des fonctions
Y'a encore du boulot
Diffstat (limited to '2005/i/robert/src/es')
-rw-r--r--2005/i/robert/src/es/es.cc58
-rw-r--r--2005/i/robert/src/es/es.hh16
2 files changed, 71 insertions, 3 deletions
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);
};