summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/es/es.cc
diff options
context:
space:
mode:
Diffstat (limited to '2005/i/robert/src/es/es.cc')
-rw-r--r--2005/i/robert/src/es/es.cc67
1 files changed, 41 insertions, 26 deletions
diff --git a/2005/i/robert/src/es/es.cc b/2005/i/robert/src/es/es.cc
index 5554d0a..6fe728a 100644
--- a/2005/i/robert/src/es/es.cc
+++ b/2005/i/robert/src/es/es.cc
@@ -27,8 +27,10 @@
/// Constructeur
Es::Es (const Config & config)
- :proto_(*this), vitesseAsc(/*XXX*/), couleur(/*comment on la récup?*/), jackOut(/*idem*/)
+ :proto_(*this), vitesseAsc(/*XXX*/), couleur(/*comment on la récup?*/)
{
+ // Récupération des valeurs de configuration dans le fichier
+ pVentouses_ = config.get<int>("es.pVentouses");
init();
}
@@ -37,39 +39,45 @@ 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??)
+ // XXX on récup les données de couleur_ et de jackOut(mais comment??)
proto_.sync();
}
-bool Es::stateJack(void)
+bool Es::getColor(void)
{
- return jackOut_;
+ return couleur_;
}
-bool Es::capteursContact(void)
+bool Es::getAscCurrentPos(void)
{
- return stateCapteurs_;
+ return ascCurrentPos_;
}
-levelAsc Es::stateAsc(void) // XXX Au secours!!
+bool Es::getAscState(void)
{
- return stateAsc_;
+ return ascFailure__;
}
-void Es::moveAsc(levelAsc niveau)
+bool Es::AscIsIdle(void)
{
- 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;
+ return ascIdle_;
+}
+
+void Es::monterAsc(void)
+{
+ proto_.send('m');
+ ascIdle_ = false;
+}
+
+void Es::descendreAsc(void)
+{
+ proto_.send('d');
+ ascIdle_ = false;
}
void Es::ventouses(void)
{
- proto_.send('v');
+ proto_.send('v',"b",pVentouses_);
}
void Es::wait(int timeout)
@@ -81,21 +89,28 @@ void receive(char command, const Proto::Frame & frame)
{
switch(command)
{
- case 'J': //position jack
- if(frame.args[0])
- jackOut_ = true;
- else
- jackOut = false;
- break;
- case 'C': //couleur selectionné
+ case 'C': //couleur selectionné XXX A voir
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??
+ 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
+ ascCurrentPos_ = false;
ascIdle_ = true;
+ break;
+ case 'E': // XXX Problème d'ascenseur
+ proto_.send('F', "b", 0); // XXX idem
+ ascCurrentPos_ = false;
+ ascIdle = true;
+ ascFailure_ = true; // XXX Mais alors pour le repasser à false...
+ break;
}
}