ALResourceManager Tutorial

NAOqi Core - Overview | API | Tutorial


Introduction

This tutorial explains how to use the ALResourceManager module.

Note

The tutorial is written in Python.

Create a resource


            
             # create proxy on resource manager
proxy = ALProxy("ALResourceManager","localhost",9559)

#createResource in root (parent resource is "")
proxy.createResource("newResource","")

            
           

Check if a resource is available


            
             #check resource is free
free = proxy.areResourcesFree(["newResource"])

            
           

Wait resource become available (blocking call)


            
             # take resource
# acquireResource(resource name, owner name, callback to notify you that someone want the resource, timeout)
proxy.acquireResource("newResource", "myFooModule", "", 1)

            
           

Callbacks on conflict


            
             class MyFooModule:
  def myFooCallback(self, resource, currentOwner):
    #decide what to do with the ressource.
    #either call releaseResource or pass
    if iwanttoreleasetheresource:
      releaseResource(resource, currentOwner)

# alternatively, you can specify a callback on myFooModule as third parameter that will be called in case of conflict.
proxy.acquireResource("newResource", "MyFooModule", "myFooCallback", 1)

            
           

Release resource taken with waitForResource


            
             #release resource
proxy.releaseResource("newResource", "myFooModule")