X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/dff52e1ae2d2c052c112618df267af0cb9155443..b9bda8a0d43be892f2e5d96ea45ba8d4b2fdae20:/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py index 10fa02d3..40688df5 100644 --- a/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py +++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py @@ -1,5 +1,6 @@ from enigma import eTimer, eDVBSatelliteEquipmentControl, eDVBResourceManager, \ - eDVBDiseqcCommand, eDVBFrontendParametersSatellite, eDVBFrontendParameters + eDVBDiseqcCommand, eDVBFrontendParametersSatellite, eDVBFrontendParameters,\ + iDVBFrontend from Screens.Screen import Screen from Screens.ScanSetup import ScanSetup @@ -60,8 +61,9 @@ class PositionerSetup(Screen): del session.pip if not self.openFrontend(): self.frontend = None # in normal case this should not happen - self.getFrontend = None - + + self.frontendStatus = { } + self.diseqc = Diseqc(self.frontend) self.tuner = Tuner(self.frontend) self.tuner.tune((0,0,0,0,0,0)) @@ -88,13 +90,13 @@ class PositionerSetup(Screen): self["agc"] = Label() self["ber"] = Label() self["lock"] = Label() - self["snr_percentage"] = TunerInfo(TunerInfo.SNR_PERCENTAGE, frontendfkt = self.getFrontend) - self["agc_percentage"] = TunerInfo(TunerInfo.AGC_PERCENTAGE, frontendfkt = self.getFrontend) - self["ber_value"] = TunerInfo(TunerInfo.BER_VALUE, frontendfkt = self.getFrontend) - self["snr_bar"] = TunerInfo(TunerInfo.SNR_BAR, frontendfkt = self.getFrontend) - self["agc_bar"] = TunerInfo(TunerInfo.AGC_BAR, frontendfkt = self.getFrontend) - self["ber_bar"] = TunerInfo(TunerInfo.BER_BAR, frontendfkt = self.getFrontend) - self["lock_state"] = TunerInfo(TunerInfo.LOCK_STATE, frontendfkt = self.getFrontend) + self["snr_percentage"] = TunerInfo(TunerInfo.SNR_PERCENTAGE, statusDict = self.frontendStatus) + self["agc_percentage"] = TunerInfo(TunerInfo.AGC_PERCENTAGE, statusDict = self.frontendStatus) + self["ber_value"] = TunerInfo(TunerInfo.BER_VALUE, statusDict = self.frontendStatus) + self["snr_bar"] = TunerInfo(TunerInfo.SNR_BAR, statusDict = self.frontendStatus) + self["agc_bar"] = TunerInfo(TunerInfo.AGC_BAR, statusDict = self.frontendStatus) + self["ber_bar"] = TunerInfo(TunerInfo.BER_BAR, statusDict = self.frontendStatus) + self["lock_state"] = TunerInfo(TunerInfo.LOCK_STATE, statusDict = self.frontendStatus) self["frequency"] = Label() self["symbolrate"] = Label() @@ -138,9 +140,6 @@ class PositionerSetup(Screen): else: self.restartPrevService(False) - def getFrontend(self): - return self.frontend - def openFrontend(self): res_mgr = eDVBResourceManager.getInstance() if res_mgr: @@ -323,6 +322,8 @@ class PositionerSetup(Screen): self.tuner.retune() def updateStatus(self): + if self.frontend: + self.frontend.getFrontendStatus(self.frontendStatus) self["snr_percentage"].update() self["agc_percentage"].update() self["ber_value"].update() @@ -331,10 +332,10 @@ class PositionerSetup(Screen): self["ber_bar"].update() self["lock_state"].update() transponderdata = self.tuner.getTransponderData() - self["frequency_value"].setText(str(transponderdata["frequency"])) - self["symbolrate_value"].setText(str(transponderdata["symbol_rate"])) - self["fec_value"].setText(str(transponderdata["fec_inner"])) - if transponderdata["tuner_locked"] == 1 and self.isMoving and self.stopOnLock: + self["frequency_value"].setText(str(transponderdata.get("frequency"))) + self["symbolrate_value"].setText(str(transponderdata.get("symbol_rate"))) + self["fec_value"].setText(str(transponderdata.get("fec_inner"))) + if self.frontendStatus.get("tuner_locked", 0) == 1 and self.isMoving and self.stopOnLock: self.diseqccommand("stop") self.isMoving = False self.stopOnLock = False @@ -373,6 +374,8 @@ class Diseqc: print "diseqc command:", print string cmd.setCommandString(string) + self.frontend.setTone(iDVBFrontend.toneOff) + sleep(0.015) # wait 15msec after disable tone self.frontend.sendDiseqc(cmd) if string == 'e03160': #positioner stop sleep(0.05) @@ -404,9 +407,10 @@ class Tuner: self.frontend.tune(self.lastparm) def getTransponderData(self): + ret = { } if self.frontend: - return self.frontend.readTransponderData(True) - return None + self.frontend.getTransponderData(ret, True) + return ret tuning = None @@ -570,3 +574,4 @@ def PositionerSetupStart(menuid): def Plugins(**kwargs): return PluginDescriptor(name=_("Positioner setup"), description="Setup your positioner", where = PluginDescriptor.WHERE_SETUP, fnc=PositionerSetupStart) + \ No newline at end of file