@@ -36,6 +36,8 @@ def __init__(self, xml_path):
36
36
self ._count_callbacks = []
37
37
38
38
self .is_run_linear_track = False
39
+ self ._is_run_blockly = False
40
+ self ._listen_counter = False
39
41
40
42
def _append_init_code (self , code ):
41
43
self ._init_code_list .append (code )
@@ -100,11 +102,13 @@ def _handle_set_angle_acceleration(self, block, indent=0, arg_map=None):
100
102
self ._append_main_code ('self._angle_acc = {}' .format (self ._get_field_value (block )), indent + 2 )
101
103
102
104
def _handle_set_counter_increase (self , block , indent = 0 , arg_map = None ):
105
+ self ._listen_counter = True
103
106
self ._append_main_code ('code = self._arm.set_counter_increase()' , indent + 2 )
104
107
self ._append_main_code ('if not self._check_code(code, \' set_counter_increase\' ):' , indent + 2 )
105
108
self ._append_main_code (' return' , indent + 2 )
106
109
107
110
def _handle_set_counter_reset (self , block , indent = 0 , arg_map = None ):
111
+ self ._listen_counter = True
108
112
self ._append_main_code ('code = self._arm.set_counter_reset()' , indent + 2 )
109
113
self ._append_main_code ('if not self._check_code(code, \' set_counter_reset\' ):' , indent + 2 )
110
114
self ._append_main_code (' return' , indent + 2 )
@@ -337,9 +341,12 @@ def _handle_studio_run_traj(self, block, indent=0, arg_map=None):
337
341
filename = fields [0 ].text
338
342
speed = fields [1 ].text
339
343
times = fields [2 ].text
340
- self ._append_main_code ('code = self._arm.playback_trajectory(times={}, filename=\' {}\' , wait=True, double_speed={})' .format (times , filename , speed ), indent + 2 )
341
- self ._append_main_code ('if not self._check_code(code, \' playback_trajectory\' ):' , indent + 2 )
342
- self ._append_main_code (' return' , indent + 2 )
344
+ if filename :
345
+ self ._append_main_code ('code = self._arm.playback_trajectory(times={}, filename=\' {}\' , wait=True, double_speed={})' .format (times , filename , speed ), indent + 2 )
346
+ self ._append_main_code ('if not self._check_code(code, \' playback_trajectory\' ):' , indent + 2 )
347
+ self ._append_main_code (' return' , indent + 2 )
348
+ else :
349
+ self ._append_main_code ('pass' , indent + 2 )
343
350
344
351
def _handle_app_studio_traj (self , block , indent = 0 , arg_map = None ):
345
352
fields = self ._get_nodes ('field' , root = block )
@@ -1089,11 +1096,12 @@ def _handle_python_code(self, block, indent=0, arg_map=None, **kwargs):
1089
1096
1090
1097
def _handle_set_end_level (self , block , indent = 0 , arg_map = None , ** kwargs ):
1091
1098
if not self .axis_type :
1092
- return
1099
+ return
1100
+ self ._append_main_code ('self._arm.arm.wait_move()' , indent + 2 )
1093
1101
self ._append_main_code ('current_angle = self._arm.angles' , indent + 2 )
1094
1102
if self .axis_type [0 ] == 5 :
1095
1103
self ._append_main_code ('angle = -(current_angle[1] + current_angle[2])' , indent + 2 )
1096
- self ._append_main_code ('code = self._arm.set_servo_angle(servo_id=4 , angle=angle )' , indent + 2 ,)
1104
+ self ._append_main_code ('code = self._arm.set_servo_angle(angle=[*current_angle[:3] , angle, current_angle[4]] )' , indent + 2 ,)
1097
1105
elif self .axis_type [0 ] == 6 :
1098
1106
self ._append_main_code ('angle_5 = {}' .format ('-(current_angle[1] - current_angle[2])' if self .axis_type [1 ]== 9 or self .axis_type [1 ]== 12 else
1099
1107
'-(current_angle[1] + current_angle[2])' ), indent + 2 )
@@ -1138,7 +1146,7 @@ def _handle_set_ft_sensor(self, block, indent=0, arg_map=None):
1138
1146
for index , axis in enumerate (force_axis_list ):
1139
1147
if axis == force_axis :
1140
1148
force_axis_value [index ] = 1
1141
- force_ref_value [index ] = int (force_ref )
1149
+ force_ref_value [index ] = float (force_ref )
1142
1150
self ._append_main_code ('code = self._arm.config_force_control({}, {}, {}, [0] * 6)' .format (ref_frame , force_axis_value ,
1143
1151
force_ref_value ), indent + 2 )
1144
1152
self ._append_main_code ('if not self._check_code(code, \' set_tgpio_modbus\' ):' , indent + 2 )
@@ -1150,7 +1158,7 @@ def _handle_set_ft_sensor(self, block, indent=0, arg_map=None):
1150
1158
self ._append_main_code ('self._arm.ft_sensor_app_set(2)' , indent + 2 )
1151
1159
self ._append_main_code ('self._arm.set_state(0)' , indent + 2 )
1152
1160
self ._append_main_code ('start_time = time.time()' , indent + 2 )
1153
- self ._append_main_code ('while time.time() - start_time > {}:' .format (wait_time ), indent + 2 )
1161
+ self ._append_main_code ('while time.time() - start_time < {}:' .format (wait_time ), indent + 2 )
1154
1162
self ._append_main_code ('if self._arm.error_code != 0:' , indent + 3 )
1155
1163
self ._append_main_code (' return' , indent + 4 )
1156
1164
self ._append_main_code ('self._arm.ft_sensor_app_set(0)' , indent + 2 )
@@ -1160,7 +1168,11 @@ def _handle_studio_run_blockly(self, block, indent=0, arg_map=None):
1160
1168
projectName = fields [0 ].text
1161
1169
fileName = fields [1 ].text
1162
1170
times = fields [2 ].text
1163
- self ._append_main_code ('start_run_blockly(fileName="{}", times={})' .format (fileName , times ), indent + 2 )
1171
+ if not self ._is_exec :
1172
+ self ._append_main_code ('self._start_run_blockly(fileName="{}", times={})' .format (fileName .lstrip ('/' ), times ), indent + 2 )
1173
+ else :
1174
+ self ._append_main_code ('start_run_blockly(fileName="{}", times={})' .format (fileName , times ), indent + 2 )
1175
+ self ._is_run_blockly = True
1164
1176
1165
1177
def _handle_studio_run_gcode (self , block , indent = 0 , arg_map = None ):
1166
1178
fields = self ._get_nodes ('field' , root = block )
@@ -1169,5 +1181,3 @@ def _handle_studio_run_gcode(self, block, indent=0, arg_map=None):
1169
1181
times = fields [2 ].text
1170
1182
self ._append_main_code ('start_run_gcode(projectName="{}", fileName="{}", times={})' .format (projectName , fileName , times ), indent + 2 )
1171
1183
1172
-
1173
-
0 commit comments