diff --git a/doc/gatt-api.txt b/doc/gatt-api.txt
index 5042c54..f29308a 100644
--- a/doc/gatt-api.txt
+++ b/doc/gatt-api.txt
services of this service.
uint16 Handle [read-write, optional] (Server Only)
+ [read-only] (Client Only)
Service handle. When available in the server it
would attempt to use to allocate into the database
"authorize"
uint16 Handle [read-write, optional] (Server Only)
+ [read-only] (Client Only)
Characteristic handle. When available in the server it
would attempt to use to allocate into the database
"authorize"
uint16 Handle [read-write, optional] (Server Only)
+ [read-only] (Client Only)
Characteristic handle. When available in the server it
would attempt to use to allocate into the database
diff --git a/src/gatt-client.c b/src/gatt-client.c
index a54d65e..60a21e3 100644
--- a/src/gatt-client.c
+++ b/src/gatt-client.c
return bt_uuid_cmp(uuid, &uuid16) == 0;
}
+static gboolean descriptor_get_handle(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
+{
+ struct service *desc = data;
+ uint16_t handle = desc->start_handle;
+
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT16, &handle);
+
+ return TRUE;
+}
+
static gboolean descriptor_get_uuid(const GDBusPropertyTable *property,
DBusMessageIter *iter, void *data)
{
}
static const GDBusPropertyTable descriptor_properties[] = {
+ { "Handle", "q", descriptor_get_handle },
{ "UUID", "s", descriptor_get_uuid },
{ "Characteristic", "o", descriptor_get_characteristic, },
{ "Value", "ay", descriptor_get_value, NULL, descriptor_value_exists },
GATT_DESCRIPTOR_IFACE);
}
+static gboolean characteristic_get_handle(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
+{
+ struct characteristic *chrc = data;
+ uint16_t handle = chrc->handle;
+
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT16, &handle);
+
+ return TRUE;
+}
+
static gboolean characteristic_get_uuid(const GDBusPropertyTable *property,
DBusMessageIter *iter, void *data)
{
}
static const GDBusPropertyTable characteristic_properties[] = {
+ { "Handle", "q", characteristic_get_handle },
{ "UUID", "s", characteristic_get_uuid, NULL, NULL },
{ "Service", "o", characteristic_get_service, NULL, NULL },
{ "Value", "ay", characteristic_get_value, NULL,
GATT_CHARACTERISTIC_IFACE);
}
+static gboolean service_get_handle(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
+{
+ struct service *service = data;
+ uint16_t handle = service->start_handle;
+
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT16, &handle);
+
+ return TRUE;
+}
+
static gboolean service_get_uuid(const GDBusPropertyTable *property,
DBusMessageIter *iter, void *data)
{
}
static const GDBusPropertyTable service_properties[] = {
+ { "Handle", "q", service_get_handle },
{ "UUID", "s", service_get_uuid },
{ "Device", "o", service_get_device },
{ "Primary", "b", service_get_primary },