add flippers to cli

This commit is contained in:
Jonas Zeunert
2022-05-03 20:57:37 +02:00
parent 7c56b1d6c7
commit f6c7403aa8
2 changed files with 50 additions and 26 deletions

View File

@@ -1,5 +1,7 @@
import requests_unixsocket as req import requests_unixsocket as req
import socket import socket
import json
class Networking: class Networking:
def __init__(self, output_server_address, input_socket_address): def __init__(self, output_server_address, input_socket_address):
@@ -13,22 +15,19 @@ class Networking:
def get(self, path): def get(self, path):
response = self.output_session.get(self.server_address + path) response = self.output_session.get(self.server_address + path)
assert response.status_code == 200 assert response.status_code == 200
return response return response.content
def getSolenoids(self): def getSolenoids(self):
return self.get("/solenoids").json() return json.loads(self.get("/solenoids"))
def getSounds(self):
return self.get("/sounds").json()
def getLamps(self):
return self.get("/lamps").json()
def getDisplays(self):
return self.get("/displays").json()
def testDisplays(self): def getSounds(self):
return self.get("/displays/test") 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): def triggerSolenoid(self, solenoid):
self.get("/solenoids/" + solenoid + "/trigger") self.get("/solenoids/" + solenoid + "/trigger")
@@ -37,22 +36,32 @@ class Networking:
self.get("/sounds/" + sound + "/play") self.get("/sounds/" + sound + "/play")
def activateLamp(self, lamp): def activateLamp(self, lamp):
self.get("/lamps/" + lamp + "/activate") self.get("/lamps/" + lamp.name + "/activate")
def deactivateLamp(self, lamp): 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): def lampStatus(self, lamp):
return self.get("/lamps/" + lamp + "/status").json() return json.loads(self.get("/lamps/" + lamp + "/status"))
def writeDisplayScore(self, display, score): def writeDisplayScore(self, display, score):
self.get("/displays/" + display + "/write_score/" + str(score)) self.get("/displays/" + display + "/write_score/" + str(score))
def getInputEvent(self): async def getInputEvent(self):
header = list() header = list()
while b'\x02' not in header: while b'\x02' not in header:
byte = self.input_socket.recv(1) byte = self.input_socket.recv(1)
header.append(byte) header.append(byte)
header = [x.decode('utf8') for x in header[:-1]] header = [x.decode('utf8') for x in header[:-1]]
return str().join(header) headerAsString = str().join(header)
eventAsJson = json.loads(headerAsString)
return eventAsJson

View File

@@ -34,13 +34,28 @@ def create_menu():
input_item = FunctionItem("Print Input", print_input) input_item = FunctionItem("Print Input", print_input)
menu.append_item(input_item) 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() menu.show()
#quit = False def activate_flipper():
#def sigint_handler(quit): networking.activateFlipper("Flipper Relay")
# quit = True
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(): def print_input():
print("Starting to print incoming events:") print("Starting to print incoming events:")