我正在使用通过 Raspberry Pi 上的 HTTPRequestHandler 从 android 应用程序发送的命令来控制机器人。
class RequestHandler_httpd(BaseHTTPRequestHandler):
def do_GET(self):
global Request
messagetosend = bytes('x',"utf")
self.send_response(200)
self.send_header('Content-Type', 'text/plain')
self.send_header('Content-Length', len(messagetosend))
self.end_headers()
self.wfile.write(messagetosend)
Request = self.requestline
Request = Request[5 : int(len(Request)-9)]
print(Request)
global hight, speed, sleep
while Request == 'forward':
Forward()
while Request == 'turnleft':
TurnLeft()
while Request == 'turnright':
TurnRight()
while Request == 'base':
BasePosition()
return
我的问题是,当我从手机发送基本上是 ip:port/x 的命令时,机器人会卡在一个功能上。例如,如果我想使用“前进”功能,即使下一个请求是“左转”,它也会继续前进。如果我只使用 if 语句,它就可以工作,但我希望我的机器人不断执行功能,直到我想使用不同的功能。Forward、TurnLeft、TurnRight、BasePosition 函数中没有循环。