@@ -36,6 +36,8 @@ def __init__(self, xml_path):
3636 self ._count_callbacks = []
3737
3838 self .is_run_linear_track = False
39+ self ._is_run_blockly = False
40+ self ._listen_counter = False
3941
4042 def _append_init_code (self , code ):
4143 self ._init_code_list .append (code )
@@ -100,11 +102,13 @@ def _handle_set_angle_acceleration(self, block, indent=0, arg_map=None):
100102 self ._append_main_code ('self._angle_acc = {}' .format (self ._get_field_value (block )), indent + 2 )
101103
102104 def _handle_set_counter_increase (self , block , indent = 0 , arg_map = None ):
105+ self ._listen_counter = True
103106 self ._append_main_code ('code = self._arm.set_counter_increase()' , indent + 2 )
104107 self ._append_main_code ('if not self._check_code(code, \' set_counter_increase\' ):' , indent + 2 )
105108 self ._append_main_code (' return' , indent + 2 )
106109
107110 def _handle_set_counter_reset (self , block , indent = 0 , arg_map = None ):
111+ self ._listen_counter = True
108112 self ._append_main_code ('code = self._arm.set_counter_reset()' , indent + 2 )
109113 self ._append_main_code ('if not self._check_code(code, \' set_counter_reset\' ):' , indent + 2 )
110114 self ._append_main_code (' return' , indent + 2 )
@@ -337,9 +341,12 @@ def _handle_studio_run_traj(self, block, indent=0, arg_map=None):
337341 filename = fields [0 ].text
338342 speed = fields [1 ].text
339343 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 )
343350
344351 def _handle_app_studio_traj (self , block , indent = 0 , arg_map = None ):
345352 fields = self ._get_nodes ('field' , root = block )
@@ -1089,11 +1096,12 @@ def _handle_python_code(self, block, indent=0, arg_map=None, **kwargs):
10891096
10901097 def _handle_set_end_level (self , block , indent = 0 , arg_map = None , ** kwargs ):
10911098 if not self .axis_type :
1092- return
1099+ return
1100+ self ._append_main_code ('self._arm.arm.wait_move()' , indent + 2 )
10931101 self ._append_main_code ('current_angle = self._arm.angles' , indent + 2 )
10941102 if self .axis_type [0 ] == 5 :
10951103 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 ,)
10971105 elif self .axis_type [0 ] == 6 :
10981106 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
10991107 '-(current_angle[1] + current_angle[2])' ), indent + 2 )
@@ -1138,7 +1146,7 @@ def _handle_set_ft_sensor(self, block, indent=0, arg_map=None):
11381146 for index , axis in enumerate (force_axis_list ):
11391147 if axis == force_axis :
11401148 force_axis_value [index ] = 1
1141- force_ref_value [index ] = int (force_ref )
1149+ force_ref_value [index ] = float (force_ref )
11421150 self ._append_main_code ('code = self._arm.config_force_control({}, {}, {}, [0] * 6)' .format (ref_frame , force_axis_value ,
11431151 force_ref_value ), indent + 2 )
11441152 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):
11501158 self ._append_main_code ('self._arm.ft_sensor_app_set(2)' , indent + 2 )
11511159 self ._append_main_code ('self._arm.set_state(0)' , indent + 2 )
11521160 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 )
11541162 self ._append_main_code ('if self._arm.error_code != 0:' , indent + 3 )
11551163 self ._append_main_code (' return' , indent + 4 )
11561164 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):
11601168 projectName = fields [0 ].text
11611169 fileName = fields [1 ].text
11621170 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
11641176
11651177 def _handle_studio_run_gcode (self , block , indent = 0 , arg_map = None ):
11661178 fields = self ._get_nodes ('field' , root = block )
@@ -1169,5 +1181,3 @@ def _handle_studio_run_gcode(self, block, indent=0, arg_map=None):
11691181 times = fields [2 ].text
11701182 self ._append_main_code ('start_run_gcode(projectName="{}", fileName="{}", times={})' .format (projectName , fileName , times ), indent + 2 )
11711183
1172-
1173-
0 commit comments