你可以做的一件事是在不同線程上運行傳感器輪詢和http /電機模塊。
我認爲你可以輕鬆解決你的問題,而不會對高速公路造成不必要的附加依賴。
檢查Python提供的SimpleHTTPServer
(python 2.x)或http.server
(python 3.x)模塊。
你只需要繼承SimpleHTTPRequestHandler
類,以提供一個do_POST()
或do_GET()
方法(s)表示,做的工作(他們把你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()
剛爲了澄清,網絡套接字需要更新用於處理傳感器數據和調整電機的臨界值。然而,傳感器/電機控制系統需要連續運行,而不僅僅是響應特定的請求。 – bjw