summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/asserv/test_asserv.cc
diff options
context:
space:
mode:
Diffstat (limited to '2005/i/robert/src/asserv/test_asserv.cc')
-rw-r--r--2005/i/robert/src/asserv/test_asserv.cc37
1 files changed, 32 insertions, 5 deletions
diff --git a/2005/i/robert/src/asserv/test_asserv.cc b/2005/i/robert/src/asserv/test_asserv.cc
index 302be6a..84c3366 100644
--- a/2005/i/robert/src/asserv/test_asserv.cc
+++ b/2005/i/robert/src/asserv/test_asserv.cc
@@ -151,19 +151,46 @@ main (int argc, char **argv)
i++;
break;
case 'f':
- if(++i > argc)
+ if(++i + 1 > argc)
throw std::runtime_error("syntax error");
- asserv.fuckTheWall(atoi(argv[i]));
+ switch(argv[i][0])
+ {
+ case 'd':
+ asserv.fuckTheWall(strtod(argv[i + 1], 0));
+ break;
+ case 'i':
+ asserv.fuckTheWall(atoi(argv[i + 1]));
+ break;
+ default:
+ throw std::runtime_error("syntax error");
+ break;
+ }
+ i++;
break;
case 's':
- if(++i + 1 > argc)
+ if(++i + 2 > argc)
throw std::runtime_error("syntax error");
- asserv.setSpeed(strtod(argv[i], 0), strtod(argv[++i], 0));
+ switch(argv[i][0])
+ {
+ case 'd':
+ i++;
+ asserv.setSpeed(strtod(argv[i], 0), strtod(argv[i + 1], 0));
+ break;
+ case 'i':
+ i++;
+ asserv.setSpeed(atoi(argv[i]), atoi(argv[i + 1]));
+ break;
+ default:
+ throw std::runtime_error("syntax error");
+ break;
+ }
+ i++;
break;
case 'w':
if(++i + 1 > argc)
throw std::runtime_error("syntax error");
- asserv.setPwm(strtod(argv[i], 0), strtod(argv[++i], 0));
+ asserv.setPwm(strtod(argv[i], 0), strtod(argv[i + 1], 0));
+ i++;
break;
case 'F':
asserv.finishAck();