This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LAUNCHLL-CC26X2R1:如何在简单的中心项目中按广告设备的地址过滤设备?

Guru**** 2595805 points
Other Parts Discussed in Thread: SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1090652/launchxl-cc26x2r1-how-can-filter-the-devices-by-address-of-the-advertising-device-in-simple-central-project

部件号:LAUNCHTXL-CC26X2R1
Thread:sysconfig中讨论的其它部件

大家好,

我使用的是简单的中心项目,通过以下功能 ,我可以  按 外围设备名称过滤结果,但我希望按外围设备的MAC 地址使用fliting。 请向我推荐!

char slaveScanRsp[]={'a','b','c','d'};

静态空SimpleCentral_processAppMsg(scEvt_t *pMsg)


开关(pMsg->hdr.event)

案例SC_EVT_ADV_REPORT:

GapScan_Evt_AdvRpt_t* pAdvRpt =(GapScan_Evt_AdvRpt_t*)(pMsg->pData);

如果(memcmp(&pAdvRpt->pData[5],slaveScanRsp,sizeof(slaveScanRsp))== 0)  

SimpleCentral_addScanInfo(pAdvRpt->addr, pAdvRpt->addrType);

SimpleCentral_doConnect(0);
}
}
}

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    您是否指的是设备的BLE地址? 如果是这样,则扫描的BLE地址存储在pAdvRpt->addr中。 您可以将此地址与已知地址进行比较,以确定您是否正在连接到所需的设备。 我建议查看 GapScan_Evt_AdvRpt_t 结构的文档,以了解有关在广告中共享哪种数据的详细信息。 还可以通过 修改sysconfig中的通告数据本身来将自定义数据添加到通告中。

    此致,

    一月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好Jan,

    首先,感谢您的回答,但您建议使用的方法是,我使用的是类似的方法。

    static uint8 bdAddressPeer[6] = {0x08,0x25,0x25,0x31,0xEC,0xD0}; // Peripharel Mac id

    static void SimpleCentral_processAppMsg(scEvt_t *pMsg)
    {

    switch (pMsg->hdr.event)
    {
    case SC_EVT_ADV_REPORT:
    {
    GapScan_Evt_AdvRpt_t* pAdvRpt = (GapScan_Evt_AdvRpt_t*) (pMsg->pData);

    if (memcmp(&pAdvRpt->addr, bdAddressPeer, sizeof(bdAddressPeer)) == 0) // Filter results by the slave's scanRsp array
    {
    SimpleCentral_addScanInfo(pAdvRpt->addr, pAdvRpt->addrType);

    SimpleCentral_doConnect(0);
    }
    }
    }

    }

    如果方法需要更改或此方法不正确,请告诉我。

    Thanks,

    Ashutosh Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Ashutosh,

    我相信建议的解决办法可能会奏效。 我强烈建议执行一个简单外围设备项目,将BLE地址设置为公共地址,然后使用修改后的simple外围设备的BLE地址测试您的连接方法。 但是,我建议根据中广告中的一些唯一数据而不是BLE地址连接到设备。 如果BLE地址设置为"公共地址"以外的任何地址,则该地址可能会定期更改。 我强烈建议参考 simple串行套接字客户端  和simple串行套接字服务器项目。 客户端项目通过读取通告并确保在连接之前在相应字段中具有预期数据,从而自动连接到服务器项目。

    此致,

    一月