summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Peter Nilsson <peppe@pappkartong.se>2011-02-26 13:26:05 +0100
committerJan-Peter Nilsson <peppe@pappkartong.se>2011-02-26 13:26:05 +0100
commit6e0fd204b3e46ccfc318cceb60d2672751f738cf (patch)
tree99becee21dad780c909b504a8fa9d033d2b63713
fist
-rwxr-xr-xtv82
1 files changed, 82 insertions, 0 deletions
diff --git a/tv b/tv
new file mode 100755
index 0000000..86052aa
--- /dev/null
+++ b/tv
@@ -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")