* [PATCH 1/2] Disable automatic notification/indication for Battery state level
@ 2010-10-07 13:53 Claudio Takahasi
2010-10-07 13:53 ` [PATCH 2/2] TODO: Implement Client Characteristic Configuration Claudio Takahasi
2010-10-13 16:32 ` [PATCH 1/2] Disable automatic notification/indication in the attribute server Claudio Takahasi
0 siblings, 2 replies; 6+ messages in thread
From: Claudio Takahasi @ 2010-10-07 13:53 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Claudio Takahasi
Reports of Battery state attribute in the Attribute sample server is
being disabled while a proper interface between the attribute server
and service implementation is not defined.
---
TODO | 7 -------
attrib/example.c | 2 ++
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/TODO b/TODO
index 271fc45..a9f1339 100644
--- a/TODO
+++ b/TODO
@@ -18,13 +18,6 @@ Background
ATT/GATT
========
-- Sample server shouldn't send any indications or notifications without
- the client requesting them
-
- Priority: Medium
- Complexity: C2
- Owner: Claudio Takahasi <claudio.takahasi@openbossa.org>
-
- gatttool should have the ability to wait for req responses before
quitting (some servers require a small sleep even with cmd's). Maybe a
--delay-exit or --timeout command line switch.
diff --git a/attrib/example.c b/attrib/example.c
index c29e1e4..aa249a8 100644
--- a/attrib/example.c
+++ b/attrib/example.c
@@ -70,7 +70,9 @@ static gboolean change_battery_state(gpointer user_data)
/* Battery state is being increased every 10 seconds. */
atval[0] = state++;
sdp_uuid16_create(&uuid, BATTERY_STATE_UUID);
+#if 0
attrib_db_update(0x0110, &uuid, atval, 1);
+#endif
return TRUE;
}
--
1.7.3.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] TODO: Implement Client Characteristic Configuration
2010-10-07 13:53 [PATCH 1/2] Disable automatic notification/indication for Battery state level Claudio Takahasi
@ 2010-10-07 13:53 ` Claudio Takahasi
2010-10-13 16:34 ` Claudio Takahasi
2010-10-13 16:32 ` [PATCH 1/2] Disable automatic notification/indication in the attribute server Claudio Takahasi
1 sibling, 1 reply; 6+ messages in thread
From: Claudio Takahasi @ 2010-10-07 13:53 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Claudio Takahasi
---
TODO | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/TODO b/TODO
index a9f1339..75a929c 100644
--- a/TODO
+++ b/TODO
@@ -18,6 +18,14 @@ Background
ATT/GATT
========
+- Implement Client Characteristic Configuration support in the attribute
+ server to manage indications and notications. This is a per client attribute
+ to control how the client wants to receive reports of changes in a given
+ characteristic value.
+
+ Priority: Low
+ Complexity: C2
+
- gatttool should have the ability to wait for req responses before
quitting (some servers require a small sleep even with cmd's). Maybe a
--delay-exit or --timeout command line switch.
--
1.7.3.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 1/2] Disable automatic notification/indication in the attribute server
2010-10-07 13:53 [PATCH 1/2] Disable automatic notification/indication for Battery state level Claudio Takahasi
2010-10-07 13:53 ` [PATCH 2/2] TODO: Implement Client Characteristic Configuration Claudio Takahasi
@ 2010-10-13 16:32 ` Claudio Takahasi
2010-10-13 16:59 ` Johan Hedberg
1 sibling, 1 reply; 6+ messages in thread
From: Claudio Takahasi @ 2010-10-13 16:32 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Claudio Takahasi
Attribute server shall not send automatic indication/notification
messages if the client didn't request them. Client shall use Client
/Server Characteristic Configuration descriptors to be notified about
attribute changes. If the server doesn't support these descriptors,
the client shall implement a polling mechanism to check for attribute
value changes.
---
TODO | 7 ------
src/attrib-server.c | 60 ++++----------------------------------------------
2 files changed, 5 insertions(+), 62 deletions(-)
diff --git a/TODO b/TODO
index 3885c78..3e62518 100644
--- a/TODO
+++ b/TODO
@@ -18,13 +18,6 @@ Background
ATT/GATT
========
-- Sample server shouldn't send any indications or notifications without
- the client requesting them
-
- Priority: Medium
- Complexity: C2
- Owner: Claudio Takahasi <claudio.takahasi@openbossa.org>
-
- Add ATT/GATT parsing to hcidump
Priority: Medium
diff --git a/src/attrib-server.c b/src/attrib-server.c
index 666b5fa..1fc1c18 100644
--- a/src/attrib-server.c
+++ b/src/attrib-server.c
@@ -590,54 +590,6 @@ static void confirm_event(GIOChannel *io, void *user_data)
return;
}
-static gboolean send_notification(gpointer user_data)
-{
- uint8_t pdu[ATT_MAX_MTU];
- guint handle = GPOINTER_TO_UINT(user_data);
- struct attribute *a;
- GSList *l;
- uint16_t length;
-
- l = g_slist_find_custom(database, GUINT_TO_POINTER(handle), handle_cmp);
- if (!l)
- return FALSE;
-
- a = l->data;
-
- for (l = clients; l; l = l->next) {
- struct gatt_channel *channel = l->data;
-
- length = enc_notification(a, pdu, channel->mtu);
- g_attrib_send(channel->attrib, pdu[0], pdu, length, NULL, NULL, NULL);
- }
-
- return FALSE;
-}
-
-static gboolean send_indication(gpointer user_data)
-{
- uint8_t pdu[ATT_MAX_MTU];
- guint handle = GPOINTER_TO_UINT(user_data);
- struct attribute *a;
- GSList *l;
- uint16_t length;
-
- l = g_slist_find_custom(database, GUINT_TO_POINTER(handle), handle_cmp);
- if (!l)
- return FALSE;
-
- a = l->data;
-
- for (l = clients; l; l = l->next) {
- struct gatt_channel *channel = l->data;
-
- length = enc_indication(a, pdu, channel->mtu);
- g_attrib_send(channel->attrib, pdu[0], pdu, length, NULL, NULL, NULL);
- }
-
- return FALSE;
-}
-
int attrib_server_init(void)
{
GError *gerr = NULL;
@@ -757,14 +709,12 @@ int attrib_db_update(uint16_t handle, uuid_t *uuid, const uint8_t *value,
memcpy(a->data, value, len);
/*
- * Characteristic configuration descriptor is not being used yet.
- * If the attribute changes, all connected clients will be notified.
- * For testing purposes, we send a Notification and a Indication for
- * each update.
+ * <<Client/Server Characteristic Configuration>> descriptors are
+ * not supported yet. If a given attribute changes, the attribute
+ * server shall report the new values using the mechanism selected
+ * by the client. Notification/Indication shall not be automatically
+ * sent if the client didn't request them.
*/
- g_idle_add(send_notification, GUINT_TO_POINTER(h));
-
- g_idle_add(send_indication, GUINT_TO_POINTER(h));
return 0;
}
--
1.7.3.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] TODO: Implement Client Characteristic Configuration
2010-10-07 13:53 ` [PATCH 2/2] TODO: Implement Client Characteristic Configuration Claudio Takahasi
@ 2010-10-13 16:34 ` Claudio Takahasi
2010-10-13 16:59 ` Johan Hedberg
0 siblings, 1 reply; 6+ messages in thread
From: Claudio Takahasi @ 2010-10-13 16:34 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Claudio Takahasi
---
TODO | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/TODO b/TODO
index 3e62518..7939d9d 100644
--- a/TODO
+++ b/TODO
@@ -89,3 +89,12 @@ ATT/GATT
Priority: Low
Complexity: C2
+
+- Implement Client Characteristic Configuration support in the attribute
+ server to manage indications and notications. This is a per client attribute
+ to control how the client wants to receive reports of changes in a given
+ characteristic value.
+ See Volume 3, Part G, section 3.3.3.3 for more information
+
+ Priority: Low
+ Complexity: C2
--
1.7.3.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] Disable automatic notification/indication in the attribute server
2010-10-13 16:32 ` [PATCH 1/2] Disable automatic notification/indication in the attribute server Claudio Takahasi
@ 2010-10-13 16:59 ` Johan Hedberg
0 siblings, 0 replies; 6+ messages in thread
From: Johan Hedberg @ 2010-10-13 16:59 UTC (permalink / raw)
To: Claudio Takahasi; +Cc: linux-bluetooth
Hi Claudio,
On Wed, Oct 13, 2010, Claudio Takahasi wrote:
> Attribute server shall not send automatic indication/notification
> messages if the client didn't request them. Client shall use Client
> /Server Characteristic Configuration descriptors to be notified about
> attribute changes. If the server doesn't support these descriptors,
> the client shall implement a polling mechanism to check for attribute
> value changes.
> ---
> TODO | 7 ------
> src/attrib-server.c | 60 ++++----------------------------------------------
> 2 files changed, 5 insertions(+), 62 deletions(-)
Thanks. The patch is now upstream.
Johan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] TODO: Implement Client Characteristic Configuration
2010-10-13 16:34 ` Claudio Takahasi
@ 2010-10-13 16:59 ` Johan Hedberg
0 siblings, 0 replies; 6+ messages in thread
From: Johan Hedberg @ 2010-10-13 16:59 UTC (permalink / raw)
To: Claudio Takahasi; +Cc: linux-bluetooth
Hi Claudio,
On Wed, Oct 13, 2010, Claudio Takahasi wrote:
> ---
> TODO | 9 +++++++++
> 1 files changed, 9 insertions(+), 0 deletions(-)
Thanks. This one has also been pushed upstream.
Johan
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-10-13 16:59 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-07 13:53 [PATCH 1/2] Disable automatic notification/indication for Battery state level Claudio Takahasi
2010-10-07 13:53 ` [PATCH 2/2] TODO: Implement Client Characteristic Configuration Claudio Takahasi
2010-10-13 16:34 ` Claudio Takahasi
2010-10-13 16:59 ` Johan Hedberg
2010-10-13 16:32 ` [PATCH 1/2] Disable automatic notification/indication in the attribute server Claudio Takahasi
2010-10-13 16:59 ` Johan Hedberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox