@@ -24,7 +24,7 @@ class ProtocolCode(object):
2424 IS_CONTROLLER_CONNECTED = 0x14
2525 READ_NEXT_ERROR = 0x15
2626 SET_FRESH_MODE = 0x16
27- GET_FRESH_MODE = 0x17
27+ GET_FRESH_MODE = 0x17
2828 SET_FREE_MODE = 0x1A
2929 IS_FREE_MODE = 0x1B
3030
@@ -86,12 +86,12 @@ class ProtocolCode(object):
8686 GET_GRIPPER_VALUE = 0x65
8787 SET_GRIPPER_STATE = 0x66
8888 SET_GRIPPER_VALUE = 0x67
89- SET_GRIPPER_CALIBRATION = 0x68
89+ SET_GRIPPER_CALIBRATION = 0x68
9090 IS_GRIPPER_MOVING = 0x69
9191 SET_COLOR = 0x6A
9292 SET_ELETRIC_GRIPPER = 0x6B
9393 INIT_ELETRIC_GRIPPER = 0x6C
94-
94+
9595 GET_ACCEI_DATA = 0x73
9696
9797 # Basic
@@ -113,7 +113,7 @@ class ProtocolCode(object):
113113
114114 # Get the measured distance
115115 GET_TOF_DISTANCE = 0xC0
116-
116+
117117 # Coordinate transformation
118118 SET_TOOL_REFERENCE = 0x81
119119 GET_TOOL_REFERENCE = 0x82
@@ -125,25 +125,25 @@ class ProtocolCode(object):
125125 GET_MOVEMENT_TYPE = 0x88
126126 SET_END_TYPE = 0x89
127127 GET_END_TYPE = 0x8A
128-
128+
129129 # Impact checking
130130 SET_JOINT_CURRENT = 0x90
131131 GET_JOINT_CURRENT = 0x91
132132 SET_CURRENT_STATE = 0x92
133-
133+
134134 # planning speed
135135 GET_PLAN_SPEED = 0xD0
136136 GET_PLAN_ACCELERATION = 0xD1
137137 SET_PLAN_SPEED = 0xD2
138138 SET_PLAN_ACCELERATION = 0xD3
139-
139+
140140 # Motor status read
141141 GET_SERVO_SPEED = 0xE1
142142 GET_SERVO_CURRENTS = 0xE2
143143 GET_SERVO_VOLTAGES = 0xE3
144144 GET_SERVO_STATUS = 0xE4
145145 GET_SERVO_TEMPS = 0xE5
146-
146+
147147 GET_BASE_COORDS = 0xF0
148148 BASE_TO_SINGLE_COORDS = 0xF1
149149 COLLISION = 0xF2
@@ -154,23 +154,23 @@ class ProtocolCode(object):
154154 JOG_INC_COORD = 0xF7
155155 COLLISION_SWITCH = 0xF8
156156 IS_COLLISION_ON = 0xF9
157-
157+
158158 # IIC
159159 # SET_IIC_STATE = 0xA4
160160 # GET_IIS_BYTE = 0xA5
161- # SET_IIC_BYTE = 0xA6
162-
161+ # SET_IIC_BYTE = 0xA6
162+
163163 # mypalletizer lite
164164 END = "\r "
165165 COORDS_SET = "G0"
166166 SLEEP_TIME = "G4"
167- BACK_ZERO = "G28"
167+ BACK_ZERO = "G28"
168168 ABS_CARTESIAN = "G90"
169169 REL_CARTESIAN = "G91"
170170 SET_JOINT = "G92"
171171 SET_PWM = "M1"
172- GPIO_CLOSE = "M2 "
173- GPIO_ON = "M3 "
172+ GPIO_CLOSE = "M3 "
173+ GPIO_ON = "M2 "
174174 GRIPPER_ZERO = "M4"
175175 GIRPPER_OPEN = "M5"
176176 GIRPPER_CLOSE = "M6"
@@ -186,7 +186,7 @@ class ProtocolCode(object):
186186 LOCK_SERVOS = "M18"
187187 GET_CURRENT_COORD_INFO = "M114"
188188 GET_BACK_ZERO_STATUS = "M119"
189-
189+
190190
191191class DataProcessor (object ):
192192 # Functional approach
@@ -195,9 +195,12 @@ def _encode_int8(self, data):
195195
196196 def _encode_int16 (self , data ):
197197 if isinstance (data , int ):
198- return [ord (i ) if isinstance (i , str ) else i for i in list (struct .pack (">h" , data ))]
198+ return [
199+ ord (i ) if isinstance (i , str ) else i
200+ for i in list (struct .pack (">h" , data ))
201+ ]
199202 else :
200- return sum ([list (struct .pack ('>h' , elem )) for elem in data ], [])
203+ return sum ([list (struct .pack (">h" , elem )) for elem in data ], [])
201204
202205 def _decode_int8 (self , data ):
203206 return struct .unpack ("B" , data )[0 ]
@@ -219,8 +222,7 @@ def _int2coord(self, _int):
219222
220223 def _flatten (self , _list ):
221224 return sum (
222- ([x ] if not isinstance (x , list ) else self ._flatten (x )
223- for x in _list ), []
225+ ([x ] if not isinstance (x , list ) else self ._flatten (x ) for x in _list ), []
224226 )
225227
226228 def _process_data_command (self , args ):
@@ -229,16 +231,15 @@ def _process_data_command(self, args):
229231
230232 return self ._flatten (
231233 [
232- [self ._encode_int16 (int (i ))
233- for i in x ] if isinstance (x , list ) else x
234+ [self ._encode_int16 (int (i )) for i in x ] if isinstance (x , list ) else x
234235 for x in args
235236 ]
236237 )
237238
238239 def _is_frame_header (self , data , pos1 , pos2 ):
239240 return data [pos1 ] == ProtocolCode .HEADER and data [pos2 ] == ProtocolCode .HEADER
240241
241- def _process_received (self , data , genre , arm = 6 ):
242+ def _process_received (self , data , genre , arm = 6 ):
242243 if not data :
243244 return []
244245 if genre == 177 :
@@ -250,7 +251,7 @@ def _process_received(self, data, genre, arm = 6):
250251 data_len = len (data )
251252 # Get valid header: 0xfe0xfe
252253 header_i , header_j = 0 , 1
253- while header_j < data_len - 4 :
254+ while header_j < data_len - 4 :
254255 if self ._is_frame_header (data , header_i , header_j ):
255256 if arm == 6 :
256257 cmd_id = data [header_i + 3 ]
@@ -267,8 +268,7 @@ def _process_received(self, data, genre, arm = 6):
267268 data_len = data [header_i + 2 ] - 2
268269 elif arm == 12 :
269270 data_len = data [header_i + 3 ] - 2
270- unique_data = [ProtocolCode .GET_BASIC_INPUT ,
271- ProtocolCode .GET_DIGITAL_INPUT ]
271+ unique_data = [ProtocolCode .GET_BASIC_INPUT , ProtocolCode .GET_DIGITAL_INPUT ]
272272
273273 if cmd_id in unique_data :
274274 data_pos = header_i + 5
@@ -278,28 +278,38 @@ def _process_received(self, data, genre, arm = 6):
278278 data_pos = header_i + 4
279279 elif arm == 12 :
280280 data_pos = header_i + 5
281-
282- valid_data = data [data_pos : data_pos + data_len ]
281+
282+ valid_data = data [data_pos : data_pos + data_len ]
283283
284284 # process valid data
285285 res = []
286- if data_len in [6 , 8 , 12 , 24 ]:
286+ if data_len in [6 , 8 , 12 , 24 ]:
287287 for header_i in range (0 , len (valid_data ), 2 ):
288- one = valid_data [header_i : header_i + 2 ]
288+ one = valid_data [header_i : header_i + 2 ]
289289 res .append (self ._decode_int16 (one ))
290290 elif data_len == 2 :
291- if genre in [ProtocolCode .GET_PLAN_SPEED , ProtocolCode .GET_PLAN_ACCELERATION ]:
292- return [self ._decode_int8 (valid_data [0 :1 ]), self ._decode_int8 (valid_data [1 :])]
291+ if genre in [
292+ ProtocolCode .GET_PLAN_SPEED ,
293+ ProtocolCode .GET_PLAN_ACCELERATION ,
294+ ]:
295+ return [
296+ self ._decode_int8 (valid_data [0 :1 ]),
297+ self ._decode_int8 (valid_data [1 :]),
298+ ]
293299 if genre in [ProtocolCode .IS_SERVO_ENABLE ]:
294300 return [self ._decode_int8 (valid_data [1 :2 ])]
295301 res .append (self ._decode_int16 (valid_data ))
296302 elif data_len == 3 :
297303 res .append (self ._decode_int16 (valid_data [1 :]))
298304 else :
299- if genre in [ProtocolCode .GET_SERVO_VOLTAGES , ProtocolCode .GET_SERVO_STATUS , ProtocolCode .GET_SERVO_TEMPS ]:
305+ if genre in [
306+ ProtocolCode .GET_SERVO_VOLTAGES ,
307+ ProtocolCode .GET_SERVO_STATUS ,
308+ ProtocolCode .GET_SERVO_TEMPS ,
309+ ]:
300310 for i in range (data_len ):
301- data1 = self ._decode_int8 (valid_data [i : i + 1 ])
302- res .append (0xff & data1 if data1 < 0 else data1 )
311+ data1 = self ._decode_int8 (valid_data [i : i + 1 ])
312+ res .append (0xFF & data1 if data1 < 0 else data1 )
303313 return res
304314 res .append (self ._decode_int8 (valid_data ))
305315 if genre == ProtocolCode .GET_ACCEI_DATA :
@@ -312,8 +322,8 @@ def _process_single(self, data):
312322
313323
314324def write (self , command , method = None ):
315- if len (command )> 3 and command [3 ] == 176 and len (command ) > 5 :
316- command = "'" + command [4 ]+ "'" + "(" + command [5 ]+ ")"
325+ if len (command ) > 3 and command [3 ] == 176 and len (command ) > 5 :
326+ command = "'" + command [4 ] + "'" + "(" + command [5 ] + ")"
317327 command = command .encode ()
318328 if method == "socket" :
319329 data = b""
@@ -325,7 +335,7 @@ def write(self, command, method=None):
325335 if len (command ) > 3 and command [3 ] == 177 :
326336 while True :
327337 data = self .sock .recv (1024 )
328- if b' password' in data :
338+ if b" password" in data :
329339 break
330340 elif len (command ) > 3 and command [3 ] == 192 :
331341 while True :
@@ -337,13 +347,14 @@ def write(self, command, method=None):
337347 self .sock .settimeout (1 )
338348 data = self .sock .recv (1024 )
339349 except :
340- data = b''
350+ data = b""
341351 return data
342352 else :
343353 self .log .debug ("_write: {}" .format ([hex (i ) for i in command ]))
344354 self ._serial_port .write (command )
345355 self ._serial_port .flush ()
346356
357+
347358def read (self , genre ):
348359 datas = b""
349360 data_len = - 1
@@ -353,34 +364,34 @@ def read(self, genre):
353364 wait_time = 0.1
354365 if genre == ProtocolCode .GET_SSID_PWD :
355366 time .sleep (0.1 )
356- if self ._serial_port .inWaiting ()> 0 :
367+ if self ._serial_port .inWaiting () > 0 :
357368 datas = self ._serial_port .read (self ._serial_port .inWaiting ())
358369 return datas
359370 elif genre == ProtocolCode .GET_ACCEI_DATA :
360371 wait_time = 1
361- while True and time .time () - t < wait_time :
372+ while True and time .time () - t < wait_time :
362373 data = self ._serial_port .read ()
363374 # print("1:",data)
364- k += 1
365- if data_len == 1 and data == b' \xfa ' :
375+ k += 1
376+ if data_len == 1 and data == b" \xfa " :
366377 datas += data
367378 break
368379 elif len (datas ) == 2 :
369- data_len = struct .unpack ("b" ,data )[0 ]
380+ data_len = struct .unpack ("b" , data )[0 ]
370381 datas += data
371- elif len (datas )> 2 and data_len > 0 :
382+ elif len (datas ) > 2 and data_len > 0 :
372383 datas += data
373384 data_len -= 1
374- elif data == b' \xfe ' :
375- if datas == b'' :
385+ elif data == b" \xfe " :
386+ if datas == b"" :
376387 datas += data
377388 pre = k
378389 else :
379- if k - 1 == pre :
390+ if k - 1 == pre :
380391 datas += data
381392 else :
382- datas = b' \xfe '
383- pre = k
393+ datas = b" \xfe "
394+ pre = k
384395 else :
385396 datas = None
386397 return datas
0 commit comments