没有在读取命令中获取数据

了解更多常见问题解答教程

10个帖子/ 0新
最后一篇
Rajan22.
离线
最后一次露面:2个月前1年
加入:2017-12-29 05:09
没有在读取命令中获取数据

你好对话框,

最近我开始使用SDK 6.0.10,在这里我注意到了一些问题。

在示例中BLE_APP_PERITITAL,没有在read命令中获取数据,而能够在通知命令中读取数据。

谢谢

设备:
PM_DIALOG.
离线
最后一次露面:5小时26分钟前
员工
加入:2018-02-08 11:03
嗨rajan22,

嗨rajan22,

很高兴您开始使用我们的SKK6和DA14585产品,但您可以尝试澄清您的问题吗?如果您能够为您提供更多输入,这将是非常有帮助的。

谢谢,PM_DIALOG.

Rajan22.
离线
最后一次露面:2个月前1年
加入:2017-12-29 05:09
嗨,

嗨,

使用DA14586使用SDK 6.0.10.511测试BLE_APP_PERITIELAL示例。

步骤1.调试BLE_APP_PERITELAL程序

步骤2.连接到BLG-PRPH

步骤3.在主要服务def_svc1_uuid_128写入0x01表单特征def_svc1_ctrl_point_uuid_128

步骤4.通过通知命令表单读取数据表单特征def_svc1_adc_val_1_uuid_128并成功获取计数器数据(虚拟ADC数据),默认为程序。

步骤5.尝试通过读取命令表单特征def_svc1_adc_val_1_uuid_128读取数据,但不会将数据作为获取数据在SDK 6.0.4中获取数据。

我们正在使用具有第6.0.10.511版的新产品使用新的SDK开始。

为什么我们无法在阅读命令中获取数据。

在我们的应用程序中,使用read命令获取传感器信息并使用notify命令读取传感器数据。这就是为什么我们需要读取和通知两个命令。

谢谢

Rajan22.
离线
最后一次露面:2个月前1年
加入:2017-12-29 05:09
更多细节,

更多细节,

根据实施的申请

首先,我们需要从控制点启用,然后调用user_custs1_ctrl_wr_ind_handler,它将启动定时器和计时器事件app_adcval1_timer_cb_handler将数据将数据发送到内核,无论我们是否正在读取数据,直到控制点禁用直到禁用。

void app_adcval1_timer_cb_handler(structs custs1_val_ntf_ind_req * req = ke_msg_alloc_dyn(custs1_val_ntf_req,prf_get_task_from_id(task_id_custs1),task_app,custs1_val_ntf_ind_req,def_cust1_adc_val_1_char_len);// adc值待采样静态UINT16_T样本;Sample =(Sample <= 0xFFFF)?(样品+ 1):0;// req-> conhdl = app_env-> conhdl;req-> handle = cust1_idx_adc_val_1_val;req-> length = def_cust1_adc_val_1_char_len;req-> notification = true;memcpy(req->值,和样本,def_cust1_adc_val_1_char_len);KE_MSG_SEND(REQ); if (ke_state_get(TASK_APP) == APP_CONNECTED) { // Set it once again until Stop command is received in Control Characteristic timer_used = app_easy_timer(APP_PERIPHERAL_CTRL_TIMER_DELAY, app_adcval1_timer_cb_handler); } }

有一个类似的问题这里我相信他们使用6.0.6及以上。

PM_DIALOG.
离线
最后一次露面:5小时26分钟前
员工
加入:2018-02-08 11:03
嗨rajan22,

嗨rajan22,

SDK6.0.10的BLE_APP_PHERIALAL示例中的ADC 1特性都读取和通知启用权限。请在user_custs1_def.c中查看custs1_att_db。在尝试阅读特征时形成对等设备时,您期望得到什么?在对等设备中启用通知时,您是否能够看到ADC 1更新?

谢谢,PM_DIALOG.

Rajan22.
离线
最后一次露面:2个月前1年
加入:2017-12-29 05:09
嗨,

嗨,

在对等设备中启用通知时,您是否能够看到ADC 1更新?是,我能够获得虚拟ADC数据(计数器值)。

在尝试阅读特征时形成对等设备时,您期望得到什么?我期待在何时进行对计数数据命令。

谢谢

PM_DIALOG.
离线
最后一次露面:5小时26分钟前
员工
加入:2018-02-08 11:03
嗨rajan22,

嗨rajan22,

让我检查一下,我会回复你。

谢谢,PM_DIALOG.

PM_DIALOG.
离线
最后一次露面:5小时26分钟前
员工
加入:2018-02-08 11:03
嗨rajan22,

嗨rajan22,

您无法读取ADC数据的原因是因为在通过通知发送数据时,CUST1_IDX_ADC_VAL_1_VAL不会在数据库中更新。这不是一个skd bug!为了更新数据库,除了来自custs1_val_ntf_req,您应该发送custs1_val_set_req,以便触发custs1_val_set_req_handler()。如果检查此处理程序的源代码,则会发现执行atmdb_att_set_value()。请尝试以下代码片段:

void app_adcval1_timer_cb_handler(){struct custs1_val_ntf_ind_req * req = ke_msg_alloc_dyn(custs1_val_ntf_req,prf_get_task_from_id(task_id_custs1),task_app,custs1_val_ntf_ind_req,def_svc1_adc_val_1_char_len);struct musts1_val_set_req * req_set = ke_msg_alloc_dyn(custs1_val_set_req,prf_get_task_from_id(task_id_custs1),task_app,custs1_val_set_req,def_svc1_adc_val_1_char_len);// adc值是采样的静态uint16_t样本__attribute __((部分(“保留_mem_area0”),zero_init));Sample =(Sample <= 0xFFFF)?(样品+ 1):0;// req-> conhdl = app_env-> conhdl;req-> handle = svc1_dx_adc_val_1_val;req-> length = def_svc1_adc_val_1_char_len;req-> notification = true;memcpy(req->值,&sample,def_svc1_adc_val_1_char_len); req_set->handle = SVC1_IDX_ADC_VAL_1_VAL; req_set->length = DEF_SVC1_ADC_VAL_1_CHAR_LEN; memcpy(req_set->value, &sample, DEF_SVC1_ADC_VAL_1_CHAR_LEN); ke_msg_send(req); ke_msg_send(req_set); if (ke_state_get(TASK_APP) == APP_CONNECTED) { // Set it once again until Stop command is received in Control Characteristic timer_used = app_easy_timer(APP_PERIPHERAL_CTRL_TIMER_DELAY, app_adcval1_timer_cb_handler); } }

谢谢,PM_DIALOG.

Bojanpotocnik.
离线
最后一次露面:1个月3周前
加入:2019-11-26 11:41
亲爱的对话团队,

亲爱的对话团队,

使用struct custs1_val_set_req时,req_set-> conidx参数不相关?如果是,那么如何设置值“对于所有连接” - 使用GAP_INVALID_CONIDX触发器硬故障。

PM_DIALOG.
离线
最后一次露面:5小时26分钟前
员工
加入:2018-02-08 11:03
嗨bojanpotocnik,

嗨bojanpotocnik,

谢谢你的评论。你能用你的问题提出一个新的论坛机票,因为这个是旧的和关闭的吗?此外,如果您可以澄清您的问题,这将是非常有帮助的。

谢谢,PM_DIALOG.