|
发表于 2023-7-29 17:34:53
|
显示全部楼层
本楼为最佳答案
要检测虚拟串口,你可以使用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,并在下拉框中添加新的串口选项。请确保你的代码中有相关的导入语句和适当的上下文环境。
如果问题已经解决,请设置最佳答案 |
|