首页 > 编程语言 >bluz glib编程 --- 代码片段参考

bluz glib编程 --- 代码片段参考

时间:2024-07-16 11:07:19浏览次数:14  
标签:glib variant value prop --- iter error free bluz

获取远端蓝牙的所有属性

    result = g_dbus_connection_call_sync(
        conn,
        "org.bluez",
        /org/bluez/hci0/dev_A4_C1_38_10_09_2C,
        "org.freedesktop.DBus.Properties",
        "GetAll",
        g_variant_new("(s)", "org.bluez.Device1"),
        G_VARIANT_TYPE("(a{sv})"),
        G_DBUS_CALL_FLAGS_NONE,
        -1,
        NULL,
        &error
    );

    if(error != NULL) {
        printf("error get property: %s\n", error->message);
        g_error_free(error);
        return 1;
    }

    GVariantIter *prop_iter;
    gchar *prop_name;
    GVariant *prop_value;
    
    // 遍历所有属性
    g_variant_get(result, "(a{sv})", &prop_iter);
    while (g_variant_iter_next(prop_iter, "{sv}", &prop_name, &prop_value)) {
        gchar *value_str = g_variant_print(prop_value, TRUE);
        g_print("    %s: %s\n", prop_name, value_str);
        g_free(value_str);
        g_variant_unref(prop_value);
        g_free(prop_name);
    }
    g_variant_iter_free(prop_iter);
    g_variant_unref(result);

 

标签:glib,variant,value,prop,---,iter,error,free,bluz
From: https://www.cnblogs.com/god-of-death/p/18304753

相关文章

  • bluz glib编程 --- GVariant Format Strings 介绍
    GVariantFormatStrings类型字符串实例分析(sa{sv}as)外层是元组类型,内含三个成员,分别是字符串s字典类型数组a{sv},字符串作为key,variant作为value字符串类型数组as(i@ii)外层是元组类型,内含三个成员,分别是gint类型数字类型ivariant类型@i,对应数字......
  • 理论知识复习题 -移动终端应用程序设计
    一、判断题(将判断结果填入括号中。正确的填“√”,错误的填“×”)1.在使用AndroidStudio创建Android项目时,项目路径可以使用中文和空格。() 2.Android项目中使用到的图片资源可存放在res目录的drawable目录下。()3.Android应用程序可以通过模拟器运行,也可以用真机运行......
  • Zmail--让邮件变得简单的python邮件模块
    其他轮子的缺点:服务端拒信:首要问题。很多其他的轮子需要自己构造MIME和邮件头(通常优化了过程),但经常遭遇拒信,具体原因是其没有正确的定义邮件头,诸如From和To的头信息在使用SMTP时每家服务商检查都会有细微的差别,以及一些平台的差异(win10localhost乱码导致发件拒信),甚至在你发往......
  • 【2024-07-15】欠债人生
    23:59如果你在这世上、在你自身之外去寻找幸福,那任何东西都不会有幸福的影子。对于幸福,我们既不能争论,也无法预测,此时此刻拥有的幸福才是幸福。如果幸福看似还在未来,那就停下来想一想,因为你已经拥有它了。有希望就是一种幸福。                ......
  • ASP.NET Core-本地化
    1.安装扩展ResXManager用于管理本地化资源文件 2.添加资源文件Resource.resx使用工具ResXManager增加其他资源文件,具体参考ResXManager使用3.注册本地化publicstaticclassServiceCollectionExtensions{publicstaticIServiceCollectionAddLanguage(thisIServic......
  • elementui的el-cascader-panel在jsx里如何自定义label和props属性
    render(){return(<el-cascader-panelonChange={(val)=>{this.handleFormatChange(val,'format','dataColumns',indexInMap)}}props={{renderLabel:(params)=>{......
  • dbus --- 简介
    官方资料:https://www.freedesktop.org/wiki/Software/dbus/D-Bus是一个消息通信系统,是Linux 上的一种进程间通信方式,内部使用socket技术实现。dbus-daemon是D-Bus的守护进程,负责管理消息的路由和应用程序的注册。 D-Bus有两种类型的消息总线,分别是系统总线和会话总线,sy......
  • Python安装出现严重错误的解决方法_0x80070643-( A newer version of the Python laun
    每次在装软件配置环境的时候,总会遇到别人碰不到的各种问题,人都麻了。最后我还是自己尝试这解决了,只是建议,虽然说不知道是否以后还会问题,但是可以成功安装,配置环境并运行。(本人是win11)首先解释一下pythonlauncher是什么资料解释:PythonLauncher是Python官方提供的一个工具,......
  • bluez --- 提供的工具
    dbus-send功能调用指定程序的方法向指定程序发送信号dbus-send的基本语法dbus-send--system|--session--dest=destination--type=method_call--print-reply/path/to/objectinterface.method[arg1arg2...]--system 或 --session:指定使用系统总线还是会话总线......
  • Swift开发基础06-闭包
    Swift的闭包(Closures)是一种将功能块和上下文整合并演示在代码中的一种手段。闭包可以捕获并存储其上下文中的变量和常量。与普遍存在于其他语言的匿名函数(如Python的lambda、JavaScript的函数表达式)类似,Swift的闭包提供了强大的功能,并在很多场景中替代了函数。闭包有三种主要形式......