MCPcopy Create free account
hub / github.com/OpenHD/OpenHD / apply_txpower

Method apply_txpower

OpenHD/ohd_interface/src/wb_link.cpp:595–622  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

593}
594
595void WBLink::apply_txpower() {
596 const auto settings = m_settings->get_settings();
597 const auto before = std::chrono::steady_clock::now();
598 uint32_t pwr_index = (int)settings.wb_rtl8812au_tx_pwr_idx_override;
599 uint32_t pwr_mw = (int)settings.wb_tx_power_milli_watt;
600 if (m_is_armed && settings.wb_rtl8812au_tx_pwr_idx_override_armed !=
601 openhd::RTL8812AU_TX_POWER_INDEX_ARMED_DISABLED) {
602 m_console->debug("Using power index special for armed");
603 pwr_index = settings.wb_rtl8812au_tx_pwr_idx_override_armed;
604 }
605 if (m_is_armed && settings.wb_tx_power_milli_watt_armed !=
606 openhd::WIFI_TX_POWER_MILLI_WATT_ARMED_DISABLED) {
607 m_console->debug("Using power mw special for armed");
608 pwr_mw = settings.wb_tx_power_milli_watt_armed;
609 }
610 if (m_profile.is_air) {
611 if (m_broadcast_cards.at(0).type == WiFiCardType::OPENHD_RTL_88X2AU &&
612 pwr_index > 50 && settings.wb_air_tx_channel_width == 40) {
613 m_console->debug("Reducing TX power to 50 tpi due to 40Mhz");
614 pwr_index = 50;
615 }
616 }
617 openhd::wb::set_tx_power_for_all_cards(pwr_mw, pwr_index, m_broadcast_cards);
618 m_curr_tx_power_mw = pwr_mw;
619 m_curr_tx_power_idx = pwr_index;
620 const auto delta = std::chrono::steady_clock::now() - before;
621 m_console->debug("Changing tx power took {}", MyTimeHelper::R(delta));
622}
623
624#pragma clang diagnostic push
625#pragma ide diagnostic ignored "performance-unnecessary-value-param"

Callers

nothing calls this directly

Calls 1

debugMethod · 0.80

Tested by

no test coverage detected