openwrt中ubus的具体使用
转自: http://www.fx114.net/qa-26-169704.aspx#__RefHeading__28_50040687 openwrt ubus的wiki ubus是为了OpenWrt中守护进程和应用程序之间通讯开发的,类似桌面的DBus,设计理念上与DBus基本保持一致,区别是简化的API和简练的模型,以适应embeddedrouter的特殊环境。与DBus一样也是使用socket实现。 核心部分是ubusd守护进程,它提供了其他守护进程将自己注册以及发送消息的接口。因为这个,接口通过使用Unixsocket来实现,并使用TLV(type-length-value)消息,ubus内部使用Blob_buf,Blob_attr等结构来表示。 ubus有两种调用,一个是method调用,一个是notification,其中method包括等待函数返回和不用等待返回,notification是广播和DBus的signal类似。ubus使用是先建立连接,然后把连接加入epollset中。下面是它的一些调用API。 uloop_init(); 创建epoll句柄,最多监听32个fd ubus_connect(); 创建ubus连接 ubus_add_uloop(); 把创建的ubus连接注册到epoll中。 ubus_add_object(); 注册对象到的ubus连接。