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.

[参考译文] CC2640R2F:如何设置通知长度

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1049083/cc2640r2f-how-to-set-notification-length

器件型号:CC2640R2F

SDK 4.40、示例外设、它可以用一个字节通知、如何使其更多功能?

我已经尝试修改了它、但失败了。

这是我的更改代码

// Simple Profile Characteristic 4 Properties
//static uint8 simpleProfileChar4Props = GATT_PROP_NOTIFY;
static uint8 simpleProfileChar4Props = GATT_PROP_READ | GATT_PROP_NOTIFY;

// Characteristic 4 Value
//static uint8 simpleProfileChar4 = 0;
static uint8 simpleProfileChar4[SIMPLEPROFILE_CHAR5_LEN] = {0};


// Characteristic Value 4
      {
        { ATT_BT_UUID_SIZE, simpleProfilechar4UUID },
        //0,
        GATT_PERMIT_READ,
        0,
        simpleProfileChar4
      },
      
//in SimpleProfile_SetParameter
case SIMPLEPROFILE_CHAR4:
      //if ( len == sizeof ( uint8 ) )
      if ( len <= SIMPLEPROFILE_CHAR5_LEN )
      {
        //simpleProfileChar4 = *((uint8*)value);
        memcpy(simpleProfileChar4,value,len);
        // See if Notification has been enabled
        int s = GATTServApp_ProcessCharCfg( simpleProfileChar4Config, simpleProfileChar4, FALSE,
                                    simpleProfileAttrTbl, GATT_NUM_ATTRS( simpleProfileAttrTbl ),
                                    INVALID_TASK_ID, simpleProfile_ReadAttrCB );
      }
      else
      {
        ret = bleInvalidRange;
      }
      break;

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

    如果您的 Case SIMPLEPROFILE_CHAR4:"中的值和 len 正确、我看不到它不起作用的原因。 您使用什么主机应用程序来检查通知结果? 我建议您使用 BLE 监听器来检查修订后的 simple_peripheral 示例在特征4 通知中发送的内容。

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

    测试应用程序是 NRF 连接和浅蓝色、我自己的应用程序可以很好地用于 SDK 1.40。  

     sdk4.40如何 知道通知的长度?   它是否始终通知特征4的所有字节、或者我可以通知其特定长度的字节。

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

    GATTServApp_ProcessCharCfg 将调用 simpleProfile_ReadAttrCB 以发送特征4通知。 问题是、您是否还会修改以下代码以在 simpleProfile_ReadAttrCB 中使用正确的长度来使其发送正确的长度和缓冲区?

          case SIMPLEPROFILE_CHAR4_UUID:
            *pLen = 1;
            pValue[0] = *pAttr->pValue;
            break;
    

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

    已解决! 谢谢!