diff --git a/dmx.py b/dmx.py index dbd4be1..b09f574 100644 --- a/dmx.py +++ b/dmx.py @@ -51,7 +51,7 @@ class FixtureType: else: number = value - return (name, number) + return (name, int(number)) def channel(self, name): if name not in self._channels: @@ -60,12 +60,12 @@ class FixtureType: def range_lookup(self, channel, name, number): channel = self.channel(channel) - range = channel['range'] - if isinstance(range, dict): - if name not in range: + chrange = channel['range'] + if isinstance(chrange, dict) and (name is not None): + if name not in chrange: raise KeyError('Range {} not found'.format(name)) - (a, b) = range['range'] - if number < a or number > b: + (a, b) = chrange[name] + if number < 0 or number > b-1: raise ValueError('DMX value out of range') return a + number else: