2017-11-08 7 views
4

アプリ中にALTactileGestureからServiceManagerまでのサービスを停止して開始したいと考えています。私はChoregrapheとpythonボックスを使用しています。私はServiceManagerを起動するためのさまざまなオプションを試しましたが、どれも動作しません。これを行う方法はありますか?Aldebaran ServiceManagerの起動方法は?

編集:私はすでにself.sm = session.service('ServiceManager')を試してみましたが、うまくいきませんでした

を(thisを参照)、アプリケーションが終了する前に/がALTactileGestureを再起動起動
(1)ServiceManager.stopService('ALTactileGesture')を: アイデアは、すぐにアプリが起動しているようALTactileGestureを停止することです
(2)ServiceManager.startService('ALTactileGesture')

マイ質問はどのようにServiceManagerに到達するので、私は(1)と(2)を使用できますか?

+0

私はこのサービスがデフォルトで開始されていると思います。このモジュールによって生成されたシグナル/イベントに接続します(いくつかのバージョンでは、サービスを開始するサブスクリプションです)。あなたはこの種のページを見ましたか:http://doc.aldebaran.com/2-4/naoqi/sensors/altactilegesture.html –

+0

@AlexandreMazel、これは役に立つリンクですが、残念ながらそれはうまくいきません。私は質問を明確にするために更新しました。 – dim

答えて

1

だけでロボットのシェル(古いスタイルのプロキシ接続)でこれを試してみてください。

$ python 
import naoqi 
s = naoqi.ALProxy("ALServiceManager", "localhost", 9559) 
s.stopService('ALTactileGesture') 
>>> False 
s.startService('ALTactileGesture') 
>>> False # (a bit weird, but ...) 

だから私はそれが完全に機能していないと思うが、要求として、少なくともあなたはServiceManagerに接続することができます...

+0

これは便利ですが、残念ながらうまくいきませんでした。私の目標は、基本的なシャネルからの 'dialog_touch'アプリケーションのためにロボットが頭に触れている間にフォーカスを失うので、アプリケーション中に' ALTactileGesture'サービスを停止することです。 – dim

+0

それがもう一つの理由です。https://stackoverflow.com/a/46208416/912510を参照してください。 – JLS

1

をNAOqiでは、「サービス」という言葉は実際には2つの異なることを意味することを理解する必要があります。 an explanation hereを参照してください:

NAOqiサービス(また、 "モジュール" と呼ばれる)、それがAPIを公開してServiceDirectoryに登録 です。あなたは アプリケーションパッケージにパッケージされたスタンドアロンの実行可能ファイルです

にsystemdサービスは、それにタグが付けられたマニフェストだと宣言など、 はその信号をサブスクライブ、qicliでそれらを呼び出すことができます。 これらは、ALServiceManagerによって管理されています.ALServiceManagerは、起動して停止することができます。 (独自のプロセスがあります)。わかりやすくするために、このドキュメントでは「実行可能ファイル」と呼ばれる があります。

2の間に混乱が共通 パターンは、同じ名前の両方を識別するために、時にはその唯一の目的NAOqi サービスを実行することである実行ファイルを書き込み、およびすることであるという事実によって増加する(例えば、両方の が呼び出されます"ALFuchsiaBallTracker")。ここ

あなたの問題はNAOqiサービスALTactileGestureはID ALTactileGesture-serv下に登録の実行によって運営されていることです。だから、あなたが道で

ALServiceManager.stop("ALTactileGesture-serv") 

(私はちょうどそれをテストし、それが正常に動作します)

(編集)を行う必要があり、私が実際に停止してALTactileGestureを開始することが最善の方法であることはよく分かりませんあなたは何をしようとしているのですか(それはちょっとハッキリしているようですが)あなたはこうしたいと思っています:

関連する問題