This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2745R10-Q1:CC2745R10-Q1 HID 服务、can't 连接到 Apple iPhone

Guru**** 2693225 points

Other Parts Discussed in Thread: CC2745R10-Q1, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1584111/cc2745r10-q1-cc2745r10-q1-hid-service-can-t-connect-to-apple-iphone

器件型号: CC2745R10-Q1
主题: SysConfig 中讨论的其他器件

您好、

硬件:TI CC2745R10-Q1 EVM
SW:SDK 9.14 EA

我们在 CC2745R10-Q1 上实现了蓝牙 HID 服务、设备信息串行和电池服务。 HID 服务模拟游戏手柄或鼠标。
目标是在电话与设备配对时启用自动连接。 TI CC2745 与其他竞争对手的 BLE 芯片之间也进行了相同的测试。

TI CC2745 实现 HID 服务。 配对绑定完成后、Apple 手机无法自动与 TI CC2745 连接。 这两个品牌的经测试 Android 手机均可自动连接到 TI CC2745

2.其他竞争对手的 BLE 芯片实施 HID 服务,配对和绑定后, Apple 和 Android 手机均可自动连接

从以上比较可以看出、TI CC2745 与 Apple 手机的自动连接似乎存在问题。 不清楚具体的问题是什么。
我们想看看 TI CC2745 是否可以执行 HID 自动连接验证。 我们下载了 HOGP-BLE-HID-EXAMPLE 采用其他 TI 平台的 HID 演示(HID 主)测试
它也是同样不可能实现自动连接的苹果手机.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    很抱歉晚才回复。 当您请求自动连接时、您的意思是什么? 您是否希望鼠标/操纵杆在因关闭或移出范围而断开连接后重新连接到苹果手机?

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的。 我们预计鼠标/操纵杆可以 在因调谐关闭或移动到超出范围而断开连接后重新连接到 Apple 手机。 但我们已经通过 CC2745 进行了测试。  如果 CC2745 用作游戏手柄或鼠标、Apple 手机无法重新连接到 CC2745。 我们在其他 BLE 平台上测试此功能。 Apple 手机可重新连接到目标设备。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     HOGP-BLE-HID-EXAMPLE 演示是为 CC13xx/CC26xx SDK 创建的、因此我不确定您是如何进行测试的。 此外、该示例没有任何代码可在断开连接后重新启用广播。

    集中器上的自动重新连接功能通常的工作原理是扫描 BLE 广播、并检查此地址之前是否绑定到中央器件。 您是否有可以用于检查问题的最低重现示例、或者您能分享可以在 CC2745 LaunchPad 上运行的工程、以便帮助解决该错误?

    您还能告诉我您正在使用哪个版本的 SDK 吗?

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好  

      我们将 HOGP-BLE-HID-EXAMPLE  演示合并到 CC2745 Basic_ble 演示。  这些文件包括 battserce.c/ battserive.h 和 hiddev.c/ hiddev.h。 我们还在 SDK 中添加 DEV_INFO_SERVICE.c。   BLE 断开连接后、BLE 将再次广播。  

       我们使用 SDK 9.11 和 9.14.00.15_ea 测试 HID 功能。  两者都有相同的问题。我无法直接将项目交付给您、因为我的公司具有代码导出控制。 您能否通过 CC2745 完成 HID 演示、并检查 Apple 手机是否可以自动连接它。 如果您演示可以正常工作。  希望您能向我发布演示。 我可以进行测试、并确保演示能否解决问题。 谢谢你  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您能否向我确认 CC2745 的默认 Basic BLE 示例不会自动重新连接到 iPhone、但会自动重新连接到 Android 手机?

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的。  Android 手机可以自动重新连接到 HID。 iphone 无法自动重新连接到它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我主要问的是我们提供的 Basic BLE 示例。 您是否尝试在 C:\ti\simplelink_lowpower_f3_SDK_9_12_00_19\examples\rtos\LP_EM_CC2745R10-Q1\ble\basic_ble 下导入工程、进行构建并刷写、查看是否能够在 iPhone 上看到自动重新连接。

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好  

      如果我们不合并 HID 服务、只需构建 basic_ble 并刷写它。 iphone 和 Android 手机都无法自动连接它。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我将尝试在我的最后重现这个,看看我能做什么。 是否可以为合并的 HID 示例发送代码?

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

       我们合并的文件包括 battserce.c/ battserive.h 和 hidkbdservice.c/hidkbdservice.c。 我们还在 SDK 中添加 DEV_INFO_SERVICE.c。  这并不复杂。  您只需   在系统开机时调用所有服务的 xxx_AddService。  

       我无法直接将项目交付给您、因为我的公司具有代码导出控制。 您能否通过 CC2745 完成 HID 演示、并检查 Apple 手机是否可以自动连接它。 如果您演示可以正常工作。  希望您能向我发布演示。 我可以进行测试、并确保演示能否解决问题

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    希望您能理解。 我的代码都是由公司加密的系统加密。所以它不能在外部交付。谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我无法在使用 Android 设备的 Basic BLE 上重现您的问题。 我的手机在恢复到有效范围后能够自动重新连接。 我会用 iPhone 尝试这个,然后回来给你。

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是、将 HID 功能合并到 BasicBle 之后。   Android 手机无需任何 BLE 应用即可自动连接 但 iphone 无法自动连接到它。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、查看 HOGP-BLE-HID-EXAMPLE 后 、将其移植到 F3 SDK 将很困难、而且可能需要几周时间。 我认为从头开始重新创建此示例是没有用处的。

    我认为最好能找到共享您的代码的方法、这样我们就可以直接在您使用的代码上帮助您解决问题。 您能否联系发起此主题的 FAE James、以便您可以与 Texas Instruments 签署 NDA?

    或者,您能否为我们提供两个您的设备尝试重新连接的嗅探器日志,一个在 Apple 上,一个在 Android 上。 这样我们就可以猜测问题可能是什么。

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Lea:

    请参阅随附的 CCS 工程(基于 SDK 9.11、但 SDK 9.12 或 9.14 也应该能够重现)、并在字文件中描述了修改

    e2e.ti.com/.../basic_5F00_ble_5F00_LP_5F00_EM_5F00_CC2745R10_5F00_Q1_5F00_freertos_5F00_ticlang.zipe2e.ti.com/.../Modification_5F00_List.docx

    在 iPhone 上、我使用 TI SimpleLink Connect 应用程序将 CC2745-Q1 EVM BLE_basic 项目配对、输入配对代码“123456"</s>“
    之后、我在 iPhone 蓝牙菜单中关闭 BLE、然后在 iPhone 上打开 BLE。 我可以在 iPhone 上看到 Basic BLE project 设备、但 iPhone 不会自动连接此设备。 我需要 手动按 Basic BLE project device、然后 iPhone 再次连接到设备。

    相反,如果您使用任何蓝牙 HID 鼠标,您会发现 iPhone 可以自动连接它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我已经收到您的工程、并能进行构建。 我注意到的第一件事是 Android 上的 simplelink 应用在调用 Hid Kbd_Add 后无法正确查看服务列表。 这并不正常、这可能表示函数移植到 F3 SDK 出现问题。 由于 iphone 未被识别为 HID 设备、因此不正确发现服务可能是 iphone 未自动连接的原因。

    我将探讨该问题并返回给您。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    未发现服务的原因是您的 HID 服务的定义。 此服务的第二个特征是包括电池服务、您在示例中没有端口。 这会导致服务发现失败并中止、并导致器件无法将您的器件识别为 HID 器件。

    删除此特性时、SimpleLink Connect 应用程序能够发现 HID 服务。  



    在发生此更改后、我的 Android 可以在范围内自动重新连接到设备。 我唯一可以用于测试的 iPhone 目前正在充电,我会回来给你这个. 但是、如果这不起作用、可能会有许多解释、例如不在广播数据中广播 HID 服务、或者不包括根据规范必须提供的电池服务。

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    禁用和重新启用蓝牙后、iPhone 确实无法重新连接。 使用嗅探器后,原因是 iPhone 没有向设备发送连接请求。 Android 和 iOS 之间的行为差异可能是、当 Android 重新连接到任何设备时、iOS 仅在设备为 HID 设备时重新连接、而 iOS 将您的设备检测为非 HID 设备。

    苹果设备不会将您的设备解释为 HID 的原因可能有很多:

    -设备的 GATT 表不包含电池服务,这是 HID 的强制性要求
    -您没有在 HID 服务的不同特性上实现答复 HID 数据的逻辑
    -您的广告没有外观,也没有 HID 和电池服务

    在我看来,这里有你的选择:
    -继续使用 Android 设备处理您的代码,直到您拥有苹果识别您的 HID 设备所需的所有功能
    -联系 Apple 开发者支持,询问 iOS 需要什么才能将您的设备识别为 HID
    -或者、CC2740R10-Q1 支持 Zephyr、并且具有 开箱即用的鼠标 HID 示例。 您可以通过 Zephyr 入门 SLA 了解从何处开始

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是、 但 在其他平台中添加了相同的 HID 服务。 iphone 可以自动连接它。   另一个平台也没有电池服务。  

    使用“NRF Conenect“ 连接它。  我们检查 TI CC2745 平台和其他平台中添加的服务、结果是相同的。  所有的平均值都没有  
    提供 HID 和电池服务。   我认为不同之处可能是 BLE 栈。   
      我们也会 在 TI 平台上尝试以下操作、但仍然存在相同的问题  

      1.添加电池服务。

      2.在广播中添加 HID 服务 UUID 和电池 UUID。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我已经确认 Zephyr 上的 HID 样本只需进行极少的更改即可正常工作。 只需重新启用广播并将最大连接数更改为 2、而不是 1。 由于 Zephyr SDK 和 SimpleLink SDK 共用同一个用于控制器的 TI BLE 库、因此我认为问题不是来自库、而是来自应用代码。

    如果您使用的是其他平台、但没有与使用 Zephyr 的反向指示、那么这可能是一种开始 HID 器件开发的更好方法、尤其是在您正在评估或只是开始开发工程的情况下。 我已经在 Zephyr 上的 CC2745R10_Q1 LaunchPad 上附加了用于成功开发 HID 器件的代码。

    e2e.ti.com/.../peripheral_5F00_hids_5F00_reconnection.zip

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Lea

       您是否测试了所附代码 peripheral_hids_reconnection.zip?   使用附加的代码、iphone 是否可以在断开连接后自动连接?  
    Zephyr 是 TI 平台的不同系统。 现在我们不希望切换到它。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我确实测试过它, iPhone 可以自动重新连接到它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、 Lea

        您能帮助查看 Zephyr 和我们向您发布的 Deom 中的 BLE 服务吗?   您可以使用“NRF CONNECT“应用程序 或其他应用程序查看项目中的 BLE 服务。  我们可以在 Basice_Ble 项目中添加该服务。   我们注意到 uuid 为 0x1800 和 1801 的服务默认添加到服务列表中。  

        还请帮助检查广告数据,你能找到 我们应该添加到广告中的任何数据吗?   我们可以将广播中的数据合并到 BasiceBle。

       现在,我们想确保 iphone  与 HID 自动连接到 BasiceBle。 谢谢!

        

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    Zephyr HID 示例包含其所有 UUID 的列表、其中列出了 HID 服务和电池服务。 它还会在 GATT 表中正确实现这两个服务。

    我尝试在 SimpleLink 演示中重现广播数据、但重新连接 iPhone 是不够的。 我假设 iPhone 会运行一些例程来检查 HID 服务是否有效并符合规范、方法是阅读 GATT 表、然后订阅 HID 通知。 具有有效的 HID 报告映射等...

    我不能确定 iOS 的具体功能是什么来确保 HID 服务是有效的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Lea

       HID 报告映射 是 iphone 可以自动连接 HID 的条件之一。 但对于具有 HID 的 Basic_Ble、报告映射没有问题。 我们还将 Zephyr 中的 HID 报告映射移植到 Basic_Ble、 问题仍然存在。   

        您可以 在 Zephyr HID 样本中禁用 HID GATT Notify。 我认为这是没有影响 iphone 自动连接到它.  

        正如我们在其他平台中测试的那样、 DIS 服务可能是 iphone 自动连接的一个条件。  

        我想我们已经测试了可能会影响 iphone 自动连接的情况。 防漏 面糊服务、防漏服务。 并在广播数据中添加电池服务 uuuid、Dis 服务 UUID、HID 服务 UUID。 但所有这些都无法解决这个问题。  我不知道什么功能是丢失的 iphone 自动连接它。  

        

        

        

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    是的、您必须测试哪些是必要的、哪些是不必要的。 另一个解决方案是与 Apple 开发客户服务联系,并询问需要为 HID 自动重新连接。

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好  

      比较 Zephyr 项目和 BasicBle 与 HID、我们已经测试了所有可能的条件、我们可以做。  我认为影响 iphone 自动连接的条件不应在应用程序/配置文件中。  所以我认为问题应该是可堆叠的。 您能否 将 Zephyr 中的 HID 配置移植到 BasiceBle、并使 app/配置文件中的所有内容相同。   然后使用这两个工程擦除监听器日志?    

       我不知道如何与 Apple developper 客户服务取得联系。 此问题不应出现在应用程序/配置文件中。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我可以问为什么在您的情况下使用 Zephyr 不是一个可接受的解决方案吗?

    此致、
    Lea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们的项目很长时间都在 simplelink 上工作。 我们很难切换到 Zephyr

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Chen:

    我将继续处理此工单。

    您能给我一份清单、列出您在我这边重新创建此问题时尝试过的事情吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Josh

       我们已经完成了 BLE HID 服务包括协议模式字符、报告映射字符、信号报告字符、HID 信息字符、引导鼠标字符、HID 控制字符。  

       同时、我们 添加了 BLE 电池服务和 BLE 设备信息服务。  还 在广播数据中添加 HID UUID 和 Batttery UUID。  

       我们已经尝试了所有信息的 HID 服务要求。 但 iphone 仍然无法自动连接到它。

       在另一个 BLE 平台中、我们只需添加 BLE HID 服务和设备信息服务、iphone 就可以自动连接。

       

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Chen:

    我在重新创建 HID 服务时遇到问题、但我正在处理它。

    深入了解它后、可能需要更改断开连接后的广播序列。 我建议遵循这个广告顺序: 1. 定向广告(到 iOS 设备)-> 2. 快速通用广播-> 3. 慢一般广告。

    我还建议更改 HID 服务的连接间隔、使其更易于与 iOS 连接。 在 SysConfig 中将连接间隔更改为 15-30ms、监控超时更改为 4-6 秒。