ALMemory

ALMemory包含三种数据并提供三种不同的API。

  • 来自传感器和关节的主数据
  • 事件
  • 小事件(Micro-event)

来自传感器和关节的数据

  • 数据没有历史记录。
  • 数据仅为32位变量。
  • 用户可以获得数据指针,以快速地访问数据。
  • 没有数据订阅。

API
void insertData(const std::string &name, const ALValue &value)
ALValue getData(const std::string &name)
float *ALMemoryFastAccess::getDataPtr(AL::ALPtr<AL::ALBroker> pBroker, const std::string &pStrValue, bool bAllowUnexistantVariable)

在C++语言实时算法里,使用getDataPtr来获得传感器和关节的值。在大多数C++和Python语言的算法里,使用getData。

事件

可以订阅到事件。事件订阅会运行生成该事件的析取器。例如,订阅至事件FaceDetected会运行面部探测;订阅至事件WordRecognized会运行声音识别。默认情况下,析取器不运行。 NAOqi可以管理基于事件的历史记录和长期存储。

API
declareEvent(const std::string &eventName)
raiseEvent(const std::string &eventName, const ALValue &value)
subscribeToEvent( const std::string& dataName, const std::string& moduleName, const std::string& message, const std::string& callback )

小事件

小事件主要是内部应用于回调系统。

API
declareMicroEvent(const std::string &microEventName)
raiseMicroEvent(const std::string &microEventName, const ALValue &value)
subscribeToMicroEvent( const std::string& dataName, const std::string& moduleName, const std::string& message, const std::string& callback )





Copyright © 2010 Aldebaran-Robotics - 版权所有