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.

[参考译文] CC2640:如何将"通知特征"的默认值设置为"是"

Guru**** 2551110 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/576912/cc2640-how-to-set-the-default-value-of-notify-of-a-characteristic-to-yes

器件型号:CC2640

我有18个特征、"通知"值需要为"是"才能使 IOS 应用正常运行。

在每次连接时、我都会让 IOS 应用程序读取每个特征是否设置为 Notify、而不会失败、所有18个特征都不会发出通知。  因此、对于所有18个版本、我必须从 IOS 应用程序请求"通知"状态更改。

每次我的用户连接时、这会浪费5秒钟。

如何在 ccs7中将我的18个特征的"通知"默认值设置为"是"并修改了 ProjectZero?

谢谢、

戴尔

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

    要在应用程序中默认启用通知、您可以将 CCCD 的值设置为服务配置文件中的0x01。 例如、在 SPP_ble_server 项目中:

    bStatus_t SerialPortService_AddService( uint32服务)

    (笑声)
    #if (已定义(AUTO_NOCICATION)&&(AUTO_NOSTICATION == true)
    //硬编码以在 GATT 表中启用通知
    SerialPortServiceDataConfig[0].connHandle = 0x0000;
    SerialPortServiceDataConfig[0].value = 0x01;
    #endif

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

    扎希德

    谢谢、但我在 SimpleLink Academy ProjectZero 中找不到类似的东西。

    有什么关于 ProjectZero 的建议?

    我已经在 gattservapp_util.c 中获得了这一信息:

    *@简要写入给定
    *的客户端特征配置 客户端。
    *
    * 注意:每个客户端都有自己的客户端实例
    化* 特征配置。 客户端的写入
    * 特征配置仅影响
    * 配置该客户端。
    *
    *@param connHandle -连接句柄。
    *@param charCfgTbl -客户端特征配置表。
    *@参数值-属性新值。
    *
    *@return succeed or failure
    */
    uint8 GATTServApp_WriteCharCfg (uint16 connHandle、gattCharCfg_t * charCfgTbl、
    uint16 value )
    {
    gattCharCfg_t *pItem;
    
    pItem = gattServApp_FindCharCfgItem (connHandle、charCfgTbl);
    if (pItem == NULL)
    {
    pItem = gattServApp_FindCharCfgItem (invalid_CONNNANDLE、charCfgTbl);
    if (pItem == NULL)
    {
    返回(ATT_ERR_Insufficient 资源);
    }
    
    pItem->connHandle = connHandle;
    }
    
    //为此客户端写入新值
    pItem->Value = Value;
    
    return (Success);
    }
    

    但我不知道如何使用它。

    戴尔

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

    例如、如果您希望打开按钮服务的通知、那么

    extern bStatus_t ButtonService_AddService( uint8_t rspTaskId )

    (笑声)
    BS_BUTTON0Config[0].connHandle = 0x0000;
    BS_BUTTON0Config[0].value = 0x01;
    (笑声)

    索引[0]表示第一个连接、[1]第二个连接等

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

    啊,我头上的灯泡开始亮了:)

    因此、我尝试了这种方法、但它似乎没有产生预期的结果:

    extern bStatus_t HaloService_AddService (uint8_t rspTaskId)
    {
    uint8_t status;
    
    //分配客户端特征配置表
    HS_OFFSETConfig =(GattCharCfg_t *)iCall_malloc (sizeof (GattCharCfg_t)* linkDBNumConns );
    if ={= OFFSETHS_OUT_SETConfig)
    
    return (bleMemAllocError);
    }
    HS_OFFSETConfig[0]。connHandle = 0x0000;
    HS_OFFSETConfig[0];value = 0x01;
    //初始化客户端特征配置属性
    GATTServApp_InitCharCfg (INVALID_CONTOANDLE、HS_OFFSETConfig);
    
    
    //分配客户端特征配置属性(
    
    * INTOTHR_INITCHAGFG)= NHR_INTSN (INTRUSTRIGN)(IN_INTSN)= NOT_NHRESHOTOCLUSTRUSTRUSTRUSTRUSTRUS_IN_INTRIGN);//分配客户端特征值= NOT_INTSN (INTSN
    
    return (bleMemAllocError);
    }
    HS_TOTALTIMEConfig[0]。connHandle = 0x0000;
    HS_TOTALTIMEConfig[0]。value = 0x01;
    //初始化客户端特征配置属性
    GATTServApp_InitCharCfg (INVALID_CONNHANDLE、HS_TOTALTIMEConfig)
    
    ;...... 

    我还在做什么?

    戴尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    还有什么想法让我再次回到这个问题上?

    谢谢、
    戴尔