WIFI技术
直播中

王刚

7年用户 1256经验值
私信 关注
[问答]

如何通过调用WHD中名为\"whd_wifi_scan\" 的函数来设置多个SSID?

大家好,
请告知如何通过调用 WHD 中名为"whd_wifi_scan" 的函数来设置多个 SSID?
目前的源代码描述为"CY_WCM_SCAN_FILTER_TYPE_SSID" 中只设置了一个 SSID,但我想为 AP 扫描设置多个 SSID。
我使用 AIROC-Wi-Fi-Bluetooth-STM32 Expansion Pack 1.5.0(或 1.5.1)与企业安全 V2.1.0 来自 GitHub
,使用村田 2AE(CYW4373)作为 STA 的 STM32H747DISCO 板。

回帖(1)

泡芙奶昔

2024-5-21 17:02:27
要通过调用 WHD 中名为 "whd_wifi_scan" 的函数来设置多个 SSID,您需要修改扫描过滤器以包含多个 SSID。以下是逐步说明如何实现此目标:

1. 首先,您需要定义一个结构体数组来存储您想要扫描的 SSID。例如:

```c
cy_wcm_ssid_t ssid_list[3] = {
    {
        .ssid = "SSID1",
        .ssid_length = strlen("SSID1")
    },
    {
        .ssid = "SSID2",
        .ssid_length = strlen("SSID2")
    },
    {
        .ssid = "SSID3",
        .ssid_length = strlen("SSID3")
    }
};
```

2. 接下来,创建一个 `cy_wcm_scan_filter_t` 结构体并设置其类型为 `CY_WCM_SCAN_FILTER_TYPE_SSID`:

```c
cy_wcm_scan_filter_t scan_filter;
scan_filter.filter_type = CY_WCM_SCAN_FILTER_TYPE_SSID;
```

3. 然后,将您之前定义的 SSID 列表分配给 `scan_filter` 结构体的 `ssid_list` 和 `ssid_list_count` 字段:

```c
scan_filter.ssid_list = ssid_list;
scan_filter.ssid_list_count = 3; // 您定义的 SSID 数量
```

4. 最后,使用设置好的 `scan_filter` 结构体调用 `whd_wifi_scan` 函数:

```c
whd_result_t scan_result;
scan_result = whd_wifi_scan(whd_driver, &scan_filter, whd_scan_sync, NULL, NULL);
```

这样,您就可以通过调用 `whd_wifi_scan` 函数来设置多个 SSID 并进行扫描了。请确保您已经正确初始化了 WHD 驱动和相关的配置。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分