我有一个问题,如果我发送CUSTS1_VAL_NTF_REQ消息太快。如果我发送3个不同的信息(例如:“A”,“B”和“C”)SDK向中央发送3,但中央经常收到以下消息“B”,“B”,“C”或“B”,“C”,“C”。我用嗅探器验证了这一点,但如果我使用android作为中心或拉斯派Pi,问题也显而易见。在SDK中没有抛出断言,也没有在任何函数上抛出错误。
For (int32_t I = 0;我< 3;我+ +){
//设置缓冲区…
struct custs1_val_ntf_req *req = KE_MSG_ALLOC_DYN(custs1_val_ntf_req, TASK_CUSTS1, TASK_APP, custs1_val_ntf_req, length);
申请- > conhdl = app_env - > conhdl;
申请- >处理= CUST1_IDX_SERIAL_RX_VAL;
申请- >长度=长度;
memcpy(请求- >值、缓冲长度);
ke_msg_send(要求的);
}
设备:
嗨,火星,
你将不得不等待CUSTS1_VAL_NTF_CFM到达之前发送的下一个通知相同的特点,如果不是您将更新值的数据库与后者价值时,内核将通知到缓冲与相同的值,它将把两个通知因为通知的值是从数据库中获取的。我建议你看看以下过去的线程:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/bytes-transfered
谢谢,PM_Dialog
好的,谢谢。很遗憾有消息,但还是要添加另一个层来处理这种情况。