为什么很难获得助听器的 GATT 规范?

问题描述 投票:0回答:4

我正在尝试查找血糖仪和听力设备的蓝牙 GATT 规范。 但我唯一发现的是

https://www.bluetooth.com/specifications/gatt/removed/

或 git hub 上的一些较旧的存储库。

蓝牙不是对任何人都是免费的吗?

我想为听力设备开发一个简单的音量控制,例如我可以在这里扫描并找出:

Service: <CBService: 0x100606f20, isPrimary = NO, UUID = Device Information>
Service: <CBService: 0x1005747d0, isPrimary = NO, UUID = Battery>
Service: <CBService: 0x100574b90, isPrimary = NO, UUID = 7D74F4BD-C74A-4431-862C-CCE884371592>
Service: <CBService: 0x100574b30, isPrimary = NO, UUID = 8341F2B4-C013-4F04-8197-C4CDB42E26DC>
Service: <CBService: 0x100606fe0, isPrimary = NO, UUID = 14293049-77D7-4244-AE6A-D3873E4A3184>
Service: <CBService: 0x100607020, isPrimary = NO, UUID = 56772EAF-2153-4F74-ACF3-4368D99FBF5A>
Service: <CBService: 0x100607060, isPrimary = NO, UUID = 0A23AE62-C4C2-43D1-87B1-E8C83839A063>
<CBCharacteristic: 0x10056f9f0, UUID = Manufacturer Name String, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x10056e6d0, UUID = Model Number String, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x10056e440, UUID = Hardware Revision String, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x10056e4a0, UUID = Firmware Revision String, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100572130, UUID = Software Revision String, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100606120, UUID = Battery Level, properties = 0x12, value = (null), notifying = NO>
... has read
... has notify
<CBCharacteristic: 0x100708c60, UUID = 24E1DFF3-AE90-41BF-BFBD-2CF8DF42BF87, properties = 0x12, value = (null), notifying = NO>
... has read
... has notify
<CBCharacteristic: 0x100608100, UUID = 8D17AC2F-1D54-4742-A49A-EF4B20784EB3, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x1006060b0, UUID = C97D21D3-D79D-4DF8-9230-BB33FA805F4E, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100608410, UUID = 497EEB9E-B194-4F35-BC82-36FD300482A6, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100608470, UUID = F3F594F9-E210-48F3-85E2-4B0CF235A9D3, properties = 0x1A, value = (null), notifying = NO>
... has write
... has read
... has notify
<CBCharacteristic: 0x10056e650, UUID = 6AC46200-24EA-46D8-A136-81133C65840A, properties = 0x1A, value = (null), notifying = NO>
... has write
... has read
... has notify
<CBCharacteristic: 0x100572190, UUID = 21FF4275-C41D-4486-A0E3-DC11138BCDE6, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100573fd0, UUID = A391C6F1-20BB-495A-ABBF-2017098FBC61, properties = 0x1A, value = (null), notifying = NO>
... has write
... has read
... has notify
<CBCharacteristic: 0x100574030, UUID = ADC3023D-BFD2-43FD-86F6-7AE05A619092, properties = 0x12, value = (null), notifying = NO>
... has read
... has notify
<CBCharacteristic: 0x100574090, UUID = A28B6BE1-2FA4-42F8-AEB2-B15A1DBD837A, properties = 0xA, value = (null), notifying = NO>
... has write
... has read
<CBCharacteristic: 0x100574340, UUID = 7BE94A55-8D91-4592-BC0F-EA3664CCD3A9, properties = 0xA, value = (null), notifying = NO>
... has write
... has read
<CBCharacteristic: 0x1005703d0, UUID = 9C12A3DB-9CE8-4865-A217-D394B3BC9311, properties = 0xA, value = (null), notifying = NO>
... has write
... has read
<CBCharacteristic: 0x1005743a0, UUID = 16438C66-E95A-4C6F-8117-A6B745BD86FC, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100574400, UUID = 4656D3AC-C2DF-4096-96E7-713580B69CCD, properties = 0x1A, value = (null), notifying = NO>
... has write
... has read
... has notify
<CBCharacteristic: 0x100574460, UUID = 76B3DB1F-44C4-46CC-A7B5-E9CE7DFBEF50, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x1005746a0, UUID = 98924A39-6559-40A8-B302-3C8E40DBF834, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x10045f4a0, UUID = 0188BF66-463A-405D-91FD-0B8940B92254, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x10045f500, UUID = 2BDCAEBE-8746-45DF-A841-96B840980FB7, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x10045f560, UUID = 2BDCAEBE-8746-45DF-A841-96B840980FB8, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x10045f600, UUID = 30E69638-3752-4FEB-A3AA-3226BCD05ACE, properties = 0x1A, value = (null), notifying = NO>
... has read
... has notify
... has write
<CBCharacteristic: 0x100574700, UUID = F44A04D5-E0C6-4AD7-85D5-87D5AA33C9C6, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x1005744c0, UUID = E129F344-FC51-4A4A-8C97-08D4326030C6, properties = 0x4, value = (null), notifying = NO>
<CBCharacteristic: 0x100575070, UUID = 8B789F9B-2963-4307-88CE-26D042933800, properties = 0x10, value = (null), notifying = NO>
... has notify
<CBCharacteristic: 0x100574560, UUID = 4048127C-9DE7-4B8C-968E-8C6995C23800, properties = 0x4, value = (null), notifying = NO>
<CBCharacteristic: 0x1005745e0, UUID = 6001A31E-EF5E-4F27-A07C-31B9EE328286, properties = 0x10, value = (null), notifying = NO>
... has notify
<CBCharacteristic: 0x1005704a0, UUID = 82E7D06B-65DA-4D78-99CB-BAF9635D8E6F, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100570530, UUID = E24FAC83-B5A8-4B9B-8FDA-803FFFB0C21C, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x1005707a0, UUID = D28617FE-0AD5-40C5-A04A-BC89051FF755, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100570890, UUID = 5F35C43D-E0F4-4DA9-87E6-9719982CD25E, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100570590, UUID = 353ECC73-4D2C-421B-AC1C-8DCB35CD4477, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x1005750d0, UUID = 6D5758A1-D4AF-4B32-B95E-1E6992454F4F, properties = 0xC, value = (null), notifying = NO>
... has write
<CBCharacteristic: 0x100575130, UUID = DCBE7A3E-A742-4527-AEB5-CD8DEE63167F, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100570640, UUID = 68BFA64E-3209-4172-B117-F7EAFCE17414, properties = 0x1A, value = (null), notifying = NO>
... has notify
... has read
... has write
<CBCharacteristic: 0x100570710, UUID = BBA1C7F1-B445-4657-90C3-8DBD97361A0C, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100575190, UUID = 42E940EF-98C8-4CCD-A557-30425295AF89, properties = 0x12, value = (null), notifying = NO>
... has notify
... has read
<CBCharacteristic: 0x1005751f0, UUID = 535442F7-0FF7-4FEC-9780-742F3EB00EDA, properties = 0x1E, value = (null), notifying = NO>
... has notify
... has read
... has write
<CBCharacteristic: 0x100575270, UUID = 1454E9D6-F658-4190-8589-22AA9E3021EB, properties = 0x1E, value = (null), notifying = NO>
... has notify
... has read
... has write
<CBCharacteristic: 0x100575370, UUID = E5892EBE-97D0-4F97-8F8E-CB85D16A4CC1, properties = 0x1E, value = (null), notifying = NO>
... has notify
... has read
... has write
<CBCharacteristic: 0x1005753d0, UUID = 60415E72-C345-417A-BB2B-BBBA95B2C9A3, properties = 0x1E, value = (null), notifying = NO>
... has notify
... has read
... has write
<CBCharacteristic: 0x100575430, UUID = 9215A295-B813-483F-9F85-B700D0B7BC75, properties = 0x1E, value = (null), notifying = NO>
... has notify
... has read
... has write
<CBCharacteristic: 0x1005754b0, UUID = 6E557876-CCC4-40E0-8C2D-651542C5AD3D, properties = 0x1E, value = (null), notifying = NO>
... has notify
... has read
... has write
<CBCharacteristic: 0x100575530, UUID = 50632720-4C0F-4BC4-960A-2404BDFDFBCA, properties = 0x1E, value = (null), notifying = NO>
... has notify
... has read
... has write
<CBCharacteristic: 0x1005755b0, UUID = 58BBCCC5-5A57-4E00-98D5-18C6A0408DFD, properties = 0x12, value = (null), notifying = NO>
... has notify
... has read
<CBCharacteristic: 0x1005752f0, UUID = D01AB591-D282-4EF5-B83B-538E0BF32D85, properties = 0x12, value = (null), notifying = NO>
... has notify
... has read
<CBCharacteristic: 0x100575700, UUID = BC6829C4-B750-48E6-B6F4-48EC866A1EFB, properties = 0x2, value = (null), notifying = NO>
... has read
<CBCharacteristic: 0x100575780, UUID = 51939BB6-A635-4B1E-903B-76CD9DFF3FAC, properties = 0x1E, value = (null), notifying = NO>
... has notify
... has read
... has write
<CBCharacteristic: 0x100575800, UUID = 786FF607-774D-49D6-80A5-A17E08823D91, properties = 0xC, value = (null), notifying = NO>
... has write
<CBCharacteristic: 0x100575880, UUID = D5D0AFFB-35B8-4FDC-A50B-F777C90293B8, properties = 0x12, value = (null), notifying = NO>
... has notify
... has read
<CBCharacteristic: 0x100575900, UUID = 6EFAB52E-3002-4764-9430-016CEF4DFC87, properties = 0x4, value = (null), notifying = NO>
<CBCharacteristic: 0x100575990, UUID = 34DFC7CB-5252-430B-BA6D-DF2FE87914E7, properties = 0x10, value = (null), notifying = NO>
... has notify
<CBCharacteristic: 0x100575a10, UUID = EBEE6F69-70B6-4BB9-B13B-9BA84953C233, properties = 0x1E, value = (null), notifying = NO>
... has write
... has notify
... has read
<CBCharacteristic: 0x100575ab0, UUID = 62DCC92F-59C2-4228-9A11-C85F18773530, properties = 0xC, value = (null), notifying = NO>
... has write

