我正在写一个C应用程序的乌藨子皮科W利用BTstack库.我有一个特征,指向一个2 KB的数据缓冲区.当客户端设备发出信号准备好这些数据时,我目前只收到几百个字节要发送到客户端.基于我能找到的所有示例,这是我拥有的每当读取发生时都会触发的代码:
uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t offset, uint8_t * buffer, uint16_t buffer_size) {
UNUSED(connection_handle);
if (att_handle == ATT_CHARACTERISTIC_ORG_QT_CHARACTERISTIC_HEARTBEAT_COVERAGE_01_VALUE_HANDLE) {
return att_read_callback_handle_blob((const uint8_t *)&coverage_buffer, sizeof(coverage_buffer), offset, buffer, buffer_size);
}
return 0;
}
我在调用att_read_callback_handle_blob()
之前添加了一些print语句,我可以看到,当BT堆栈try 发送整个包时,att_read_callback
被调用了无数次.然而,我没有发送全部2000个字节,而是只收到了大约750个字节.