feat(revpiconfig): Replace rfkill subprocess calls with sysfs writes
Updated Bluetooth and WiFi rfkill handling by replacing subprocess calls to "rfkill" with direct writes to sysfs files. This change simplifies the implementation and improves performance by avoiding external command execution.
This commit is contained in:
@@ -224,11 +224,13 @@ def configure_bluetooth(action: ConfigActions):
|
||||
|
||||
if action is ConfigActions.ENABLE:
|
||||
if bt_rfkill_index is not None:
|
||||
subprocess.call(["rfkill", "unblock", str(bt_rfkill_index)])
|
||||
with open(f"/sys/class/rfkill/rfkill{bt_rfkill_index}/soft", "w") as f:
|
||||
f.write("0")
|
||||
|
||||
elif action is ConfigActions.DISABLE:
|
||||
if bt_rfkill_index is not None:
|
||||
subprocess.call(["rfkill", "block", str(bt_rfkill_index)])
|
||||
with open(f"/sys/class/rfkill/rfkill{bt_rfkill_index}/soft", "w") as f:
|
||||
f.write("1")
|
||||
|
||||
elif action is ConfigActions.STATUS:
|
||||
if bt_rfkill_index is None:
|
||||
@@ -343,12 +345,14 @@ def configure_wifi(action: ConfigActions):
|
||||
if action is ConfigActions.ENABLE:
|
||||
if revpi.with_wifi:
|
||||
wifi_rfkill_index = get_rfkill_index(revpi.class_path_wifi)
|
||||
subprocess.call(["rfkill", "unblock", str(wifi_rfkill_index)])
|
||||
with open(f"/sys/class/rfkill/rfkill{wifi_rfkill_index}/soft", "w") as f:
|
||||
f.write("0")
|
||||
|
||||
elif action is ConfigActions.DISABLE:
|
||||
if revpi.with_wifi:
|
||||
wifi_rfkill_index = get_rfkill_index(revpi.class_path_wifi)
|
||||
subprocess.call(["rfkill", "block", str(wifi_rfkill_index)])
|
||||
with open(f"/sys/class/rfkill/rfkill{wifi_rfkill_index}/soft", "w") as f:
|
||||
f.write("1")
|
||||
|
||||
elif action is ConfigActions.AVAILABLE:
|
||||
return revpi.with_wifi
|
||||
|
||||
Reference in New Issue
Block a user