我的问题是让Arduino Uno通过一个套接字与另一个客户端应用程序通信数据。[一个蜂鸣器系统与危险区通讯!-风格游戏前端]目标是让“锁定”事件发射。在
目前,Arduino在自己的线程上运行,Flask SocketIO服务器作为主进程运行。所有代码都正常工作,包括打印语句“emittingsocket”,除了后面发出Socket数据的行。在
我觉得这只是一个多线程的问题,但我对多线程的经验很少。在
建议?在
# https://pymotw.com/2/threading/
# https://flask-socketio.readthedocs.org/en/latest/
import serial, time, threading
from flask import Flask, render_template
from flask_socketio import SocketIO
ser = serial.Serial('/dev/tty.usbmodem3d11', 9600, dsrdtr=1)
PORT = 3000
# Needed b/c Macs & DTR
time.sleep(5)
def getSerialData():
while True:
stuff = str(ser.readline().decode("utf-8"))
doEmit(1)
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
def doEmit(pNo):
print("Emitting Socket")
socketio.emit('lockout', {'playerNo': 1})
serialThread = threading.Thread(name='serialThread', target=getSerialData)
serialThread.start()
@socketio.on("questionRead")
def on_questionRead(data):
print("-------Start-------")
ser.write(b'y\r')
@socketio.on("resetLockout")
def on_resetLockout(data):
resetLockout()
def resetLockout():
print("--------Reset--------")
ser.write(b'n\r')
if __name__ == '__main__':
socketio.run(app, '127.0.0.1', PORT)
您将在此处发出“锁定”消息:
我看不出您在哪里提供函数来接收发出的代码。或许在适当的调整下加入这样的内容:
^{pr2}$相关问题 更多 >
编程相关推荐