diff options
author | Jan-Peter Nilsson <peppe@pappkartong.se> | 2011-02-26 13:26:05 +0100 |
---|---|---|
committer | Jan-Peter Nilsson <peppe@pappkartong.se> | 2011-02-26 13:26:05 +0100 |
commit | 6e0fd204b3e46ccfc318cceb60d2672751f738cf (patch) | |
tree | 99becee21dad780c909b504a8fa9d033d2b63713 |
fist
-rwxr-xr-x | tv | 82 |
1 files changed, 82 insertions, 0 deletions
@@ -0,0 +1,82 @@ +#!/usr/bin/python + +import sys +import serial +import time + + +class LgTV: + InputDTV = 0 << 4 + InputAnalogue = 1 << 4 + InputAV = 2 << 4 + InputComponent = 4 << 4 + InputRGB = 6 << 4 + InputHDMI = 8 << 4 + + def __init__(self, parDevice): + self.ser = serial.Serial(parDevice, 9600, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE, xonxoff=0, rtscts=0, dsrdtr=0, timeout=5) + + def __del__(self): + self.ser.close() + + def setValue(self, parSet, parCmd, parValue): + cmd = "%s %02X %02X\r" % (parCmd, parSet, parValue) + print cmd + self.ser.write(cmd) + self.ser.write("\r\r") + #self.ser.flush() + + def readResponse(self): + print "In waiting: "+str(self.ser.inWaiting()) + if(self.ser.inWaiting() > 9): + print self.ser.readline() + + def getValue(self, parSet, parCmd): + for i in range(0,1): + self.setValue(parSet, parCmd, 0xFF) + time.sleep(0.5) + print "In waiting: "+str(self.ser.inWaiting()) + if(self.ser.inWaiting() > 9): + return self.ser.read(10) + time.sleep(1) + return None + + def power(self, parSet): + return self.getValue(parSet, "ka") + + def power(self, parSet, parWantedState): + self.setValue(parSet, "ka", parWantedState) + + def mute(self, parSet, parWantedState): + self.setValue(parSet, "ke", not parWantedState) + + def input(self, parSet, parGroup, parInput): + self.setValue(parSet, "xb", parGroup | parInput) + + +tv = LgTV("/dev/ttyUSB0") +#tv.setValue(01, "xb", 0x00) +#print tv.getValue(01, "xb") +#tv.setValue(01, "xb", 0x80) +#time.sleep(2) +#tv.power(01, False) +#tv.power(01, True) +#tv.input(01, tv.InputDTV, 0) +#tv.input(01, tv.InputHDMI, 0) +#print tv.getValue(01, "ka") + +if sys.argv[1:] == ['on']: + tv.power(01, True) +elif sys.argv[1:] == ['off']: + tv.power(01, False) +elif sys.argv[1:] == ['dvb']: + tv.input(01, tv.InputDTV, 0) +elif sys.argv[1:] == ['hdmi']: + tv.input(01, tv.InputHDMI, 0) +elif sys.argv[1:] == ['mute']: + tv.mute(01, True) +elif sys.argv[1:] == ['unmute']: + tv.mute(01, False) +else: + for i in range(0,10): + print tv.getValue(01, "ka") |