Hello,
I'm trying to get the IP settings of a softAP access point.
Using the examples\wifi\getting_started\softAP\main\softap_example_main.c I added a wifi_event_handler() and waited for WIFI_EVENT_AP_STACONNECTED before calling esp_netif_get_ip_info(). Unfortunately I get the following result:
I (13483) wifi softAP: AP IP:192.168.4.1, mask:192.168.4.1, gw:192.168.4.1
using the following code:
if (bits & WIFI_CONNECTED_BIT) {
ESP_LOGI(TAG, "Connected");
esp_netif_ip_info_t ip_info;
esp_netif_get_ip_info(esp_netif_ap, &ip_info);
ESP_LOGI(TAG, "AP IP:%s, mask:%s, gw:%s", ip4addr_ntoa((ip4_addr_t*)&ip_info.ip),
ip4addr_ntoa((ip4_addr_t*)&ip_info.netmask),
ip4addr_ntoa((ip4_addr_t*)&ip_info.gw));
}
I then added an ip_event_handler() and retried waiting until I got the IP_EVENT_AP_STAIPASSIGNED event but get the same result:
I (13523) wifi softAP: AP Assigned IP:192.168.4.1, mask:192.168.4.1, gw:192.168.4.1
using the following code:
if (bits & IP_AP_STAIPASSIGNED) {
esp_netif_ip_info_t ip_info;
esp_netif_get_ip_info(esp_netif_ap, &ip_info);
ESP_LOGI(TAG, "AP Assigned IP:%s, mask:%s, gw:%s", ip4addr_ntoa((ip4_addr_t*)&ip_info.ip),
ip4addr_ntoa((ip4_addr_t*)&ip_info.netmask),
ip4addr_ntoa((ip4_addr_t*)&ip_info.gw));
}
Can someone please let me know why the netmask is 192.168.4.1 and not a netmask representation like 255.255.255.0 at least?
I understand that the gateway is 192.168.4.1 as that is the AP address.
The reason I require the info is that we supply the network information when the device is a station but if the device is set-up as an AP (softAP) then I don't get the information to supply to the user.
Best regards,
Charles
Why esp_netif_get_ip_info() does not seem to be working
-
- Posts: 19
- Joined: Fri Oct 06, 2017 10:27 am
Re: Why esp_netif_get_ip_info() does not seem to be working
ip4addr_ntoa uses an internal buffer, overwriting the previous result each time. You're giving ESP_LOGI the same pointer x3 to this buffer.
If all you need is to dump the addresses over serial, the IPSTR / IP2STR macros are convenient and efficient, eg:
https://github.com/espressif/esp-idf/bl ... ers.c#L101
If you really need the string representations to stick around you can use ip4addr_ntoa_r with your own buffers.
If all you need is to dump the addresses over serial, the IPSTR / IP2STR macros are convenient and efficient, eg:
https://github.com/espressif/esp-idf/bl ... ers.c#L101
If you really need the string representations to stick around you can use ip4addr_ntoa_r with your own buffers.
-
- Posts: 19
- Joined: Fri Oct 06, 2017 10:27 am
Re: Why esp_netif_get_ip_info() does not seem to be working
Great, thanks boarchuz.
The downfalls of copy and paste!!!
Regards,
Charles
The downfalls of copy and paste!!!
Regards,
Charles
Who is online
Users browsing this forum: No registered users and 133 guests