如何处理 Pepper 机器人关机事件?

How can I handle Pepper robot shutdown event?

我需要在关机过程开始时处理事件(例如长按机器人的胸部按钮或电池电量严重不足时)。问题是我没有找到处理 shutdown/poweroff 事件的方法。您知道如何以方便的方式完成此操作吗?

不幸的是,这不可能,因为当您触发关闭时,naoqi 也会退出并破坏您的服务。

如果您使用 C++ 编写代码,则可以使用析构函数,但是 python...

没有合适的等价物

另一种方法是在您的脚本无论出于何种原因退出时执行一些代码。为此,您可以将脚本作为服务启动,并使用 qiApplication.run() 等待 "the end"。此方法将简单地阻塞,直到 naoqi 要求您的服务退出。

注意:在关闭的情况下,所有服务都将被终止,因此您不能运行机器人发出任何命令API(因为它们可能不再可用!)