繁体   English   中英

如何在python中同时运行两个实时进程?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM