Я использую робота Nao и python SDK, и я пытаюсь создать для него свой собственный модуль. Сейчас это просто фиктивный модуль с одной функцией: getJoke()
.
У меня есть файл tellAJoke.py
, расположенный по пути /home/nao/tellAJoke.py
, и я обновил файл autoload.ini
, включив в него следующее:
[python]
/home/nao/tellAJoke.py
Когда я загружаю робота, он говорит то, что он обычно делает при запуске, но также говорит, что возвращает моя getJoke()
функция: «Это плохая шутка».
Я не уверен, что я здесь делаю не так. Когда я подключаюсь к роботу по ssh и запускаю код, он работает нормально, но никогда, когда я хочу импортировать модуль с ALProxy
в Choreographe.
РЕДАКТИРОВАТЬ: я добавил фактический фиктивный код, который у меня есть.
from naoqi import ALBroker
from naoqi import ALModule
from naoqi import ALProxy
import sys
class JokerModule(ALModule):
"""Tells you a random joke"""
def __init__(self, name):
print "WE HAVE INITED"
self.tts = ALProxy("ALTextToSpeech")
ALModule.__init__(self, name)
global memory
memory = ALProxy("ALMemory")
memory.subscribeToEvent("SayingJoke", "Joker", "getJoke")
def getJoke(self, *_args):
"""Returns a joke"""
self.tts.say("Joke time!")
def main():
"""main entry point"""
pip = '192.168.1.104'
pport = 9559
myBroker = ALBroker("myBroker", '0.0.0.0', 0, pip, pport)
global Joker
Joker = JokerModule("Joker")
speechProxy = ALProxy("ALTextToSpeech")
Joker.getJoke()
if __name__ == '__main__':
main()