Re: [PATCH BlueZ] build: Remove gatt-example plugin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Tue, Nov 8, 2016 at 11:04 AM, Luiz Augusto von Dentz
<luiz.dentz@xxxxxxxxx> wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx>
>
> This examples can be done over D-Bus already so it makes no sense to have
> it as a plugin and in fact it currently it doesn't even work since it was
> never ported to the new code under src/shared.
> ---
>  Makefile.plugins       |   5 -
>  plugins/gatt-example.c | 578 -------------------------------------------------
>  2 files changed, 583 deletions(-)
>  delete mode 100644 plugins/gatt-example.c
>
> diff --git a/Makefile.plugins b/Makefile.plugins
> index ecf6f08..4ad2103 100644
> --- a/Makefile.plugins
> +++ b/Makefile.plugins
> @@ -11,11 +11,6 @@ builtin_sources += plugins/autopair.c
>  builtin_modules += policy
>  builtin_sources += plugins/policy.c
>
> -if MAINTAINER_MODE
> -builtin_modules += gatt_example
> -builtin_sources += plugins/gatt-example.c
> -endif
> -
>  if EXPERIMENTAL
>  builtin_modules += neard
>  builtin_sources += plugins/neard.c
> diff --git a/plugins/gatt-example.c b/plugins/gatt-example.c
> deleted file mode 100644
> index 5249751..0000000
> --- a/plugins/gatt-example.c
> +++ /dev/null
> @@ -1,578 +0,0 @@
> -/*
> - *
> - *  BlueZ - Bluetooth protocol stack for Linux
> - *
> - *  Copyright (C) 2010  Nokia Corporation
> - *  Copyright (C) 2010  Marcel Holtmann <marcel@xxxxxxxxxxxx>
> - *
> - *
> - *  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 <glib.h>
> -#include <errno.h>
> -
> -#include "lib/bluetooth.h"
> -#include "lib/sdp.h"
> -#include "lib/uuid.h"
> -
> -#include "src/plugin.h"
> -#include "src/adapter.h"
> -#include "src/shared/util.h"
> -#include "src/log.h"
> -#include "attrib/gattrib.h"
> -#include "attrib/gatt-service.h"
> -#include "attrib/att.h"
> -#include "attrib/gatt.h"
> -#include "attrib/att-database.h"
> -#include "src/attrib-server.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
> -
> -struct gatt_example_adapter {
> -       struct btd_adapter      *adapter;
> -       GSList                  *sdp_handles;
> -};
> -
> -static GSList *adapters = NULL;
> -
> -static void gatt_example_adapter_free(struct gatt_example_adapter *gadapter)
> -{
> -       while (gadapter->sdp_handles != NULL) {
> -               uint32_t handle = GPOINTER_TO_UINT(gadapter->sdp_handles->data);
> -
> -               attrib_free_sdp(gadapter->adapter, handle);
> -               gadapter->sdp_handles = g_slist_remove(gadapter->sdp_handles,
> -                                               gadapter->sdp_handles->data);
> -       }
> -
> -       if (gadapter->adapter != NULL)
> -               btd_adapter_unref(gadapter->adapter);
> -
> -       g_free(gadapter);
> -}
> -
> -static int adapter_cmp(gconstpointer a, gconstpointer b)
> -{
> -       const struct gatt_example_adapter *gatt_adapter = a;
> -       const struct btd_adapter *adapter = b;
> -
> -       if (gatt_adapter->adapter == adapter)
> -               return 0;
> -
> -       return -1;
> -}
> -
> -static uint8_t battery_state_read(struct attribute *a,
> -                                 struct btd_device *device, gpointer user_data)
> -{
> -       struct btd_adapter *adapter = user_data;
> -       uint8_t value;
> -
> -       value = 0x04;
> -       attrib_db_update(adapter, a->handle, NULL, &value, sizeof(value), NULL);
> -
> -       return 0;
> -}
> -
> -static gboolean register_battery_service(struct btd_adapter *adapter)
> -{
> -       bt_uuid_t uuid;
> -
> -       bt_uuid16_create(&uuid, BATTERY_STATE_SVC_UUID);
> -
> -       return gatt_service_add(adapter, GATT_PRIM_SVC_UUID, &uuid,
> -                       /* battery state characteristic */
> -                       GATT_OPT_CHR_UUID16, BATTERY_STATE_UUID,
> -                       GATT_OPT_CHR_PROPS, GATT_CHR_PROP_READ |
> -                                                       GATT_CHR_PROP_NOTIFY,
> -                       GATT_OPT_CHR_VALUE_CB, ATTRIB_READ,
> -                                               battery_state_read, adapter,
> -
> -                       GATT_OPT_INVALID);
> -}
> -
> -static void register_termometer_service(struct gatt_example_adapter *adapter,
> -                       const uint16_t manuf1[2], const uint16_t manuf2[2])
> -{
> -       const char *desc_out_temp = "Outside Temperature";
> -       const char *desc_out_hum = "Outside Relative Humidity";
> -       uint16_t start_handle, h;
> -       const int svc_size = 11;
> -       uint32_t sdp_handle;
> -       uint8_t atval[256];
> -       bt_uuid_t uuid;
> -       int len;
> -
> -       bt_uuid16_create(&uuid, THERM_HUMIDITY_SVC_UUID);
> -       start_handle = attrib_db_find_avail(adapter->adapter, &uuid, svc_size);
> -       if (start_handle == 0) {
> -               error("Not enough free handles to register service");
> -               return;
> -       }
> -
> -       DBG("start_handle=0x%04x manuf1=0x%04x-0x%04x, manuf2=0x%04x-0x%04x",
> -               start_handle, manuf1[0], manuf1[1], manuf2[0], manuf2[1]);
> -
> -       h = start_handle;
> -
> -       /* Thermometer: primary service definition */
> -       bt_uuid16_create(&uuid, GATT_PRIM_SVC_UUID);
> -       put_le16(THERM_HUMIDITY_SVC_UUID, &atval[0]);
> -       attrib_db_add(adapter->adapter, h++, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, 2);
> -
> -       bt_uuid16_create(&uuid, GATT_INCLUDE_UUID);
> -
> -       /* Thermometer: Include */
> -       if (manuf1[0] && manuf1[1]) {
> -               put_le16(manuf1[0], &atval[0]);
> -               put_le16(manuf1[1], &atval[2]);
> -               put_le16(MANUFACTURER_SVC_UUID, &atval[4]);
> -               attrib_db_add(adapter->adapter, h++, &uuid, ATT_NONE,
> -                                               ATT_NOT_PERMITTED, atval, 6);
> -       }
> -
> -       /* Thermometer: Include */
> -       if (manuf2[0] && manuf2[1]) {
> -               put_le16(manuf2[0], &atval[0]);
> -               put_le16(manuf2[1], &atval[2]);
> -               put_le16(VENDOR_SPECIFIC_SVC_UUID, &atval[4]);
> -               attrib_db_add(adapter->adapter, h++, &uuid, ATT_NONE,
> -                                               ATT_NOT_PERMITTED, atval, 6);
> -       }
> -
> -       /* Thermometer: temperature characteristic */
> -       bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
> -       atval[0] = GATT_CHR_PROP_READ;
> -       put_le16(h + 1, &atval[1]);
> -       put_le16(TEMPERATURE_UUID, &atval[3]);
> -       attrib_db_add(adapter->adapter, h++, &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(adapter->adapter, h++, &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;
> -       put_le16(FMT_CELSIUS_UUID, &atval[2]);
> -       atval[4] = 0x01;
> -       put_le16(FMT_OUTSIDE_UUID, &atval[5]);
> -       attrib_db_add(adapter->adapter, h++, &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(adapter->adapter, h++, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, len);
> -
> -       /* Thermometer: relative humidity characteristic */
> -       bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
> -       atval[0] = GATT_CHR_PROP_READ;
> -       put_le16(h + 1, &atval[1]);
> -       put_le16(RELATIVE_HUMIDITY_UUID, &atval[3]);
> -       attrib_db_add(adapter->adapter, h++, &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(adapter->adapter, h++, &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;
> -       put_le16(FMT_PERCENT_UUID, &atval[2]);
> -       put_le16(BLUETOOTH_SIG_UUID, &atval[4]);
> -       put_le16(FMT_OUTSIDE_UUID, &atval[6]);
> -       attrib_db_add(adapter->adapter, h++, &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(adapter->adapter, h, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, len);
> -
> -       g_assert(h - start_handle + 1 == svc_size);
> -
> -       /* Add an SDP record for the above service */
> -       sdp_handle = attrib_create_sdp(adapter->adapter, start_handle,
> -                                                               "Thermometer");
> -       if (sdp_handle)
> -               adapter->sdp_handles = g_slist_prepend(adapter->sdp_handles,
> -                                               GUINT_TO_POINTER(sdp_handle));
> -}
> -
> -static void register_manuf1_service(struct gatt_example_adapter *adapter,
> -                                                       uint16_t range[2])
> -{
> -       const char *manufacturer_name1 = "ACME Temperature Sensor";
> -       const char *serial1 = "237495-3282-A";
> -       uint16_t start_handle, h;
> -       const int svc_size = 5;
> -       uint8_t atval[256];
> -       bt_uuid_t uuid;
> -       int len;
> -
> -       bt_uuid16_create(&uuid, MANUFACTURER_SVC_UUID);
> -       start_handle = attrib_db_find_avail(adapter->adapter, &uuid, svc_size);
> -       if (start_handle == 0) {
> -               error("Not enough free handles to register service");
> -               return;
> -       }
> -
> -       DBG("start_handle=0x%04x", start_handle);
> -
> -       h = start_handle;
> -
> -       /* Secondary Service: Manufacturer Service */
> -       bt_uuid16_create(&uuid, GATT_SND_SVC_UUID);
> -       put_le16(MANUFACTURER_SVC_UUID, &atval[0]);
> -       attrib_db_add(adapter->adapter, h++, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, 2);
> -
> -       /* Manufacturer name characteristic definition */
> -       bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
> -       atval[0] = GATT_CHR_PROP_READ;
> -       put_le16(h + 1, &atval[1]);
> -       put_le16(MANUFACTURER_NAME_UUID, &atval[3]);
> -       attrib_db_add(adapter->adapter, h++, &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(adapter->adapter, h++, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, len);
> -
> -       /* Manufacturer serial number characteristic */
> -       bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
> -       atval[0] = GATT_CHR_PROP_READ;
> -       put_le16(h + 1, &atval[1]);
> -       put_le16(MANUFACTURER_SERIAL_UUID, &atval[3]);
> -       attrib_db_add(adapter->adapter, h++, &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(adapter->adapter, h, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, len);
> -
> -       g_assert(h - start_handle + 1 == svc_size);
> -
> -       range[0] = start_handle;
> -       range[1] = start_handle + svc_size - 1;
> -}
> -
> -static void register_manuf2_service(struct gatt_example_adapter *adapter,
> -                                                       uint16_t range[2])
> -{
> -       const char *manufacturer_name2 = "ACME Weighing Scales";
> -       const char *serial2 = "11267-2327A00239";
> -       uint16_t start_handle, h;
> -       const int svc_size = 5;
> -       uint8_t atval[256];
> -       bt_uuid_t uuid;
> -       int len;
> -
> -       bt_uuid16_create(&uuid, MANUFACTURER_SVC_UUID);
> -       start_handle = attrib_db_find_avail(adapter->adapter, &uuid, svc_size);
> -       if (start_handle == 0) {
> -               error("Not enough free handles to register service");
> -               return;
> -       }
> -
> -       DBG("start_handle=0x%04x", start_handle);
> -
> -       h = start_handle;
> -
> -       /* Secondary Service: Manufacturer Service */
> -       bt_uuid16_create(&uuid, GATT_SND_SVC_UUID);
> -       put_le16(MANUFACTURER_SVC_UUID, &atval[0]);
> -       attrib_db_add(adapter->adapter, h++, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, 2);
> -
> -       /* Manufacturer name characteristic definition */
> -       bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
> -       atval[0] = GATT_CHR_PROP_READ;
> -       put_le16(h + 1, &atval[1]);
> -       put_le16(MANUFACTURER_NAME_UUID, &atval[3]);
> -       attrib_db_add(adapter->adapter, h++, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, 5);
> -
> -       /* Manufacturer name attribute */
> -       bt_uuid16_create(&uuid, MANUFACTURER_NAME_UUID);
> -       len = strlen(manufacturer_name2);
> -       strncpy((char *) atval, manufacturer_name2, len);
> -       attrib_db_add(adapter->adapter, h++, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, len);
> -
> -       /* Characteristic: serial number */
> -       bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
> -       atval[0] = GATT_CHR_PROP_READ;
> -       put_le16(h + 1, &atval[1]);
> -       put_le16(MANUFACTURER_SERIAL_UUID, &atval[3]);
> -       attrib_db_add(adapter->adapter, h++, &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(adapter->adapter, h, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, len);
> -
> -       g_assert(h - start_handle + 1 == svc_size);
> -
> -       range[0] = start_handle;
> -       range[1] = start_handle + svc_size - 1;
> -}
> -
> -static void register_vendor_service(struct gatt_example_adapter *adapter,
> -                                                       uint16_t range[2])
> -{
> -       uint16_t start_handle, h;
> -       const int svc_size = 3;
> -       uint8_t atval[256];
> -       bt_uuid_t uuid;
> -
> -       bt_uuid16_create(&uuid, VENDOR_SPECIFIC_SVC_UUID);
> -       start_handle = attrib_db_find_avail(adapter->adapter, &uuid, svc_size);
> -       if (start_handle == 0) {
> -               error("Not enough free handles to register service");
> -               return;
> -       }
> -
> -       DBG("start_handle=0x%04x", start_handle);
> -
> -       h = start_handle;
> -
> -       /* Secondary Service: Vendor Specific Service */
> -       bt_uuid16_create(&uuid, GATT_SND_SVC_UUID);
> -       put_le16(VENDOR_SPECIFIC_SVC_UUID, &atval[0]);
> -       attrib_db_add(adapter->adapter, h++, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, 2);
> -
> -       /* Vendor Specific Type characteristic definition */
> -       bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
> -       atval[0] = GATT_CHR_PROP_READ;
> -       put_le16(h + 1, &atval[1]);
> -       put_le16(VENDOR_SPECIFIC_TYPE_UUID, &atval[3]);
> -       attrib_db_add(adapter->adapter, h++, &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(adapter->adapter, h, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, 6);
> -
> -       g_assert(h - start_handle + 1 == svc_size);
> -
> -       range[0] = start_handle;
> -       range[1] = start_handle + svc_size - 1;
> -}
> -
> -static void register_weight_service(struct gatt_example_adapter *adapter,
> -                                               const uint16_t vendor[2])
> -{
> -       const char *desc_weight = "Rucksack Weight";
> -       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 prim_weight_uuid, char_weight_uuid;
> -       uint16_t start_handle, h;
> -       const int svc_size = 6;
> -       uint32_t sdp_handle;
> -       uint8_t atval[256];
> -       bt_uuid_t uuid;
> -       int len;
> -
> -       btoh128(&char_weight_uuid_btorder, &char_weight_uuid);
> -       btoh128(&prim_weight_uuid_btorder, &prim_weight_uuid);
> -       bt_uuid128_create(&uuid, prim_weight_uuid);
> -       start_handle = attrib_db_find_avail(adapter->adapter, &uuid, svc_size);
> -       if (start_handle == 0) {
> -               error("Not enough free handles to register service");
> -               return;
> -       }
> -
> -       DBG("start_handle=0x%04x, vendor=0x%04x-0x%04x", start_handle,
> -                                                       vendor[0], vendor[1]);
> -
> -       h = start_handle;
> -
> -       /* Weight service: primary service definition */
> -       bt_uuid16_create(&uuid, GATT_PRIM_SVC_UUID);
> -       memcpy(atval, &prim_weight_uuid_btorder, 16);
> -       attrib_db_add(adapter->adapter, h++, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, 16);
> -
> -       if (vendor[0] && vendor[1]) {
> -               /* Weight: include */
> -               bt_uuid16_create(&uuid, GATT_INCLUDE_UUID);
> -               put_le16(vendor[0], &atval[0]);
> -               put_le16(vendor[1], &atval[2]);
> -               put_le16(MANUFACTURER_SVC_UUID, &atval[4]);
> -               attrib_db_add(adapter->adapter, h++, &uuid, ATT_NONE,
> -                                               ATT_NOT_PERMITTED, atval, 6);
> -       }
> -
> -       /* Weight: characteristic */
> -       bt_uuid16_create(&uuid, GATT_CHARAC_UUID);
> -       atval[0] = GATT_CHR_PROP_READ;
> -       put_le16(h + 1, &atval[1]);
> -       memcpy(&atval[3], &char_weight_uuid_btorder, 16);
> -       attrib_db_add(adapter->adapter, h++, &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(adapter->adapter, h++, &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;
> -       put_le16(FMT_KILOGRAM_UUID, &atval[2]);
> -       put_le16(BLUETOOTH_SIG_UUID, &atval[4]);
> -       put_le16(FMT_HANGING_UUID, &atval[6]);
> -       attrib_db_add(adapter->adapter, h++, &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(adapter->adapter, h, &uuid, ATT_NONE, ATT_NOT_PERMITTED,
> -                                                               atval, len);
> -       g_assert(h - start_handle + 1 == svc_size);
> -
> -       /* Add an SDP record for the above service */
> -       sdp_handle = attrib_create_sdp(adapter->adapter, start_handle,
> -                                                       "Weight Service");
> -       if (sdp_handle)
> -               adapter->sdp_handles = g_slist_prepend(adapter->sdp_handles,
> -                                               GUINT_TO_POINTER(sdp_handle));
> -}
> -
> -static int gatt_example_adapter_probe(struct btd_adapter *adapter)
> -{
> -       uint16_t manuf1_range[2] = {0, 0}, manuf2_range[2] = {0, 0};
> -       uint16_t vendor_range[2] = {0, 0};
> -       struct gatt_example_adapter *gadapter;
> -
> -       gadapter = g_new0(struct gatt_example_adapter, 1);
> -       gadapter->adapter = btd_adapter_ref(adapter);
> -
> -       if (!register_battery_service(adapter)) {
> -               DBG("Battery service could not be registered");
> -               gatt_example_adapter_free(gadapter);
> -               return -EIO;
> -       }
> -
> -       register_manuf1_service(gadapter, manuf1_range);
> -       register_manuf2_service(gadapter, manuf2_range);
> -       register_termometer_service(gadapter, manuf1_range, manuf2_range);
> -       register_vendor_service(gadapter, vendor_range);
> -       register_weight_service(gadapter, vendor_range);
> -
> -       adapters = g_slist_append(adapters, gadapter);
> -
> -       return 0;
> -}
> -
> -static void gatt_example_adapter_remove(struct btd_adapter *adapter)
> -{
> -       struct gatt_example_adapter *gadapter;
> -       GSList *l;
> -
> -       l = g_slist_find_custom(adapters, adapter, adapter_cmp);
> -       if (l == NULL)
> -               return;
> -
> -       gadapter = l->data;
> -       adapters = g_slist_remove(adapters, gadapter);
> -       gatt_example_adapter_free(gadapter);
> -}
> -
> -static struct btd_adapter_driver gatt_example_adapter_driver = {
> -       .name   = "gatt-example-adapter-driver",
> -       .probe  = gatt_example_adapter_probe,
> -       .remove = gatt_example_adapter_remove,
> -};
> -
> -static int gatt_example_init(void)
> -{
> -       return btd_register_adapter_driver(&gatt_example_adapter_driver);
> -}
> -
> -static void gatt_example_exit(void)
> -{
> -       btd_unregister_adapter_driver(&gatt_example_adapter_driver);
> -}
> -
> -BLUETOOTH_PLUGIN_DEFINE(gatt_example, VERSION, BLUETOOTH_PLUGIN_PRIORITY_LOW,
> -                                       gatt_example_init, gatt_example_exit)
> --
> 2.7.4

Applied.


-- 
Luiz Augusto von Dentz
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux