Selaa lähdekoodia

Add control server that listens to websocket

Tankernn 7 vuotta sitten
vanhempi
commit
f69e4f3efd
1 muutettua tiedostoa jossa 35 lisäystä ja 0 poistoa
  1. 35 0
      server/control_server.py

+ 35 - 0
server/control_server.py

@@ -0,0 +1,35 @@
+#!/usr/bin/python3
+
+import json
+from .common import *
+from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket
+
+pin_map = {
+    87: fwd_pin,    # w
+    65: left_pin,   # a
+    83: back_pin,   # s
+    68: right_pin,  # d
+    16: hard_pin    # shift
+}
+
+GPIO.setup(list(pin_map.values()), GPIO.OUT)
+
+class SimpleServer(WebSocket):
+
+    def handleMessage(self):
+        keys = json.loads(self.data)
+
+        for (key_code, pin) in pin_map.items():
+            GPIO.output(pin, key_code in keys)
+
+    def handleConnected(self):
+        print(self.address, 'connected')
+
+    def handleClose(self):
+        print(self.address, 'closed')
+        GPIO.output(pin_map.values(), GPIO.LOW)
+
+server = SimpleWebSocketServer('', 54321, SimpleServer)
+
+if __name__ == '__main__':
+    server.serveforever()