重构上面代码,读取串口并输出串口编号,打印是否连接成功,打印数据发送成功返回值
时间: 2024-02-21 17:01:34 浏览: 24
以下是重构后的代码,读取串口并输出串口编号,同时打印是否连接成功和数据发送成功返回值:
```python
import serial
import time
# 打开串口 com13,波特率为 9600
ser = serial.Serial('com13', 9600)
# 判断是否成功打开串口
if ser.isOpen():
print("Serial port " + ser.name + " opened successfully!")
else:
print("Failed to open serial port " + ser.name + " !")
# 待发送的消息列表
messages = [
"state=4 [MMPS,EE,EE]",
"state=4 [MMPS,3361232,51.288]",
"state=4 [MMPS,2814428,42.945]"
]
# 循环发送消息
while True:
for message in messages:
# 发送消息
ser.write(message.encode())
# 等待 1 秒钟
time.sleep(1)
# 检查是否发送成功
response = ser.readline().decode().strip()
if response == "OK":
print("Message sent successfully: " + message)
else:
print("Failed to send message: " + message)
print("Error: " + response)
# 关闭串口
ser.close()
```
这段代码在打开串口后,通过判断 `ser.isOpen()` 的返回值,输出串口编号和连接状态。同时,仍然循环发送消息,并检查发送结果。如果发送成功,通过 `print()` 方法打印发送的消息及返回值;如果发送失败,则打印错误信息。在程序结束时,通过 `ser.close()` 方法关闭串口。