main/task_wifi.c

changeset 27
8bb63daa7b46
parent 24
64078aa15512
child 32
7717ac1d2f7f
equal deleted inserted replaced
26:8a3696620c0a 27:8bb63daa7b46
128 wifi_event_sta_connected_t* event = (wifi_event_sta_connected_t*) event_data; 128 wifi_event_sta_connected_t* event = (wifi_event_sta_connected_t*) event_data;
129 wifi_ap_record_t ap_info; 129 wifi_ap_record_t ap_info;
130 esp_wifi_sta_get_ap_info(&ap_info); 130 esp_wifi_sta_get_ap_info(&ap_info);
131 ESP_LOGI(TAG, "Event STA connected, ssid:%s, bssid:" MACSTR ", channel:%d, rssi: %d, authmode:%s", 131 ESP_LOGI(TAG, "Event STA connected, ssid:%s, bssid:" MACSTR ", channel:%d, rssi: %d, authmode:%s",
132 ap_info.ssid, MAC2STR(ap_info.bssid), event->channel, ap_info.rssi, apsec[event->authmode]); 132 ap_info.ssid, MAC2STR(ap_info.bssid), event->channel, ap_info.rssi, apsec[event->authmode]);
133 if (xSemaphoreTake(xSemaphoreWiFi, 25) == pdTRUE) { 133 if (xSemaphoreTake(xSemaphoreWiFi, 35) == pdTRUE) {
134 wifi_state->STA_connected = true; 134 wifi_state->STA_connected = true;
135 wifi_state->STA_rssi = ap_info.rssi; 135 wifi_state->STA_rssi = ap_info.rssi;
136 sprintf(wifi_state->STA_ssid, "%s", ap_info.ssid); 136 sprintf(wifi_state->STA_ssid, "%s", ap_info.ssid);
137 xSemaphoreGive(xSemaphoreWiFi); 137 xSemaphoreGive(xSemaphoreWiFi);
138 } else { 138 } else {
147 { 147 {
148 wifi_event_sta_disconnected_t* disconnected = (wifi_event_sta_disconnected_t*) event_data; 148 wifi_event_sta_disconnected_t* disconnected = (wifi_event_sta_disconnected_t*) event_data;
149 149
150 ESP_LOGI(TAG, "Event STA disconnected, ssid:%s, ssid_len:%d, bssid:" MACSTR ", reason:%d", 150 ESP_LOGI(TAG, "Event STA disconnected, ssid:%s, ssid_len:%d, bssid:" MACSTR ", reason:%d",
151 disconnected->ssid, disconnected->ssid_len, MAC2STR(disconnected->bssid), disconnected->reason); 151 disconnected->ssid, disconnected->ssid_len, MAC2STR(disconnected->bssid), disconnected->reason);
152 if (xSemaphoreTake(xSemaphoreWiFi, 25) == pdTRUE) { 152 if (xSemaphoreTake(xSemaphoreWiFi, 35) == pdTRUE) {
153 wifi_state->STA_connected = false; 153 wifi_state->STA_connected = false;
154 wifi_state->STA_online = false; 154 wifi_state->STA_online = false;
155 wifi_state->STA_rssi = 0; 155 wifi_state->STA_rssi = 0;
156 xSemaphoreGive(xSemaphoreWiFi); 156 xSemaphoreGive(xSemaphoreWiFi);
157 } else { 157 } else {
175 switch (event_id) { 175 switch (event_id) {
176 176
177 case IP_EVENT_STA_GOT_IP: 177 case IP_EVENT_STA_GOT_IP:
178 xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_HAS_IP); 178 xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_HAS_IP);
179 ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; 179 ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data;
180 if (xSemaphoreTake(xSemaphoreWiFi, 10) == pdTRUE) { 180 if (xSemaphoreTake(xSemaphoreWiFi, 25) == pdTRUE) {
181 wifi_state->STA_online = true; 181 wifi_state->STA_online = true;
182 snprintf(wifi_state->STA_ip, 16, "%s", ip4addr_ntoa(&event->ip_info.ip)); 182 snprintf(wifi_state->STA_ip, 16, "%s", ip4addr_ntoa(&event->ip_info.ip));
183 snprintf(wifi_state->STA_nm, 16, "%s", ip4addr_ntoa(&event->ip_info.netmask)); 183 snprintf(wifi_state->STA_nm, 16, "%s", ip4addr_ntoa(&event->ip_info.netmask));
184 snprintf(wifi_state->STA_gw, 16, "%s", ip4addr_ntoa(&event->ip_info.gw)); 184 snprintf(wifi_state->STA_gw, 16, "%s", ip4addr_ntoa(&event->ip_info.gw));
185 xSemaphoreGive(xSemaphoreWiFi); 185 xSemaphoreGive(xSemaphoreWiFi);
189 break; 189 break;
190 190
191 case IP_EVENT_STA_LOST_IP: 191 case IP_EVENT_STA_LOST_IP:
192 ESP_LOGW(TAG, "Lost IP address"); 192 ESP_LOGW(TAG, "Lost IP address");
193 xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_HAS_IP); 193 xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_HAS_IP);
194 if (xSemaphoreTake(xSemaphoreWiFi, 10) == pdTRUE) { 194 if (xSemaphoreTake(xSemaphoreWiFi, 25) == pdTRUE) {
195 wifi_state->STA_ip[0] = '\0'; 195 wifi_state->STA_ip[0] = '\0';
196 wifi_state->STA_nm[0] = '\0'; 196 wifi_state->STA_nm[0] = '\0';
197 wifi_state->STA_gw[0] = '\0'; 197 wifi_state->STA_gw[0] = '\0';
198 wifi_state->STA_online = false; 198 wifi_state->STA_online = false;
199 xSemaphoreGive(xSemaphoreWiFi); 199 xSemaphoreGive(xSemaphoreWiFi);

mercurial