模块

模块既是类,也是库。从“autoload.ini”加载的库会自动实例化模块主类。

模块生成器(参见 SDK )创建一个会被代理程序读懂的类:加载一个模块,查看模块函数API等等。

ALModule

函数 说明
virtual void init(void); 加载一个模块时,会自动调用这个虚拟重置函数。
ALPtr<AL::ALProxy> getProxy(const std::string& pModuleName); 获得对另一个模块的访问。
inline ALPtr<ALBroker> getParentBroker () 获取父类代理程序指针/智能指针。参见代理程序。
virtual void dataChanged (const std::string& pDataName, const AL::ALValue& pValue, const std::string& pMessage)=0; 当ALMemory一个变量有变化时,默认的回调名
bool ping( void ); 查验(ping)一个模块
virtual void exit( ); 退出一个模块。如果您进行重新定义,应仍将其命名为“ALModule::exit()”。否则,模块不会被彻底销毁。
std::string getName() 获取模块名
inline ALPtr<ALModuleInfo> getModuleInfo (){ return fModuleInfo;}; 获取模块信息
virtual std::string httpGet () const{ return "";}; 在网页上显示的模块信息。

创建ALModule的API

函数 说明
#define BIND_METHOD( x ) 在模块的API里添加方法x。API(绑定函数)可以被本地或远程调用。
void functionName ( const std::string& pName, const std::string& pClass, const std::string& pFunctionDescription ); 用来定义绑定方法的名称。
void addParam (const std::string& pName, const std::string& pDesc); 用来说明方法的参数
virtual AL::ALValue getMethodHelp ( const std::string& pMethodName ); 获取methodName的说明
AL::ALValue moduleHelp(); 获取模块的说明





Copyright © 2010 Aldebaran-Robotics - 版权所有