@@ -336,7 +336,6 @@ def __init__(self, parent, node):
336336 self .num_tx_bytes = 0
337337 self .node = node
338338 self .tunnel = None
339- self .target_dev = - 1
340339 self .ublox_msg_in = None
341340 self .ublox_msg_out = None
342341
@@ -348,6 +347,12 @@ def __init__(self, parent, node):
348347 self .baud_select .addItem (str (b ))
349348 self .baud_select .currentIndexChanged .connect (self .change_baud )
350349
350+ self .serial_device_select = QComboBox ()
351+ self .serial_device_select .addItem ("Default" , - 1 )
352+ for index in range (0 , 6 ):
353+ self .serial_device_select .addItem (f"Serial { index } " , index )
354+ self .serial_device_select .currentIndexChanged .connect (self .update_target_serial_device )
355+
351356 self .lock_select = QComboBox ()
352357 self .lock_select .addItem ("UnLocked" )
353358 self .lock_select .addItem ("Locked" )
@@ -373,6 +378,7 @@ def __init__(self, parent, node):
373378 self .ublox_handling = QCheckBox (self )
374379
375380 layout .addLayout (self .labelWidget ('Node' , self .node_select ))
381+ layout .addLayout (self .labelWidget ('Target Serial' , self .serial_device_select ))
376382 layout .addLayout (self .labelWidget ('UART Locking' , self .lock_select ))
377383 layout .addLayout (self .labelWidget ('Baudrate' , self .baud_select ))
378384 layout .addLayout (self .labelWidget ('Listen Port' , self .port_select ))
@@ -454,6 +460,12 @@ def change_baud(self):
454460 print ("change baudrate to %u" % baud )
455461 self .tunnel .baudrate = baud
456462
463+ def update_target_serial_device (self ):
464+ '''callback when uart target serial device changes'''
465+ if self .tunnel :
466+ target_serial_dev = int (self .serial_device_select .currentData ())
467+ self .tunnel .target_serial_dev = target_serial_dev
468+
457469 def update_locked (self ):
458470 '''callback when locked state changes'''
459471 if self .tunnel :
@@ -627,7 +639,8 @@ def check_connection(self):
627639 target_node = int (self .node_select .currentText ().split (':' )[0 ])
628640
629641 locked = self .lock_select .currentText () == "Locked"
630- self .tunnel = dronecan .DroneCANSerial (None , target_node , self .target_dev ,
642+ target_serial_dev = int (self .serial_device_select .currentData ())
643+ self .tunnel = dronecan .DroneCANSerial (None , target_node , target_serial_dev ,
631644 node = self .node ,
632645 lock_port = locked , baudrate = self .get_baudrate ())
633646 print ("ucenter connection from %s" % str (self .addr ))
0 commit comments