但是没有可用的字典来获取有关特征结构的更深入的信息。 助听器是 Amplifon ampli-connect B 5 VS。

如有任何帮助或建议,我们将不胜感激。

ios xcode bluetooth bluetooth-lowenergy
4个回答
6
投票

不幸的是,在过去的几年里,bluetooth.com 的搜索变得更加困难。他们消灭了很多观众,你必须阅读 PDF。但数据还在。

对于支持LE Audio的助听器,请参阅音量控制配置文件和服务。对于实际的特征值,请参阅16位UUID数字文档。例如,音量控制服务是 0x1844,音量状态特征是 0x2B7D。有关详细信息,请参阅文档(没那么复杂,但也不明显)。

但是,许多助听器不使用 LE Audio。我相信第一个版本是在 2014 年左右发布的。许多使用 HFP 和/或 A2DP,而核心蓝牙无法访问它们。在这种情况下,不支持更改音量的方法。 (您可以使用隐藏的 MPVolumeView 玩游戏,并以编程方式找到滑块并移动它,我已经为某些产品做到了这一点,但我真的不推荐它。它非常脆弱且不受支持。)HFP 通常用于电话,专为语音而设计。 A2DP 提供更高质量的音频,通常用于音乐。在大多数情况下,支持任一功能的设备都会自动显示在 iPhone 的控制面板中(取决于 AVAudioSession 的配置方式)。

