使用CH582的central工程去连接多系统的蓝牙键盘时,键盘不认可这个连接。请问蓝牙主机有相关的配置案例吗?

多系统识别需要在连接的过程中写一些命令给从机判断主机的系统,我使用BleAnalyzer抓了配对连接过程中的包,但是BleAnalyzer没办法筛选、查找,不知道该怎么去模拟这个工程

1、确定是低功耗蓝牙BLE;

2、使用手机APP:BLE调试助手或者系统蓝牙连接该蓝牙键盘从机,并使用抓包工具抓包;

3、根据抓取到的连接包,尝试使用CH582模仿主机行为并发起连接。

4、抓包工具使用参考:

BLE分析仪讲解(BLE广播包讲解) - SweetTea_lllpc - 博客园 (cnblogs.com)


请问一下我想修改Attribute Opcode的值,应该修改代码的什么地方呢?image.png

如果我想读Handle的值,代码里面应该怎么操作呢?


我是这么写入的,但是回复的全部是错误。对照正确的值发现是Attribute Opcode的值不一样,但是修改req.sig并不会影响Attribute Opcode的值,我想修改Attribute Opcode的值,应该修改代码的什么地方呢?

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);

            }

        }

    }



蓝牙建立连接之后,会有参数更新,mtu交互,配对绑定的流程。一般第一次的连接会卡在配对绑定的流程不匹配上,可以重点查看。在可以直接使用分析仪抓包的情况下,可以直接查看该流程是否有异常,比对即可。

接下来是到数据收发阶段,根据handle值进行收发,可以查看手机连接该从机后发送数据的handle是多少,然后主机直接模拟该handle值进行相同的数据发送。其他如opcode是不需要修改的。

根据handle直接进行数据收发:

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



邮件已回复。


只有登录才能回复,可以选择微信账号登录