Viido projektori arvuti repo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

130 lines
2.7 KiB

#!/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