X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/26a6141301937e0ef501b4cd7ae61b4f2293b7e5..9829ed5d56e162f9aa8d76b5644c273350f548b8:/lib/python/Components/NimManager.py?ds=sidebyside diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py index 18c09b6e..741f1db0 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, \ @@ -92,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 = [] @@ -186,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) @@ -421,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] @@ -470,6 +470,7 @@ class NimManager: lastsocket = -1 + entries = {} while 1: line = nimfile.readline() if line == "": @@ -478,17 +479,24 @@ class NimManager: parts = line.strip().split(" ") id = int(parts[2][:1]) lastsocket = int(id) - self.nimSocketCount += 1 + entries[lastsocket] = {} elif line.strip().startswith("Type:"): - self.nimTypes[lastsocket] = str(line.strip()[6:]) - #self.nimTypes[lastsocket] = str("DVB-T") + entries[lastsocket]["type"] = str(line.strip()[6:]) + #entries[lastsocket]["type"] = str("DVB-S2") elif line.strip().startswith("Name:"): - self.nimNames[lastsocket] = str(line.strip()[6:]) + entries[lastsocket]["name"] = str(line.strip()[6:]) elif line.strip().startswith("empty"): - self.nimNames[lastsocket] = _("N/A") - self.nimTypes[lastsocket] = "empty/unknown" - + entries[lastsocket]["type"] = "empty/unknown" + entries[lastsocket]["name"] = _("N/A") nimfile.close() + + for id,entry in entries.items(): + if not(entry.has_key("name") and entry.has_key("type") and self.nimType.has_key(entry["type"])): + entry["name"] = _("N/A") + entry["type"] = "empty/unknown" + self.nimNames[id] = entry["name"] + self.nimTypes[id] = entry["type"] + self.nimSocketCount += 1 def getNimType(self, slotID): if slotID >= self.nimCount: @@ -640,16 +648,74 @@ class NimManager: #print "nimDiseqcD set to " + str(val) pass +def InitSecParams(): + config.sec = ConfigSubsection() + + x = ConfigInteger(default=15, limits = (0, 9999)) + 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, limits = (0, 9999)) + 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, limits = (0, 9999)) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_BETWEEN_DISEQC_REPEATS, configElement.value)) + config.sec.delay_between_diseqc_repeats = x + + x = ConfigInteger(default=50, limits = (0, 9999)) + 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, limits = (0, 9999)) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_TONEBURST, configElement.value)) + config.sec.delay_after_toneburst = x + + x = ConfigInteger(default=120, limits = (0, 9999)) + 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, limits = (0, 9999)) + 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, limits = (0, 9999)) + 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, limits = (0, 9999)) + 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, limits = (0, 9999)) + 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, limits = (0, 9999)) + 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, limits = (0, 9999)) + x.addNotifier(lambda configElement: secClass.setParam(secClass.MOTOR_RUNNING_TIMEOUT, configElement.value)) + config.sec.motor_running_timeout = x + + x = ConfigInteger(default=1, limits = (0, 5)) + 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()) - + # def nimConfigModeChanged(slotid, configElement): # nimmgr.nimConfigModeChanged(slotid, configElement.value) def nimDiseqcModeChanged(slotid, configElement): nimmgr.nimDiseqcModeChanged(slotid, configElement.value) - + def nimPortAChanged(slotid, configElement): nimmgr.nimPortAChanged(slotid, configElement.value) def nimPortBChanged(slotid, configElement): @@ -663,7 +729,7 @@ def InitNimManager(nimmgr): x = slot.slotid cname = nimmgr.getConfigPrefix(x) nim = config.Nims[x] - + if slot.nimType == nimmgr.nimType["DVB-S"]: if slot.slotid == 0: nim.configMode = ConfigSelection( @@ -727,7 +793,7 @@ def InitNimManager(nimmgr): nim.equalTo = ConfigSelection(choices = satNimListNames) nim.linkedTo = ConfigSelection(choices = satNimListNames) nim.satposDependsTo = ConfigSelection(choices = satNimListNames) - + #perhaps the instance of the slot is more useful? # nim.configMode.addNotifier(boundFunction(nimConfigModeChanged,x)) nim.diseqcMode.addNotifier(boundFunction(nimDiseqcModeChanged,x)) @@ -735,7 +801,7 @@ def InitNimManager(nimmgr): nim.diseqcB.addNotifier(boundFunction(nimPortBChanged,x)) nim.diseqcC.addNotifier(boundFunction(nimPortCChanged,x)) nim.diseqcD.addNotifier(boundFunction(nimPortDChanged,x)) - + # advanced config: nim.advanced = ConfigSubsection() nim.advanced.sats = getConfigSatlist(192,nimmgr.satList) @@ -755,11 +821,11 @@ def InitNimManager(nimmgr): csw = [("none", _("None")), ("AA", _("AA")), ("AB", _("AB")), ("BA", _("BA")), ("BB", _("BB"))] for y in range(0, 16): csw.append((str(0xF0|y), "Input " + str(y+1))) - + ucsw = [("0", _("None"))] for y in range(1, 17): ucsw.append((str(y), "Input " + str(y))) - + nim.advanced.lnb = ConfigSubList() nim.advanced.lnb.append(ConfigNothing()) for x in range(1, 33): @@ -768,7 +834,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") @@ -777,11 +843,11 @@ def InitNimManager(nimmgr): nim.advanced.lnb[x].sequenceRepeat = ConfigYesNo(default=False) nim.advanced.lnb[x].commandOrder1_0 = ConfigSelection(choices = [("ct", "committed, toneburst"), ("tc", "toneburst, committed")], default = "ct") nim.advanced.lnb[x].commandOrder = ConfigSelection(choices = [ - ("ct", "committed, toneburst"), - ("tc", "toneburst, committed"), - ("cut", "committed, uncommitted, toneburst"), - ("tcu", "toneburst, committed, uncommitted"), - ("uct", "uncommitted, committed, toneburst"), + ("ct", "committed, toneburst"), + ("tc", "toneburst, committed"), + ("cut", "committed, uncommitted, toneburst"), + ("tcu", "toneburst, committed, uncommitted"), + ("uct", "uncommitted, committed, toneburst"), ("tuc", "toneburst, uncommitted, commmitted")], default="ct") nim.advanced.lnb[x].uncommittedDiseqcCommand = ConfigSelection(choices = ucsw) @@ -794,7 +860,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