【1】嘗試在手機端使能indicate後,返回若幹條信息,以及在程序對藍牙命令處理後返回若幹條消息,但是發現只有第一條消息能成功接受,其他消息則無法接受,實驗結果下圖所示。
【2】由於從手機APP往藍牙發送的數據較長,手機和藍牙交換MTU後,發現W801的MTU最大為256,是否能夠通過修改程序的中某些設置來提升W801的MTU?
你進入tls_ble_server_demo_api_send_msg函數,做如下修改:
int tls_ble_server_demo_api_send_msg(uint8_t *data, int data_len)
{
int rc;
struct os_mbuf *om;
//TLS_BT_APPL_TRACE_DEBUG("### %s len=%d\r\n", __FUNCTION__, data_len);
//if(g_send_pending) return BLE_HS_EBUSY;
if(data_len<=0 || data == NULL)
{
return BLE_HS_EINVAL;
}
om = ble_hs_mbuf_from_flat(data, data_len);
if (!om) {
return BLE_HS_ENOMEM;
}
rc = ble_gattc_indicate_custom(g_ble_demo_conn_handle,g_ble_demo_attr_indicate_handle, om);
/*
if(rc == 0)
{
g_send_pending = 1;
}
*/
return rc;
}
確實有效,感謝解答!
@SK2024
麻煩點一個采納哈