我正在Windows 10上使用带有Choregraphe 2.1.4的nao机器人。
在我的流程图中,有几个框使用相同的数据。当我第一次使用数据时,它将通过以下方式插入到内存中:
self.memory = ALProxy("ALMemory") ... self.memory.insertData("dataKey", self.value)
我需要在两个位置访问数据,所以我在使用:
self.memory = ALProxy("ALMemory") ... self.value = self.memory.getData("dataKey")
当我运行该程序(该程序甚至无法启动)时,我立即收到以下错误:
[ERROR] behavior.box :_safeCallOfUserMethod:281 _Behavior__lastUploadedChoregrapheBehaviorbehavior_1172060400__root__unknownProgramName_6__redMarkedBox_2: Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/naoqi.py", line 271, in _safeCallOfUserMethod
func()
File "<string>", line 12, in onLoad
File "/usr/lib/python2.7/site-packages/naoqi.py", line 301, in __call__
return self.__wrapped__.method_missing(self.__method__, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/naoqi.py", line 371, in method_missing
raise e
RuntimeError: ALMemory::getData
ALMemory::getData
Data not found dataKey
在流程图中,第二个框用红色标记。
我的问题是:我怎样才能第二次从内存中获取数据?
我也试图第二次将数据插入到内存中,但是没有任何改变。最近,我向受影响的框添加了输出和输入,以将所需的数据发送到框。但是我的程序变得混乱和混乱。
答案 0 :(得分:0)
多种可能性:
您还应该注意框中的位置进行这些呼叫;加载图时,在触发任何输入之前会调用一个盒子的.onLoad(),因此,如果您尝试读取ALMemory的代码位于其中,但编写该代码的位置位于.onStart()中,得到它也就不足为奇了这个错误。