X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ae602961330ac8eab5312a7f8dd991f45e211709..b41d5f967712c1ef48b63a00052f61275fc8e737:/lib/python/Components/NimManager.py diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py index 5b3b853f..04ea2889 100644 --- a/lib/python/Components/NimManager.py +++ b/lib/python/Components/NimManager.py @@ -1,6 +1,6 @@ from config import config, ConfigSubsection, ConfigSelection, ConfigFloat, ConfigSatlist, ConfigYesNo, ConfigInteger, ConfigSubList, ConfigNothing, ConfigSubDict, ConfigOnOff -from enigma import eDVBSatelliteEquipmentControl, \ +from enigma import eDVBSatelliteEquipmentControl as secClass, \ eDVBSatelliteLNBParameters as lnbParam, \ eDVBSatelliteDiseqcParameters as diseqcParam, \ eDVBSatelliteSwitchParameters as switchParam, \ @@ -16,6 +16,14 @@ from xml.sax.handler import ContentHandler from Tools.BoundFunction import boundFunction +def getConfigSatlist(orbpos, satlist): + default_orbpos = None + for x in satlist: + if x[0] == orbpos: + default_orbpos = orbpos + break + return ConfigSatlist(satlist, default_orbpos) + def tryOpen(filename): try: procFile = open(filename) @@ -32,7 +40,6 @@ class SecConfigure: tunermask |= (1 << self.equal[slotid]) elif self.linked.has_key(slotid): tunermask |= (1 << self.linked[slotid]) - sec.setLNBTunerMask(tunermask) sec.setLNBLOFL(9750000) sec.setLNBLOFH(10600000) sec.setLNBThreshold(11700000) @@ -56,7 +63,6 @@ class SecConfigure: elif (diseqcmode == 3): # diseqc 1.2 if self.satposdepends.has_key(slotid): tunermask |= (1 << self.satposdepends[slotid]) - sec.setLNBTunerMask(tunermask) sec.setLatitude(latitude) sec.setLaDirection(laDirection) sec.setLongitude(longitude) @@ -72,6 +78,8 @@ class SecConfigure: sec.setRotorPosNum(0) # USALS self.satList.append(int(x[0])) + sec.setLNBTunerMask(tunermask) + def setSatposDepends(self, sec, nim1, nim2): print "tuner", nim1, "depends on satpos of", nim2 sec.setTunerDepends(nim1, nim2) @@ -84,7 +92,7 @@ class SecConfigure: return self.satList def update(self): - sec = eDVBSatelliteEquipmentControl.getInstance() + sec = secClass.getInstance() sec.clear() ## this do unlinking NIMs too !! print "sec config cleared" self.satList = [] @@ -97,13 +105,13 @@ class SecConfigure: nim = config.Nims[x] if slot.nimType == self.NimManager.nimType["DVB-S"]: if nim.configMode.value == "equal": - self.equal[nim.equalTo.value]=x + self.equal[nim.equalTo.index]=x if nim.configMode.value == "loopthrough": - self.linkNIMs(sec, x, nim.linkedTo.value) - self.linked[nim.linkedTo.value]=x + self.linkNIMs(sec, x, nim.linkedTo.index) + self.linked[nim.linkedTo.index]=x elif nim.configMode.value == "satposdepends": self.setSatposDepends(sec, x, nim.satposDependsTo.index) - self.satposdepends[nim.satposDependsTo.value]=x + self.satposdepends[nim.satposDependsTo.index]=x for slot in self.NimManager.nimslots: x = slot.slotid @@ -178,10 +186,10 @@ class SecConfigure: sec.setLNBLOFH(currLnb.lofh.value * 1000) sec.setLNBThreshold(currLnb.threshold.value * 1000) - if currLnb.output_12v.value == "0V": - pass # nyi in drivers - elif currLnb.output_12v.value == "12V": - pass # nyi in drivers +# if currLnb.output_12v.value == "0V": +# pass # nyi in drivers +# elif currLnb.output_12v.value == "12V": +# pass # nyi in drivers if currLnb.increased_voltage.value: sec.setLNBIncreasedVoltage(lnbParam.ON) @@ -413,7 +421,7 @@ class NimManager: return self.cablesList[0] def getCableTrustNit(self, nim): - return (config.Nims[nim].cabletype.value == "quick") + return config.Nims[nim].cabletype.value == "quick" def getTerrestrialDescription(self, nim): return self.terrestrialsList[config.Nims[nim].terrestrial.index][0] @@ -576,9 +584,9 @@ class NimManager: if configMode == "simple": dm = config.Nims[slotid].diseqcMode.value - if dm in ["single", "toneburst", "diseqc_a_b", "diseqc_a_b_c_d"]: + if dm in ["single", "toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"]: list.append(self.satList[config.Nims[slotid].diseqcA.index]) - if dm in ["toneburst", "diseqc_a_b", "diseqc_a_b_c_d"]: + if dm in ["toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"]: list.append(self.satList[config.Nims[slotid].diseqcB.index]) if dm == "diseqc_a_b_c_d": list.append(self.satList[config.Nims[slotid].diseqcC.index]) @@ -632,7 +640,65 @@ class NimManager: #print "nimDiseqcD set to " + str(val) pass +def InitSecParams(): + config.sec = ConfigSubsection() + + x = ConfigInteger(default=15) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_CONT_TONE, configElement.value)) + config.sec.delay_after_continuous_tone_change = x + + x = ConfigInteger(default=10) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_FINAL_VOLTAGE_CHANGE, configElement.value)) + config.sec.delay_after_final_voltage_change = x + + x = ConfigInteger(default=120) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_BETWEEN_DISEQC_REPEATS, configElement.value)) + config.sec.delay_between_diseqc_repeats = x + + x = ConfigInteger(default=50) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_LAST_DISEQC_CMD, configElement.value)) + config.sec.delay_after_last_diseqc_command = x + + x = ConfigInteger(default=50) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_TONEBURST, configElement.value)) + config.sec.delay_after_toneburst = x + + x = ConfigInteger(default=120) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_ENABLE_VOLTAGE_BEFORE_SWITCH_CMDS, configElement.value)) + config.sec.delay_after_enable_voltage_before_switch_command = x + + x = ConfigInteger(default=700) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_BETWEEN_SWITCH_AND_MOTOR_CMD, configElement.value)) + config.sec.delay_between_switch_and_motor_command = x + + x = ConfigInteger(default=150) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_MEASURE_IDLE_INPUTPOWER, configElement.value)) + config.sec.delay_after_voltage_change_before_measure_idle_inputpower = x + + x = ConfigInteger(default=750) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_ENABLE_VOLTAGE_BEFORE_MOTOR_CMD, configElement.value)) + config.sec.delay_after_enable_voltage_before_motor_command = x + + x = ConfigInteger(default=150) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_MOTOR_STOP_CMD, configElement.value)) + config.sec.delay_after_motor_stop_command = x + + x = ConfigInteger(default=150) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_MOTOR_CMD, configElement.value)) + config.sec.delay_after_voltage_change_before_motor_command = x + + x = ConfigInteger(default=120) + x.addNotifier(lambda configElement: secClass.setParam(secClass.MOTOR_RUNNING_TIMEOUT, configElement.value)) + config.sec.motor_running_timeout = x + + x = ConfigInteger(default=1) + x.addNotifier(lambda configElement: secClass.setParam(secClass.MOTOR_COMMAND_RETRIES, configElement.value)) + config.sec.motor_command_retries = x + + def InitNimManager(nimmgr): + InitSecParams() + config.Nims = ConfigSubList() for x in range(nimmgr.nimCount): config.Nims.append(ConfigSubsection()) @@ -664,16 +730,15 @@ def InitNimManager(nimmgr): "advanced": _("advanced")}, default = "simple") else: - nim.configMode = ConfigSelection( choices = { "equal": _("equal to Socket A"), - "looptrough": _("loopthrough to socket A"), + "loopthrough": _("loopthrough to socket A"), "nothing": _("nothing connected"), "satposdepends": _("second cable of motorized LNB"), "simple": _("simple"), "advanced": _("advanced")}, - default = "looptrough") + default = "loopthrough") #important - check if just the 2nd one is LT only and the first one is DVB-S if nim.configMode.value in ["loopthrough", "satposdepends", "equal"]: @@ -698,8 +763,9 @@ def InitNimManager(nimmgr): ("diseqc_a_b_c_d", _("DiSEqC A/B/C/D")), ("positioner", _("Positioner"))], default = "diseqc_a_b") - nim.diseqcA = ConfigSatlist(default = 192, list = nimmgr.satList) - nim.diseqcB = ConfigSatlist(default = 130, list = nimmgr.satList) + + nim.diseqcA = getConfigSatlist(192, nimmgr.satList) + nim.diseqcB = getConfigSatlist(130, nimmgr.satList) nim.diseqcC = ConfigSatlist(list = nimmgr.satList) nim.diseqcD = ConfigSatlist(list = nimmgr.satList) nim.positionerMode = ConfigSelection( @@ -730,7 +796,7 @@ def InitNimManager(nimmgr): # advanced config: nim.advanced = ConfigSubsection() - nim.advanced.sats = ConfigSatlist(default = 192, list = nimmgr.satList) + nim.advanced.sats = getConfigSatlist(192,nimmgr.satList) nim.advanced.sat = ConfigSubDict() lnbs = [("0", "not available")] for y in range(1, 33): @@ -760,7 +826,7 @@ def InitNimManager(nimmgr): nim.advanced.lnb[x].lofl = ConfigInteger(default=9750, limits = (0, 99999)) nim.advanced.lnb[x].lofh = ConfigInteger(default=10600, limits = (0, 99999)) nim.advanced.lnb[x].threshold = ConfigInteger(default=11700, limits = (0, 99999)) - nim.advanced.lnb[x].output_12v = ConfigSelection(choices = [("0V", _("0 V")), ("12V", _("12 V"))], default="0V") +# nim.advanced.lnb[x].output_12v = ConfigSelection(choices = [("0V", _("0 V")), ("12V", _("12 V"))], default="0V") nim.advanced.lnb[x].increased_voltage = ConfigYesNo(default=False) nim.advanced.lnb[x].toneburst = ConfigSelection(choices = [("none", _("None")), ("A", _("A")), ("B", _("B"))], default = "none") nim.advanced.lnb[x].diseqcMode = ConfigSelection(choices = [("none", _("None")), ("1_0", _("1.0")), ("1_1", _("1.1")), ("1_2", _("1.2"))], default = "none") @@ -786,7 +852,7 @@ def InitNimManager(nimmgr): nim.advanced.lnb[x].powerThreshold = ConfigInteger(default=50, limits=(0, 100)) elif slot.nimType == nimmgr.nimType["DVB-C"]: - nim.cabletype = ConfigSelection(choices = [("quick", _("Quick")), ("complete", _("Complete"))]) + nim.cabletype = ConfigSelection(choices = [("quick", _("Quick")), ("complete", _("Complete"))], default = "complete") elif slot.nimType == nimmgr.nimType["DVB-T"]: list = [] n = 0