一尘不染

BlueZ:如何从命令行设置GATT服务器

linux

我想知道是否可以通过Linux命令行设置gatt服务器。我知道BlueZ
gatttool命令允许您充当gatt客户端并询问远程gatt服务器,但是,我认为该工具不能用于设置服务器。

我要实现的是一个 从命令行创建
的gatt服务器,可以被任何中央设备(例如iOS或Android设备)查询,以连接到GATT服务器,发现服务和特征,并操纵特征。

例:

具有1个服务的Gatt服务器,其中包含3个特征。

  • 服务uuid​​ = 0xFFFF
  • 字符1 uuid = 0xAAAA,值= 01,属性=可读
  • Char 2 uuid = 0xBBBB,值= 00,属性=可读可写
  • Char 3 uuid = 0xCCCC,值= 02,属性=可通知

我正在使用内核版本3.11.0和BlueZ 5.19


阅读 1170

收藏
2020-06-02

共1个答案

一尘不染

因此,现在可以使用新的 bluetoothctl 工具进行处理。可以使用此工具按以下方式设置gatt表:-

#bluetoothctl
[bluetoothctl] menu gatt
[bluetoothctl] register-service 0xFFFF # (Choose yes when asked if primary service)
[bluetoothctl] register-characteristic 0xAAAA read       # (Select a value of 1 when prompted)
[bluetoothctl] register-characteristic 0xBBBB read,write # (Select a value of 0 when prompted)
[bluetoothctl] register-characteristic 0xCCCC read       # (Select a value of 2 when prompted)
[bluetoothctl] register-application # (This commits the services/characteristics and registers the profile)
[bluetoothctl] back
[bluetoothctl] advertise on

我已经尝试了几种服务/功能组合,并且能够使其正常工作。默认情况下,GAP(0x1800)和GATT(0x1801)服务可用,并且在您做广告时将成为GATT表的一部分。您也可以使用以下命令查看可用的服务:

[bluetoothctl] show
Controller 00:AA:BB:CC:DD:EE (public)
    Name: MyMachine
    Alias: MyMachine
    Class: 0x000c0000
    Powered: yes
    Discoverable: no
    Pairable: yes
    UUID: Headset AG                (00001112-0000-1000-8000-00805f9b34fb)
    UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
    UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
    UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
    UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
    UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
    UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
    UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
    **UUID: Unknown                   (0000ffff-0000-1000-8000-00805f9b34fb)**
    UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
    Modalias: usb:v1D6Bp0246d0532
    Discovering: no
2020-06-02