Fixed bug with ESP-NOW channel setting when device is connected to router
This commit is contained in:
13
zh_network.c
13
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.");
|
ESP_LOGE(TAG, "ESP-NOW initialization fail. WiFi channel.");
|
||||||
return ESP_ERR_INVALID_ARG;
|
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.");
|
ESP_LOGE(TAG, "ESP-NOW initialization fail. WiFi not initialized.");
|
||||||
return ESP_ERR_WIFI_NOT_INIT;
|
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)
|
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.");
|
ESP_LOGE(TAG, "ESP-NOW initialization fail. The maximum value of the transmitted data size is incorrect.");
|
||||||
|
Reference in New Issue
Block a user