[英]How to run two real time processes simultaneously in python?
最近,我尝试将一些传感器数据(随时间变化)从智能手机发送到PC,然后从PC发送到arduino,因为我的arduino没有蓝牙或wifi模块。 我使用一个应用程序将传感器数据流式传输到PC,并使用以下python代码将其传输到arduino。 但是,每次执行脚本时,只会读取数据流,但不会将数据写入arduino。 如果我停止运行脚本(ctrl + Z),则最后一个值将更新到arduino中。 我需要同时做两件事的帮助。
import socket, traceback
import serial
import time
host='192.168.100.8'
port=4000
ser=serial.Serial(port='COM3',baudrate=115200)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind((host, port))
k=[]
while 1:
try:
message, address = s.recvfrom(8192)
k=map(str,message.strip().split(','))
yaw,pitch,roll=k[-3:]
#print yaw,pitch,roll
l=yaw+','+pitch+','+roll+'\0'
print l
ser.write(l)
except (KeyboardInterrupt, SystemExit):
exit()
except:
traceback.print_exc()
直到关闭脚本,它似乎才写的原因似乎是,您从不刷新输出。 当您关闭脚本时,您的输出将自动刷新,这就是为什么这是您唯一一次看到其工作的原因。
ser.write(l)
ser.flush()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.