From 9241eafeaa905331533f0e430b2df9f3af4ec379 Mon Sep 17 00:00:00 2001 From: Jérémy Dufour Date: Sun, 20 Apr 2008 16:06:52 +0200 Subject: * digital/io/src - add asserv commands to the UART protocol. --- digital/io/src/main.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'digital/io') diff --git a/digital/io/src/main.c b/digital/io/src/main.c index 11986f7f..0ac2e9a2 100644 --- a/digital/io/src/main.c +++ b/digital/io/src/main.c @@ -216,6 +216,58 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args) getsamples_start (args[0], args[1]); break; + /* Asserv */ + case c ('a', 1): + { + switch (args[0]) + { + case 'f': + /* Free motor */ + asserv_free_motor (); + break; + case 's': + /* Stop motor */ + asserv_stop_motor (); + break; + case 'w': + /* Go to the wall */ + asserv_go_to_the_wall (); + break; + case 'd': + /* Go to the distributor */ + asserv_go_to_distributor (); + break; + } + } + break; + case c ('a', 3): + { + switch (args[0]) + { + case 'r': + /* Angular move + * - 2b: angle of rotation + */ + asserv_goto_angle (v8_to_v16 (args[1], args[2])); + break; + } + } + break; + case c ('a', 5): + { + switch (args[0]) + { + case 'l': + /* Linear move + * - 4b: distance to move. + */ + asserv_move_linearly (v8_to_v32 (args[1], args[2], args[3], + args[4])); + break; + } + } + break; + default: /* Unknown commands */ proto_send0 ('?'); -- cgit v1.2.3