首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何启动Aldebaran ServiceManager?

如何启动Aldebaran ServiceManager?
EN

Stack Overflow用户
提问于 2017-11-08 13:53:34
回答 2查看 211关注 0票数 2

在我的应用程序中,我想通过ServiceManager停止并启动ServiceManager服务。我正在使用Choregraphe和python。我尝试过不同的方法来启动ServiceManager,但它们都不起作用。有办法这样做吗?

编辑:

我已经试过self.sm = session.service('ServiceManager')了,但没有起作用。这个想法是在应用程序一开始就停止ALTactileGesture

(1) ServiceManager.stopService('ALTactileGesture') (见)

并在应用程序结束之前启动/重新启动ALTactileGesture

(2) ServiceManager.startService('ALTactileGesture')

我的问题是如何到达ServiceManager,以便我可以使用(1)和(2)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-29 13:43:31

您必须理解,在NAOqi中,“服务”一词实际上意味着两种不同的东西。请参阅这里的解释

NAOqi services (也称为“模块”),它公开一个API并注册到ServiceDirectory。你可以打电话给他们,订阅他们的信号,等等。 systemd服务是打包在应用程序包中的独立可执行文件,在它的清单中用标记声明。这些都是由ALServiceManager管理的,它可以启动和停止它们(它们将有自己的流程)。为了清晰起见,这些文件在这个文档中被称为“可执行文件”。 这两者之间的混淆增加了这样一个事实,即公共模式是编写一个可执行文件,其唯一目的是运行一个NAOqi服务,有时以相同的名称标识两者(例如,两者都被称为“ALFuchsiaBallTracker”)。

这里的问题是,NAOqi服务ALTactileGesture是由ID ALTactileGesture-serv下注册的可执行文件运行的。所以你需要做

代码语言:javascript
复制
ALServiceManager.stop("ALTactileGesture-serv")

(我刚测试过,效果很好)

(编辑)顺便说一句,我不确定是否真的停止并启动ALTactileGesture是做您想要做的事情的最佳方式(在我看来,这有点麻烦),但是如果您想这样做,这就是方法:)

票数 1
EN

Stack Overflow用户

发布于 2017-11-10 17:45:33

只需在机器人外壳(旧式代理连接)中试一试:

代码语言:javascript
复制
$ python
import naoqi
s = naoqi.ALProxy("ALServiceManager", "localhost", 9559 )
s.stopService('ALTactileGesture')
>>> False
s.startService('ALTactileGesture')
>>> False # (a bit weird, but ...)

所以我认为它并不完全起作用,但至少您可以按要求连接到ServiceManager .

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47181507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档