我有控制机器人的Python代码。我命令它转动马达,这会引起一个真实的事件发生。如果在5秒钟内什么都没有发生(在这种情况下,没有发送POST请求),我希望第二组电机转动以提示操作。如果收到请求,则取消即将到来的计时器。如果计时器点击5并调用提示功能,则设置另一个计时器以防需要更多提示。这是我的伪代码:
rotateMotor(BP.PORT_B, -360)
timer = Timer(5, promptEvent())
timer.start()
def eventReceiver():
timer.cancel()
rotateMotor(BP.PORT_B, -360)
timer.start()
def promptEvent():
rotateOtherMotors()
timer.start()
我的问题是我得到了错误RuntimeError: threads can only be started once
。很公平,不过我在Python方面经验不足,不知道如何处理线程来正确处理这个问题。你知道吗
在我看来,你要启动两次计时器,这不是个好主意。如果你真的需要2个时间计数器,你可能需要使用第二个计时器
添加:
好吧,似乎您需要一个计时工具,而从
Thread
继承的Timer
是一个不可重用的对象。您可以使用alter对象Timer
,也可以将执行代码的方式更改为下面的简化的示例:相关问题 更多 >
编程相关推荐