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

我想知道是否可以通过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

回答:

因此,现在可以使用新的 工具进行处理。可以使用此工具按以下方式设置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

以上是 BlueZ:如何从命令行设置GATT服务器 的全部内容, 来源链接: utcz.com/qa/433409.html

回到顶部