嗨,对话框中,
我使用的发送函数是send_ble_data (const uint8_t *数据,uint16_t长度),
Send_ble_data (uint8_t *data,uint16_t length)
{
struct sps_server_data_tx_req *req = KE_MSG_ALLOC_DYN(sps_server_data_tx_req,
TASK_SPS_SERVER,
TASK_APP,
sps_server_data_tx_req,
len);
申请- >长度=兰;
memcpy(请求- >价值、缓冲区、兰);
ke_msg_send(要求的);
}
我也参考了这个回答,
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
我第二个数据包应该是把第一个覆盖掉了,然后又发了一次第二个数据包。
请问一下我这样的处理方式哪里错了错误,我这个程序是在需求方的基础上改的。
谢谢了!
设备:
你好,
从你贴上来的代码,我们只知道:
你从用户层,向剖面层发送了一条消息,需要发送一段数据。并附上待发送的数据和数据长度。
至于这个消息由剖面层接收之后,做什么处理,我们无从得知。
不过,如果你没有对需求方工程的剖面层做任何修改的话,这种发送数据的方式应该没问题。
需求方工程发送数据过程,大概描述如下:
1.用户层发消息给概要文件层,并附上待发送数据和数据长度
2.剖面层接收到用户层的数据之后,把他们都扔进缓冲
3.剖面层检查一切条件成熟之后(串口没有数据,发送缓冲历史遗留的待数据等),将数据从缓冲中拉出来(ble_pull_data),然后扔给底层(GATTC_NOTIFICATION)
4.底层发送完数据之后,会给到上层一条成功与否的消息
5.剖面层接收到发送结束消息之后,在回调函数中继续从缓冲中拉数据出来,继续发送。重复 3 4 5,直到数据完毕。
你好,
我使用SDK 5.0.4 ble_app_profile,也是參考下面回答,連續呼叫兩次send_to_app ();
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-hardware-device-reference-designs-dialog--26
但也是跟一樓一樣,兩筆封包都是第二筆的資料,是不能這樣呼叫嗎?