Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ask issue: WIFI的连接问题 #11

Open
WangShuoran opened this issue Dec 17, 2022 · 3 comments
Open

Ask issue: WIFI的连接问题 #11

WangShuoran opened this issue Dec 17, 2022 · 3 comments

Comments

@WangShuoran
Copy link

在ESP32作为STA时找到多个AP的连接中,FAQ给的答案是:

[Connect] 当环境内存在多个相同 SSID 时,设备如何连接 ?
设备会连接优先扫描到的 AP 设备。
如果想要根据信号质量等排序,可以使用 Scan 方法自主筛选。
如果想要连接指定 AP, 可以在连接参数中填入 BSSID 信息。

https://docs.espressif.com/projects/esp-idf/zh_CN/v5.0/esp32c3/api-guides/wifi.html中提到:
该场景与 ESP32-C3 Wi-Fi station 连接场景 相似,不同之处在于该场景中不会产生 WIFI_EVENT_STA_DISCONNECTED 事件,除非 station 无法连接所有找到的 AP。

那么我想问:

  1. 如果我选的排序是基于RSSI,是依照最强的RSSI到最弱进行连接,还是从第一个信道找到AP就连接,如果不管RSSI,只是找到就连接的话,wifi_sta_config_t中的scan_method是不是就不对这个场景生效?
  2. 如果按照文档说的是进行多个AP都尝试,因为WIFI尝试连接不保证一次就成功,也有可能是密码输入有误,那么我想问,错误异常我怎么知道是基于与哪个AP进行的?如果没办法知道,是不是也有规律可循(比如最后连接的那一个,第1问中RSSI排序最强的第一个)
@WangShuoran
Copy link
Author

我在Wifi Driver中找到:如果设置为WIFI_CONNECT_AP_BY_SIGNAL,所有匹配的AP将会按照信号强度排序,信号最好的AP会被首先连接。比如,如果station想要连接ssid为apxx的AP,且扫描到两个这样的AP。第一个AP的信号为-90dBm,第二个AP的信号为-30dBm,station首先连接第二个AP。除非失败,才会连接第一个。
那么,请问第二个问题的WIFI_EVENT_STA_DISCONNECTED中的异常号是基于哪个AP连接返回的?

@WangShuoran
Copy link
Author

一个新问题:在FAQ中WIFI_REASON_CONNECTION_FAIL 扫描阶段返回的错误码,主要是由于 STA 扫描到了匹配的 AP,但是这个 AP 在黑名单里。AP 在黑名单里面的原因是上次 AP 主动踢掉了 STA,或者 STA 连接 AP 的过程中失败了。
那么请问,设备如何把黑名单中的AP设置依然可连接?

@WangShuoran
Copy link
Author

一个新问题:在手动通过esp_wifi_disconnect()或esp_wifi_stop()关闭WIFI连接,会不会发送DHCP的DHCPRELEASE报文?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant