0

在 Pepper 2.5.7.1 上,我使用 .top 对话框脚本作为主要的交互式应用程序来调用机器人上的其他应用程序。

这些工作正常

[...] ^run(User/epicsax-6f83fc/behavior_1)
[...] ^run(User/taichidemo-c66a80/behavior_1)
[...] ^pCall(ALVolumeSlider.increaseVolume())

但是,如果应用程序必须运行交互式的东西,那么冥想应用程序会同时运行:

u:(meditation) okay ^switchFocus(meditation-8806ca/behavior_1)

执行此操作时,机器人仍处于对话模式,眼睛闪烁蓝色,其他仍按照 .top 脚本响应。我希望第一个应用程序会停止。

如果我在主对话框运行时运行此 SSH 命令,我会在对话框停止时得到预期的行为:

qicli call ALAutonomousLife.switchFocus meditation-8806ca/behavior_1
4

1 回答 1

0

带有这些对话的 .top 文件是如何加载的?在协作对话中,作为行为中的一个框,从脚本中动态加载?如果它来自一种行为,那么这种行为是否也是一种自主生活行为?(即使用交互式标签,从切换焦点开始等)如果您使用 ALBehaviorManager.startBehavior 启动它,那么当您切换焦点时它不会自动停止)。

一些方法:

  • Try ^pCall(ALAutonomousLife.switchFocus("meditation-8806ca/behavior_1"))- 应该是等价的,但你永远不知道
  • call qicli call ALDialog.getActivatedTopics 这样您就可以知道您的主题是否仍在运行(不应该!)
于 2018-03-26T14:47:18.887 回答