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_cust1), TASK_APP, custs1_val_ntf_ind_req, DEF_CUST1_ADC_VAL_1_CHAR_LEN);//要采样的ADC值静态uint16_t 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 ->通知= true;memcpy(req->值,&sample, 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); } }
嗨rajan22,
很高兴你开始使用我们的SKK6和DA14585产品,但你能试着澄清你的问题吗?如果你能就你的问题提供更多的意见,那就太有帮助了。
谢谢,PM_Dialog
你好,
使用SDK 6.0.10.511和DA14586测试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命令读取传感器数据。这就是为什么我们需要读取和通知这两个命令。
谢谢
更多细节,
根据应用程序实现
首先,我们需要从控制点启用,然后user_custs1_ctrl_wr_ind_handler将被调用,它将启动计时器和计时器事件app_adcval1_timer_cb_handler将继续向内核发送数据,无论我们是否正在读取数据,并一直持续到被控制点禁用。
还有一个类似的问题在这里我相信他们使用的是6.0.6及以上版本。
嗨rajan22,
SDK6.0.10的ble_app_peripheral示例中的ADC 1特性同时启用了读取和通知权限。请检查user_custs1_def.c中的custs1_att_db。当试图读取对等设备的特性时,您期望得到什么?当在对端设备中启用通知时,您是否能够看到ADC 1更新?
谢谢,PM_Dialog
你好,
当在对端设备中启用通知时,您是否能够看到ADC 1更新?是的,我能够获得虚拟ADC数据(计数器值)。
当试图读取对等设备的特性时,您期望得到什么?我期待得到持续的计数器数据,当阅读命令。
谢谢
嗨rajan22,
让我查一下,然后给你答复。
谢谢,PM_Dialog
嗨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()。请尝试下面的代码片段:
谢谢,PM_Dialog
亲爱的Dialog团队:
当使用struct custs1_val_set_req时,req_set->conidx参数不相关?如果是,那么如何为“所有连接”设置值-使用GAP_INVALID_CONIDX会触发硬错误。
嗨bojanpotocnik,
谢谢你的评论。您的问题能否提出一个新的论坛票,因为这个论坛票已经旧了,而且已经关闭了。另外,如果你能澄清一下你的问题,那就太有帮助了。
谢谢,PM_Dialog