无法在read命令中获取数据

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
10个员额/0个新员额
最后一篇文章
拉詹22
离线
最后一次见到:1年9个月前
加入:2017-12-29 05:09
无法在read命令中获取数据

你好,对话,

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

举例来说ble_应用程序_外围设备,在read命令中无法读取数据,而在notification命令中能够读取数据。

谢谢

设备:
PM_对话框
离线
最后一次见到:4天19小时前
工作人员
加入:2018-02-08 11:03
你好,拉詹22,

你好,拉詹22,

很高兴您开始使用我们的SKK6和DA14585产品,但您能否尝试澄清您的问题?如果您能够提供更多关于您的问题的信息,这将非常有帮助。

谢谢,下午好

拉詹22
离线
最后一次见到:1年9个月前
加入:2017-12-29 05:09
你好

你好

使用带有DA14586的SDK 6.0.10.511测试ble_app_外围示例。

第一步。调试ble_app_外围程序

步骤2.连接至BLG-PRPH

步骤3。在主服务中DEF_SVC1_UUID_128写入0x01形式的特征DEF_SVC1_CTRL_POINT_UUID_128

第四步。程序默认情况下,通过通知命令从特征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开始我们的新产品。

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

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

谢谢

拉詹22
离线
最后一次见到:1年9个月前
加入:2017-12-29 05:09
更多细节,

更多细节,

根据实施的应用程序

首先,我们需要从控制点启用,然后将调用用户\u custs1\u ctrl\u wr\u ind\u处理程序,它将启动计时器和计时器事件app\u adcval1\u timer\u cb\u处理程序将继续向内核发送数据,无论我们是否正在读取数据,直到被控制点禁用为止。

void app_adcval1_timer_cb_handler(){struct custs1_val_ntf_ind_req=KE_MSG_ALLOC_DYN(custs1_val_ntf_req,prf_get_task_from_id(task_id_custs1),task_app,custs1_val_ntf_indu req,DEF_ind_req,DEF_custuin1_ADC_ADC_vall_ADC_1_val_1_1)//CHAR待采样的ADC值静态采样;样本<=0xFF1:0;//req->conhdl=app_env->conhdl;req->handle=CUST1_IDX_ADC_VAL_1_VAL;req->length=DEF_CUST1_ADC_VAL_1_CHAR;req->notification=true;memcpy(req->value,&sample,DEF_CUST1_ADC_VAL_CHAR 1_CHAR LEN);ke_msg_send(req);if(ke_state_get(TASK_app)==app){//再次设置它,直到在控制特性计时器\u used=app\u easy\u timer(app\u PERIPHERAL\u CTRL\u timer\u DELAY,app\u adcval1\u timer\u cb\u handler);}

提出了一个类似的问题在这里我相信他们使用的是6.0.6及以上版本。

PM_对话框
离线
最后一次见到:4天19小时前
工作人员
加入:2018-02-08 11:03
你好,拉詹22,

你好,拉詹22,

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

谢谢,下午好

拉詹22
离线
最后一次见到:1年9个月前
加入:2017-12-29 05:09
你好

你好

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

当尝试从对等设备读取特征时,您希望得到什么?我希望在阅读指挥部。

谢谢

PM_对话框
离线
最后一次见到:4天19小时前
工作人员
加入:2018-02-08 11:03
你好,拉詹22,

你好,拉詹22,

让我检查一下,然后再给你回复。

谢谢,下午好

PM_对话框
离线
最后一次见到:4天19小时前
工作人员
加入:2018-02-08 11:03
你好,拉詹22,

你好,拉詹22,

无法读取ADC数据的原因是,当通过通知发送数据时,数据库中的CUST1_IDX_ADC_VAL_1_VAL没有更新。这不是SKD错误!为了更新数据库,除了从CUSTS1_VAL_NTF_请求外,还应发送CUSTS1_VAL_SET_请求以触发CUSTS1_VAL_SET_请求处理程序()。如果检查此处理程序的源代码,您将发现已执行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 custs1_val_set_req *req_set = KE_MSG_ALLOC_DYN(custs1_val_set_req, prf_get_task_from_id(task_id_cust1), TASK_APP, custs1_val_set_req, def_svc1_adc_val_char_len);//要采样的ADC值static uint16_t采样__attribute__((section("retention_mem_area0"), zero_init));Sample = (Sample <= 0xffff) ?(样本+ 1):0;/ /请求- > conhdl = app_env - > conhdl;申请- >处理= SVC1_IDX_ADC_VAL_1_VAL;申请- >长度= DEF_SVC1_ADC_VAL_1_CHAR_LEN;申请- >通知= true;顺利进行,memcpy(请求- >价值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); } }

谢谢,下午好

博扬波托克尼克
离线
最后一次见到:4周1天前
加入:2019-11-26 11:41
亲爱的对话小组:,

亲爱的对话小组:,

当使用struct custs1\u val\u set\u req时,req\u set->conidx参数不相关?如果相关,那么如何设置“所有连接”的值-使用GAP\u INVALID\u conidx触发硬故障。

PM_对话框
离线
最后一次见到:4天19小时前
工作人员
加入:2018-02-08 11:03
嗨bojanpotocnik,

嗨bojanpotocnik,

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

谢谢,下午好