From e0c93606e1bc17fb972d1497119fd55bb12c24c5 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Tue, 21 Jan 2025 09:36:13 +0000 Subject: [PATCH] led.py: make `binfo` a class --- mmgen/led.py | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/mmgen/led.py b/mmgen/led.py index 25b6a94d..bbb24411 100755 --- a/mmgen/led.py +++ b/mmgen/led.py @@ -26,36 +26,41 @@ from subprocess import run from .util import msg, msg_r, die, have_sudo from .color import blue, orange +from .base_obj import Lockable class LEDControl: - binfo = namedtuple('board_info', ['name', 'control', 'trigger', 'trigger_states']) + class binfo(Lockable): + _reset_ok = ('trigger_reset',) + + def __init__(self, name, control, trigger=None, trigger_dfl='heartbeat', trigger_disable='none'): + self.name = name + self.control = control + self.trigger = trigger + self.trigger_dfl = trigger_dfl + self.trigger_reset = trigger_dfl + self.trigger_disable = trigger_disable + boards = { 'raspi_pi': binfo( name = 'Raspberry Pi', control = '/sys/class/leds/led0/brightness', trigger = '/sys/class/leds/led0/trigger', - trigger_states = ('none', 'mmc0')), + trigger_dfl = 'mmc0'), 'orange_pi': binfo( name = 'Orange Pi (Armbian)', - control = '/sys/class/leds/orangepi:red:status/brightness', - trigger = None, - trigger_states = None), + control = '/sys/class/leds/orangepi:red:status/brightness'), 'orange_pi_5': binfo( name = 'Orange Pi 5 (Armbian)', - control = '/sys/class/leds/status_led/brightness', - trigger = None, - trigger_states = None), + control = '/sys/class/leds/status_led/brightness'), 'rock_pi': binfo( name = 'Rock Pi (Armbian)', control = '/sys/class/leds/status/brightness', - trigger = '/sys/class/leds/status/trigger', - trigger_states = ('none', 'heartbeat')), + trigger = '/sys/class/leds/status/trigger'), 'dummy': binfo( - name = 'Fake', + name = 'Fake Board', control = '/tmp/led_status', - trigger = '/tmp/led_trigger', - trigger_states = ('none', 'original_value')), + trigger = '/tmp/led_trigger'), } def __init__(self, enabled, simulate=False, debug=False): @@ -125,7 +130,7 @@ class LEDControl: with open(db.control, 'w') as fp: fp.write('0\n') with open(db.trigger, 'w') as fp: - fp.write(db.trigger_states[1]+'\n') + fp.write(db.trigger_dfl + '\n') def noop(self, *args, **kwargs): pass @@ -192,4 +197,4 @@ class LEDControl: if self.board.trigger: with open(self.board.trigger, 'w') as fp: - fp.write(self.board.trigger_states[1]+'\n') + fp.write(self.board.trigger_reset + '\n')