2017-01-10 6 views
0

Ich habe einige Probleme mit dem Naoqi SDK mit Choreographe. Ich brauche synchron zwei oder mehr Variablen mittels QiChat Modul an eine Python-Funktion übergeben:Übergabe von mehr QiChat-Variablen an eine Python-Funktion

u:(Is someone in _~lab lab working on _~themes) $lab=$1 $themes=$2 

oder besser:

u:(Is someone in _* lab working on _*) $lab=$1 $themes=$2 

Ich habe nichts online gefunden, kann mir jemand helfen?

Vielen Dank im Voraus

Antwort

1

QiChat ALMemory Ereignisse auslöst, wenn eine Variable gesetzt ist, aber Verarbeitung ALMemory Ereignisse asynchron, daher können Sie nicht auf sie in Ihrem Fall verlassen können.

QiChat bietet jedoch eine Möglichkeit, synchrone Aufrufe an alle API in NAOqi ausgesetzt, mit der ^call keyword. Sie können dies ausnutzen, um eine Methode aufzurufen, die Sie in a Python service veröffentlicht hätten, die Sie selbst geschrieben hätten. In QiChat Sie so etwas haben würde:

u:(_$myConcept): alright ^call(MyService.myMethod($1)) 

Ich nehme an, Sie Ihr Programm mit chorégraphe schreiben, beachten Sie daher bitte, dass Sie bereits Zugriff auf eine gültige Qi Session haben in jedem Python-Box, von self.session() aufrufen.

+0

Kann ich eine ALModule-Methode stattdessen mit Python-Service aufrufen? – carlocciu

+0

Ich versuche mit '^ call (self.session(). Methode ($ 1))' aber es funktioniert nicht. – carlocciu

+0

Der richtige Weg ist das Schreiben von '^ call (MyService.myMethod ($ 1))'. Ich habe meine Antwort aktualisiert, um das klarzustellen. –

Verwandte Themen