11#if DETWS_ENABLE_RADIO_POWER
13const char *detws_radio_ps_name(uint8_t mode)
17 case DetwsRadioPs::DETWS_PS_MIN_MODEM:
19 case DetwsRadioPs::DETWS_PS_MAX_MODEM:
21 case DetwsRadioPs::DETWS_PS_NONE:
34wifi_ps_type_t to_esp_ps(uint8_t mode)
36 if (mode == DetwsRadioPs::DETWS_PS_MIN_MODEM)
37 return WIFI_PS_MIN_MODEM;
38 if (mode == DetwsRadioPs::DETWS_PS_MAX_MODEM)
39 return WIFI_PS_MAX_MODEM;
51void detws_radio_power_apply(
void)
54#if DETWS_RADIO_MAX_TX_DBM > 0
59uint8_t detws_radio_ps_get(
void)
61 wifi_ps_type_t m = WIFI_PS_NONE;
62 if (esp_wifi_get_ps(&m) != ESP_OK)
63 return DetwsRadioPs::DETWS_PS_NONE;
64 if (m == WIFI_PS_MIN_MODEM)
65 return DetwsRadioPs::DETWS_PS_MIN_MODEM;
66 if (m == WIFI_PS_MAX_MODEM)
67 return DetwsRadioPs::DETWS_PS_MAX_MODEM;
68 return DetwsRadioPs::DETWS_PS_NONE;
71void detws_radio_busy_hold(
void)
73 if (s_busy.held++ == 0)
74 esp_wifi_set_ps(WIFI_PS_NONE);
77void detws_radio_busy_release(
void)
79 if (s_busy.held > 0 && --s_busy.held == 0)
80 detws_radio_power_apply();
85void detws_radio_power_apply(
void)
88uint8_t detws_radio_ps_get(
void)
90 return DetwsRadioPs::DETWS_PS_NONE;
92void detws_radio_busy_hold(
void)
97void detws_radio_busy_release(
void)
#define DETWS_RADIO_MAX_TX_DBM
Max TX power cap in dBm (2..20); 0 = leave the platform default.
#define DETWS_RADIO_WIFI_PS
WiFi modem-sleep mode: 0 = none (max perf), 1 = min modem, 2 = max modem.
WiFi radio power controls (DETWS_ENABLE_RADIO_POWER).