From: Anderson Lizardo <anderson.lizardo@openbossa.org>
To: linux-bluetooth@vger.kernel.org
Cc: Anderson Lizardo <anderson.lizardo@openbossa.org>
Subject: [PATCH 01/15] Remove built-in example attribute server
Date: Wed, 16 Mar 2011 21:00:25 -0400 [thread overview]
Message-ID: <1300323639-13296-2-git-send-email-anderson.lizardo@openbossa.org> (raw)
In-Reply-To: <1300323639-13296-1-git-send-email-anderson.lizardo@openbossa.org>
This server was useful for initial implementation of GATT support in
BlueZ. It can now be replaced by an external server which will be put on
the tests/ directory.
---
Makefile.am | 3 +-
attrib/example.c | 341 ------------------------------------------------------
attrib/example.h | 26 ----
attrib/manager.c | 8 --
4 files changed, 1 insertions(+), 377 deletions(-)
delete mode 100644 attrib/example.c
delete mode 100644 attrib/example.h
diff --git a/Makefile.am b/Makefile.am
index 7267200..34c0def 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -198,8 +198,7 @@ endif
builtin_modules += attrib
builtin_sources += attrib/main.c \
attrib/manager.h attrib/manager.c \
- attrib/client.h attrib/client.c \
- attrib/example.h attrib/example.c
+ attrib/client.h attrib/client.c
endif
if HEALTHPLUGIN
diff --git a/attrib/example.c b/attrib/example.c
deleted file mode 100644
index fae288c..0000000
--- a/attrib/example.c
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
- *
- * BlueZ - Bluetooth protocol stack for Linux
- *
- * Copyright (C) 2010 Nokia Corporation
- * Copyright (C) 2010 Marcel Holtmann <marcel@holtmann.org>
- *
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <arpa/inet.h>
-
-#include <bluetooth/uuid.h>
-
-#include <glib.h>
-
-#include "log.h"
-#include "attrib-server.h"
-
-#include "att.h"
-#include "example.h"
-
-/* FIXME: Not defined by SIG? UUID128? */
-#define OPCODES_SUPPORTED_UUID 0xA001
-#define BATTERY_STATE_SVC_UUID 0xA002
-#define BATTERY_STATE_UUID 0xA003
-#define THERM_HUMIDITY_SVC_UUID 0xA004
-#define MANUFACTURER_SVC_UUID 0xA005
-#define TEMPERATURE_UUID 0xA006
-#define FMT_CELSIUS_UUID 0xA007
-#define FMT_OUTSIDE_UUID 0xA008
-#define RELATIVE_HUMIDITY_UUID 0xA009
-#define FMT_PERCENT_UUID 0xA00A
-#define BLUETOOTH_SIG_UUID 0xA00B
-#define MANUFACTURER_NAME_UUID 0xA00C
-#define MANUFACTURER_SERIAL_UUID 0xA00D
-#define VENDOR_SPECIFIC_SVC_UUID 0xA00E
-#define VENDOR_SPECIFIC_TYPE_UUID 0xA00F
-#define FMT_KILOGRAM_UUID 0xA010
-#define FMT_HANGING_UUID 0xA011
-
-static GSList *sdp_handles = NULL;
-
-static int register_attributes(void)
-{
- const char *desc_out_temp = "Outside Temperature";
- const char *desc_out_hum = "Outside Relative Humidity";
- const char *desc_weight = "Rucksack Weight";
- const char *manufacturer_name1 = "ACME Temperature Sensor";
- const char *manufacturer_name2 = "ACME Weighing Scales";
- const char *serial1 = "237495-3282-A";
- const char *serial2 = "11267-2327A00239";
-
- const uint128_t char_weight_uuid_btorder = {
- .data = { 0x80, 0x88, 0xF2, 0x18, 0x90, 0x2C, 0x45, 0x0B,
- 0xB6, 0xC4, 0x62, 0x89, 0x1E, 0x8C, 0x25, 0xE9 } };
- const uint128_t prim_weight_uuid_btorder = {
- .data = { 0x4F, 0x0A, 0xC0, 0x96, 0x35, 0xD4, 0x49, 0x11,
- 0x96, 0x31, 0xDE, 0xA8, 0xDC, 0x74, 0xEE, 0xFE } };
-
- uint128_t char_weight_uuid;
- uint8_t atval[256];
- uint32_t handle;
- bt_uuid_t uuid;
- int len;
-
- btoh128(&char_weight_uuid_btorder, &char_weight_uuid);
-
- /* Battery state service: primary service definition */
- bt_uuid16_create(&uuid, GATT_PRIM_SVC_UUID);
- att_put_u16(BATTERY_STATE_SVC_UUID, &atval[0]);
- attrib_db_add(0x0100, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 2);
-
- /* Battery: battery state characteristic */
- bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
- atval[0] = ATT_CHAR_PROPER_READ;
- att_put_u16(0x0110, &atval[1]);
- att_put_u16(BATTERY_STATE_UUID, &atval[3]);
- attrib_db_add(0x0106, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 5);
-
- /* Battery: battery state attribute */
- bt_uuid16_create(&uuid, BATTERY_STATE_UUID);
- atval[0] = 0x04;
- attrib_db_add(0x0110, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 1);
-
- /* Battery: Client Characteristic Configuration */
- bt_uuid16_create(&uuid, GATT_CLIENT_CHARAC_CFG_UUID);
- atval[0] = 0x00;
- atval[1] = 0x00;
- attrib_db_add(0x0111, &uuid, ATT_NONE, ATT_AUTHENTICATION, atval, 2);
-
- /* Add an SDP record for the above service */
- handle = attrib_create_sdp(0x0100, "Battery State Service");
- if (handle)
- sdp_handles = g_slist_prepend(sdp_handles, GUINT_TO_POINTER(handle));
-
- /* Thermometer: primary service definition */
- bt_uuid16_create(&uuid, GATT_PRIM_SVC_UUID);
- att_put_u16(THERM_HUMIDITY_SVC_UUID, &atval[0]);
- attrib_db_add(0x0200, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 2);
-
- /* Thermometer: Include */
- bt_uuid16_create(&uuid, GATT_INCLUDE_UUID);
- att_put_u16(0x0500, &atval[0]);
- att_put_u16(0x0504, &atval[2]);
- att_put_u16(MANUFACTURER_SVC_UUID, &atval[4]);
- attrib_db_add(0x0201, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 6);
-
- /* Thermometer: Include */
- att_put_u16(0x0550, &atval[0]);
- att_put_u16(0x0568, &atval[2]);
- att_put_u16(VENDOR_SPECIFIC_SVC_UUID, &atval[4]);
- attrib_db_add(0x0202, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 6);
-
- /* Thermometer: temperature characteristic */
- bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
- atval[0] = ATT_CHAR_PROPER_READ;
- att_put_u16(0x0204, &atval[1]);
- att_put_u16(TEMPERATURE_UUID, &atval[3]);
- attrib_db_add(0x0203, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 5);
-
- /* Thermometer: temperature characteristic value */
- bt_uuid16_create(&uuid, TEMPERATURE_UUID);
- atval[0] = 0x8A;
- atval[1] = 0x02;
- attrib_db_add(0x0204, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 2);
-
- /* Thermometer: temperature characteristic format */
- bt_uuid16_create(&uuid, GATT_CHARAC_FMT_UUID);
- atval[0] = 0x0E;
- atval[1] = 0xFE;
- att_put_u16(FMT_CELSIUS_UUID, &atval[2]);
- atval[4] = 0x01;
- att_put_u16(FMT_OUTSIDE_UUID, &atval[5]);
- attrib_db_add(0x0205, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 7);
-
- /* Thermometer: characteristic user description */
- bt_uuid16_create(&uuid, GATT_CHARAC_USER_DESC_UUID);
- len = strlen(desc_out_temp);
- strncpy((char *) atval, desc_out_temp, len);
- attrib_db_add(0x0206, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, len);
-
- /* Thermometer: relative humidity characteristic */
- bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
- atval[0] = ATT_CHAR_PROPER_READ;
- att_put_u16(0x0212, &atval[1]);
- att_put_u16(RELATIVE_HUMIDITY_UUID, &atval[3]);
- attrib_db_add(0x0210, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 5);
-
- /* Thermometer: relative humidity value */
- bt_uuid16_create(&uuid, RELATIVE_HUMIDITY_UUID);
- atval[0] = 0x27;
- attrib_db_add(0x0212, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 1);
-
- /* Thermometer: relative humidity characteristic format */
- bt_uuid16_create(&uuid, GATT_CHARAC_FMT_UUID);
- atval[0] = 0x04;
- atval[1] = 0x00;
- att_put_u16(FMT_PERCENT_UUID, &atval[2]);
- att_put_u16(BLUETOOTH_SIG_UUID, &atval[4]);
- att_put_u16(FMT_OUTSIDE_UUID, &atval[6]);
- attrib_db_add(0x0213, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 8);
-
- /* Thermometer: characteristic user description */
- bt_uuid16_create(&uuid, GATT_CHARAC_USER_DESC_UUID);
- len = strlen(desc_out_hum);
- strncpy((char *) atval, desc_out_hum, len);
- attrib_db_add(0x0214, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, len);
-
- /* Add an SDP record for the above service */
- handle = attrib_create_sdp(0x0200, "Thermometer");
- if (handle)
- sdp_handles = g_slist_prepend(sdp_handles, GUINT_TO_POINTER(handle));
-
- /* Secondary Service: Manufacturer Service */
- bt_uuid16_create(&uuid, GATT_SND_SVC_UUID);
- att_put_u16(MANUFACTURER_SVC_UUID, &atval[0]);
- attrib_db_add(0x0500, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 2);
-
- /* Manufacturer name characteristic definition */
- bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
- atval[0] = ATT_CHAR_PROPER_READ;
- att_put_u16(0x0502, &atval[1]);
- att_put_u16(MANUFACTURER_NAME_UUID, &atval[3]);
- attrib_db_add(0x0501, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 5);
-
- /* Manufacturer name characteristic value */
- bt_uuid16_create(&uuid, MANUFACTURER_NAME_UUID);
- len = strlen(manufacturer_name1);
- strncpy((char *) atval, manufacturer_name1, len);
- attrib_db_add(0x0502, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, len);
-
- /* Manufacturer serial number characteristic */
- bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
- atval[0] = ATT_CHAR_PROPER_READ;
- att_put_u16(0x0504, &atval[1]);
- att_put_u16(MANUFACTURER_SERIAL_UUID, &atval[3]);
- attrib_db_add(0x0503, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 5);
-
- /* Manufacturer serial number characteristic value */
- bt_uuid16_create(&uuid, MANUFACTURER_SERIAL_UUID);
- len = strlen(serial1);
- strncpy((char *) atval, serial1, len);
- attrib_db_add(0x0504, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, len);
-
- /* Secondary Service: Manufacturer Service */
- bt_uuid16_create(&uuid, GATT_SND_SVC_UUID);
- att_put_u16(MANUFACTURER_SVC_UUID, &atval[0]);
- attrib_db_add(0x0505, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 2);
-
- /* Manufacturer name characteristic definition */
- bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
- atval[0] = ATT_CHAR_PROPER_READ;
- att_put_u16(0x0507, &atval[1]);
- att_put_u16(MANUFACTURER_NAME_UUID, &atval[3]);
- attrib_db_add(0x0506, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 5);
-
- /* Secondary Service: Vendor Specific Service */
- bt_uuid16_create(&uuid, GATT_SND_SVC_UUID);
- att_put_u16(VENDOR_SPECIFIC_SVC_UUID, &atval[0]);
- attrib_db_add(0x0550, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 2);
-
- /* Vendor Specific Type characteristic definition */
- bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
- atval[0] = ATT_CHAR_PROPER_READ;
- att_put_u16(0x0568, &atval[1]);
- att_put_u16(VENDOR_SPECIFIC_TYPE_UUID, &atval[3]);
- attrib_db_add(0x0560, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 5);
-
- /* Vendor Specific Type characteristic value */
- bt_uuid16_create(&uuid, VENDOR_SPECIFIC_TYPE_UUID);
- atval[0] = 0x56;
- atval[1] = 0x65;
- atval[2] = 0x6E;
- atval[3] = 0x64;
- atval[4] = 0x6F;
- atval[5] = 0x72;
- attrib_db_add(0x0568, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 6);
-
- /* Manufacturer name attribute */
- bt_uuid16_create(&uuid, MANUFACTURER_NAME_UUID);
- len = strlen(manufacturer_name2);
- strncpy((char *) atval, manufacturer_name2, len);
- attrib_db_add(0x0507, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, len);
-
- /* Characteristic: serial number */
- bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
- atval[0] = ATT_CHAR_PROPER_READ;
- att_put_u16(0x0509, &atval[1]);
- att_put_u16(MANUFACTURER_SERIAL_UUID, &atval[3]);
- attrib_db_add(0x0508, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 5);
-
- /* Serial number characteristic value */
- bt_uuid16_create(&uuid, MANUFACTURER_SERIAL_UUID);
- len = strlen(serial2);
- strncpy((char *) atval, serial2, len);
- attrib_db_add(0x0509, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, len);
-
- /* Weight service: primary service definition */
- bt_uuid16_create(&uuid, GATT_PRIM_SVC_UUID);
- memcpy(atval, &prim_weight_uuid_btorder, 16);
- attrib_db_add(0x0680, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 16);
-
- /* Weight: include */
- bt_uuid16_create(&uuid, GATT_INCLUDE_UUID);
- att_put_u16(0x0505, &atval[0]);
- att_put_u16(0x0509, &atval[2]);
- att_put_u16(MANUFACTURER_SVC_UUID, &atval[4]);
- attrib_db_add(0x0681, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 6);
-
- /* Weight: characteristic */
- bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
- atval[0] = ATT_CHAR_PROPER_READ;
- att_put_u16(0x0683, &atval[1]);
- memcpy(&atval[3], &char_weight_uuid_btorder, 16);
- attrib_db_add(0x0682, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 19);
-
- /* Weight: characteristic value */
- bt_uuid128_create(&uuid, char_weight_uuid);
- atval[0] = 0x82;
- atval[1] = 0x55;
- atval[2] = 0x00;
- atval[3] = 0x00;
- attrib_db_add(0x0683, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 4);
-
- /* Weight: characteristic format */
- bt_uuid16_create(&uuid, GATT_CHARAC_FMT_UUID);
- atval[0] = 0x08;
- atval[1] = 0xFD;
- att_put_u16(FMT_KILOGRAM_UUID, &atval[2]);
- att_put_u16(BLUETOOTH_SIG_UUID, &atval[4]);
- att_put_u16(FMT_HANGING_UUID, &atval[6]);
- attrib_db_add(0x0684, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, 8);
-
- /* Weight: characteristic user description */
- bt_uuid16_create(&uuid, GATT_CHARAC_USER_DESC_UUID);
- len = strlen(desc_weight);
- strncpy((char *) atval, desc_weight, len);
- attrib_db_add(0x0685, &uuid, ATT_NONE, ATT_NOT_PERMITTED, atval, len);
-
- /* Add an SDP record for the above service */
- handle = attrib_create_sdp(0x0680, "Weight Service");
- if (handle)
- sdp_handles = g_slist_prepend(sdp_handles, GUINT_TO_POINTER(handle));
-
- return 0;
-}
-
-int server_example_init(void)
-{
- return register_attributes();
-}
-
-void server_example_exit(void)
-{
- while (sdp_handles) {
- uint32_t handle = GPOINTER_TO_UINT(sdp_handles->data);
-
- attrib_free_sdp(handle);
- sdp_handles = g_slist_remove(sdp_handles, sdp_handles->data);
- }
-}
diff --git a/attrib/example.h b/attrib/example.h
deleted file mode 100644
index a2b07fe..0000000
--- a/attrib/example.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- *
- * BlueZ - Bluetooth protocol stack for Linux
- *
- * Copyright (C) 2010 Nokia Corporation
- * Copyright (C) 2010 Marcel Holtmann <marcel@holtmann.org>
- *
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-int server_example_init(void);
-void server_example_exit(void);
diff --git a/attrib/manager.c b/attrib/manager.c
index a5a7de4..3d40f2d 100644
--- a/attrib/manager.c
+++ b/attrib/manager.c
@@ -36,7 +36,6 @@
#include "manager.h"
#include "client.h"
-#include "example.h"
#define GATT_UUID "00001801-0000-1000-8000-00805f9b34fb"
@@ -85,10 +84,6 @@ int attrib_manager_init(DBusConnection *conn)
btd_register_device_driver(&client_driver);
-
- if (main_opts.attrib_server)
- return server_example_init();
-
return 0;
}
@@ -96,9 +91,6 @@ void attrib_manager_exit(void)
{
btd_unregister_device_driver(&client_driver);
- if (main_opts.attrib_server)
- server_example_exit();
-
attrib_client_exit();
dbus_connection_unref(connection);
--
1.7.0.4
next prev parent 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 [RFC][PATCH 00/15] Attribute server management API Anderson Lizardo
2011-03-17 1:00 ` Anderson Lizardo [this message]
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-2-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