使用CH582的central工程去連接多系統(tǒng)的藍(lán)牙鍵盤時,鍵盤不認(rèn)可這個連接。請問藍(lán)牙主機(jī)有相關(guān)的配置案例嗎?

多系統(tǒng)識別需要在連接的過程中寫一些命令給從機(jī)判斷主機(jī)的系統(tǒng),我使用BleAnalyzer抓了配對連接過程中的包,但是BleAnalyzer沒辦法篩選、查找,不知道該怎么去模擬這個工程


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

1、確定是低功耗藍(lán)牙BLE;

2、使用手機(jī)APP:BLE調(diào)試助手或者系統(tǒng)藍(lán)牙連接該藍(lán)牙鍵盤從機(jī),并使用抓包工具抓包;

3、根據(jù)抓取到的連接包,嘗試使用CH582模仿主機(jī)行為并發(fā)起連接。

4、抓包工具使用參考:

BLE分析儀講解(BLE廣播包講解) - SweetTea_lllpc - 博客園 (cnblogs.com)


請問一下我想修改Attribute Opcode的值,應(yīng)該修改代碼的什么地方呢?image.png

如果我想讀Handle的值,代碼里面應(yīng)該怎么操作呢?


我是這么寫入的,但是回復(fù)的全部是錯誤。對照正確的值發(fā)現(xiàn)是Attribute Opcode的值不一樣,但是修改req.sig并不會影響Attribute Opcode的值,我想修改Attribute Opcode的值,應(yīng)該修改代碼的什么地方呢?

image.png


? ? uint16_t Header_value[4] = {0x2A4D, 0x0031, 0x2A4D, 0x000A};


? ?// PRINT("\r\nWriteNotify---- %d-%d? ? ?",WriteNotify_Count,NotifyHandleQuantity);

?//? ?if((centralProcedureInProgress == FALSE))

? ? {

? ? ? ? PRINT("\r\n WriteNotify ");

? ? ? ? // Do a write

? ? ? ? attWriteReq_t req;


? ? ? ? req.cmd = FALSE;

? ? ? ? req.sig = 2;

? ? ? ? req.handle = Header_value[WriteNotify_Count];

? ? ? ? req.len = 2;

? ? ? ? req.pValue = GATT_bm_alloc(centralConnHandle, ATT_WRITE_REQ, req.len, NULL, 0);


? ? ? ? PRINT("? handle : %04X\r\n",req.handle);

? ? ? ? if(req.pValue != NULL)

? ? ? ? {

? ? ? ? ? ? req.pValue[0] = 0x01;

? ? ? ? ? ? req.pValue[1] = 0;


? ? ? ? ? ? if(GATT_WriteCharValue(centralConnHandle, &req, centralTaskId) != SUCCESS)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);

? ? ? ? ? ? }

? ? ? ? }

? ? }



藍(lán)牙建立連接之后,會有參數(shù)更新,mtu交互,配對綁定的流程。一般第一次的連接會卡在配對綁定的流程不匹配上,可以重點(diǎn)查看。在可以直接使用分析儀抓包的情況下,可以直接查看該流程是否有異常,比對即可。

接下來是到數(shù)據(jù)收發(fā)階段,根據(jù)handle值進(jìn)行收發(fā),可以查看手機(jī)連接該從機(jī)后發(fā)送數(shù)據(jù)的handle是多少,然后主機(jī)直接模擬該handle值進(jìn)行相同的數(shù)據(jù)發(fā)送。其他如opcode是不需要修改的。

根據(jù)handle直接進(jìn)行數(shù)據(jù)收發(fā):

image.png


找到了讀取操作,寫的時候還是會報錯誤碼,還要再查查看

? ? ? ? ? ? ? ? // Do a read

? ? ? ? ? ? ? ? attReadReq_t req;


? ? ? ? ? ? ? ? req.handle = centralCharHdl;

? ? ? ? ? ? ? ? if(GATT_ReadCharValue(centralConnHandle, &req, centralTaskId) == SUCCESS)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? centralProcedureInProgress = TRUE;

? ? ? ? ? ? ? ? ? ? centralDoWrite = !centralDoWrite;

? ? ? ? ? ? ? ? }



我使用抓包工具保存了兩份log,可以幫忙看一下嗎?

icon_rar.giflog.zip



郵件已回復(fù)。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频