summaryrefslogtreecommitdiff
path: root/n/asserv/utils/graph/asserv_graph.cc
diff options
context:
space:
mode:
Diffstat (limited to 'n/asserv/utils/graph/asserv_graph.cc')
-rw-r--r--n/asserv/utils/graph/asserv_graph.cc26
1 files changed, 20 insertions, 6 deletions
diff --git a/n/asserv/utils/graph/asserv_graph.cc b/n/asserv/utils/graph/asserv_graph.cc
index 2453031..2edb612 100644
--- a/n/asserv/utils/graph/asserv_graph.cc
+++ b/n/asserv/utils/graph/asserv_graph.cc
@@ -28,6 +28,7 @@
#include <iostream>
#include <stdexcept>
+#include <cmath>
/// Classe de connexion à Proto.
class AsservGraph : public Proto::Receiver
@@ -49,7 +50,7 @@ class AsservGraph : public Proto::Receiver
int n;
int sP, sS, sC, sW, sY;
bool host;
- double iu_mm;
+ double iu_mm, footing;
int seq;
public:
AsservGraph (int argc, char **argv)
@@ -81,8 +82,9 @@ class AsservGraph : public Proto::Receiver
if (host)
{
sY = config.get<int> ("asserv.stat_simu");
- iu_mm = config.get<double> ("iu_mm");
}
+ iu_mm = config.get<double> ("iu_mm");
+ footing = config.get<double> ("footing");
proto_.open (config.get<std::string> ("asserv.tty"));
init ();
}
@@ -106,7 +108,6 @@ class AsservGraph : public Proto::Receiver
proto_.send ('W', "b", sW);
if (host)
proto_.send ('Y', "b", sY);
- ///proto_.send ('p', "bw", 'h', (int) ((110 - 0) * iu_mm));
}
void receive (char command, const Proto::Frame &frame)
{
@@ -155,6 +156,7 @@ class AsservGraph : public Proto::Receiver
" c teste le pas\n"
" s DUR teste la vitesse\n"
" p teste la position à vitesse controlée\n"
+ " r teste la position à vitesse controlée\n"
" h teste la detection de trous\n"
<< std::endl;
}
@@ -194,8 +196,8 @@ class AsservGraph : public Proto::Receiver
proto_.wait (-1);
break;
case 'c':
- proto_.send ('c', "ww", 128, 0);
- for (n = 0; n < 100;)
+ proto_.send ('c', "ww", 1000, 0);
+ for (n = 0; n < 400;)
proto_.wait (-1);
break;
case 's':
@@ -212,7 +214,19 @@ class AsservGraph : public Proto::Receiver
proto_.wait (-1);
break;
case 'p':
- proto_.send ('s', "wwbb", 1024, 0, 64, 0);
+ proto_.send ('s', "ddb", (int) (iu_mm * 420), 0, 1);
+ for (n = 0; n < 500;)
+ proto_.wait (-1);
+ break;
+ case 'r':
+ proto_.send ('s', "ddb", 0,
+ (int) (iu_mm * M_PI_2 * 0.5 * footing), 1);
+ for (n = 0; n < 500;)
+ proto_.wait (-1);
+ break;
+ case 'R':
+ proto_.send ('s', "ddb", (int) (iu_mm * 512),
+ (int) (iu_mm * -64), 1);
for (n = 0; n < 500;)
proto_.wait (-1);
break;