Skip to content

Commit 5301d2d

Browse files
committed
serial_panel: allow the serial panel to communicate on different ports not just default
1 parent ee1c85d commit 5301d2d

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

dronecan_gui_tool/panels/serial_panel.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)