From d3726bf21e29a70b4141a5802cb9a50b7880f364 Mon Sep 17 00:00:00 2001 From: haller Date: Wed, 4 May 2005 20:22:33 +0000 Subject: Ajout de la fonction tempo Modification de update --- 2005/i/robert/src/asserv/asserv.cc | 11 +++++++++-- 2005/i/robert/src/asserv/asserv.hh | 1 + 2005/i/robert/src/asserv/test_asserv.cc | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) (limited to '2005') diff --git a/2005/i/robert/src/asserv/asserv.cc b/2005/i/robert/src/asserv/asserv.cc index 662e52f..36b7534 100644 --- a/2005/i/robert/src/asserv/asserv.cc +++ b/2005/i/robert/src/asserv/asserv.cc @@ -323,12 +323,17 @@ double Asserv::getAccel(void) /// Règle les vitesses maximum(lineaire et rotation) void Asserv::setMaxSpeed(int maxSLin, int maxSRot) { - maxSLin_ = maxSLin; - maxSRot_ = maxSRot; + maxSLin_ = (maxSLin > 0 ? maxSLin : maxSLin_); + maxSRot_ = (maxSRot > 0 ? maxSLin : maxSLin_); // Envoie à l'AVR proto_.send('p',"bbb", 'm', maxSLin, maxSRot); } +int Asserv::getMaxLSpeed(void) +{ + return maxSLin_; +} + void Asserv::setUseTazFSM(bool use) { useTazFSM_ = use; @@ -462,6 +467,8 @@ int Asserv::mm2pas(double dist, bool format24eme) int Asserv::radTo256(double angle, bool format24eme) { + if(angle < 0) + angle += 2 * M_PI; if(format24eme) return static_cast((angle / (2 * M_PI)) * 256 * (1 << 24)); else diff --git a/2005/i/robert/src/asserv/asserv.hh b/2005/i/robert/src/asserv/asserv.hh index 07bb731..4064537 100644 --- a/2005/i/robert/src/asserv/asserv.hh +++ b/2005/i/robert/src/asserv/asserv.hh @@ -137,6 +137,7 @@ class Asserv : public NonCopyable, public Proto::Receiver void setAccel (int accel); double getAccel (void); void setMaxSpeed(int maxSLin, int maxSRot); + int getMaxLSpeed(void); void setUseTazFSM(bool use); void setInvPwm(bool leftInvPwm, bool rightInvPwm); //@} diff --git a/2005/i/robert/src/asserv/test_asserv.cc b/2005/i/robert/src/asserv/test_asserv.cc index ba9d033..228748c 100644 --- a/2005/i/robert/src/asserv/test_asserv.cc +++ b/2005/i/robert/src/asserv/test_asserv.cc @@ -311,8 +311,7 @@ main (int argc, char **argv) break; } } - - while (!asserv.wait (-1)); + asserv.sync(); break; } case 'w': @@ -326,6 +325,7 @@ main (int argc, char **argv) { asserv.wait (stop - t); t = Timer::getProgramTime (); + asserv.sync(); } break; } -- cgit v1.2.3