首页 > 其他分享 >bluez --- 提供的工具

bluez --- 提供的工具

时间:2024-07-16 10:30:11浏览次数:9  
标签:-- freedesktop dbus --- bluez org 工具 DBus

dbus-send

功能

  • 调用指定程序的方法
  • 向指定程序发送信号

dbus-send的基本语法

dbus-send --system|--session --dest=destination --type=method_call --print-reply /path/to/object interface.method [arg1 arg2 ...]
  • --system 或 --session:指定使用系统总线还是会话总线。系统总线用于系统级服务,而会话总线用于用户会话中的服务。
  • --dest=destination:指定目标服务的名称,也称well-known Name
  • --type=method_call:指定消息类型为方法调用;signal表示发送信号
  • --print-reply:如果服务响应了消息,打印响应消息;也可以写--print-reply=literal,,literal会把所有的标点和转义符号去掉
  • /path/to/object:目标对象的路径。
  • interface.method:要调用的接口.方法。
  • [arg1 arg2 ...]:传递给方法的参数(可选)。

示例

使用dbus-send控制屏幕保护程序

假设你想使用dbus-send来锁定屏幕(这通常通过调用屏幕保护程序的服务来完成)。你可以使用以下命令:

dbus-send --session --print-reply --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

返回

method return time=1720419947.196079 sender=:1.85 -> destination=:1.112 serial=28 reply_serial=2

标准接口

标准接口可以在DBus-Spec中找到,可以使用dbus提供的标准接口进行迭代查询,查询到每个的服务名--->obj路径--->每个方法的输入输出参数。

查询系统总线所有服务名称

dbus-send --system --print-reply --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ListNames

 返回

method return time=1689984075.048033 sender=org.freedesktop.DBus -> destination=:1.3 serial=3 reply_serial=2
   array [
      string "org.freedesktop.DBus"
      string ":1.3"
      string ":1.0"
      string "org.bluez"
   ]

查询服务 org.bluez 的所有对象的所有接口及其属性值(方法和信号没列出)

dbus-send --system --print-reply --type=method_call --dest=org.bluez / org.freedesktop.DBus.ObjectManager.GetManagedObjects

查询对象 org/bluez 的所有接口的方法、属性和信号的信息

dbus-send --system --print-reply --type=method_call --dest=org.bluez /org/bluez org.freedesktop.DBus.Introspectable.Introspect

dbus-monitor

基本语法

dbus-monitor 
        [--system | --session | --address ADDRESS] 
        [--profile | --monitor | --pcap | --binary] // 设置输出格式
        [watch expressions]

监视接口 org.bluez.Adapter1 的方法调用

root@rk3308h-buildroot:/# dbus-monitor --profile --system "type='method_call',interface='org.bluez.Adapter1'"                                 
#type timestamp serial sender destination path interface member # in_reply_to sig 1689986806.605417 2 org.freedesktop.DBus :1.16 /org/freedesktop/DBus org.freedesktop.DBus NameAcquired sig 1689986806.605524 4 org.freedesktop.DBus :1.16 /org/freedesktop/DBus org.freedesktop.DBus NameLost mc 1689986810.994514 2 :1.17 org.bluez /org/bluez/hci0 org.bluez.Adapter1 StartDiscovery

 

标签:--,freedesktop,dbus,---,bluez,org,工具,DBus
From: https://www.cnblogs.com/god-of-death/p/18304673

相关文章

  • 《藏文翻译词典》App功能介绍,支持藏汉词典和藏文字典查单词,好用的藏语学习工具!
    《藏文翻译词典》App,作为一款功能强大的语言学习工具,不仅为藏语学习者提供了一个便捷的学习平台,也为那些对藏文化感兴趣的人们打开了一扇了解和学习的窗口。app内置藏汉词典、藏汉大词典、新术语等多本辞书,方便大家查询单词,中文藏文双语解释。藏汉双语,藏语学习的得力助手《......
  • Swift开发基础06-闭包
    Swift的闭包(Closures)是一种将功能块和上下文整合并演示在代码中的一种手段。闭包可以捕获并存储其上下文中的变量和常量。与普遍存在于其他语言的匿名函数(如Python的lambda、JavaScript的函数表达式)类似,Swift的闭包提供了强大的功能,并在很多场景中替代了函数。闭包有三种主要形式......
  • 数据结构和算法--2.算法复杂度
    算法复杂度算法分析➢同一算法用不同语言实现,用不同编译器,或是在不同计算机上运行,效率均不同➢使用绝对时间衡量算法效率不合适➢基本操作重复执行的次数作为算法的时间度量判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注主项(最高阶项)的阶数算法......
  • Swift开发基础07-内存布局
    了解Swift的内存布局和底层原理对于编写高性能和内存高效的应用非常重要。接下来,我将更详细地介绍Swift的内存管理机制和一些底层实现细节,包括内存布局、ARC(自动引用计数)、引用类型和值类型的区别,及其在底层的实现。内存布局(MemoryLayout)栈(Stack)栈内存用于存储函数调用帧(Call......
  • 核客任务实战-WEB服务器攻防篇教程
    前言网站服务器的核客攻防一直是网络安全中最重要的一部分,本书作者在经过数月的努力之后,终于将网站服务器的攻防以深入浅出、简单易懂的方式呈现在您的眼前,让您不必具有高深的网络知识和经验,只要依照本书的操作说明来按图索骥的进行,就能让您充分了解与感受到高手的技巧和行为一......
  • 最新版康泰克完整版- Kontakt v7.10.5 for Win和Mac,支持m芯片和intel,有入库工具
    一。世界最受欢迎的采样器的新篇章    NativeInstrumentsKontakt是采样器领域的标准,您将获得高质量的滤波器,在这里您将找到经典的模拟电路和最现代的滤波器。每一个都可以根据您的口味进行定制,并且由于它,您可以获得前所未有的声音。这是一个解锁版本,这意味着您可以......
  • Excel 学习手册 - 精进版(包括各类复杂函数及其嵌套使用)
    作为程序员从未想过要去精进一下Excel办公软件的使用方法,以前用到某功能都是直接百度,最近这两天跟着哔哩哔哩上的戴戴戴师兄把Excel由里到外学了一遍,收获良多。程序员要想掌握这些内容可以说是手拿把掐,对后续Excel的运用也会有非常好的效果,在处理数据时,比起现写一些一次......
  • 一起学Hugging Face Transformers(18) - 使用Transformers 库实现命名实体识别(NER)
    文章目录前言1.环境配置2.加载模型和分词器3.创建命名实体识别管道4.输入文本进行识别5.完整代码示例6.结果解释总结前言命名实体识别(NER)是自然语言处理(NLP)中的一种任务,旨在识别文本中具有特定意义的实体,例如人名、地名、组织名等。NER在信息抽取、文本分析......
  • E9-根据主表选择框值判断改变主表、明细表字段的属性
    一、流程表单开发过程中,标准的属性联动功能无法满足特定情况下的字段属性联动功能时,使用了以下JavaScript代码进行控制。二、代码实现了根据表单字段的值动态显示或隐藏特定字段,同时修改字段的属性。这在需要根据用户输入动态调整表单显示三、代码如下(供参考)//将字段名称转......
  • Springboot 校园安全通事件报告小程序-计算机毕业设计源码02445
    Springboot校园安全通事件报告小程序系统摘 要随着中国经济的飞速增长,消费者的智能化水平不断提高,许多智能手机和相关的软件正在得到更多的关注和支持。其中,校园安全通事件报告小程序系统更是深得消费者的喜爱,它的出现极大地改善了消费者的生活质量,同时,它还创造了一种快......