diff options
Diffstat (limited to 'turtetris_slave')
| -rw-r--r-- | turtetris_slave/__init__.py | 31 | ||||
| -rw-r--r-- | turtetris_slave/__main__.py | 3 | ||||
| -rw-r--r-- | turtetris_slave/leds.py | 38 | 
3 files changed, 72 insertions, 0 deletions
diff --git a/turtetris_slave/__init__.py b/turtetris_slave/__init__.py new file mode 100644 index 0000000..5779dee --- /dev/null +++ b/turtetris_slave/__init__.py @@ -0,0 +1,31 @@ +import json +import zmq +from subprocess import check_output +from . import leds + + +def socket_init(line): +    "Initialize socket for given line" +    context = zmq.Context() +    socket = context.socket(zmq.SUB) +    socket.subscribe('line' + str(line)) +    # socket.setsockopt_string(zmq.SUBSCRIBE, 'line' + str(line)) +    socket.connect('tcp://192.168.2.1:4444')  # TODO change to 192.168.1.1 +    return socket + + +def main(): +    "Main function" +    line = int(check_output("uci get turtetris.line", shell=True)) +    print("Starting turtetris client and connecting as line " + str(line)) +    sck = socket_init(line) +    leds.prepare() +    while True: +        msg = sck.recv_string() +        print(msg) +        json0 = msg.find(' ') # First empty char is end of envelope +        leds.output(json.loads(msg[json0:])) + + +if __name__ == '__main__': +    main() diff --git a/turtetris_slave/__main__.py b/turtetris_slave/__main__.py new file mode 100644 index 0000000..8273c4f --- /dev/null +++ b/turtetris_slave/__main__.py @@ -0,0 +1,3 @@ +from . import main + +main() diff --git a/turtetris_slave/leds.py b/turtetris_slave/leds.py new file mode 100644 index 0000000..cdafca2 --- /dev/null +++ b/turtetris_slave/leds.py @@ -0,0 +1,38 @@ +from subprocess import call + + +def prepare(): +    "Prepare leds" +    call("rainbow all enable intensity 10 FFFFFF", shell=True) + + +def clear(): +    "Clear previous changes" +    call("rainbow all auto", shell=True) + + +__MAP__ = [ +    'pwr', +    'lan0', +    'lan1', +    'lan2', +    'lan3', +    'lan4', +    'wan', +    'pci1', +    'pci2', +    'pci3', +    'usr1', +    'usr2' +] + + +def output(data): +    "Output received data to leds" +    args = ['rainbow'] +    for i in range(0, 12): +        args.append(__MAP__[i]) +        args.append(str(data[i]['color'])) +        args.append('intensity') +        args.append(str(data[i]['intens'])) +    call(args)  | 
