要检测虚拟串口,你可以使用pyserial库的list_ports.comports()方法。以下是给定代码的修改版本,以便检测虚拟串口:
import serial.tools.list_ports
from time import sleep
def check_valid_uart():
ports_value = []
ports_list = serial.tools.list_ports.comports()
for i in range(len(ports_list)):
ports_value.append(ports_list[ i][0])
print("ports_value is ", ports_value)
if len(ports_value) == 0:
print("无法找到串口.")
self.comboBox_uart.clear()
self.comboBox_uart.setCurrentIndex(-1)
else:
for i in range(len(ports_value)):
index = self.comboBox_uart.findText(ports_value[ i], qc.Qt.MatchFixedString)
if index < 0:
self.comboBox_uart.addItem(ports_value[ i])
else:
print("当前串口为 ", self.comboBox_uart.currentText())
# 开启监听线程
def gui_status_thread():
print("开始 gui_status_thread 线程.")
while True:
check_valid_uart()
sleep(3)
这段代码将使用list_ports.comports()函数获取所有可用串口列表,并将其添加到ports_value中。如果没有找到任何串口,它将清除下拉框(comboBox_uart)并将其索引设置为-1。否则,它会遍历ports_value,并在下拉框中添加新的串口选项。请确保你的代码中有相关的导入语句和适当的上下文环境。
如果问题已经解决,请设置最佳答案 |