Pepper NAO Choregraphe Naoqi wiki - ALMemory - Tutorial

このページについて

NAOqi Core - 概要 | API | チュートリアル

導入


このチュートリアルでは、ALMemoryモジュールの使用法について説明します。
📝メモ
このチュートリアルではpythonを使用します。

データの格納

from naoqi import ALProxy

try:
  # ALMemory上でプロクシを作成
  memProxy = ALProxy("ALMemory","localhost",9559)

  # データの格納、int,float,list,stringが使えます。
  memProxy.insertData("myValueName1", "myValue1")

  # データの取得
  print "The value of myValueName1 is", memProxy.getData("myValueName1")

except RuntimeError,e:
  # 例外処理
  print "error insert data", e

getData

from naoqi import ALProxy

# ALMemory上でプロクシを作成
memProxy = ALProxy("ALMemory","localhost",9559)

# データの取得、int,float,list,string
val = memProxy.getData("myValueName1")

イベント発生

from naoqi import ALProxy

# ALMemory上でプロクシを作成
memProxy = ALProxy("ALMemory","localhost",9559)

# イベントの発生。データはint,float,list,string
memProxy.raiseEvent("My event", "data")

Subscribe to event

"""
pythonドキュメントの例
"""

from naoqi import *
import time
check = 0


# pythonモジュールの作成
class myModule(ALModule):
  """ pythonクラスのドックストリング"""


  def pythondatachanged(self, strVarName, value):
    """データが変更された時のコールバック"""
    print "datachanged", strVarName, " ", value, " ", strMessage
    global check
    check = 1

  def _pythonPrivateMethod(self, param1, param2, param3):
    global check


broker = ALBroker("pythonBroker","10.0.252.184",9999,"naoverdose.local",9559)


# コールメソッド
try:

  pythonModule = myModule("pythonModule")
  prox = ALProxy("ALMemory")
  #prox.insertData("val",1) # 許可されていません。データは最適化されており、コールバックは管理されていません。
  prox.subscribeToEvent("FaceDetected","pythonModule", "pythondatachanged") # 大文字と小文字の区別に注意
except Exception,e:
  print "error"
  print e
  exit(1)

while (1):
  time.sleep(2)