>

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

내 흐름도에는 빨간색으로 표시된 두 번째 상자가 있습니다.

내 질문은 : 어떻게 메모리에서 데이터를 다시 얻을 수 있습니까?

또한 메모리에 두 번째로 데이터를 삽입하려고 시도했지만 아무런 변화가 없었습니다. 최근에 영향받은 박스에 출력 및 입력을 추가하여 필요한 데이터를 박스로 전송했습니다. 하지만 내 프로그램이 혼란스럽고 지저분 해지고 있습니다.


  • 답변 # 1

    여러 가지 가능성 :

    휴식 시작 전에 어딘가에서 ALMemory.declareEvent를 사용하십시오 (또는 항상 깨끗한 슬레이트에서 시작하도록하는 좋은 기본값을 삽입하십시오).

    데이터가 아직 삽입되지 않은 경우를 처리 할 수 ​​있도록 try/except RuntimeError 문으로 ALMemory.getData 사용을 래핑하십시오

    전화 함의where에도주의를 기울여야합니다. 상자의 .onLoad ()는 다이어그램이로드 될 때 입력이 트리거되기 전에 호출되므로 ALMemory를 읽으려는 코드가 거기에 있지만 그것을 쓰는 장소가 .onStart ()에 있으면 놀랍지 않습니다. 이 오류.

  • 이전 Flutter에서 PageView 페이지의 배경색 사이에 그라디언트를 만드시겠습니까?
  • 다음 javascript - HTML 속성에서 Vue 데이터를 작성하는 방법은 무엇입니까?