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.cc59
1 files changed, 39 insertions, 20 deletions
diff --git a/2005/i/robert/src/es/es.cc b/2005/i/robert/src/es/es.cc
index 6fe728a..6185328 100644
--- a/2005/i/robert/src/es/es.cc
+++ b/2005/i/robert/src/es/es.cc
@@ -24,13 +24,15 @@
// }}}
#include "es/es.hh"
+#include "config/config.hh"
/// Constructeur
Es::Es (const Config & config)
- :proto_(*this), vitesseAsc(/*XXX*/), couleur(/*comment on la récup?*/)
+ :proto_(*this)
{
// Récupération des valeurs de configuration dans le fichier
- pVentouses_ = config.get<int>("es.pVentouses");
+ loadConfig(config);
+ proto_.open(tty_);
init();
}
@@ -41,24 +43,30 @@ void Es::init(void)
proto_.send('z'); // XXX z = reset AVR
// XXX on récup les données de couleur_ et de jackOut(mais comment??)
proto_.sync();
+ angle1_ = 0;
+ dist1_ = 0;
+ angle2_ = 0;
+ dist2_ = 0;
+ angle3_ = 0;
+ dist3_ = 0;
+ ascIdle_ = true;
+ ascFailure_ = false;
+ proto_.send('P',"bbbbbb", ascMinHaut_, ascMaxHaut_, ascAccHaut_,
+ ascMinBas_, ascMaxBas_, ascAccBas_);
+ ascCurrentPos_ = false;
}
-bool Es::getColor(void)
-{
- return couleur_;
-}
-
-bool Es::getAscCurrentPos(void)
+bool Es::getAscCurPos(void)
{
return ascCurrentPos_;
}
bool Es::getAscState(void)
{
- return ascFailure__;
+ return ascFailure_;
}
-bool Es::AscIsIdle(void)
+bool Es::ascIsIdle(void)
{
return ascIdle_;
}
@@ -85,32 +93,43 @@ void Es::wait(int timeout)
proto_.wait(timeout);
}
-void receive(char command, const Proto::Frame & frame)
+void Es::loadConfig(const Config & config)
+{
+ tty_ = config.get<std::string>("es.tty");
+ ascMinHaut_ = config.get<int>("es.ascMinHaut");
+ ascMaxHaut_ = config.get<int>("es.ascMaxHaut");
+ ascAccHaut_ = config.get<int>("es.ascAccHaut");
+ ascMinBas_ = config.get<int>("es.ascMinBas");
+ ascMaxBas_ = config.get<int>("es.ascMaxBas");
+ ascAccBas_ = config.get<int>("es.ascAccBas");
+
+ pVentouses_ = config.get<int>("es.pVentouses");
+}
+
+void Es::receive(char command, const Proto::Frame & frame)
{
switch(command)
{
- case 'C': //couleur selectionné XXX A voir
- if(frame.args[0])
- couleur_ = true;
- else
- couleur_ = false;
- break;
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
+ case 'I': // XXX L'ascenceur est en bas (ca serait cool si c'était implenté)
+ proto_.send('F', "b", 0); // 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;
+ ascIdle_ = true;
ascFailure_ = true; // XXX Mais alors pour le repasser à false...
break;
+ case 't': // Cachalot de Romain(Tourelle)
+ // XXX A CODER
+ break;
+
}
}