Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

373
Vistas
Bluetooth Low Energy: use la pila BlueZ como periférico (con servicios y características personalizados)

Estoy tratando de usar la pila BlueZ en una máquina Linux para crear un servidor GATT con características y servicios personalizados. El objetivo final es utilizar cualquier dispositivo central (p. ej., dispositivo iOS o Android) para conectarse al servidor GATT, descubrir los servicios y características, y manipular los datos en las características.

Ejemplo:

  • Periférico con 1 servicio que contiene 3 características.
  • Servicio uuid = 0xFFFF
  • Char 1 uuid = 0xAAAA, propiedades = legible
  • Char 2 uuid = 0xBBBB, propiedades = legible y escribible
  • Char 3 uuid = 0xCCCC, propiedades = notificable

Desde el dispositivo central, debería ver el dispositivo periférico, conectarme a él y descubrir un servicio (0xFFFF) que tiene tres características (0xAAAA, 0xBBBB, 0xCCCC). Entonces debería poder leer el valor de 0xAAAA, leer y escribir en el valor de 0xBBBB y habilitar las notificaciones en 0xCCCC.

Tenga en cuenta que soy consciente de que existe una pregunta similar , pero solo explica cómo usar el periférico como anunciante. Otra duda resuelta explica como crear un servidor GATT, pero no explica como jugar con las propiedades de las caracteristicas (eg readable, notificable, etc.), o tal vez me falte algo.

Gracias de antemano.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede ver la práctica de ejemplo de gatt o los perfiles definidos en el directorio profile/ como alert/server.c. Básicamente, solo tienes que registrar tu servicio usando la función gatt_service_add(), siguiendo el código existente. Por ejemplo :

 gatt_service_add(adapter, GATT_PRIM_SVC_UUID, 0xFFFF, /* Char 1 */ GATT_OPT_CHR_UUID16, 0xAAAA, GATT_OPT_CHR_PROPS, ATT_CHAR_PROPER_READ, GATT_OPT_CHR_VALUE_CB, ATTRIB_READ, read_func_callback, /* Char 2 Define here */ ... /* Char 3 Define here */ ... GATT_OPT_INVALID); }

Además, olvidé los detalles, pero para que el servidor de alertas funcione, debe habilitar el modo experimental (¿y el de mantenimiento?) durante la configuración agregando "--enable-maintainer-mode" y "--enable-experimental"

Para ejecutar, ejecute el "bluetoothd" compilado con las opciones -n y -d para depurar (también -E para habilitar servicios experimentales). Es posible que desee restablecer su adaptador nuevamente después de ejecutar bluetoothd. Y luego puede conectarse desde un dispositivo remoto usando gatttool (también con bluetoothd ejecutándose en un dispositivo remoto).

over 4 years ago · Santiago Trujillo Denunciar

0

1) ir a la carpeta Bluez

2) sudo ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --disable-systemd --enable-experimental --enable-maintainer- modo

3) sudo hacer todo

4) Anunciar paquetes conectables

 # activate bluetooth sudo hciconfig hci0 up # set advertise data: "hello world" sudo hcitool -i hci0 cmd 0x08 0x0008 48 45 4c 4c 4f 57 4f 52 4c 44 # start advertising as connectable sudo hciconfig hci0 leadv 0

5) parada de bluetooth del servicio sudo

6) sudo src/bluetoothd -d -n

7) Desde otra PC, escriba (Change MAC id gatt server mac)

 gatttool -b gatt_server_mac --interactive

el paso 6 es por si quieres compilar plugins/gatt-example.c

si desea compilar el servidor . c desde perfil/hora o perfil /alerta (reemplace con alerta en lugar de tiempo) o cualquier otro archivo en la carpeta de perfil reemplace el paso 6

sudo src/bluetoothd --plugin=hora -n

over 4 years ago · Santiago Trujillo Denunciar

0

Ahora existe otra solución con la herramienta de línea de comandos Bluetoothctl. Más detalles de esto se pueden encontrar aquí: -

BlueZ: Cómo configurar un servidor GATT desde la línea de comandos

No estoy seguro de cuándo se introdujo Bluetoothctl, pero es relativamente reciente en el momento de escribir este artículo y, por lo tanto, no existía en versiones anteriores de BlueZ. Estoy usando BlueZ v5.50 y esta es la versión con la que lo probé.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda