led.py: make binfo a class

This commit is contained in:
The MMGen Project 2025-01-21 09:36:13 +00:00
commit e0c93606e1
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2

View file

@ -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')