您在此处展示的设备有一堆 128 位 UUID,这强烈建议采用自定义协议,可能供听力学家使用制造商提供的软件使用。专有 BLE 协议在耳塞领域(我工作的地方)非常常见,根据我对助听器的了解,我预计它们在那里也很常见。


1
投票

Bluetooth.com 不再在其网站中提供 XML 查看器。您需要将配置文件下载为 PDF 文件。

例如:

对于 CGMP - https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=310501 对于 CGMS - https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=310502

基本上,只需访问 https://www.bluetooth.com/specifications/gatt/ 并单击 1.0.1 数字即可。

这是您要找的吗?规格/简介?


1
投票

我正在努力控制助听器(耳蜗核)的音量(以及许多其他功能),以支持 Nodejs 和 cordova/电容器。

您正在查看的音量控制位于服务中:

7D74F4BD-C74A-4431-862C-CCE884371592

有特色

4603580D-3C15-4FEC-93BE-B86B243ADA64

从那里,您可以将

0x00
(最低音量)写入
0xFF
(最高音量)。

我希望有帮助。我也很难找到规格,我只是通过逆向工程找到了这个。


0
投票

我展示了我使用 AdaFruit 蓝牙 UF2 USB 钥匙扣和 Wireshark 数据包分析器在蓝牙物理层分析的助听器 UUID 的虚拟相同交换。

在使用 BlueZ v5.66、pipewire v0.3.65 和 pipewire-pulse v0.3.65 的 Debian APT 包的

Debian 12
(书虫)中,此音频流现在通过执行以下命令来工作:

sudo bluetoothctl

并在每个

[bluetooth]# 
提示符下执行以下 bluetoothctl 命令:

devices 
select  
list    
show    
power on
scan bredr 
# press appropriate button on hearing aid (HA) to start BT pairing
# while scanning, note the MAC address of this HA device
# replace all xx:xx:xx:xx:xx:xx with this HA MAC address
pair xx:xx:xx:xx:xx:xx

您应该得到以下输出:

[CHG] Device xx:xx:xx:xx:xx:xx ServicesResolved: yes
[CHG] Device xx:xx:xx:xx:xx:xx Paired: yes
Pairing successful

然后就可以退出了

bluetoothctl

[bluetooth]# exit
$

享受吧。

© www.soinside.com 2019 - 2024. All rights reserved.