summaryrefslogtreecommitdiff
path: root/digital/asserv/src/asserv/twi_proto.c
diff options
context:
space:
mode:
authorNicolas Schodet2013-04-07 01:36:39 +0200
committerNicolas Schodet2013-04-07 15:57:24 +0200
commitc58213184b835602210229ede670c854c35959d5 (patch)
tree9935475ca7703264abe4227155b9d7d5f2bec04b /digital/asserv/src/asserv/twi_proto.c
parent5512364835b89c2e2599bd19b76c8b08236fa089 (diff)
digital/asserv/src/asserv: add follow external consign trajectory
Diffstat (limited to 'digital/asserv/src/asserv/twi_proto.c')
-rw-r--r--digital/asserv/src/asserv/twi_proto.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/digital/asserv/src/asserv/twi_proto.c b/digital/asserv/src/asserv/twi_proto.c
index 686f236b..3ebde309 100644
--- a/digital/asserv/src/asserv/twi_proto.c
+++ b/digital/asserv/src/asserv/twi_proto.c
@@ -120,7 +120,13 @@ twi_proto_callback (u8 *buf, u8 size)
size -= 1;
}
/* Handle sequence number. */
- if (buf[0] == 0 || buf[0] == twi_proto.seq)
+ if (buf[0] == 0)
+ {
+ /* Transient command. */
+ traj_follow_update (v8_to_v16 (buf[1], buf[2]));
+ return;
+ }
+ if (buf[0] == twi_proto.seq)
return;
#define c(cmd, size) (cmd)
switch (c (buf[1], 0))
@@ -189,6 +195,11 @@ twi_proto_callback (u8 *buf, u8 size)
/* Go to the dispenser. */
traj_gtd_start ();
break;
+ case c ('o', 1):
+ /* Follow external consign.
+ * - b: 0: forward, 1: backward. */
+ traj_follow_start (buf[2]);
+ break;
case c ('x', 7):
/* Go to position.
* - 3b: x position.