summaryrefslogtreecommitdiff
path: root/interface/ola.py
blob: 445b991a0e658b047ad757af3bc650000154aec7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import array

from ola.OlaClient import OlaClient

class OLAOutput:
    def set_values(self, values):
        send = set()
        for c, v in values.items():
            univ, addr = c.address
            if univ not in self.universes:
                self.universes[univ] = array.array('B', (0 for i in range(512)))
            uni = self.universes[univ]
            if uni[addr] != v:
                uni[addr] = v
                send.add(univ)
        for univ in send:
            self.client.SendDmx(univ, self.universes[univ])

    def __init__(self):
        self.client = OlaClient()

        self.universes = {1: array.array('B', (0 for i in range(512)))}