0

我的学生正在使用 PyParrot 库来控制无人机。但是,如果他们犯了错误(即将无人机编码到墙壁/提升到天花板等),我们需要故障保险。

以前我使用过 KeyboardInterrupt,但是今年我们使用的是 Mu Editor。Mu 编辑器在 ctrl+c 上立即退出,并且不运行我的异常中的任何内容。

try:
   # Drone code
   
except KeyboardInterrupt:
    # Landing Code

我还能如何确保 Python 有“紧急停止”?

4

1 回答 1

1

一种可能性是# Drone code在子进程中运行,然后让主线程保持打开状态以接收输入。

from multiprocessing import Process

def drone_code():
    # Drone code

if __name__ == '__main__':
    p = Process(target=drone_code)
    p.daemon=True # kill subprocess if main process killed
    p.start()
    input("Press Enter to safely exit...")
    if p.is_alive():
        p.kill()
        #Landing Code
于 2021-08-10T01:06:55.320 回答