fabhardware.fabmeter/main/net_event_handler.c
2023-07-24 02:02:48 +02:00

28 lines
1.2 KiB
C

#include <esp_wifi.h>
#include <esp_event.h>
#include <esp_log.h>
#include <led_strip.h>
#include "net_event_handler.h"
extern led_strip_handle_t debug_led;
void network_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data) {
if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) {
ESP_ERROR_CHECK(led_strip_set_pixel(debug_led, 0, 0xFF, 0xFF, 0));
ESP_ERROR_CHECK(led_strip_refresh(debug_led));
esp_wifi_connect();
} else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) {
ESP_ERROR_CHECK(led_strip_set_pixel(debug_led, 0, 0xFF, 0xFF, 0));
ESP_ERROR_CHECK(led_strip_refresh(debug_led));
esp_wifi_connect();
} else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {
ip_event_got_ip_t *event = (ip_event_got_ip_t *) event_data;
ESP_LOGI("network", "got ip:" IPSTR, IP2STR(&event->ip_info.ip));
ESP_ERROR_CHECK(led_strip_set_pixel(debug_led, 0, 0, 0xFF, 0));
ESP_ERROR_CHECK(led_strip_refresh(debug_led));
vTaskDelay(pdMS_TO_TICKS(1000));
ESP_ERROR_CHECK(led_strip_set_pixel(debug_led, 0, 0, 0, 0));
ESP_ERROR_CHECK(led_strip_refresh(debug_led));
}
}