led.py: make binfo a class
This commit is contained in:
parent
d39e1e5cd4
commit
e0c93606e1
1 changed files with 20 additions and 15 deletions
35
mmgen/led.py
35
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')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue