openwrt ubus简介以及libubus开发说明

简介

ubus是新openwrt引入的一个消息总线,主要作用是实现不同应用程序之间的信息交互。

ubus启动后会在后台运行ubusd进程,该进程监听一个unix套接字用于与其他应用程序通信。其他应用程序可基于libubox提供的接口(或自己实现)与其通信。

使用ubus的方式主要有:1、向其注册消息或控制接口。2、向其调用其他应用程序的消息或控制接口。3、向其注册关心的事件。

ubus命令使用说明

ubus命令用于控制调试相关ubus接口,主要命令说明如下:

- list [<path>]                        List objects

- call <path> <method> [<message>]     Call an object method

- listen [<path>...]                   Listen for events

- send <type> [<message>]              Send an event

- wait_for <object> [<object>...]      Wait for multiple objects to appear on ubus

ubus list [-v] 该命令用于显示当前ubus中注册的接口,其中-v参数用以显示各个接口的详细信息。示例如下:

ubus list -v
‘dhcp‘ @26b45f5d
        "ipv4leases":{}
        "ipv6leases":{}
‘hostapd.wlan0‘ @5e03d420
        "get_clients":{}
        "del_client":{"addr":"String","reason":"Integer","deauth":"Boolean","ban_time":"Integer"}

ubus call 该命令用于调用ubus中当前注册的接口。示例如下:

ubus call dhcp ipv6leases
{
        "device": {
                "br-lan": {
                        "leases": [
                                {
                                        "duid": "0001000119660ee***4e543***3c70",
                                        "iaid": 3***72***5,
                                        "hostname": "*******-PC",
                                        "assigned": 3900,
                                        "length": 128,
                                        "ipv6": [
                                                "fd23:a6ed:f19b::f3c"
                                        ],
                                        "valid": -38000
                                }
                        ]
                }
        }
}

ubus listen 用于监听ubus相关事件,如果不指定事件名则监听所有事件。(支持通配符*)

ubus send 用于发送事件

ubus wait_for 用于等待指定项的注册到ubus中。

libubus开发说明

to be continue

时间: 2024-11-08 20:17:02

openwrt ubus简介以及libubus开发说明的相关文章

openwrt ubus (OpenWrt micro bus 架构)

为了在OpenWrt中提供守护进程和应用程序间的通讯,开发了ubus项目工程.它包含了守护进程.库以及一些额外的帮助程序. 核心部分是ubusd守护进程,它提供了其他守护进程将自己注册以及发送消息的接口.因为这个,接口通过使用Unix socket来实现,并使用TLV(type-length-value)消息. 为了简化软件的开发,可以使用已有的libubus库来使用ubus(连接ubus). 每个守护进程在自己的名称空间中注册自有的路径.每个路径可以提供多个带有不定数量参数的方法,方法可以通过

1.Structs2简介和Structs2开发环境搭建

一.Structs2简介: 1.什么是Struct2? 著名的SSH三大框架分别为:表现层(Structs).业务逻辑层(Spring),持久化层(Hibernate). Struct2是在WebWork2基础上发展而来的MVC框架,尽管Struct2与Structs在名字上很像,但代码编写风格上几乎是完全不一样的. Structs2比Structs更优秀,修复了Structs的许多Bug和缺点. 2.Struct2框架的优点? 1.Structs2是非侵入式设计 Structs2的Action

struts2 之 【struts2简介,struts2开发步骤,struts2详细配置,struts2执行流程】

入门框架学习避免不了的问题: 1. 什么是框架? 简单的说,框架就是模板,模子,模型.就是一个可重用的半成品. 2. 如何学习框架? 学习框架其实就是学习规则,使用框架就是遵循框架的规则,框架是可变的 和 不可变的部分组成,学习框架就需要把 什么可变什么不可变搞清楚. 3. 为什么使用 struts2 框架:聊这个问题先来聊一聊 Web的开发模式, model1 和 model2 模式. 4. model1模式:jsp+javaBean开发. 优点:执行效率高,代码比较少,开发效率比较高.适合小

ubus

openwrt提供了一个系统总线ubus,类似linux桌面操作系统的d-bus,目标是提供系统级的进程间通信(IPC)功能. 为了提供各种后台进程和应用程序之间的通信机制,ubus被开发出来,由3部分组成:精灵进程,接口库和实用工具. 参考文档: openwrt中使用ubus实现进程通信 openwrt ubus简介以及libubus开发说明 ubus [1] - ubusd ubus [2] - libubus ubus [3] - cli

SNF快速开发平台3.1之-- SNF.WorkFlow审核流简介

本项目是的在Spring.Net.Framework 平台之上进行研发.SNF.WorkFlow审核流是一款完全自主知识产权研发的为软件项目. 审核流基本概念:什么是审核流? 审核流:两个或两个以上的人,为了共同的目标,连续的以串行或并行的方式去完成某一业务. 业务:审核流所指业务涵盖了与经营相关的活动. 串行或并行:业务中的步骤也许以一步接着一步的方式进行,我们称之为串行:或者由不同的人或组合根据不同的情况处理,我们称之为并行. 两个或两个以上的人:如审核流的名称所表达的含义,一个人处理的业务

嵌入式Linux下开源路由器OpenWRT编译与下载

*************************************************************************************************************************** 作者:EasyWave                                                                   时间:2014.10.26 类别:Linux应用-开源路由器OpenWRT的编译与下载    

零基础openwrt固件编译

零基础OpenWRT固件编译 戴维营教育<物联网/智能家居开发>课程系列 1.OpenWRT项目简介 OpenWRT是一个专用于无线路由器设备的Linux发行版.支持众多的芯片方案的路由器设备,由x86到ARM,MIPS等等. 目前稳定版本是: BARRIER BREAKER (14.07) 目前开发版本是: Chaos Calmer (trunk) 详细信息参看官方网址: https://openwrt.org 2.采用OpenWRT的智能路由器 极路由 小米路由 优酷路由 迅雷路由 360

【转】开发人员一定要加入收藏夹的网站

http://www.gotapi.com/ 语言:英语 简介:HTML,CSS,XPATH,XSL,JAVASCRIPT等API的查询网站.http://www.w3schools.com/ 语言:英语 简介:W3C制定的标准诸如XML,HTML,XSL等等的在线学习教程.http://www.xml.org.cn/ 语言:中文 简介:可以说是XML的中国官方网吧.W3C标准的翻译组织与XML系列技术交流社区.http://www.connectionstrings.com/ 语言:英语 简介

iOS开发&gt;学无止境 - 全面了解 iOS 静态库开发

简介 在企业开发中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,不想被外界知道,所以会把核心代码打包成静态库,只暴露头文件给程序员使用(比如:友盟.百度地图等第三方的sdk) 静态库和动态库的存在形式 静态库:.a 和 .framework 动态库:.dylib 和 .framework 静态库和动态库的区别 静态库:链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省