|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
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 (0 == len(ports_value)):
print("can't find uart port.")
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("curent port is ", self.comboBox_uart.currentText())
#开启监听线程
def gui_status_thread():
print("start gui_status_thread.")
while(True):
check_valid_uart()
sleep(3)
要检测虚拟串口,你可以使用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,并在下拉框中添加新的串口选项。请确保你的代码中有相关的导入语句和适当的上下文环境。
如果问题已经解决,请设置最佳答案
|
|