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.

[参考译文] CC2652R:如何从BTool (HOST_TEST应用程序)使用GATT服务器

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1096805/cc2652r-how-to-use-gatt-server-from-btool-host_test-app

部件号:CC2652R

您好,我正在使用 simplelink_cc13xx_cc26xx_sdk_6_10_00_29,并希望通过BTool或UNPI使用GATT服务器

我已阅读本指南: https://software-dl.ti.com/simplelink/esd/simplelink_cc2640r2_sdk/2.20 git.git/exports 00.49 /docs/bl5stack/ble_user_guide/html/ble-stack-5.x/git.html#git-server-abstractual

并希望使用GATT服务器的一些抽象功能(如 GATTServApp),但无法使用BTool或HOST_TEST示例执行此操作。

ATM我们将串行命令从Windows/C++发送到host_test闪存的TI Launchpad,实现了大部分BLE功能。 现在,我们想为其添加GATT服务器功能。  

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

    您好,

    下面介绍了host_test示例公开的GATT API。 GATT文档 可从此处获取

    如果您缺少某些命令或事件,请告知我们。

    此致,

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

    我看到仅适用于GATT服务器的功能来添加/删除服务和添加属性。 加上与广告相关的广告。

      

    1)这些功能是否足以处理GATT服务器?

    2) GATT服务器的所有响应是否由BLE堆栈在内部处理? 如"发现所有主要特征"的自动响应?  还是在属性值更改且设置了相应的CCCD时自动发送指示或通知?

    3)我看不到用于更改属性值的函数。 服务器将如何更改此值?

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

    您好,

    我已将该主题重新分配给支持您的团队。

    此致,

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

    您好,

    1)是的,提供的功能可用于创建和处理GATT服务器。 主机测试示例已包括一些GATT服务和特征,例如设备名称。

    2)服务器响应由堆栈处理,正确。

    3)使用'GATT'中列出的功能访问属性值,例如GATT_ReadCharValue或GATT_WriteCharValue。

    如果要在没有btool的代码中实现配置文件,我建议使用 SimpleLink Academy:自定义配置文件

    如果您的问题得到了回答,请告诉我。

    此致

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

    我已经了解了提供的操作方法(SimpleLink Academy:自定义配置文件)。 这个例子是SimplePeripheral,它与host_test有很大的不同,我很难找到如何在现有host_test默认服务的基础上修补简单的电池配置文件。 (host_test是我们的必备工具,因为我们通过UART和SPI使用该设备)

    1)我看到在Host_test中实施了2个默认服务。 这些服务/配置文件在何处/如何实施?  

    2)如何将我的battery_service添加到host_test? 我是否应该在HostTestApp_init中的batteryService_AddService中添加一个呼叫,然后再添加:

    // Add our services to GATT Server
    VOID GGS_AddService(GAP_SERVICE);
    VOID GATTServApp_AddService(GATT_ALL_SERVICES);

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

    您好,

    我现在看到,主机测试的结构与SimplePeripheral不同,但学院的更改也可以应用。

    1)这些默认服务和特征在SDK的源文件中定义。 该项目在StackWrapper/Host/中列出这些文件,但它们链接到SKD文件。 如果您修改它们,它们将在项目文件夹之外修改,因此请注意可能对其他项目和工作区产生的副作用。 您应该能够删除链接的文件并从SDK复制到项目文件夹。

    2)我从SimpleLink学院几乎遵循相同的步骤,例如,我添加了两个解决方案文件Application/services/sunlightService.c和.h

    然后添加了服务和回叫,并设置了默认值。 我没有包括通过按钮按下和计时器进行的更新,但现在正在btool中发现这些服务,包括读/写访问。 修改后的host_test_app.c文件以及其他两个文件都被附加。

    最后一步是以下步骤(从SimpleLink学院复制)

    通过Application/services打开项目属性,导航至Build (构建)→Arm Compiler (Arm编译器)→Include Options${PROJECT_LOC}/Application/services (包含选项)并添加到列表,将添加到#include路径。

    e2e.ti.com/.../host_5F00_test_5F00_app.c

    e2e.ti.com/.../7217.sunlightService.c

    e2e.ti.com/.../4162.sunlightService.h

    这应该为您提供实施自己的服务的良好基础。

    此致

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

    感谢您的详细回答。 从第一次尝试开始就工作,现在我可以在Android中看到日光服务。

    我必须启动BTool,将角色更改为外围设备(在HSIExt_ResetSystemCommand之后),创建广告,启用广告,然后我可以在扫描结果中看到TI,可以连接到它并看到日光服务。

    将尝试立即适应蓄电池服务。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    --------------------------------------------------------------------
    [15] : <Tx> - 02:25:36.853
    -Type : 0x01 (Command)
    -OpCode : 0xFC1D (HCIExt_ResetSystemCmd)
    -Data Length : 0x01 (1) byte(s)
    Type : 0x00 (0) (Chip Reset)
    Dump(Tx):
    0000:01 1D FC 01 00 .....
    --------------------------------------------------------------------
    [16] : <Rx> - 02:25:36.866
    -Type : 0x04 (Event)
    -EventCode : 0x00FF (HCI_LE_ExtEvent)
    -Data Length : 0x05 (5) bytes(s)
    Event : 0x041D (1053) (HCIExt_ResetSystemCmdDone)
    Status : 0x00 (0) (SUCCESS)
    CmdOpCode : 0xFC1D (HCIExt_ResetSystemCmd)
    Dump(Rx):
    0000:04 FF 05 1D 04 00 1D FC ........
    --------------------------------------------------------------------
    [17] : <Tx> - 02:40:37.345
    -Type : 0x01 (Command)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

x 出现错误。请重试或与管理员联系。