io_interface.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 import sys
4 import rospy
5 from ur_msgs.srv import *
6 from ur_msgs.msg import *
7 
8 FUN_SET_DIGITAL_OUT = 1
9 FUN_SET_FLAG = 2
10 FUN_SET_ANALOG_OUT = 3
11 FUN_SET_TOOL_VOLTAGE = 4
12 
13 #Flag_States = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
14 Digital_Out_States = [0,0,0,0,0,0,0,0,0,0] #8(controller)+2(tool)
15 Digital_In_States = [0,0,0,0,0,0,0,0,0,0] #8(controller)+2(tool)
16 Analog_Out_States = [0,0] #2(controller)
17 Analog_In_States = [0,0] #2(controller)+0(tool)
18 
19 ANALOG_TOLERANCE_VALUE = 0.01
20 
21 def set_io_val(fun, pin, val):
22  try:
23  set_io(fun, pin, val)
24  except rospy.ServiceException as e:
25  print "Service call failed: %s"%e
26 
27 def set_tool_voltage(volts):
28  try:
29  set_io(FUN_SET_TOOL_VOLTAGE, volts, 0)
30  except rospy.ServiceException as e:
31  print "Service call failed: %s"%e
32 
33 def set_digital_out(pin, val):
34  try:
35  set_io(FUN_SET_DIGITAL_OUT, pin, val)
36  except rospy.ServiceException as e:
37  print "Service call failed: %s"%e
38 
39 def set_analog_out(pin, val):
40  try:
41  set_io(FUN_SET_ANALOG_OUT, pin, val)
42  except rospy.ServiceException as e:
43  print "Service call failed: %s"%e
44 
45 def set_flag(pin, val):
46  rospy.logerr("SETTING FLAGS IS NOT SUPPORTED!")
47  #try:
48  #set_io(FUN_SET_FLAG, pin, val)
49  #except rospy.ServiceException, e:
50  #print "Service call failed: %s"%e
51 
52 def callback(data):
53  rospy.logerr("Flag_States are currently not supported")
54  #for i in range(0,32):
55  #del Flag_States[i]
56  #Flag_States.insert(i, data.flag_states[i].state)
57  for i in range(0,10):
58  del Digital_Out_States[i]
59  Digital_Out_States.insert(i, data.digital_out_states[i].state)
60  for i in range(0,10):
61  del Digital_In_States[i]
62  Digital_In_States.insert(i, data.digital_in_states[i].state)
63  for i in range(0,2):
64  del Analog_Out_States[i]
65  Analog_Out_States.insert(i, data.analog_out_states[i].state)
66  rospy.logerr("ToolInput analog_in[2] and analog_in[3] currently not supported")
67  for i in range(0,2):
68  del Analog_In_States[i]
69  Analog_In_States.insert(i, data.analog_in_states[i].state)
70 
71 def get_states():
72  rospy.init_node('UR_State_Getter')
73  rospy.Subscriber("io_states", IOStates, callback)
74 
75 def set_states():
76  rospy.wait_for_service('set_io')
77  global set_io
78  set_io = rospy.ServiceProxy('set_io', SetIO)
79 
def set_digital_out(pin, val)
Definition: io_interface.py:33
def set_flag(pin, val)
Definition: io_interface.py:45
def set_tool_voltage(volts)
Definition: io_interface.py:27
def set_analog_out(pin, val)
Definition: io_interface.py:39
def set_io_val(fun, pin, val)
Definition: io_interface.py:21


ur_driver
Author(s): Stuart Glaser, Shaun Edwards, Felix Messmer
autogenerated on Sun Nov 24 2019 03:36:29