summaryrefslogtreecommitdiff
path: root/digital/io
diff options
context:
space:
mode:
authorNicolas Schodet2009-05-17 22:20:35 +0200
committerNicolas Schodet2009-05-17 22:20:35 +0200
commit38a645f2887b311d2d32f32f555e5b484b16f3b4 (patch)
treed1a234b77043be56c634ad9b0d4ae3a546f867ca /digital/io
parent8173b139fa020d7c63d7725718105204935e3be4 (diff)
* digital/io/tools:
- use Checkbutton for bi-state controls. - added elevator door control.
Diffstat (limited to 'digital/io')
-rw-r--r--digital/io/tools/io/io.py3
-rw-r--r--digital/io/tools/test_simu_control.py32
2 files changed, 25 insertions, 10 deletions
diff --git a/digital/io/tools/io/io.py b/digital/io/tools/io/io.py
index 26e19f76..fd755e71 100644
--- a/digital/io/tools/io/io.py
+++ b/digital/io/tools/io/io.py
@@ -55,6 +55,9 @@ class Proto:
def servo (self, servo, high_time):
self.proto.send ('s', 'BB', servo, high_time)
+ def pwm_set (self, value, timer):
+ self.proto.send ('w', 'Hh', value, timer)
+
def close (self):
self.reset ()
self.wait (lambda: True)
diff --git a/digital/io/tools/test_simu_control.py b/digital/io/tools/test_simu_control.py
index 4e9d6070..1316a2c5 100644
--- a/digital/io/tools/test_simu_control.py
+++ b/digital/io/tools/test_simu_control.py
@@ -30,8 +30,6 @@ class TestSimuControl (TestSimu):
def __init__ (self, asserv_cmd, io_cmd):
TestSimu.__init__ (self, asserv_cmd, io_cmd)
- self.door_pos = 0
- self.finger_pos = 0
def create_widgets (self):
TestSimu.create_widgets (self)
@@ -41,12 +39,22 @@ class TestSimuControl (TestSimu):
self.cylinder_button = Button (self.control_frame, text = 'Cylinder',
command = self.cylinder_command)
self.cylinder_button.pack ()
- self.door_button = Button (self.control_frame, text = 'Door',
- command = self.door_command)
+ self.door_var = IntVar ()
+ self.door_button = Checkbutton (self.control_frame, text = 'Door',
+ indicatoron = False,
+ variable = self.door_var, command = self.door_command)
self.door_button.pack ()
- self.finger_button = Button (self.control_frame, text = 'Finger',
- command = self.finger_command)
+ self.finger_var = IntVar ()
+ self.finger_button = Checkbutton (self.control_frame, text = 'Finger',
+ indicatoron = False,
+ variable = self.finger_var, command = self.finger_command)
self.finger_button.pack ()
+ self.elevator_door_var = IntVar ()
+ self.elevator_door_button = Checkbutton (self.control_frame,
+ text = 'Elevator Door', indicatoron = False,
+ variable = self.elevator_door_var,
+ command = self.elevator_door_command)
+ self.elevator_door_button.pack ()
self.table_view.bind ('<1>', self.move)
self.table_view.bind ('<3>', self.orient)
@@ -65,12 +73,16 @@ class TestSimuControl (TestSimu):
self.asserv.speed_pos ('a0', 5333 / 3)
def door_command (self):
- self.door_pos = 1 - self.door_pos
- self.io.servo_pos (0, self.door_pos)
+ door_pos = self.door_var.get ()
+ self.io.servo_pos (0, door_pos)
def finger_command (self):
- self.finger_pos = 1 - self.finger_pos
- self.io.servo_pos (1, self.finger_pos)
+ finger_pos = self.finger_var.get ()
+ self.io.servo_pos (1, finger_pos)
+
+ def elevator_door_command (self):
+ elevator_door_pos = self.elevator_door_var.get ()
+ self.io.pwm_set (elevator_door_pos == 1 and 512 or -512, 225)
def change_color (self, *dummy):
pass