pip install pyqt5
pip install pyserial
import sys
import serial
import threading
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QTextEdit
# 测试COM端口的函数
def test_com_port(port_name, log_area):
try:
with serial.Serial(port_name, 9600, timeout=1) as ser:
ser.write(b'Test Message')
response = ser.read(100)
log_area.append(f"Received: {response}")
except serial.SerialException as e:
log_area.append(f"Error: {str(e)}")
# PyQt5窗口的设置
def setup_ui(window, log_area):
window.setWindowTitle('COM端口测试')
layout = QVBoxLayout()
button = QPushButton('开始测试', window)
button.clicked.connect(lambda: start_test(log_area))
layout.addWidget(button)
layout.addWidget(log_area)
window.setLayout(layout)
# 开始测试的函数
def start_test(log_area):
# 假设COM端口是'/dev/ttyS0'。根据你的系统和硬件更改此值。
com_port = '/dev/ttyS0'
log_area.append(f"Testing COM port: {com_port}")
threading.Thread(target=test_com_port, args=(com_port, log_area,)).start()
app = QApplication(sys.argv)
main_window = QWidget()
log_area = QTextEdit()
log_area.setReadOnly(True)
setup_ui(main_window, log_area)
main_window.show()
sys.exit(app.exec_())
在Linux系统中,获取串口和并口设备文件的一种方法是查看/dev
目录。你可以使用命令行工具来查找相关的设备文件。
串口设备文件通常以ttyS
或ttyUSB
开头。运行以下命令可以列出所有串口设备文件:
ls /dev/ttyS* /dev/ttyUSB*
并口设备文件通常以parport
开头。运行以下命令可以列出所有并口设备文件:
ls /dev/parport*
以下是一个理论上的LPT测试示例,使用Linux的设备文件来进行简单的读写操作。请注意,这个示例可能不会在所有系统上工作,特别是在没有适当驱动和权限配置的情况下。
def test_lpt_port(port_name, log_area):
try:
# 打开并口设备文件
with open(port_name, 'wb+') as lpt:
# 向并口写入数据
lpt.write(b'\x55')
lpt.flush()
# 读取并口数据(这可能不适用于所有并口配置)
lpt.seek(0)
response = lpt.read(1)
log_area.append(f"Received: {response.hex()}")
except IOError as e:
log_area.append(f"Error: {str(e)}")
将LPT测试功能整合到PyQt5界面中,类似于前面的COM端口测试:
def start_test(log_area, com_port, lpt_port):
log_area.append(f"Testing COM port: {com_port}")
threading.Thread(target=test_com_port, args=(com_port, log_area,)).start()
log_area.append(f"Testing LPT port: {lpt_port}")
threading.Thread(target=test_lpt_port, args=(lpt_port, log_area,)).start()
然后在你的UI设置中调用start_test
函数,并传递COM和LPT端口地址。
/dev/parport*
设备文件通常需要root权限。