Mercurial > code > home > repos > light9
changeset 1437:d149a2c2236c
always send trailing zeros to dmx
Ignore-this: 973ae36ba571f865150710d304e255c8
author | drewp@bigasterisk.com |
---|---|
date | Sat, 11 Jun 2016 20:41:04 +0000 |
parents | d0d5900a8031 |
children | 594160be47f1 |
files | bin/collector light9/collector/collector.py light9/collector/output.py |
diffstat | 3 files changed, 12 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/bin/collector Sat Jun 11 20:30:34 2016 +0000 +++ b/bin/collector Sat Jun 11 20:41:04 2016 +0000 @@ -62,8 +62,8 @@ # todo: drive outputs with config files outputs = [ - EnttecDmx(L9['output/dmx0/'], '/dev/dmx3'), - Udmx(L9['output/udmx/']), + EnttecDmx(L9['output/dmx0/'], '/dev/dmx3', 80), + Udmx(L9['output/udmx/'], 510), ] c = Collector(graph, outputs)
--- a/light9/collector/collector.py Sat Jun 11 20:30:34 2016 +0000 +++ b/light9/collector/collector.py Sat Jun 11 20:41:04 2016 +0000 @@ -105,6 +105,8 @@ outputAttrs[d] = toOutputAttrs(devType, deviceAttrs[d]) pendingOut = {} # output : values + for out in self.outputs: + pendingOut[out] = [0] * out.numChannels for device, attrs in outputAttrs.iteritems(): for outputAttr, value in attrs.iteritems(): self.setAttr(device, outputAttr, value, pendingOut) @@ -117,7 +119,7 @@ def setAttr(self, device, outputAttr, value, pendingOut): output, index = self.outputMap[(device, outputAttr)] - outList = pendingOut.setdefault(output, []) + outList = pendingOut[output] setListElem(outList, index, value, combine=max) def flush(self, pendingOut):
--- a/light9/collector/output.py Sat Jun 11 20:30:34 2016 +0000 +++ b/light9/collector/output.py Sat Jun 11 20:41:04 2016 +0000 @@ -8,6 +8,7 @@ from greplin import scales log = logging.getLogger('output') +# eliminate this: lists are always padded now def setListElem(outList, index, value, fill=0, combine=lambda old, new: new): if len(outList) < index: outList.extend([fill] * (index - len(outList))) @@ -48,8 +49,9 @@ class DmxOutput(Output): - def __init__(self, uri): + def __init__(self, uri, numChannels): self.uri = uri + self.numChannels = numChannels def flush(self): pass @@ -74,8 +76,8 @@ scales.PmfStat('write'), scales.PmfStat('update')) - def __init__(self, uri, devicePath='/dev/dmx0'): - DmxOutput.__init__(self, uri) + def __init__(self, uri, devicePath='/dev/dmx0', numChannels=80): + DmxOutput.__init__(self, uri, numChannels) sys.path.append("dmx_usb_module") from dmx import Dmx @@ -108,8 +110,8 @@ scales.PmfStat('update'), scales.PmfStat('write'), scales.IntStat('usbErrors')) - def __init__(self, uri): - DmxOutput.__init__(self, uri) + def __init__(self, uri, numChannels): + DmxOutput.__init__(self, uri, numChannels) from light9.io.udmx import Udmx self.dev = Udmx()