3个帖子/ 0个新
最后发表
CheMax
离线
最后看到:三年六个月前
加入:2015-01-12 07:03
确认指示

你好,对话框

在我的项目中,基于empty_peripheral_template (SDK v5.0.2.1),我有两个具有指示属性的特征(自定义服务)。我发送指示的消息从我的设备(服务器或外围角色)在下一个代码:

struct custs1_val_ind_req* req_1 = KE_MSG_ALLOC_DYN
TASK_CUSTS1 TASK_APP,
custs1_val_ind_req DEF_CUST1_TEST_1_CHAR_LEN);
struct custs1_val_ind_req* req_2 = KE_MSG_ALLOC_DYN(custs1_val_ind_req,
TASK_CUSTS1 TASK_APP,
custs1_val_ind_req DEF_CUST1_TEST_2_CHAR_LEN);
//复制数据到char_value并发送消息
Req_1 ->conhdl = app_env->conhdl;
req_1->handle = CUST1_IDX_TEST_1_VAL;
req_1->length = DEF_CUST1_TEST_1_CHAR_LEN;
memcpy(req_1->value, &test_uart_data_rx[31], DEF_CUST1_TEST_1_CHAR_LEN);
ke_msg_send (req_1);
//复制数据到char_value并发送消息
Req_2 ->conhdl = app_env->conhdl;
req_2->handle = CUST1_IDX_TEST_2_VAL;
req_2->length = def_cust1_test_char_len;
memcpy(req_2->value, &test_uart_data_rx[11], def_cust1_test_char_len);
ke_msg_send (req_2);

这段代码放置在回调函数中,这是我指定的arch_main_loop_callbacks.app_on_ble_powered

第二个设备(客户端或中心角色)由UART从PC (prox_monitor_ext项目)控制。当我通过指示消息接收数据时,我在UART上看到在两个连接间隔(连接间隔设置为10毫秒)中逐个发送指示消息,即两个指示消息之间的时间约为20-22毫秒。

现在,问题:
1.我是否可以在一个时间段内发送两个指示信息?
2.我怎样才能看到适应症确认?我没有看到解析这些事件的函数或消息
3.我读下一篇文章“从对等设备事件中注册或取消注册,例如特定服务的指示或通知。
专用连接上的属性句柄范围。关于GATTC_REG_TO_PEER_EVT_CMD,但我不完全理解它们的意思。你能解释一下这是什么意思吗?

如果你需要,我可以从逻辑分析仪窗口加载屏幕截图。

谢谢,贝瑟先生。

设备:
MT_dialog
离线
最后看到:4个月4天前
工作人员
加入:2015-06-08 34
嗨Chemax,

嗨Chemax,

关于指示的事情是外围设备需要确认才能发送下一个指示,所以您不能在一个时点发送两个指示,因为第一个指示必须首先由主设备封装。指示确认是一个GATTC_CMP_EVT,它触发CUSTS1_VAL_IND_CFM,并由user_catch_rest_hndl()函数处理。使用特定消息的函数用于在客户端上赋予特定特征其通知或指示属性。它表示这个特定的特性具有通知。

由于腻过

CheMax
离线
最后看到:三年六个月前
加入:2015-01-12 07:03
Tnahks腻过

Tnahks腻过

你的回答对我很有帮助。

致以最诚挚的问候,马克斯

主题锁定