用serial去连接下位机,手动输入串口,当串口连接成功时打印成功连接,当串口连接不成功或者发现端口不存在时,弹出小弹窗显示“串口连接失败”,点击确定后,可重新输入串口
时间: 2024-04-17 14:25:18 浏览: 119
您可以使用PyQt中的QInputDialog来实现手动输入串口,并使用PySerial库连接下位机。下面是一个简单的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QInputDialog, QMessageBox
import serial
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Serial Connection")
self.setGeometry(300, 300, 300, 200)
connect_btn = QPushButton("Connect", self)
connect_btn.clicked.connect(self.connectSerial)
connect_btn.setGeometry(100, 80, 100, 30)
def connectSerial(self):
port, ok = QInputDialog.getText(self, "Serial Port", "Enter the port name (e.g. COM1):")
if ok:
try:
ser = serial.Serial(port)
if ser.is_open:
ser.close()
ser.open()
print("Serial port connected successfully.")
except serial.SerialException:
QMessageBox.information(self, "Connection Failed", "Serial port connection failed.")
self.connectSerial()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在上面的示例中,我们创建了一个继承自QMainWindow的主窗口类MainWindow。在initUI方法中,设置了窗口的标题和大小,并创建了一个连接按钮connect_btn,并将其连接到connectSerial方法。在connectSerial方法中,使用QInputDialog来获取用户输入的串口名称,并尝试通过serial.Serial来连接串口。如果连接成功,则打印"Serial port connected successfully.",否则弹出一个消息框显示"Serial port connection failed.",并再次调用connectSerial方法以重新输入串口。
请注意,上述代码中只是简单地尝试打开和关闭串口来检查连接是否成功,并没有进行实际的数据通信操作。您需要根据实际情况进行进一步的开发和调试。此外,还需要确保已经安装了PyQt和PySerial库。
阅读全文