User Tools

Site Tools


ubus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
ubus [2018/05/27 07:23] – 创建 midas_zhouubus [2025/10/14 06:22] (current) – external edit 127.0.0.1
Line 1: Line 1:
-ubus是openwrt用来实现进程间通信的一种消息总线机制,其数据格式类似json。守护进程dbusd以server/client的方式统一管理进程间的通信,进程可以通过dbus向其他进程发送数据调用服务,或则向dbus订阅特定消息。 +ubus是openwrt用来实现进程间通信的一种消息总线机制,其数据格式类似json。守护进程dbusd以server/client的方式统一管理进程间的通信,进程可以通过ubus向其他进程发送数据调用服务,或则向dbus订阅特定消息。 
  
-1. ubus中每个对象都用路径(object path)的方式来表达, 命令ubus list 可以列出所有注册对象: +=== 1. ubus中每个对象都用路径(object path)的方式来表达, 命令ubus list 可以列出所有注册对象: === 
-root@Widora:/# ubus list +<code bash> 
-dhcp +   root@Widora:/# ubus list 
-iwinfo +   dhcp 
-log +   iwinfo 
-network +   log 
-network.device +   network 
-network.interface +   network.device 
-network.interface.lan +   network.interface 
-network.interface.loopback +   network.interface.lan 
-network.wireless +   network.interface.loopback 
-rpc-sys +   network.wireless 
-service +   rpc-sys 
-session +   service 
-system +   session 
-uci +   system 
- +   uci 
-2.  加上-v选项可以看到指定对象可调用的具体方法(method): +</code> 
-root@Widora:/# ubus list network.interface.lan -v +=== 2. 加上-v选项可以列出指定对象可调用的具体方法(method): === 
-'network.interface.lan' @3fcd0eda +<code bash> 
-        "up":{} +   root@Widora:/# ubus list network.interface.lan -v 
-        "down":{} +   'network.interface.lan' @3fcd0eda 
-        "status":{} +           "up":{} 
-        "prepare":{} +           "down":{} 
-        "dump":{} +           "status":{} 
-        "add_device":{"name":"String","link-ext":"Boolean"+           "prepare":{} 
-        "remove_device":{"name":"String","link-ext":"Boolean"+           "dump":{} 
-        "notify_proto":{} +           "add_device":{"name":"String","link-ext":"Boolean"
-        "remove":{} +           "remove_device":{"name":"String","link-ext":"Boolean"
-        "set_data":{} +           "notify_proto":{} 
- +           "remove":{} 
-3.  调用对象方法的时候ubus向特定对象发送方法名和参数, 对象接收到后会返回要求的状态数据或执行结果。 +           "set_data":{} 
-比如调用network.wireless对象status方法, 会返回无线网络的状态: +</code> 
-root@Widora:/# ubus call network.wireless status +=== 3. 调用对象方法:通过ubus向特定对象发送方法名和参数, 对象接收到后会返回要求的状态数据或执行结果。=== 
-{+比如调用network.wireless对象status方法(无需参数), 会返回无线网络的状态: 
 +<code bash> 
 +   root@Widora:/# ubus call network.wireless status 
 +   {
         "radio0": {         "radio0": {
                 "up": true,                 "up": true,
Line 57: Line 60:
                                         "ifname": "ra0",                                         "ifname": "ra0",
                                         "ssid": "Widora-86D9",                                         "ssid": "Widora-86D9",
-  ... ... +     ... ... 
-}+   } 
 +</code>
ubus.1527405794.txt.gz · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki