43
43
static EventGroupHandle_t wifi_event_group ;
44
44
45
45
const int IPV4_GOTIP_BIT = BIT0 ;
46
+ #ifdef CONFIG_EXAMPLE_IPV6
46
47
const int IPV6_GOTIP_BIT = BIT1 ;
48
+ #endif
47
49
48
50
static const char * TAG = "example" ;
49
51
static const char * payload = "Message from ESP32 " ;
@@ -56,8 +58,10 @@ static esp_err_t event_handler(void *ctx, system_event_t *event)
56
58
ESP_LOGI (TAG , "SYSTEM_EVENT_STA_START" );
57
59
break ;
58
60
case SYSTEM_EVENT_STA_CONNECTED :
61
+ #ifdef CONFIG_EXAMPLE_IPV6
59
62
/* enable ipv6 */
60
63
tcpip_adapter_create_ip6_linklocal (TCPIP_ADAPTER_IF_STA );
64
+ #endif
61
65
break ;
62
66
case SYSTEM_EVENT_STA_GOT_IP :
63
67
xEventGroupSetBits (wifi_event_group , IPV4_GOTIP_BIT );
@@ -67,14 +71,18 @@ static esp_err_t event_handler(void *ctx, system_event_t *event)
67
71
/* This is a workaround as ESP32 WiFi libs don't currently auto-reassociate. */
68
72
esp_wifi_connect ();
69
73
xEventGroupClearBits (wifi_event_group , IPV4_GOTIP_BIT );
74
+ #ifdef CONFIG_EXAMPLE_IPV6
70
75
xEventGroupClearBits (wifi_event_group , IPV6_GOTIP_BIT );
76
+ #endif
71
77
break ;
72
78
case SYSTEM_EVENT_AP_STA_GOT_IP6 :
79
+ #ifdef CONFIG_EXAMPLE_IPV6
73
80
xEventGroupSetBits (wifi_event_group , IPV6_GOTIP_BIT );
74
81
ESP_LOGI (TAG , "SYSTEM_EVENT_STA_GOT_IP6" );
75
82
76
83
char * ip6 = ip6addr_ntoa (& event -> event_info .got_ip6 .ip6_info .ip );
77
84
ESP_LOGI (TAG , "IPv6: %s" , ip6 );
85
+ #endif
78
86
default :
79
87
break ;
80
88
}
@@ -103,7 +111,11 @@ static void initialise_wifi(void)
103
111
104
112
static void wait_for_ip ()
105
113
{
106
- uint32_t bits = IPV4_GOTIP_BIT | IPV6_GOTIP_BIT ;
114
+ #ifdef CONFIG_EXAMPLE_IPV6
115
+ uint32_t bits = IPV4_GOTIP_BIT | IPV6_GOTIP_BIT ;
116
+ #else
117
+ uint32_t bits = IPV4_GOTIP_BIT ;
118
+ #endif
107
119
108
120
ESP_LOGI (TAG , "Waiting for AP connection..." );
109
121
xEventGroupWaitBits (wifi_event_group , bits , false, true, portMAX_DELAY );
0 commit comments