add make_strip_level_map and make_bus_level_map

This commit is contained in:
onyx-and-iris
2022-07-21 22:55:49 +01:00
parent 6bcdd0f6a2
commit 7506fb0737
2 changed files with 31 additions and 19 deletions

View File

@@ -155,11 +155,7 @@ class VirtualBus(Bus):
class BusLevel(IRemote):
def __init__(self, remote, index):
super().__init__(remote, index)
self.level_map = tuple(
(i, i + 8)
for i in range(0, (remote.kind.phys_out + remote.kind.virt_out) * 8, 8)
)
self.range = self.level_map[self.index]
self.range = _make_bus_level_maps[remote.kind.name][self.index]
def getter(self, mode):
"""
@@ -187,7 +183,7 @@ class BusLevel(IRemote):
return self.getter(3)
@property
def is_updated(self) -> bool:
def isdirty(self) -> bool:
"""
Returns dirty status for this specific channel.
@@ -196,6 +192,15 @@ class BusLevel(IRemote):
if self._remote.running:
return any(self._remote._bus_comp[self.range[0] : self.range[-1]])
is_updated = isdirty
def make_bus_level_map(kind):
return tuple((i, i + 8) for i in range(0, (kind.phys_out + kind.virt_out) * 8, 8))
_make_bus_level_maps = {kind.name: make_bus_level_map(kind) for kind in kinds_all}
def _make_bus_mode_mixin():
"""Creates a mixin of Bus Modes."""