基本的Bluez BLE客户端

时间:2018-03-27 14:24:11

标签: bluez gdbus

为Bluez BLE编写gdbus客户端(版本5.48)

使用gdbus-codegen工具生成代理和骨架。 XML Content的详细信息如下。

<interface name="org.bluez.LEAdvertisement1">
        <method name="Release">
            <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
        </method>

        <annotation name="org.freedesktop.DBus.Properties.PropertiesChanged" value="const"/>
        <property name="Type" type="s" access="read"/>
        <property name="ServiceUUIDs" type="as" access="read"/>
        <property name="ManufacturerData" type="a{qv}" access="read"/>
        <property name="SolicitUUIDs" type="as" access="read"/>
        <property name="Includes" type="as" access="read"/>
        <property name="ServiceData" type="a{sv}" access="read"/>
        <property name="IncludeTxPower" type="b" access="read"/>
        <property name="LocalName" type="s" access="read"/>
        <property name="Appearance" type="q" access="read"/>
        <property name="Duration" type="q" access="read"/>
        <property name="Timeout" type="q" access="read"/>
    </interface>

以上所有属性都会从我的客户端分配到默认值。因为我反省使用d-feet。

但bluetoothctl这些值未分配为默认值。

我调试了

bluez/src/Advertising.c function client_proxy_added()->parse_advertisement()

g_dbus_proxy_get_property returns TRUE for properties set by bluetoothctl, others it returns FALSE.

但是使用自动生成的代码,尽管没有设置任何属性。 g_dbus_proxy_get_property能够获取其解析的所有属性和默认值。由于以上面临的问题,同时开始做广告。 1)超时默认值为零,立即超时。 2)当设置include属性时,解析名称属性,尽管没有设置。    bluez抛出错误&#34;已包含本地名称&#34;。

我们如何使用gdbus自动生成的代码与bluetoothctl进行相同的行为?

0 个答案:

没有答案