aboutsummaryrefslogtreecommitdiff
path: root/turtetris_slave
diff options
context:
space:
mode:
Diffstat (limited to 'turtetris_slave')
-rw-r--r--turtetris_slave/__init__.py31
-rw-r--r--turtetris_slave/__main__.py3
-rw-r--r--turtetris_slave/leds.py38
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)