summaryrefslogtreecommitdiff
path: root/i/marvin/src/asserv/asserv.cc
diff options
context:
space:
mode:
authorschodet2006-05-21 00:27:58 +0000
committerschodet2006-05-21 00:27:58 +0000
commita0375158e9dda56c60fe37318d320ac1e54a2049 (patch)
tree5d17f790ed66108f8d77169865c819f9eaede255 /i/marvin/src/asserv/asserv.cc
parentcd5fd2efaa1867932daf467ed7a64f4928e3578a (diff)
Renomage de fonctions, ajout du test et non commit d'un fichier .old :).
Diffstat (limited to 'i/marvin/src/asserv/asserv.cc')
-rw-r--r--i/marvin/src/asserv/asserv.cc27
1 files changed, 16 insertions, 11 deletions
diff --git a/i/marvin/src/asserv/asserv.cc b/i/marvin/src/asserv/asserv.cc
index e4e964e..f5321fc 100644
--- a/i/marvin/src/asserv/asserv.cc
+++ b/i/marvin/src/asserv/asserv.cc
@@ -43,6 +43,8 @@ Asserv::Asserv (Asserv::Receiver &receiver)
aAccel_ = config.get<int> ("asserv.a_accel");
tMaxSpeed_ = config.get<int> ("asserv.t_max_speed");
aMaxSpeed_ = config.get<int> ("asserv.a_max_speed");
+ tMaxSpeedSlow_ = config.get<int> ("asserv.t_max_speed_slow");
+ aMaxSpeedSlow_ = config.get<int> ("asserv.a_max_speed_slow");
tkp_ = config.get<int> ("asserv.tkp");
tki_ = config.get<int> ("asserv.tki");
tkd_ = config.get<int> ("asserv.tkd");
@@ -56,6 +58,7 @@ Asserv::Asserv (Asserv::Receiver &receiver)
stepPerMm_ = config.get<double> ("asserv.step_per_mm");
tty_ = config.get<std::string> ("asserv.tty");
proto_.open (tty_);
+ reset ();
}
/// Essaie de purger la liste d'émission et indique si elle est vide.
@@ -93,35 +96,35 @@ Asserv::reset (void)
setIntervalInPort (intervalInPort_);
setFooting (footing_);
setAccel (tAccel_, aAccel_);
- setMaxSpeed (tMaxSpeed_, aMaxSpeed_);
+ setMaxSpeed (tMaxSpeed_, aMaxSpeed_, tMaxSpeedSlow_, aMaxSpeedSlow_);
setCoef (tkp_, tki_, tkd_, akp_, akd_, akd_, esat_, isat_);
setPwmDir (lInvertPwm_, rInvertPwm_);
}
/// Set PWM.
void
-Asserv::setPwm (int l, int r)
+Asserv::pwm (int l, int r)
{
proto_.send ('w', "ww", l, r);
}
/// Position consign offset.
void
-Asserv::positionOffset (double t, double a)
+Asserv::offset (double t, double a)
{
proto_.send ('c', "ww", mmToStep (t), mmToStep (a));
}
/// Set speed.
void
-Asserv::setSpeed (int t, int a)
+Asserv::speed (int t, int a)
{
proto_.send ('s', "bb", t, a);
}
/// Speed controlled position consign offset.
void
-Asserv::setSpeedControlled (double t, double a, int seq)
+Asserv::speedTo (double t, double a, int seq)
{
proto_.send ('s', "ddb", mmToStep (t), mmToStep (a), seq);
}
@@ -137,7 +140,7 @@ Asserv::findHole (int seq)
void
Asserv::ack (int seq)
{
- proto_.send ('A', "b", seq);
+ proto_.send ('a', "b", seq);
}
/// Change counter stat interval.
@@ -202,7 +205,7 @@ Asserv::setPos (double x, double y, double a)
{
setXPos (x);
setYPos (y);
- setAPos (a);
+ setAngle (a);
}
/// Set current x position.
@@ -221,7 +224,7 @@ Asserv::setYPos (double y)
/// Set current angle.
void
-Asserv::setAPos (double a)
+Asserv::setAngle (double a)
{
proto_.send ('p', "bd", 'A', radToAvr (a));
}
@@ -245,11 +248,13 @@ Asserv::setAccel (int t, int a)
/// Set maximum speed for automatic movements.
void
-Asserv::setMaxSpeed (int t, int a)
+Asserv::setMaxSpeed (int t, int a, int ts, int as)
{
tMaxSpeed_ = t;
aMaxSpeed_ = a;
- proto_.send ('p', "bbb", 's', t, a);
+ tMaxSpeedSlow_ = ts;
+ aMaxSpeedSlow_ = as;
+ proto_.send ('p', "bbbbb", 's', t, a, ts, as);
}
/// Set motor control coeficients.
@@ -312,7 +317,7 @@ Asserv::receive (char command, const Proto::Frame &frame)
break;
case 'X':
if (proto_.decode (frame, "DDD", x, y, a))
- receiver_.receivePos (stepToMm (x), stepToMm (y), stepToMm (a));
+ receiver_.receivePos (stepToMm (x), stepToMm (y), avrToRad (a));
break;
case 'S':
if (proto_.decode (frame, "BB", t, a))