summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--digital/io/src/main.c18
-rw-r--r--digital/io/tools/io/io.py3
-rw-r--r--digital/io/tools/test_simu_control.py14
3 files changed, 35 insertions, 0 deletions
diff --git a/digital/io/src/main.c b/digital/io/src/main.c
index 3a5e5901..bfa17068 100644
--- a/digital/io/src/main.c
+++ b/digital/io/src/main.c
@@ -56,6 +56,7 @@
#include "init.h"
#include "move.h"
#include "top.h"
+#include "loader.h"
#include "io.h"
@@ -406,6 +407,23 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
pwm_set (v8_to_v16 (args[0], args[1]), v8_to_v16 (args[2], args[3]));
break;
+ case c ('c', 1):
+ /* Loader control.
+ * - 1b: command:
+ * - 'd': move elevator down.
+ * - 'u': move elevator up.
+ */
+ switch (args[0])
+ {
+ case 'd':
+ loader_down ();
+ break;
+ case 'u':
+ loader_up ();
+ break;
+ }
+ break;
+
/* EEPROM command */
case c ('e', 1):
{
diff --git a/digital/io/tools/io/io.py b/digital/io/tools/io/io.py
index a98f0c9e..87471bbd 100644
--- a/digital/io/tools/io/io.py
+++ b/digital/io/tools/io/io.py
@@ -55,6 +55,9 @@ class Proto:
def pwm_set (self, value, timer):
self.proto.send ('w', 'Hh', value, timer)
+ def loader (self, command):
+ self.proto.send ('c', 'c', command)
+
def stats_usdist (self, cb):
self.proto.send ('U', 'B', 2 * 4 * 2)
self.usdist_cb = cb
diff --git a/digital/io/tools/test_simu_control.py b/digital/io/tools/test_simu_control.py
index 7145ed1a..49691fb7 100644
--- a/digital/io/tools/test_simu_control.py
+++ b/digital/io/tools/test_simu_control.py
@@ -46,6 +46,14 @@ class TestSimuControl (TestSimu):
text = 'Elevator', indicatoron = False,
variable = self.elevator_var, command = self.elevator_command)
self.elevator_button.pack ()
+ self.loader_up_button = Button (self.control_frame,
+ text = 'Loader up', padx = 0, pady = 0,
+ command = self.loader_up_command)
+ self.loader_up_button.pack ()
+ self.loader_down_button = Button (self.control_frame,
+ text = 'Loader down', padx = 0, pady = 0,
+ command = self.loader_down_command)
+ self.loader_down_button.pack ()
self.table_view.bind ('<1>', self.move)
self.table_view.bind ('<3>', self.orient)
@@ -75,6 +83,12 @@ class TestSimuControl (TestSimu):
pos = 0
self.asserv.goto_pos ('a0', pos)
+ def loader_up_command (self):
+ self.io.loader ('u')
+
+ def loader_down_command (self):
+ self.io.loader ('d')
+
def change_color (self, *dummy):
pass