feat(dbus): Add support for configuring the external antenna

Introduce the `configure_external_antenna` function to manage external
antenna settings, including enable, disable, and status checks. Update
the feature configuration in `interface_config` to include this
functionality. This enhances WiFi-related configuration options.
This commit is contained in:
2025-04-20 19:18:41 +02:00
parent e21a61232d
commit f9f50d7167
2 changed files with 27 additions and 1 deletions

View File

@@ -9,6 +9,7 @@ from .revpi_config import (
ConfigActions,
configure_avahi_daemon,
configure_dphys_swapfile,
configure_external_antenna,
configure_gui,
simple_systemd,
)
@@ -92,5 +93,5 @@ AVAILABLE_FEATURES = {
"bluetooth": False,
"ieee80211": False,
"avahi": FeatureFunction(configure_avahi_daemon, []),
"external-antenna": False,
"external-antenna": FeatureFunction(configure_external_antenna, []),
}

View File

@@ -213,6 +213,31 @@ def configure_dphys_swapfile(action: ConfigActions):
return return_value
def configure_external_antenna(action: ConfigActions):
revpi = RevPiConfig()
if action is ConfigActions.AVAILABLE:
return revpi.with_wifi
config_txt = ConfigTxt()
if action is ConfigActions.ENABLE and revpi.with_wifi:
config_txt.clear_dtparams(["ant1", "ant2"])
config_txt.add_name_value("dtparam", "ant2")
config_txt.save_config()
elif action is ConfigActions.DISABLE and revpi.with_wifi:
config_txt.clear_dtparams(["ant1", "ant2"])
config_txt.save_config()
elif action is ConfigActions.STATUS:
return revpi.with_wifi and "ant2" in config_txt.get_values("dtparam")
else:
raise ValueError(f"action {action} not supported")
return None
def configure_gui(action: ConfigActions):
gui_available = access("/usr/bin/startx", X_OK)