diff --git a/zh_network.c b/zh_network.c index 5c8bef4..df0bbd4 100644 --- a/zh_network.c +++ b/zh_network.c @@ -88,11 +88,22 @@ esp_err_t zh_network_init(const zh_network_init_config_t *config) ESP_LOGE(TAG, "ESP-NOW initialization fail. WiFi channel."); return ESP_ERR_INVALID_ARG; } - if (esp_wifi_set_channel(_init_config.wifi_channel, WIFI_SECOND_CHAN_NONE) == ESP_ERR_WIFI_NOT_INIT) + esp_err_t err = esp_wifi_set_channel(_init_config.wifi_channel, WIFI_SECOND_CHAN_NONE); + if (err == ESP_ERR_WIFI_NOT_INIT || err == ESP_ERR_WIFI_NOT_STARTED) { ESP_LOGE(TAG, "ESP-NOW initialization fail. WiFi not initialized."); return ESP_ERR_WIFI_NOT_INIT; } + else if (err == ESP_FAIL) + { + uint8_t prim = 0; + wifi_second_chan_t sec = 0; + esp_wifi_get_channel(&prim, &sec); + if (prim != _init_config.wifi_channel) + { + ESP_LOGW(TAG, "ESP-NOW initialization warning. The device is connected to the router. Channel %d will be used for ESP-NOW.", prim); + } + } if ((sizeof(_queue_t) - 12) > ESP_NOW_MAX_DATA_LEN) { ESP_LOGE(TAG, "ESP-NOW initialization fail. The maximum value of the transmitted data size is incorrect.");