X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/be296b411e8fc29f652799bf752d80db374d6672..7a81c7d2707f237d6aee01a945028e63baf5662c:/lib/python/Tools/DreamboxHardware.py diff --git a/lib/python/Tools/DreamboxHardware.py b/lib/python/Tools/DreamboxHardware.py index 5eaaeeca..9e81bb47 100644 --- a/lib/python/Tools/DreamboxHardware.py +++ b/lib/python/Tools/DreamboxHardware.py @@ -1,17 +1,68 @@ +from fcntl import ioctl +from struct import pack, unpack + def getFPVersion(): - from fcntl import ioctl + ret = None try: - fp = open("/dev/dbox/fp0") - return ioctl(fp.fileno(),0) + ret = long(open("/proc/stb/fp/version", "r").read()) except IOError: - return None + try: + fp = open("/dev/dbox/fp0") + ret = ioctl(fp.fileno(),0) + except IOError: + print "getFPVersion failed!" + return ret def setFPWakeuptime(wutime): - from fcntl import ioctl - from struct import pack + try: + open("/proc/stb/fp/wakeup_time", "w").write(str(wutime)) + except IOError: + try: + fp = open("/dev/dbox/fp0") + ioctl(fp.fileno(), 6, pack('L', wutime)) # set wake up + except IOError: + print "setFPWakeupTime failed!" + +def setRTCtime(wutime): + try: + open("/proc/stb/fp/rtc", "w").write(str(wutime)) + except IOError: + try: + fp = open("/dev/dbox/fp0") + ioctl(fp.fileno(), 0x101, pack('L', wutime)) # set wake up + except IOError: + print "setRTCtime failed!" +def getFPWakeuptime(): + ret = 0 try: - fp = open("/dev/dbox/fp0") - ioctl(fp.fileno(), 6, pack('L', wutime)) # set wake up + ret = long(open("/proc/stb/fp/wakeup_time", "r").read()) except IOError: - pass + try: + fp = open("/dev/dbox/fp0") + ret = unpack('L', ioctl(fp.fileno(), 5, ' '))[0] # get wakeuptime + except IOError: + print "getFPWakeupTime failed!" + return ret + +def getFPWasTimerWakeup(): + was_wakeup = False + try: + was_wakeup = int(open("/proc/stb/fp/was_timer_wakeup", "r").read()) and True or False + except: + try: + fp = open("/dev/dbox/fp0") + was_wakeup = unpack('B', ioctl(fp.fileno(), 9, ' '))[0] and True or False + except IOError: + print "wasTimerWakeup failed!" + return was_wakeup + +def clearFPWasTimerWakeup(): + try: + open("/proc/stb/fp/was_timer_wakeup", "w").write('0') + except: + try: + fp = open("/dev/dbox/fp0") + ioctl(fp.fileno(), 10) + except IOError: + print "clearFPWasTimerWakeup failed!"