All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC BlueZ 00/13] Introducing Soletta peripheral node-type
@ 2015-07-02 14:33 Vinicius Costa Gomes
  2015-07-02 14:33 ` [RFC BlueZ 01/13] build: Add configure-time checks for soletta Vinicius Costa Gomes
                   ` (13 more replies)
  0 siblings, 14 replies; 16+ messages in thread
From: Vinicius Costa Gomes @ 2015-07-02 14:33 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Vinicius Costa Gomes

Hi,

We have been working on Soletta[1] for a few months and now that it has
been open sourced, it makes sense to show what it can do using
BlueZ. This implements a very simple node type that behaves as a Heart
Rate Sensor in the peripheral mode.

Just a overview about Soletta, it provides a way to write IoT
applications targeting a broad range of devices (from the smallest
edge to the smarttest hub).

You would express your application logic using a Flow Based language
to connect various nodes, write your custom node types using the
libsolleta C API. And the Soletta developers would worry about porting
the libsoletta library to the multitude of targets and providing a
useful collection of node types.

Using the support we already have in BlueZ for the Bluetooth LE
peripheral mode, writing a Soletta node type for the Heartrate Sensor
role seems a very good match. And it brings some very interesting use
cases with the linux-micro target.

The way I thought best about integrating BlueZ with Soletta was to add
another mainloop backend using libsoletta so every event would be
handled consistently. See patch 02/13.

Most of the changes not related to either adding the mainloop support,
or adding the node type code are related to some lack of
configurability to the peripheral code, perhaps having a way to the
callback that will register the service to have a say in some
parameters?

The most important question is: is BlueZ the right place to have this code?

What do you say?

Any questions about the project, we are hanging out in #soletta @ freenode.net.

Cheers,

[1] https://github.com/solettaproject/soletta

Vinicius Costa Gomes (13):
  build: Add configure-time checks for soletta
  shared: Add a mainloop implementation using soletta
  peripheral/gatt: Fix usage of mainloop_ functions
  peripheral/gatt: Add a way to external services to register services
  peripheral/gap: Fix missing includes
  peripheral/gap: Init the gatt_server
  peripheral: Disable support for static random addresses
  peripheral/gap: Set the discoverable flag in the advertising
  peripheral/gatt: Use LOW security level
  soletta/heartrate: Add a node-type for the Heartrate profile
  .gitignore: Ignore soletta generated files
  build: Add heartrate soletta node type to the build system
  soletta: Add a sample flow using the heartrate node

 .gitignore                   |   4 +
 Makefile.am                  |   7 +-
 Makefile.tools               |  20 +++
 configure.ac                 |  38 ++++++
 peripheral/gap.c             |  12 +-
 peripheral/gatt.c            | 124 ++++++++++++-----
 peripheral/gatt.h            |   6 +
 soletta/heartrate-src.json   |  30 +++++
 soletta/heartrate.c          | 298 ++++++++++++++++++++++++++++++++++++++++
 soletta/heartrate.fbp        |   1 +
 soletta/sol-flow.conf        |   2 +
 src/shared/io-soletta.c      | 315 +++++++++++++++++++++++++++++++++++++++++++
 src/shared/timeout-soletta.c | 112 +++++++++++++++
 13 files changed, 934 insertions(+), 35 deletions(-)
 create mode 100644 soletta/heartrate-src.json
 create mode 100644 soletta/heartrate.c
 create mode 100644 soletta/heartrate.fbp
 create mode 100644 soletta/sol-flow.conf
 create mode 100644 src/shared/io-soletta.c
 create mode 100644 src/shared/timeout-soletta.c

--
2.4.5

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2015-07-03 17:14 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-02 14:33 [RFC BlueZ 00/13] Introducing Soletta peripheral node-type Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 01/13] build: Add configure-time checks for soletta Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 02/13] shared: Add a mainloop implementation using soletta Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 03/13] peripheral/gatt: Fix usage of mainloop_ functions Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 04/13] peripheral/gatt: Add a way to external services to register services Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 05/13] peripheral/gap: Fix missing includes Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 06/13] peripheral/gap: Init the gatt_server Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 07/13] peripheral: Disable support for static random addresses Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 08/13] peripheral/gap: Set the discoverable flag in the advertising Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 09/13] peripheral/gatt: Use LOW security level Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 10/13] soletta/heartrate: Add a node-type for the Heartrate profile Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 11/13] .gitignore: Ignore soletta generated files Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 12/13] build: Add heartrate soletta node type to the build system Vinicius Costa Gomes
2015-07-02 14:33 ` [RFC BlueZ 13/13] soletta: Add a sample flow using the heartrate node Vinicius Costa Gomes
2015-07-03  8:09 ` [RFC BlueZ 00/13] Introducing Soletta peripheral node-type Luiz Augusto von Dentz
2015-07-03 17:14   ` Vinicius Costa Gomes

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.