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

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
10个帖子/ 0新
最后一篇
Rajan22.
离线
最后一次露面:1年5个月前
加入:2017-12-29 05:09
没有在读取命令中获取数据

你好对话框,

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

在示例中BLE_APP_PERITITAL,not getting data in read command whereas able to read data in notification command.

谢谢

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

嗨rajan22,

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

谢谢,PM_DIALOG.

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

你好,

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

步骤1.调试BLE_APP_PERITELAL程序

步骤2.连接到BLG-PRPH

Step 3. In Primary service DEF_SVC1_UUID_128 written 0x01 form characteristic DEF_SVC1_CTRL_POINT_UUID_128

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

Step 5. Trying to read data by reading command form characteristic DEF_SVC1_ADC_VAL_1_UUID_128 but not getting data as aspected as getting data in SDK 6.0.4.

我们开始我们的新产品和新的SDK with version 6.0.10.511.

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

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

谢谢

Rajan22.
离线
最后一次露面:1年5个月前
加入: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.
离线
最后一次露面:15小时18分钟前
职员
加入: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.
离线
最后一次露面:1年5个月前
加入:2017-12-29 05:09
你好,

你好,

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

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

谢谢

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

嗨rajan22,

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

谢谢,PM_DIALOG.

PM_DIALOG.
离线
最后一次露面:15小时18分钟前
职员
加入: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 custs1_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 value to be sampled static uint16_t sample __attribute__((section("retention_mem_area0"), zero_init)); sample = (sample <= 0xffff) ? (sample + 1) : 0; //req->conhdl = app_env->conhdl; req->handle = SVC1_IDX_ADC_VAL_1_VAL; req->length = DEF_SVC1_ADC_VAL_1_CHAR_LEN; req->notification = true; memcpy(req->value, &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.
离线
最后一次露面:4个月2周前
加入:2019-11-26 11:41
亲爱的对话团队,

亲爱的对话团队,

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

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

嗨bojanpotocnik,

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

谢谢,PM_DIALOG.