From f6c7403aa89fe1d9ecc3d1865253b99ea1ccdce0 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Tue, 3 May 2022 20:57:37 +0200 Subject: [PATCH] add flippers to cli --- cli/FlippR_Networking.py | 49 ++++++++++++++++++++++++---------------- cli/main.py | 27 +++++++++++++++++----- 2 files changed, 50 insertions(+), 26 deletions(-) diff --git a/cli/FlippR_Networking.py b/cli/FlippR_Networking.py index aabea77..fd1c985 100644 --- a/cli/FlippR_Networking.py +++ b/cli/FlippR_Networking.py @@ -1,5 +1,7 @@ import requests_unixsocket as req import socket +import json + class Networking: def __init__(self, output_server_address, input_socket_address): @@ -13,22 +15,19 @@ class Networking: def get(self, path): response = self.output_session.get(self.server_address + path) assert response.status_code == 200 - return response + return response.content def getSolenoids(self): - return self.get("/solenoids").json() - - def getSounds(self): - return self.get("/sounds").json() - - def getLamps(self): - return self.get("/lamps").json() - - def getDisplays(self): - return self.get("/displays").json() + return json.loads(self.get("/solenoids")) - def testDisplays(self): - return self.get("/displays/test") + def getSounds(self): + return json.loads(self.get("/sounds")) + + def getLamps(self): + return json.loads(self.get("/lamps")) + + def getDisplays(self): + return json.loads(self.get("/displays")) def triggerSolenoid(self, solenoid): self.get("/solenoids/" + solenoid + "/trigger") @@ -37,22 +36,32 @@ class Networking: self.get("/sounds/" + sound + "/play") def activateLamp(self, lamp): - self.get("/lamps/" + lamp + "/activate") - + self.get("/lamps/" + lamp.name + "/activate") + def deactivateLamp(self, lamp): - self.get("/lamps/" + lamp + "/deactivate") - + self.get("/lamps/" + lamp.name + "/deactivate") + + def activateFlipper(self, name): + self.get("/flippers/" + name + "/activate") + + def deactivateFlipper(self, name): + self.get("/flippers/" + name + "deactivate") + def lampStatus(self, lamp): - return self.get("/lamps/" + lamp + "/status").json() + return json.loads(self.get("/lamps/" + lamp + "/status")) def writeDisplayScore(self, display, score): self.get("/displays/" + display + "/write_score/" + str(score)) - def getInputEvent(self): + async def getInputEvent(self): header = list() while b'\x02' not in header: byte = self.input_socket.recv(1) header.append(byte) header = [x.decode('utf8') for x in header[:-1]] - return str().join(header) + headerAsString = str().join(header) + + eventAsJson = json.loads(headerAsString) + + return eventAsJson diff --git a/cli/main.py b/cli/main.py index a7bc85b..be9693b 100755 --- a/cli/main.py +++ b/cli/main.py @@ -34,13 +34,28 @@ def create_menu(): input_item = FunctionItem("Print Input", print_input) menu.append_item(input_item) - - #win = curses.newwin(20,20,20,20) + + flippr_item = FunctionItem("Activate Flippers", activate_flipper) + menu.append_item(flippr_item) + top_flipper_item = FunctionItem("Activate Top Flippers", activate_top_flipper) + menu.append_item(top_flipper_item) + deac_flippr_item = FunctionItem("Deactivate Flippers", deactivate_flipper) + menu.append_item(deac_flippr_item) + deac_top_flippr_item = FunctionItem("Deactivate Top Flippers", deactivate_top_flipper) + menu.append_item(deac_top_flippr_item) menu.show() - -#quit = False -#def sigint_handler(quit): - # quit = True + +def activate_flipper(): + networking.activateFlipper("Flipper Relay") + +def activate_top_flipper(): + networking.activateFlipper("Top Flipper Relay") + +def deactivate_flipper(): + networking.deactivateFlipper("Flipper Relay") + +def deactivate_top_flipper(): + networking.deactivateFlipper("Top Flipper Relay") def print_input(): print("Starting to print incoming events:")