3 Commits

Author SHA1 Message Date
2caa1477b0 feat: added get/set espnow channel 2025-05-06 10:35:59 +03:00
b987a62438 style: typo 2025-05-06 09:32:40 +03:00
da9da77890 feat: added get/set attemps 2025-05-06 09:31:46 +03:00
4 changed files with 84 additions and 2 deletions

View File

@ -87,6 +87,7 @@ void app_main(void)
send_message.float_value = 1.234;
send_message.bool_value = false;
printf("Used ESP-NOW version %d.\n", zh_espnow_get_version());
printf("ESP-NOW channel %d. \n", zh_espnow_get_channel());
uint8_t counter = 0;
for (;;)
{

View File

@ -124,10 +124,42 @@ extern "C"
/**
* @brief Check ESP-NOW initialization status.
*
* @return true if ESP-NOW is initialized false otherwise.
* @return True if ESP-NOW is initialized false otherwise.
*/
bool zh_espnow_is_initialized(void);
/**
* @brief Get number of attempts.
*
* @return Attemps number.
*/
uint8_t zh_espnow_get_attempts(void);
/**
* @brief Set number of attempts.
*
* @param[in] attempts Attemps number.
*
* @return ESP_OK if success or an error code otherwise.
*/
esp_err_t zh_espnow_set_attempts(uint8_t attempts);
/**
* @brief Get ESP-NOW channel.
*
* @return ESP-NOW channel if success or 0 otherwise.
*/
uint8_t zh_espnow_get_channel(void);
/**
* @brief Set ESP-NOW channel.
*
* @param[in] channel ESP-NOW channel (1-14).
*
* @return ESP_OK if success or an error code otherwise.
*/
esp_err_t zh_espnow_set_channel(uint8_t channel);
#ifdef __cplusplus
}
#endif

View File

@ -1 +1 @@
1.3.0
1.5.0

View File

@ -521,4 +521,53 @@ void zh_espnow_reset_stats(void)
bool zh_espnow_is_initialized(void)
{
return _is_initialized;
}
uint8_t zh_espnow_get_attempts(void)
{
return _init_config.attempts;
}
esp_err_t zh_espnow_set_attempts(uint8_t attempts)
{
ZH_ESPNOW_CHECK(_is_initialized == true, ESP_ERR_INVALID_STATE, "ESP-NOW is not initialized.");
ZH_ESPNOW_CHECK(attempts > 0, ESP_ERR_INVALID_ARG, "Invalid number of attempts.");
_init_config.attempts = attempts;
ZH_ESPNOW_LOGI("Number of attempts set successfully.");
return ESP_OK;
}
uint8_t zh_espnow_get_channel(void)
{
if (_is_initialized == false)
{
ZH_ESPNOW_LOGE("ESP-NOW channel receiption failed. ESP-NOW is not initialized.");
return 0;
}
uint8_t prim_channel = 0;
wifi_second_chan_t sec_channel = 0;
esp_err_t err = esp_wifi_get_channel(&prim_channel, &sec_channel);
if (err != ESP_OK)
{
ZH_ESPNOW_LOGE_ERR("ESP-NOW channel receiption failed.", err);
return 0;
}
_init_config.wifi_channel = prim_channel;
ZH_ESPNOW_LOGI("ESP-NOW channel receiption successfully.");
return prim_channel;
}
esp_err_t zh_espnow_set_channel(uint8_t channel)
{
ZH_ESPNOW_CHECK(_is_initialized == true, ESP_ERR_INVALID_STATE, "ESP-NOW channel set failed. ESP-NOW is not initialized.");
ZH_ESPNOW_CHECK(channel > 0 && channel < 15, ESP_ERR_INVALID_ARG, "ESP-NOW channel set failed. Invalid channel.");
esp_err_t err = esp_wifi_set_channel(channel, WIFI_SECOND_CHAN_NONE);
if (err != ESP_OK)
{
ZH_ESPNOW_LOGE_ERR("ESP-NOW channel set failed.", err);
return err;
}
_init_config.wifi_channel = channel;
ZH_ESPNOW_LOGI("ESP-NOW channel set successfully.");
return err;
}