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

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
10个帖子/ 0个新帖子
最后发表
rajan22
离线
最后看到:1年8个月前
加入:2017-12-29 05:09
在读取命令中没有获取数据

你好,对话框,

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

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

谢谢

设备:
PM_Dialog
离线
最后看到:2周3天前
工作人员
加入:2018-02-08 11:03
嗨rajan22,

嗨rajan22,

很高兴你开始使用我们的SKK6和DA14585产品,但你能试着澄清一下你的问题吗?如果你能提供更多关于你的问题的信息,那将非常有帮助。

谢谢,PM_Dialog

rajan22
离线
最后看到:1年8个月前
加入:2017-12-29 05:09
你好,

你好,

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

步骤1。调试ble_app_peripheral程序

步骤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
离线
最后看到:1年8个月前
加入:2017-12-29 05:09
一些更多的细节,

一些更多的细节,

根据应用程序实现

首先,我们需要启用从控制角度然后user_custs1_ctrl_wr_ind_handler将调用,它会启动计时器,计时器事件app_adcval1_timer_cb_handler将继续发送数据到内核是否我们读取数据,持续到残疾人的控制点。

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_CUST1_ADC_VAL_1_CHAR_LEN);//要采样的ADC值static uint16_t采样;Sample = (Sample <= 0xffff) ?(样本+ 1):0;/ /请求- > conhdl = app_env - > conhdl;申请- >处理= CUST1_IDX_ADC_VAL_1_VAL;申请- >长度= DEF_CUST1_ADC_VAL_1_CHAR_LEN;申请- >通知= true;顺利进行,memcpy(请求- >价值DEF_CUST1_ADC_VAL_1_CHAR_LEN);ke_msg_send(要求的); 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
离线
最后看到:2周3天前
工作人员
加入:2018-02-08 11:03
嗨rajan22,

嗨rajan22,

SDK6.0.10的ble_app_peripheral示例中的ADC 1特性启用了读取和通知权限。请检查user_custs1_def.c中的custs1_att_db。当试图读取对等设备的特征时,您希望得到什么?在对等设备中启用通知后,您是否能够看到ADC 1的更新?

谢谢,PM_Dialog

rajan22
离线
最后看到:1年8个月前
加入:2017-12-29 05:09
你好,

你好,

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

当试图读取对等设备的特征时,您希望得到什么?我希望在什么时候得到正在进行的计数器数据命令。

谢谢

PM_Dialog
离线
最后看到:2周3天前
工作人员
加入:2018-02-08 11:03
嗨rajan22,

嗨rajan22,

让我查一下,然后给你答复。

谢谢,PM_Dialog

PM_Dialog
离线
最后看到:2周3天前
工作人员
加入: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()。如果检查这个处理程序的源代码,您将发现执行了attmdb_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;/ /请求- > conhdl = app_env - > conhdl;req-> handle = svc1_dx_adc_val_1_val;req-> length = def_svc1_adc_val_1_char_len;申请- >通知= 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
离线
最后看到:2个月2周以前
加入:2019-11-26他们就
亲爱的团队对话框,

亲爱的团队对话框,

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

PM_Dialog
离线
最后看到:2周3天前
工作人员
加入:2018-02-08 11:03
嗨bojanpotocnik,

嗨bojanpotocnik,

谢谢你的评论。你能不能提出一个新的论坛门票与你的问题,因为这个旧的和关闭的?此外,如果你能澄清你的问题,那将非常有帮助。

谢谢,PM_Dialog