From: Anderson Lizardo <anderson.lizardo@openbossa.org>
To: linux-bluetooth@vger.kernel.org
Subject: [RFC][PATCH 00/15] Attribute server management API
Date: Wed, 16 Mar 2011 21:00:24 -0400 [thread overview]
Message-ID: <1300323639-13296-1-git-send-email-anderson.lizardo@openbossa.org> (raw)
Hi all,
This series represents a proposal for an "Attribute server management API". It
consists of a D-Bus interface for registering services, specified as XML. It
was inspired on the existing SDP plugin (plugins/service.c), but the XML format
is totally different because the "record" concept used for SDP is much simpler
and lower level than GATT services.
The XML format is currently not documented, but I expect it to be intuitive for
those familiar with the definition of GATT services (of course, we can properly
document it once the API is accepted). Additionally, the API is high level, in
a sense that it is not required to specify attributes individually.
It was implemented as a plugin, so it can be easily disabled. It was also built
on top of the existing (internal) attribute API, requiring only an additional
attrib_db_find_avail() function which is used to find free handle "slots"
inside the attribute database.
What is currently implemented:
* Register primary/secondary services and service includes
* Register characteristics and descriptors (only "User Description" and
"Presentation Format" are supported), including initial values
* Automatically unregister services when the D-Bus client exits
Open issues or not yet implemented:
* Documentation of the plugin API and XML format
* Better handling of malformed XML
* Remaining characteristic descriptors: Extended Properties, Client
Configuration, Server Configuration and Aggregate Format
* Set attribute permissions for characteristic value and descriptors which are
not read-only (note that these permissions are profile specific)
* Manipulate registered services (remove, modify) without requiring to
disconnect from D-Bus
* Callbacks for value/descriptor read/writes (so externally implemented
profiles could react on these procedures)
* Update characteristic value
* Better name for the plugin and D-Bus interface (currently it is
"gatt-profile" and GattProfile, respectively)
Comments and suggestions are welcome. I would also appreciate comments
regarding coding style, given that I based on the SDP "service.c" plugin which
is quite old.
Regards,
--
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil
next reply other threads:[~2011-03-17 1:00 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-17 1:00 Anderson Lizardo [this message]
2011-03-17 1:00 ` [PATCH 01/15] Remove built-in example attribute server Anderson Lizardo
2011-03-17 1:00 ` [PATCH 02/15] GATT server: add profile API plugin skeleton Anderson Lizardo
2011-03-17 1:00 ` [PATCH 03/15] GATT server: add initial D-Bus interface Anderson Lizardo
2011-03-17 1:00 ` [PATCH 04/15] GATT server: add initial XML parsing Anderson Lizardo
2011-03-17 1:00 ` [PATCH 05/15] GATT server: parse primary/secondary services Anderson Lizardo
2011-03-17 1:00 ` [PATCH 06/15] GATT server: parse and resolve service includes Anderson Lizardo
2011-03-17 1:00 ` [PATCH 07/15] GATT server: parse characteristics Anderson Lizardo
2011-03-17 1:00 ` [PATCH 08/15] GATT server: parse characteristic value Anderson Lizardo
2011-03-17 1:00 ` [PATCH 09/15] GATT server: add test/test-gatt-profile example Anderson Lizardo
2011-03-17 1:00 ` [PATCH 10/15] Add attrib_db_find_avail() function to attribute server Anderson Lizardo
2011-03-17 1:00 ` [PATCH 11/15] GATT server: add service registration Anderson Lizardo
2011-03-17 1:00 ` [PATCH 12/15] GATT server: add service includes registration Anderson Lizardo
2011-03-17 1:00 ` [PATCH 13/15] GATT server: add characteristic registration Anderson Lizardo
2011-03-17 1:00 ` [PATCH 14/15] GATT server: add characteristic descriptor registration Anderson Lizardo
2011-03-17 1:00 ` [PATCH 15/15] GATT server: add disconnect watch Anderson Lizardo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1300323639-13296-1-git-send-email-anderson.lizardo@openbossa.org \
--to=anderson.lizardo@openbossa.org \
--cc=linux-bluetooth@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox