summaryrefslogtreecommitdiff
path: root/digital/asserv
diff options
context:
space:
mode:
authorNicolas Schodet2012-05-12 14:43:44 +0200
committerNicolas Schodet2012-05-12 14:55:05 +0200
commit38aa82a1a03efd53933957fece2e19567afbe6bd (patch)
tree0ba9d4ddf9c55f99c48f27f338859abbdb534bad /digital/asserv
parent4ffad1b7ff25687245747f30060b3d87663d8300 (diff)
digital/asserv, digital/mimot: add blocking simulation
Diffstat (limited to 'digital/asserv')
-rw-r--r--digital/asserv/src/asserv/main.c15
-rw-r--r--digital/asserv/tools/asserv/asserv.py7
2 files changed, 22 insertions, 0 deletions
diff --git a/digital/asserv/src/asserv/main.c b/digital/asserv/src/asserv/main.c
index 4170288b..e8355fbd 100644
--- a/digital/asserv/src/asserv/main.c
+++ b/digital/asserv/src/asserv/main.c
@@ -303,6 +303,21 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
control_state_set_mode (state, CS_MODE_NONE, 0);
break;
#endif
+ case c ('b', 0):
+ /* Simulate a blocked state. */
+ output_set (&output_left, 0);
+ output_set (&output_right, 0);
+ control_state_blocked (&cs_main.state);
+ break;
+#if AC_ASSERV_AUX_NB
+ case c ('B', 1):
+ /* Simulate a blocked state on auxiliary motor.
+ * - b: aux index. */
+ if (!auxp) { proto_send0 ('?'); return; }
+ output_set (output, 0);
+ control_state_blocked (state);
+ break;
+#endif
case c ('c', 4):
/* Add to position consign.
* - w: theta consign offset.
diff --git a/digital/asserv/tools/asserv/asserv.py b/digital/asserv/tools/asserv/asserv.py
index fb45c633..387bbbb4 100644
--- a/digital/asserv/tools/asserv/asserv.py
+++ b/digital/asserv/tools/asserv/asserv.py
@@ -177,6 +177,13 @@ class Proto:
del self.stats_line
return array
+ def block (self, w = None):
+ """Simulate blocking."""
+ if w is None:
+ self.proto.send ('b')
+ else:
+ self.proto.send ('B', 'B', self._index[w])
+
def consign (self, w, c):
"""Consign offset."""
if w == 't':