作为我项目的一部分,我将一个xbee上的字节发送到另一个xbee。我有Python代码工作正常,除了一件事。
在以下接收器代码中,我必须在成功收到所有内容后添加更多语句。问题是,由于存在真实条件(用于连续接收数据包),我在代码之后添加的任何语句都将无限运行。是否有任何解决方案来检查“如果所有数据包都已成功接收”,退出while循环并执行其他声明。
导入序列号
ser = serial.Serial(port='COM28', baudrate=9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=0)
c=0
data=[]
msgparts=[]
while True:
if ser.inWaiting():
val = ser.readline(ser.inWaiting())
print val
print(val)
fn1="image%s" %c
c=c+1
f = open(fn1, 'wb')
f.write(val)
print fn1
f.close()
msgparts.append(val)
#### Here I want to add new statements
答案 0 :(得分:0)
我不知道如何检查是否收到了所有邮件部分,但您可以使用break
来摆脱循环。
答案 1 :(得分:0)
而不是
while True:
在循环的顶部,您可以从:
开始message_complete = False
while not message_complete:
并且在循环中有一行,例如:
if val[-1:] == '\n':
message_complete = True
(如果换行符是邮件的结尾)
当然,break语句也适用于此。
您如何确定邮件已完成?