mirror of https://github.com/Lapikud/Viido.git
parent
9753503d53
commit
9ab94084cb
2 changed files with 157 additions and 0 deletions
@ -0,0 +1,130 @@ |
|||||||
|
#!/usr/bin/env python3 |
||||||
|
import serial |
||||||
|
from time import sleep |
||||||
|
|
||||||
|
def on_hdmi(): |
||||||
|
p = Projektor("/dev/ttyS0") |
||||||
|
print("HDMI ON") |
||||||
|
while True: |
||||||
|
if p.get_power() != "ON": |
||||||
|
print("PROJECTOR ON") |
||||||
|
p.on() |
||||||
|
|
||||||
|
elif p.get_source() != "HDMI": |
||||||
|
print("SWITCHING HDMI") |
||||||
|
p.hdmi() |
||||||
|
break |
||||||
|
|
||||||
|
else: |
||||||
|
break |
||||||
|
sleep(1) |
||||||
|
print("DONE") |
||||||
|
p.close() |
||||||
|
|
||||||
|
def on_vga(): |
||||||
|
p = Projektor("/dev/ttyS0") |
||||||
|
print("VGA ON") |
||||||
|
while True: |
||||||
|
if p.get_power() != "ON": |
||||||
|
print("PROJECTOR ON") |
||||||
|
p.on() |
||||||
|
|
||||||
|
elif p.get_source() != "VGA": |
||||||
|
print("SWITCHING VGA") |
||||||
|
p.vga() |
||||||
|
break |
||||||
|
|
||||||
|
else: |
||||||
|
break |
||||||
|
sleep(1) |
||||||
|
print("DONE") |
||||||
|
p.close() |
||||||
|
|
||||||
|
|
||||||
|
def get_status(): |
||||||
|
p = Projektor("/dev/ttyS0") |
||||||
|
if p.get_power() == "OFF": |
||||||
|
status = "off" |
||||||
|
|
||||||
|
else: |
||||||
|
status = p.get_source() |
||||||
|
print("DONE") |
||||||
|
p.close() |
||||||
|
return status |
||||||
|
|
||||||
|
def off(): |
||||||
|
p = Projektor("/dev/ttyS0") |
||||||
|
p.off() |
||||||
|
|
||||||
|
class Projektor: |
||||||
|
def __init__(self, device): |
||||||
|
self.ser = serial.Serial(device, 115200, timeout=1) |
||||||
|
|
||||||
|
def close(self): |
||||||
|
self.ser.close() |
||||||
|
|
||||||
|
def ___delete__(self, instance): |
||||||
|
self.close() |
||||||
|
|
||||||
|
def on(self): |
||||||
|
self.ser.write(b"\r*pow=on#\r") |
||||||
|
|
||||||
|
def off(self): |
||||||
|
self.ser.write(b"\r*pow=off#\r") |
||||||
|
|
||||||
|
def hdmi(self): |
||||||
|
self.ser.write(b"\r*sour=hdmi#\r") |
||||||
|
|
||||||
|
def vga(self): |
||||||
|
self.ser.write(b"\r*sour=RGB2#\r") |
||||||
|
|
||||||
|
def get_source(self): |
||||||
|
self.ser.read() |
||||||
|
self.ser.write(b"\r*sour=?#\r") |
||||||
|
|
||||||
|
while True: |
||||||
|
c = self.ser.read(1) |
||||||
|
if c == b">": |
||||||
|
self.ser.read(17) |
||||||
|
source = self.ser.read(4) |
||||||
|
if source == b"HDMI": |
||||||
|
return "hdmi" |
||||||
|
elif source == b"RGB2": |
||||||
|
return "vga" |
||||||
|
elif not c: |
||||||
|
break |
||||||
|
|
||||||
|
def get_power(self): |
||||||
|
self.ser.read() |
||||||
|
self.ser.write(b"\r*pow=?#\r") |
||||||
|
|
||||||
|
while True: |
||||||
|
c = self.ser.read(1) |
||||||
|
if c == b">": |
||||||
|
self.ser.read(15) |
||||||
|
status = self.ser.read(3) |
||||||
|
|
||||||
|
if status == b"k i": |
||||||
|
return None |
||||||
|
elif status == b"ON#": |
||||||
|
return "ON" |
||||||
|
elif status == b"OFF": |
||||||
|
return "OFF" |
||||||
|
|
||||||
|
elif not c: |
||||||
|
break |
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__": |
||||||
|
|
||||||
|
p = Projektor("/dev/ttyS0") |
||||||
|
while True: |
||||||
|
if p.get_power() != "ON": |
||||||
|
print("POWER ON") |
||||||
|
p.on() |
||||||
|
|
||||||
|
elif p.get_source() != "HDMI": |
||||||
|
print("switching HDMI") |
||||||
|
p.hdmi() |
||||||
|
else: |
||||||
|
break |
@ -0,0 +1,27 @@ |
|||||||
|
#!/usr/bin/env python3 |
||||||
|
from bottle import get, post, request, run |
||||||
|
import projektor |
||||||
|
|
||||||
|
@get("/status") |
||||||
|
def status(): |
||||||
|
print("asking status") |
||||||
|
return projektor.get_status() |
||||||
|
|
||||||
|
@post("/status") |
||||||
|
def set_status(): |
||||||
|
mode = request.forms.get("mode") |
||||||
|
print("SETTING STATUS TO", mode) |
||||||
|
if mode == "off": |
||||||
|
projektor.off() |
||||||
|
elif mode == "hdmi": |
||||||
|
projektor.on_hdmi() |
||||||
|
elif mode == "vga": |
||||||
|
projektor.on_vga() |
||||||
|
|
||||||
|
|
||||||
|
return "OK" |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__": |
||||||
|
run(host="127.0.0.1", port=6999, debug=True) |
Loading…
Reference in new issue