public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: Arman Uguray <armansito@chromium.org>
To: linux-bluetooth@vger.kernel.org
Cc: Arman Uguray <armansito@chromium.org>
Subject: [RFC 0/1] doc/gatt-api: New API properties and methods for the GATT D-Bus API.
Date: Fri, 18 Jul 2014 23:06:47 -0700	[thread overview]
Message-ID: <1405750008-7652-1-git-send-email-armansito@chromium.org> (raw)

In the upcoming beta release of Chrome OS (which uses BlueZ as its Bluetooth
stack) we have implemented the chrome.bluetoothLowEnergy JavaScript API for
Chrome browser applications
(https://developer.chrome.com/apps/bluetoothLowEnergy). For Chrome OS, we wrote
an implementation of the proposed GATT D-Bus API for bluetoothd, during which we
ran into some issues with the current proposal and changed things up a bit.

This set includes one patch that proposes changes for the currently
unimplemented GATT D-Bus API for desktop bluetoothd. The following changes are
proposed:

 * The addition of the following new properties:

   - org.bluez.GattService1: "Primary", "Device", "Characteristics"
   - org.bluez.GattCharacteristic1: "Notifying", "Descriptors"

   While all characteristic and descriptor objects become available via
   ObjectManager as soon as they get discovered, the "Characteristics" and
   "Descriptors" properties of service and characteristic objects do not get set
   until all characteristics and descriptors of a service have been discovered.
   This is used to let applications know that discovery of a service is complete
   and that the service is ready to interact with.

 * Removal of the "Permissions" property from org.bluez.GattDescriptor1.

 * Removal of the "Value" property from org.bluez.GattCharacteristic1 and
   GattDescriptor1. The introduction of the following asynchronous methods and
   signals:

   - ReadValue method, which always reads the value of a characteristic or
     descriptor from the remote device and returns the result asynchronously.
     This removes the problems of the org.freedesktop.DBus.Properties.Get
     method when the value is implemented as a property:

     -- The Get and GetAll methods are synchronous. This causes problems when a
        round-trip is required to obtain the value from the remote device.
     -- The ambiguity involved in the role of Get/GetAll when a characteristic
        doesn't support reads. Some characteristics are only writable and some
        make their values known via notifications and not reads.

   - WriteValue method, which is used to write the value of a characteristic or
     descriptor.

   - ValueUpdated signal, emitted when a characteristic notification or
     indication is received.

  * Addition of the StartNotify and StopNotify methods to
    org.bluez.GattCharacteristic1. This allows multiple applications to enable
    notifications from a characteristic without interfering with each other and
    applications are not permitted to directly write to the "Client
    Characteristic Configuration" descriptor.


Arman Uguray (1):
  doc/gatt-api: New API properties and methods for the GATT D-Bus API.

 doc/gatt-api.txt | 118 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 104 insertions(+), 14 deletions(-)

-- 
2.0.0.526.g5318336


             reply	other threads:[~2014-07-19  6:06 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-19  6:06 Arman Uguray [this message]
2014-07-19  6:06 ` [RFC 1/1] doc/gatt-api: New API properties and methods for the GATT D-Bus API Arman Uguray
2014-07-21  1:50   ` Gu, Chao Jie
2014-07-21 13:46   ` Marcel Holtmann
2014-07-21 14:13     ` Marcel Holtmann
2014-07-21 21:11       ` Arman Uguray
2014-07-21 21:32         ` Marcel Holtmann
2014-07-21 22:07           ` Arman Uguray

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=1405750008-7652-1-git-send-email-armansito@chromium.org \
    --to=armansito@chromium.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