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.

[参考译文] 主机模式下的简单密钥服务

Guru**** 2563960 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/567982/simple-keys-service-in-hostmode

大家好、

我希望创建与 密钥卡项目相同的服务(简单密钥服务)、但在主机模式测试 中(使用 HCI_Tester)

我尝试在 HCI 测试仪中使用

SEND_GATT_AddService 0x2800、3
WAIT_HCI_Vender_specific Event 5000、0x067F、0x00、、
SEND_GATT_AddAttribute 2800、0x00
WAIT_HCI_Vender_specific Event 5000、0x067F、0x00、、

但我不知道如何设置值来创建此服务

HCI 测试仪的文档或脚本是否适用于此作业?

提前感谢

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

    您好、Nicolas、

    遗憾的是、除了 wiki 页面 http://processors.wiki.ti.com/index.php/LPRF_BLE_HCITester 上的内容之外、没有太多其他文档

    但是、似乎您已经拥有了完全实现简单密钥服务的 GATT 表所需的命令。

    删除:

    SEND_GATT_AddAttribute 2800、0x00
    WAIT_HCI_Vender_specific Event 5000、0x067F、0x00、、


    添加按键状态的属性:

    #按键状态
    SEND_GATT_AddAttribute "E1:FF"、0x01
    WAIT_HCI_Vender_specific Event 0、0x067f、0、0xfdfe、

    您似乎也缺少了 CCC 属性、您可以通过"Send_GATT_AddAttribute"添加该属性:

    #Add Characteristic Declaration - Device Name
    SEND_GATT_AddAttribute "02:29"、0x03
    WAIT_HCI_Vender_specific Event 0、0x067f、0、0xfdfe、

    您还可以通过以下方式添加说明:

    #Add Characteristic Description
    SEND_GATT_AddAttribute "01:29"、0x01
    WAIT_HCI_Vender_specific Event 0、0x067f、0、0xfdfe、


    请记住、这只是用于测试、它不能代替实际的 GATT 服务器-因此无法设置值。 您可以在写入时或连接后的 ATT 响应时发送通知。 您必须手动执行这些操作。 请注意、命令库具有所有可用的命令。

    此致、

    反叛分子

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

    谢谢、这种帮助对我有所帮助。

    我已经通过添加服务和添加属性来重新创建设备、以重新创建示例密钥卡。 很好!!!

    在我的主机设备和 BLE 设备监控器之间是可以的

    但是、当我使用传感器标签应用通过智能手机替代 BLE 器件监控器时

    但是、当我连接时、我在连接时收到一条错误消息  

    #Send_ATT_ReadByGrpTypeRsp 0、6、""
    等待 GAP_LINK_Establish
    WAIT_HCI_Vender_specific Event 0、0x0605、0x00、、、、 、、、、、
    #WAIT Att_Read_BY_GrpType_Req
    WAIT_HCI_Vender_specific Event 0、0x0510、0x00、、、 、


    15:11:01.710 --
    15:11:01.710数据包"HCI_Vendor_specific Event "、操作码0x00ff
    15:11:01.725参数:
    15:11:01.725 |事件操作码:0x0605 (GAP_LinkEstablished)
    15:11:01.725|状态:0x00 (成功)
    15:11:01.725 |器件地址类型:0x01 (ADDRTYPE_STATIC)
    15:11:01.725 |设备地址:"41:EF:71:24:36:29"
    15:11:01.725 | connectionHandle : 0x0000
    15:11:01.725 | connRole:0x04 (GAP_PROFILE_PERipheral)
    15:11:01.725 | connInterval : 0x001d
    15:11:01.725 | connLatency : 0x0000
    15:11:01.725 | connTimeout : 0x07d0
    15:11:01.725 |时钟精度: 0x01
    15:11:01.725 --
    15:11:01.846传入转储:
    15:11:01.846 0000:04 ff 0d 1206 00 06 00 06 00 06 00 00 00 00 d0 07…
    15:11:01.872 --
    15:11:01.872数据包"HCI_Vendor_specific Event "、操作码0x00ff
    15:11:01.888参数:
    15:11:01.888 |事件操作码:0x0612
    15:11:01.888 --
    15:11:01.888错误-数据包大小。 GOT:16 (0x10)、预期:5 (0x05)
    15:11:01.889传入转储:
    15:11:01.889 0000:04 ff 0c 10 05 00 06 01 00 ff 00 28… (
    15:11:01.900错误-事件操作码不匹配。 预期值:0x0510、得到:0x0612
    15:11:01.900错误行:WAIT_HCI_Vender_specific Event 0、0x0510、0x00、、、、 、
    15:11:01.900 --
    15:11:01.900***脚本结束***

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有关信息、我认为它是连接参数更新的链接、但我找不到有关操作码0x0612的信息
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    听起来不错、这也不是为了替换 GAP 层、当中央设备请求更新时、您必须发送'Send_GAP_UpdateLinkParamReqReply'。

    或者、您必须是第一个申请的人:

    SEND_L2CAP_ConnParamUpdateReq 0、80、160、0、1000
    SEND_GAP_UpdateLinkParamReq 0、80、160、0、1000


    具体取决于您是否使用4.2功能。


    此致、

    反叛分子

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,但是测试 WAIT_HCI_Vendor_specific 事件是什么,因为我似乎收到操作码0x0612:错误-事件操作码不匹配。 预期值:0x0510、得到:0x0612
    但我不知道该操作码
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    经过更多的访问后, 以下是我所掌握的信息:  

    使用 WIKO 和 SimpleLink StarterV3.8 (内部版本25):  

    10:13:17.168错误-事件操作码不匹配。 预期:0x067f、GOT:0x0607 (GAP_LinkParamUpdate)
    10:13:17.168错误行:WAIT_HCI_Vendor_Specific 事件0、0x067f、0、0xFD09、

    e2e.ti.com/.../HCITester-Trace-Log-with-WIKO.htm

    使用 Samsung Galaxy A3和 SimpleLink StarterV3.8 (内部版本25)

    10:18:10.136错误-数据包大小。 GOT:16 (0x10)、预期:5 (0x05)
    10:18:10.137传入转储:
    10:18:10.137 0000:04 ff 0c 100500 00 0601 00 ff 0028........ (
    10:18:10.145错误-事件操作码不匹配。 预期值:0x0510、得到:0x0612
    10:18:10.145错误行:WAIT_HCI_Vender_specific Event 0、0x0510、0x00、、、、 、

    e2e.ti.com/.../HCITester-Trace-Log-GALAXY-A3.htm

    您的帮助

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

    这里是我的脚本 HCI Testere2e.ti.com/.../Init-Peripheral_2D00_Discovery.txt

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

    正如您之前发现的、问题是由于 param 更新请求造成的。

    另请注意、在 HCI 测试仪中、如果您单击某个命令并查看"Values"窗口、它应该会告诉您任何命令的所有可能输入。 例如、
    Wait_HCI_Vendor_specific 事件0、 、0x00、、、、 、、、、
    将显示可等待 HCI 供应商特定事件的所有可能操作码。 (如果"值"窗口不存在、请单击工具栏中的"视图"并启用它)

    回到您的问题-问题在于您的电话在连接时发出更新请求。 (请注意、在监听器日志中、请求来自电话)您应该对我之前提到的这些内容做出响应。

    与建立连接后:

    #等待建立
    WAIT_HCI_Vender_specific Event 0、0x0605、0x00、、、、 、、、、

    等待参数更新请求:

    #等待对等方发起参数更新请求
    WAIT_HCI_Vender_specific Event 0、0x0612、0x00、、、 、

    并以以下方式进行响应:

    SEND_GAP_UpdateLinkParamReq 0、80、160、0、1000 (选择所需的设置)
    WAIT_HCI_Vender_specific Event 0、0x0607、、、、、 、

    然后继续执行您的脚本。 我希望这对您有所帮助、

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

    感谢您的回答

    没有操作码

    但与您的代码一起使用

    等待参数更新请求:

    #等待对等方发起参数更新请求
    WAIT_HCI_Vender_specific Event 0、0x0612、0x00、、、 、  

    正常、器件已连接。

    Nut 我在该操作码上未找到任何内容

    您能不能解释一下这是什么操作码、以及为什么与其他智能手机不是相同的操作码

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

    虽然看起来您有旧版本的库、这可能是您看不到更新的操作码的原因

    我刚刚更新了库、立即尝试: processors.wiki.ti.com/.../File:HCITesterXML.zip

    除此之外、您想解释哪种操作码? 通常、您可以在 TI 供应商特定指南中找到所有操作码(来自特定于供应商的事件)的详细信息。

    此致、
    反叛分子
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将尝试您的库。
    关于操作码我已阅读 TI 供应商特定指南版本2.2.1、但我尚未看到有关此操作码的信息
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我已经使用新的 Lib 进行了测试、这是可以的
    此事件已知
    21:00:36.840传入转储:
    21:00:36.840 0000:04 ff 0d 12 06 00 00 06 00 06 00 00 00 d0 07…
    21:00:36.876 --
    21:00:36.876数据包"HCI_Vendor_specific Event "、操作码0x00ff
    21:00:36.899参数:
    21:00:36.899 |事件操作码 :0x0612 (GAP_LinkParamUpdateRequest)
    21:00:36.899 |状态 :0x00 (成功)
    21:00:36.899 | connectionHandle : 0x0000
    21:00:36.899 | minConnInterval:0x0006
    21:00:36.899 | maxConnInterval:0x0006
    21:00:36.899 | connLatency :0x0000
    21:00:36.899 | connTimeout :0x07d0
    21:00:36.899 --

    在"视图值"中、此事件可供使用
    非常感谢你的帮助

    明天、我将用 µC 取代 HCI_Tester
    新的一天,新的问题!!!
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴听到尼古拉!

    祝你好运!!

    此致、
    反叛分子