您可以做的一件事是在不同线程上运行传感器轮询和 http/motor 模块。
我认为您可以轻松解决您的问题,而无需为高速公路创建不必要的额外依赖项。
检查 Python 提供的SimpleHTTPServer
(python 2.x) 或http.server
(python 3.x) 模块。
您只需要对该类进行子SimpleHTTPRequestHandler
类化以提供一个do_POST()
或do_GET()
多个完成工作的方法(它们代替您的onMessage()
调用),如下面的大纲所示:
import threading
from SimpleHTTPServer import SimpleHTTPRequestHandler
from BaseHTTPServer import BaseHTTPServer
def poll():
...
class MyHandler(SimpleHTTPRequestHandler):
protocol_version = "HTTP/1.0"
def do_POST(self):
if all_ok_with_the_request:
motor.run()
def do_GET(self):
self.wfile.write("status = {}".format(status))
def runServer(address, port):
httpd = BaseHTTPServer( (address, port), MyHandler )
httpd.serve_forever()
threading.Thread(target=poll).run()
threading.Thread(target=runServer).run()