| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| # Copyright (c) 2020 Project CHIP Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # This file is constructed using the below method. |
| # 1. running bluetoothd |
| # 2. running two Bluetooth adapter with LE capability and create ble connection with Gatt servie and Gatt Char. |
| # For the purposes of XML generation we use btvirt emulator with the LE only capability. |
| # Assume the LE chip is on hci 0 |
| # we get the bluez XML via: |
| # sudo gdbus introspect -s -d org.bluez -r -o /org/bluez -x |
| # sudo gdbus introspect -s -d org.bluez -r -o /org/bluez/hci0 -x |
| # sudo gdbus introspect -s -d org.bluez -r -o /org/bluez/hci0/dev_00_AA_01_01_00_24 -x |
| # sudo gdbus introspect -s -d org.bluez -r -o /org/bluez/hci0/dev_00_AA_01_01_00_24/service0006 -x |
| # sudo gdbus introspect -s -d org.bluez -r -o /org/bluez/hci0/dev_00_AA_01_01_00_24/service0006/char0007 -x |
| # sudo gdbus introspect -s -d org.bluez -r -o /org/bluez/hci0/dev_00_AA_01_01_00_24/service0006/char0007/desc0009 -x |
| # sudo gdbus introspect -s -d org.bluez -r -o / -x |
| --> |
| |
| <node> |
| <interface name="org.bluez.Adapter1"> |
| <method name="StartDiscovery" /> |
| <method name="SetDiscoveryFilter"> |
| <arg name="properties" type="a{sv}" direction="in" /> |
| </method> |
| <method name="StopDiscovery" /> |
| <method name="RemoveDevice"> |
| <arg name="device" type="o" direction="in" /> |
| </method> |
| <method name="GetDiscoveryFilters"> |
| <arg name="filters" type="as" direction="out" /> |
| </method> |
| <method name="ConnectDevice"> |
| <arg name="properties" type="a{sv}" direction="in" /> |
| </method> |
| |
| <property name="Address" type="s" access="read" /> |
| <property name="AddressType" type="s" access="read" /> |
| <property name="Name" type="s" access="read" /> |
| <property name="Alias" type="s" access="readwrite" /> |
| <property name="Class" type="u" access="read" /> |
| <property name="Powered" type="b" access="readwrite" /> |
| <property name="Discoverable" type="b" access="readwrite" /> |
| <property name="DiscoverableTimeout" type="u" access="readwrite" /> |
| <property name="Pairable" type="b" access="readwrite" /> |
| <property name="PairableTimeout" type="u" access="readwrite" /> |
| <property name="Discovering" type="b" access="read" /> |
| <property name="UUIDs" type="as" access="read" /> |
| <property name="Modalias" type="s" access="read" /> |
| <property name="Roles" type="as" access="read" /> |
| </interface> |
| |
| <interface name="org.bluez.Device1"> |
| <method name="Disconnect" /> |
| <method name="Connect" /> |
| <method name="ConnectProfile"> |
| <arg name="UUID" type="s" direction="in" /> |
| </method> |
| <method name="DisconnectProfile"> |
| <arg name="UUID" type="s" direction="in" /> |
| </method> |
| <method name="Pair" /> |
| <method name="CancelPairing" /> |
| <property name="Address" type="s" access="read" /> |
| <property name="AddressType" type="s" access="read" /> |
| <property name="Name" type="s" access="read" /> |
| <property name="Alias" type="s" access="readwrite" /> |
| <property name="Class" type="u" access="read" /> |
| <property name="Appearance" type="q" access="read" /> |
| <property name="Icon" type="s" access="read" /> |
| <property name="Paired" type="b" access="read" /> |
| <property name="Trusted" type="b" access="readwrite" /> |
| <property name="Blocked" type="b" access="readwrite" /> |
| <property name="LegacyPairing" type="b" access="read" /> |
| <property name="RSSI" type="n" access="read" /> |
| <property name="Connected" type="b" access="read" /> |
| <property name="UUIDs" type="as" access="read" /> |
| <property name="Modalias" type="s" access="read" /> |
| <property name="Adapter" type="o" access="read" /> |
| <property name="ManufacturerData" type="a{qv}" access="read" /> |
| <property name="ServiceData" type="a{sv}" access="read" /> |
| <property name="TxPower" type="n" access="read" /> |
| <property name="ServicesResolved" type="b" access="read" /> |
| <property name="AdvertisingFlags" type="ay" access="read" /> |
| <property name="AdvertisingData" type="a{yv}" access="read" /> |
| <property name="WakeAllowed" type="b" access="readwrite" /> |
| </interface> |
| |
| <interface name="org.bluez.GattManager1"> |
| <method name="RegisterApplication"> |
| <arg name="application" type="o" direction="in" /> |
| <arg name="options" type="a{sv}" direction="in" /> |
| </method> |
| <method name="UnregisterApplication"> |
| <arg name="application" type="o" direction="in" /> |
| </method> |
| </interface> |
| |
| <interface name="org.bluez.GattService1"> |
| <property name="UUID" type="s" access="read" /> |
| <property name="Device" type="o" access="read" /> |
| <property name="Primary" type="b" access="read" /> |
| <!-- <property name="Includes" type="ao" access="read" /> --> |
| </interface> |
| |
| <interface name="org.bluez.GattCharacteristic1"> |
| <method name="ReadValue"> |
| <arg name="options" type="a{sv}" direction="in"/> |
| <arg name="value" type="ay" direction="out"> |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> |
| </arg> |
| </method> |
| <method name="WriteValue"> |
| <arg name="value" type="ay" direction="in"> |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> |
| </arg> |
| <arg name="options" type="a{sv}" direction="in"/> |
| </method> |
| <method name="AcquireWrite"> |
| <arg name="options" type="a{sv}" direction="in" /> |
| <arg name="fd" type="h" direction="out" /> |
| <arg name="mtu" type="q" direction="out" /> |
| </method> |
| <method name="AcquireNotify"> |
| <arg name="options" type="a{sv}" direction="in" /> |
| <arg name="fd" type="h" direction="out" /> |
| <arg name="mtu" type="q" direction="out" /> |
| </method> |
| <method name="StartNotify" /> |
| <method name="StopNotify" /> |
| <method name="Confirm" /> |
| <property name="UUID" type="s" access="read" /> |
| <property name="Service" type="o" access="read" /> |
| <property name="Value" type="ay" access="read"> |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> |
| </property> |
| <property name="Notifying" type="b" access="read" /> |
| <property name="Flags" type="as" access="read" /> |
| <property name="WriteAcquired" type="b" access="read" /> |
| <property name="NotifyAcquired" type="b" access="read" /> |
| </interface> |
| |
| <interface name="org.bluez.GattDescriptor1"> |
| <method name="ReadValue"> |
| <arg name="options" type="a{sv}" direction="in"/> |
| <arg name="value" type="ay" direction="out"> |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> |
| </arg> |
| </method> |
| <method name="WriteValue"> |
| <arg name="value" type="ay" direction="in"> |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> |
| </arg> |
| <arg name="options" type="a{sv}" direction="in"/> |
| </method> |
| <property name="UUID" type="s" access="read" /> |
| <property name="Characteristic" type="o" access="read" /> |
| <property name="Value" type="ay" access="read"> |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> |
| </property> |
| </interface> |
| |
| <interface name="org.bluez.LEAdvertisement1"> |
| <method name="Release"/> |
| <property name="Type" type="s" access="read"/> |
| <property name="ServiceUUIDs" type="as" access="read"> |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> |
| </property> |
| <property name="ManufacturerData" type="a{qv}" access="read"/> |
| <property name="SolicitUUIDs" type="as" access="read"/> |
| <property name="ServiceData" type="a{sv}" access="read"/> |
| <property name="Data" type="a{yay}" access="read"/> |
| <property name="Discoverable" type="b" access="read"/> |
| <property name="DiscoverableTimeout" type="q" access="read"/> |
| <property name="Includes" type="as" 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"/> |
| <!-- <property name="SecondaryChannel" type="s" access="read"/> --> |
| </interface> |
| |
| <interface name="org.bluez.LEAdvertisingManager1"> |
| <method name="RegisterAdvertisement"> |
| <arg name="advertisement" type="o" direction="in" /> |
| <arg name="options" type="a{sv}" direction="in" /> |
| </method> |
| <method name="UnregisterAdvertisement"> |
| <arg name="service" type="o" direction="in" /> |
| </method> |
| <property name="ActiveInstances" type="y" access="read" /> |
| <property name="SupportedInstances" type="y" access="read" /> |
| <property name="SupportedIncludes" type="as" access="read" /> |
| <property name="SupportedSecondaryChannels" type="as" access="read" /> |
| </interface> |
| |
| <interface name="org.freedesktop.DBus.Properties"> |
| <method name="Get"> |
| <arg name="interface" type="s" direction="in" /> |
| <arg name="name" type="s" direction="in" /> |
| <arg name="value" type="v" direction="out" /> |
| </method> |
| <method name="Set"> |
| <arg name="interface" type="s" direction="in" /> |
| <arg name="name" type="s" direction="in" /> |
| <arg name="value" type="v" direction="in" /> |
| </method> |
| <method name="GetAll"> |
| <arg name="interface" type="s" direction="in" /> |
| <arg name="properties" type="a{sv}" direction="out" /> |
| </method> |
| <signal name="PropertiesChanged"> |
| <arg name="interface" type="s" /> |
| <arg name="changed_properties" type="a{sv}" /> |
| <arg name="invalidated_properties" type="as" /> |
| </signal> |
| </interface> |
| |
| <interface name="org.bluez.ProfileManager1"> |
| <method name="RegisterProfile"> |
| <arg name="profile" type="o" direction="in" /> |
| <arg name="UUID" type="s" direction="in" /> |
| <arg name="options" type="a{sv}" direction="in" /> |
| </method> |
| <method name="UnregisterProfile"> |
| <arg name="profile" type="o" direction="in" /> |
| </method> |
| </interface> |
| |
| <interface name="org.freedesktop.DBus.ObjectManager"> |
| <method name="GetManagedObjects"> |
| <arg name="objects" type="a{oa{sa{sv}}}" direction="out" /> |
| </method> |
| <signal name="InterfacesAdded"> |
| <arg name="object" type="o" /> |
| <arg name="interfaces" type="a{sa{sv}}" /> |
| </signal> |
| <signal name="InterfacesRemoved"> |
| <arg name="object" type="o" /> |
| <arg name="interfaces" type="as" /> |
| </signal> |
| </interface> |
| </node> |