From f8eabcc39b158563ebea7f1130e7c57368a6d047 Mon Sep 17 00:00:00 2001 From: haller Date: Thu, 5 May 2005 11:19:32 +0000 Subject: Retrait de log (floodage...) remonter de setAccel --- 2005/i/robert/src/motor/motor.cc | 49 +++++++++++++++++++---------------- 2005/i/robert/src/motor/motor.hh | 2 ++ 2005/i/robert/src/motor/test_motor.cc | 5 ++++ 3 files changed, 34 insertions(+), 22 deletions(-) (limited to '2005/i/robert/src/motor') diff --git a/2005/i/robert/src/motor/motor.cc b/2005/i/robert/src/motor/motor.cc index d963342..9cf55f8 100644 --- a/2005/i/robert/src/motor/motor.cc +++ b/2005/i/robert/src/motor/motor.cc @@ -51,7 +51,7 @@ void Motor::init (void) // on règle le rafraichissement des positions asserv_.statPosition(pStatPosition_); asserv_.statMotor(pStatMotor_); - log_ ("initialisation") << "Etat" << "Terminée"; + //log_ ("initialisation") << "Etat" << "Terminée"; } // Arrête les moteurs @@ -107,7 +107,7 @@ void Motor::goTo(double x, double y, double a) void Motor::recalage(void) { asserv_.fuckTheWall(-3); // XXX Mettre l'arg en conf - log_ ("recalage") << "Vitesse" << "-3"; + //log_ ("recalage") << "Vitesse" << "-3"; idle_ = false; } @@ -119,14 +119,14 @@ bool Motor::idle(void) void Motor::linearMove(double d) { asserv_.linearMove(d); - log_ ("linearMove") << "Valeur" << d; + //log_ ("linearMove") << "Valeur" << d; idle_ = false; } void Motor::rotation(double newA) { asserv_.angularMove(newA); - log_ ("rotation") << "Valeur" << newA; + //log_ ("rotation") << "Valeur" << newA; idle_ = false; } @@ -135,6 +135,11 @@ void Motor::setMaxSpeed(int maxLspeed, int maxRspeed) asserv_.setMaxSpeed(maxLspeed, maxRspeed); } +void Motor::setAccel(int accel) +{ + asserv_.setAccel(accel); +} + int Motor::getMaxLSpeed(void) { return asserv_.getMaxLSpeed(); @@ -142,42 +147,42 @@ int Motor::getMaxLSpeed(void) bool Motor::sync(void) { - log_("sync") << "Entré dans sync" << ""; + //log_("sync") << "Entré dans sync" << ""; // On regarde si toutes les commandes ont été envoyées et aquittées if (asserv_.sync()) { - log_("sync") << "Toutes les commandes ont été envoyés et aquitté" << ""; + //log_("sync") << "Toutes les commandes ont été envoyés et aquitté" << ""; if(doneDone_) // Si on a reçu des F depuis le dernier sync { - log_("sync") << "On a des F" << ""; + //log_("sync") << "On a des F" << ""; if(!f0Sended_) // Si on avait pas envoyé de f0 { - log_("sync") << "On envoie le F0" << ""; + //log_("sync") << "On envoie le F0" << ""; asserv_.finishAck(); f0Sended_ = true; } else // Si l'AVR vient d'aquitter le F0 { - log_("sync") << "On a déjà envoyé le F0, on s'en fout" << ""; + //log_("sync") << "On a déjà envoyé le F0, on s'en fout" << ""; doneDone_ = false; } } else // Si on a pas reçu de F { - log_("sync") << "On a pas reçu de F" << ""; + //log_("sync") << "On a pas reçu de F" << ""; if(f0Sended_) // On peut envoyer une nouvelle commande { - log_("sync") << "Pret pour un nouveau travail" << ""; + //log_("sync") << "Pret pour un nouveau travail" << ""; if(fOrdre_.empty()) //Si la pile est vide { - log_("sync") << "On repasse en Idle" << ""; + //log_("sync") << "On repasse en Idle" << ""; idle_ = true; // Les moteurs sont idle } else { - log_("sync") << "Prochaine commande de la pile" << ""; + //log_("sync") << "Prochaine commande de la pile" << ""; if(fOrdre_.front().ordre_) // Linear Move linearMove(fOrdre_.front().arg_); else @@ -186,8 +191,8 @@ bool Motor::sync(void) } f0Sended_ = false; } - else - log_("sync") << "Le Robot est en activité/pause, on y touche pas" << ""; + // else + //log_("sync") << "Le Robot est en activité/pause, on y touche pas" << ""; } return true; } @@ -208,35 +213,35 @@ int Motor::getFd(void) bool Motor::jackState(void) { pinUpdated_ = false; - asserv_.statInPort(1); /// XXX La période est défini comment?? (en dur, et c'est 8 période d'asserv) +/* asserv_.statInPort(8); /// XXX La période est défini comment?? (en dur, et c'est 8 période d'asserv) while(!pinUpdated_) { sync(); } + /// On fait fermer sa gueule à l'AVR sur l'epineux sujet du port d'entrée + asserv_.statInPort(); */ int temp = pinState_ & 0x0040; // XXX Ouais à tester if(temp == 0x0040) // si le jack est retiré return true; else return false; - /// On fait fermer sa gueule à l'AVR sur l'epineux sujet du port d'entrée - asserv_.statInPort(); } bool Motor::colorState (void) { pinUpdated_ = false; - asserv_.statInPort(1); /// XXX La période est défini comment?? (en dur, et c'est 8 période d'asserv) +/* asserv_.statInPort(1); /// XXX La période est défini comment?? (en dur, et c'est 8 période d'asserv) while(!pinUpdated_) { sync(); - } + } */ int temp = pinState_ & 0x0002; // XXX Ouais à tester if(temp == 0x0002) // si le jack est retiré return true; else return false; /// On fait fermer sa gueule à l'AVR sur l'epineux sujet du port d'entrée - asserv_.statInPort(); + //asserv_.statInPort(); } void Motor::receiveCounter (double lMotor, double rMotor) @@ -289,6 +294,6 @@ void Motor::receiveTazState(int state, int subState) void Motor::done (void) { - log_("done") << "Passage dans done" << ""; + //log_("done") << "Passage dans done" << ""; doneDone_ = true; } diff --git a/2005/i/robert/src/motor/motor.hh b/2005/i/robert/src/motor/motor.hh index 27f1894..062957c 100644 --- a/2005/i/robert/src/motor/motor.hh +++ b/2005/i/robert/src/motor/motor.hh @@ -93,6 +93,8 @@ class Motor : public Asserv::Receiver void rotation(double newA); /// set de la vitesse des moteurs void setMaxSpeed(int maxLspeed, int maxRspeed); + /// set de l'acceleration des moteurs + void setAccel(int accel); /// récupère la vitesse linéaire maximum int getMaxLSpeed(void); /// Syncronisation diff --git a/2005/i/robert/src/motor/test_motor.cc b/2005/i/robert/src/motor/test_motor.cc index bc44f02..137e355 100644 --- a/2005/i/robert/src/motor/test_motor.cc +++ b/2005/i/robert/src/motor/test_motor.cc @@ -107,6 +107,11 @@ main (int argc, char **argv) case 'C': std::cout << "Couleur Sélectionné: " << (motor.colorState() ? "Rouge" : "Vert") << std::endl; break; + case 'A': + if(++i > argc) + throw std::runtime_error("syntax error"); + motor.setAccel(strtol(argv[0], 0, 10)); + break; case 'L': while(!motor.idle()) { -- cgit v1.2.3