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.

[参考译文] 编译器/CC2650MODA:FreeRTOS SAP 库:如何更改白名单筛选策略?

Guru**** 2577385 points
Other Parts Discussed in Thread: CC2650MODA

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/802067/compiler-cc2650moda-freertos-sap-library-how-change-white-list-filter-policy

器件型号:CC2650MODA

工具/软件:TI C/C++编译器

您好、TI 和论坛用户。

在新的发展过程中、我想使用我的器件设置一个白名单。

我要将`白名单过滤器策略'设置为`GAP_FILTER_POLICE_WHITE '。
因此,我调用了`SAP_setParam (SAP_PARAM_WHITELIST,...)' 但它不起作用。

`s、我测试了 CC2650MODA 上的"定制"`枫叶_NP"。
我  在`simple_np_gap.c'将默认白名单过滤器策略更改为`gap_filter_policy_white'。

然后、它进展顺利。 Central 无法获得扫描响应并与我的设备连接。

我需要将白名单筛选策略设置为 GAP_FILTER_POLICE_ALL、

首次配对或调用 SNP_GAPBOND_ERASE_ALLBONDS 之后进行配对时。

但是,我无法很好地使用`SAP_setParam (SAP_PARAM_WHITELIST,...)'。  


我想知道其他人是否有同样的问题。
很抱歉、如果不理解任何 grammatik 错误、我会尝试更好地解释它

感谢你能抽出时间。

小林

--
一些有关我的设置的信息。

我将按如下方式使用我的器件。
* MSP432P401Y:FreeRTOS 版本10.1.1,SAP 库(simplelink_sdk_ble_plugin_1_40_00_42)
* CC2650MODA:simple_np (ble_sdk_2_02_02_25)

MSP432P401Y <-UART->CC2650MDOA <-BLE 4.2->Central (Android)

这是一个配对序列(首次保存绑定)。 MSP432代码。

//首次配对时,已按下配对软件。
//我们需要允许来自任何的扫描请求,允许来自任何的连接请求。

//连接终止。
uint8_t conn_term = 0xFFFF;
SAP_setParam (SAP_PARAM_CONN、SAP_CONN_STATE、sizeof (uint8_t)、(uint8_t *)&conn_term);
执行{
mq_receive (rcv_queue、(char *)&event、sizeof (uint32_t)、NULL);
} while (event!= SNP_CONN_TERM_EVT);

// ADV 结束。
uint8_t adv_disable = SAP_ADV_State_disable;
SAP_setParam (SAP_PARAM_ADV、SAP_ADV_STATE、sizeof (uint8_t)、&Adv_disable);
执行{
mq_receive (rcv_queue、(char *)&event、sizeof (uint32_t)、NULL);
} while (event!= SNP_ADV_END_EVT);
// FIXME:不工作是出于什么原因...?

uint8_t 策略= SAP_whitelist_disable; SAP_setParam (SAP_PARAM_whitelist、NULL、sizeof (uint8_t)、&policy);

使用 simple_np 固件的 CC2650MDOA。
从 simplelink/ble_sdk_2_02_25/examples/cc2650bp/simple_np/CCS 导入
- simple_np_cc2650bp_app
- simple_np_cc2650bp_stack

自定义了一个小的 simple_np_gap.c 代码。

//白名单筛选策略-默认不是白名单筛选。
//uint8_t SNP_whitebyListFilterPolicy = GAP_FILTER_POLICE_ALL;
uint8_t SNP_white/ListFilterPolicy = GAP_FILTER_POLICE_WHITE;//默认只允许扫描请求和从白名单连接 

// uint8_t mode = GAPBOND_Pairing_mode_wait_for_Req;
uint8_t mode = GAPBOND_Pairing_mode_initiate;//<-已更改。
uint8_t ioCap = GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT;
uint8_t 绑定= true;
uint8_t wlPolicy = true;
uint8_t lruPolicy = true;
//仅请求主设备的加密和身份信息。
uint8_t keyDist = GAPBOND_KEYDIST_SENCKEY | GAPBOND_KEYDIST_MIDKEY;

GAPBondMgr_SetParameter (GAPBOND_IO_Capabilities、sizeof (ioCap)、&ioCap);
GAPBondMgr_SetParameter (GAPBOND_BIUSEND_ENABLED、sizeof (bonding)、&bonding);
GAPBondMgr_SetParameter (GAPBOND_Pairing_mode、sizeof (mode)、&mode);
GAPBondMgr_SetParameter (GAPBOND_AUTO_SYNC_WL、sizeof (wlPolicy)、&wlPolicy);
GAPBondMgr_SetParameter (GAPBOND_KEY_DIST_list、sizeof (keyDisist)、&keyDist);
GAPBondMgr_SetParameter (GAPBOND_LRU_Bond) replacement、sizeof (lruPolicy)、
lruPolicy);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我将此主题分配给专家进行评论。 敬请期待
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请提供更多信息,说明您为何认为 SAP_setParam (SAP_PARAM_WHITELIST,...) 无法正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tim、

    我测试了 SAP_setParam (SAP_PARAM_WHITELIST,...) 如下所示。

    1.我导入了 ProjectZero、simple_np 和 Android 应用程序(SimpleLink SDK Explorer)

    从`simplelink_sdk_ble_plugin_1_40_00_42/examples/rtos/MSP_EXP432P4111/bluetooth/project_zero"

    和`simplelink/ble_sdk_2_02_2_25/examples/cc2650bp/simple_np/ccs'。

    我启动了它们、它们工作完成。

    2.我想将白名单过滤策略设置为`仅允许扫描请求和从白名单连接',

    因此、我更改了 SNP_whitebyListFilterPolicy 的初始值以及 simple_np 中的任何配对参数。

    这是我的 simple_np_gap.c

    //白名单筛选策略-默认不是白名单筛选。
    uint8_t SNP_whiteListFilterPolicy = GAP_FILTER_POLICE_WHITE; 

    //设置 GAP 绑定管理器
    //默认行为是无输入无输出 IO 功能正常工作,
    //安全连接和绑定已启用。 仅
    分发从属方的加密数据//和主控方的身份数据。
    uint8_t pairMode = GAPBOND_Pairing_mode_initiate;
    uint8_t ioCap = GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT;
    uint8_t bonding = true;
    uint8_t lruPolicy =
    true;uint8_t wlPolicy = true;
    uint8_t MIPTM = false;
    uint8_t keyDist = GAPBOND_KEYDIST_MIDKEY | GAPBOND_KEYDIST_SENCKEY;
    GAPBondMgr_SetParameter (GAPBOND_Pairing_MODE、 sizeof (pairMode)、&pairMode);
    GAPBondMgr_SetParameter (GAPBOND_IO_Capabilities、 sizeof (ioCap)、 ioCap);
    GAPBondMgr_SetParameter (GAPBOND_BIONUSE_ENABLED、 sizeof (bonding)、&bonding);
    GAPBondMgr_SetParameter (GAPBOND_AUTO_SYNC_WL、 sizeof (wlPolicy)、&wlPolicy);
    GAPBondMgr_SetParameter (GAPBOND_LRU_bond_replacement、sizeof (lruPolicy)、&lruPolicy);
    GAPBondMgr_SetParameter (GAPBOND_MITM_Protection、 sizeof (MIPTM)、 &MIPTM);
    GAPBondMgr_SetParameter (GAPBOND_KEY_DIST_list、 sizeof (keyDist)、&keyDist); 

    ProjectZero 已从选择 BLE 器件列表(SimpleLink SDK Explorer)中消失。

    它是预期的运动。

    3.我在`DADV 前添加了"可显示的白名单滤波器代码"。

    下面是我的 project_zero.c

    /*设置扫描响应数据。 *
    SAP_setParam (SAP_PARAM_ADV、SAP_ADV_DATA_SCANRSP、sizeof (scanRspData)、scanRspData);
    
    //禁用白名单过滤器。 uint8_t wlPolicy = SAP_whitelist_disable; SAP_setParam (SAP_PARAM_whitelist、NULL、sizeof (uint8_t)、&wlPolicy);
    /*启用广播并等待 NP 响应*/ SAP_setParam (SAP_PARAM_ADV、SAP_ADV_STATE、1、enableAdv);

    然后、它们无法按预期工作。

    ProjectZero 正在从选择 BLE 器件列表(SimpleLink SDK Explorer)中消失。

    实施中缺少什么? 感谢你的帮助。  

    此致、

    小林

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好 感谢您的参与。 您正在执行的操作似乎正确。 当我有机会进行验证/调试时、我将尝试设置此项。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我以各种方式尝试了它、并且进展顺利。

    simple_np_gap.c 与上一个帖子没有变化、
    这里是一个项目_zero.c、它起作用。

    /*设置扫描响应数据。 //
    SAP_setParam (SAP_PARAM_ADV、SAP_ADV_DATA_SCANRSP、sizeof (scanRspData)、scanRspData);
    
    //设置安全参数
    uint8_t pairMode = SAP_SECURITY_INITIATE_ON_CONNECTION;
    uint8_t ioParam = SAP_NO_INPUT_OUT_OUTPUT
    
    ;sap_SECURITY = sizt_8;uint8 uintuint_SECURITY = uint8 (uint8);uint_uintuint_caps (uint_capse_output_uint8);uint_caps
    SAP_setParam (SAP_PARAM_SECURITY、SAP_SECURITY_IOCAPS、sizeof (uint8_t)、&ioCap);
    SAP_setParam (SAP_PARAM_SECURITY、 SAP_SECURITY_BLUCITY、sizeof (uint8_t)、&bonding);
    
    //禁用白名单过滤器。
    uint8_t wlPilicy = SAP_whitelist_disable;
    SAP_setParam (SAP_PARAM_whitelist、NULL、sizeof (uint8_t)、&wlPilicy);
    
    /*启用广播并等待 NP 响应*/
    SAP_setParam (SAP_PARAM_ADV、SAP_ADV_STATE、1、&enableAdv); 

    我从选择 BLE 器件列表中获得了 ProjectZero。

    同样、我可以启用白名单。

    我在 simple_np_gap.c 中初始化了安全参数、
    但是、我是否必须使用 SAP 重新配置它们?
    这是正确的方法吗?

    提前感谢、
    小林

    --
    我对这种方式有些怀疑,但我是否可以“解决”这种失望?
    我想开始一个新的线程、这就是如何使用 LE 安全连接与 SNP。