嗨Dialog_Support,
我在我的项目中使用ble_app_peripheral引用示例。我添加了“通知”特性,我想更新数据,每当我启用BLE_Scanner应用程序的“通知”特性。这是完全发生,但问题是,如果我禁用“通知”,然后我也得到数据更新在BLE_Scanner应用程序。不理解我哪里出错了。有人能告诉我是什么问题吗?
嗨Rajapurerohit,
好吧,当你启用和禁用通知gattc_write_cmd_ind_handler()被触发并写入客户端配置特征与相应的值,实际更新值的函数是:
if (status == PRF_ERR_OK) / /确认状态{//设置客户端特征配置值Status = attmdb_att_set_value(param->句柄,param->长度,(uint8_t*)&(param->值[0]));}
你可以在禁用通知时检查这个值,如果它被设为零。如果该值为零,当您发送更新值的消息并发送通知时,代码应该通过attmdb_att_get_value(cfg_hdl, &length, &cfg_val)函数检查CCC是否已启用;如果cfg_hdl中的值具有PRF_CLI_START_NTF值,那么设备将继续发送通知。所以我认为错误就在这里。ble_app_peripheral还使用通知来更新ADC值,因此您可以看看这个示例。
由于MT_dialog
嗨Rajapurerohit,
好吧,当你启用和禁用通知gattc_write_cmd_ind_handler()被触发并写入客户端配置特征与相应的值,实际更新值的函数是:
if (status == PRF_ERR_OK) / /确认状态
{
//设置客户端特征配置值
Status = attmdb_att_set_value(param->句柄,param->长度,(uint8_t*)&(param->值[0]));
}
你可以在禁用通知时检查这个值,如果它被设为零。如果该值为零,当您发送更新值的消息并发送通知时,代码应该通过attmdb_att_get_value(cfg_hdl, &length, &cfg_val)函数检查CCC是否已启用;如果cfg_hdl中的值具有PRF_CLI_START_NTF值,那么设备将继续发送通知。所以我认为错误就在这里。ble_app_peripheral还使用通知来更新ADC值,因此您可以看看这个示例。
由于MT_dialog