【发布时间】:2018-01-29 15:10:12
【问题描述】:
我最近尝试将一些传感器数据(时间变化)从我的智能手机发送到 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),那么它是否会在每次智能手机发送消息时在 PC 上打印两行?
标签: python multithreading multiprocessing real-time