diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-07-07 23:56:09 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-07-07 23:56:09 +0000 |
| commit | 9982cd52929f624aaeafcc050fa4f94bf4f53f4e (patch) | |
| tree | 0446ebcf4f848351da3897bc783eb3260bf87209 /lib/python | |
| parent | 145e4cd8d0cd2e7a24e9ca5971c128902f7da4e1 (diff) | |
| download | enigma2-9982cd52929f624aaeafcc050fa4f94bf4f53f4e.tar.gz enigma2-9982cd52929f624aaeafcc050fa4f94bf4f53f4e.zip | |
add possibility to set rotor turning speed to fast/slow or set a time epoch
for turning fast
add some missing and new translations
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/Components/NimManager.py | 67 | ||||
| -rw-r--r-- | lib/python/Screens/Satconfig.py | 35 |
2 files changed, 79 insertions, 23 deletions
diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py index 1ba676c9..00f34c6b 100644 --- a/lib/python/Components/NimManager.py +++ b/lib/python/Components/NimManager.py @@ -1,4 +1,4 @@ -from config import config, ConfigSubsection, ConfigSelection, ConfigFloat, ConfigSatlist, ConfigYesNo, ConfigInteger, ConfigSubList, ConfigNothing, ConfigSubDict, ConfigOnOff +from config import config, ConfigSubsection, ConfigSelection, ConfigFloat, ConfigSatlist, ConfigYesNo, ConfigInteger, ConfigSubList, ConfigNothing, ConfigSubDict, ConfigOnOff, ConfigDateTime from enigma import eDVBSatelliteEquipmentControl as secClass, \ eDVBSatelliteLNBParameters as lnbParam, \ @@ -16,6 +16,8 @@ from xml.sax import make_parser from xml.sax.handler import ContentHandler from Tools.BoundFunction import boundFunction +from time import localtime, mktime +from datetime import datetime def getConfigSatlist(orbpos, satlist): default_orbpos = None @@ -33,7 +35,7 @@ def tryOpen(filename): return procFile class SecConfigure: - def addLNBSimple(self, sec, slotid, diseqcmode, toneburstmode = diseqcParam.NO, diseqcpos = diseqcParam.SENDNO, orbpos = 0, longitude = 0, latitude = 0, loDirection = 0, laDirection = 0): + def addLNBSimple(self, sec, slotid, diseqcmode, toneburstmode = diseqcParam.NO, diseqcpos = diseqcParam.SENDNO, orbpos = 0, longitude = 0, latitude = 0, loDirection = 0, laDirection = 0, turningSpeed = rotorParam.FAST): #simple defaults sec.addLNB() tunermask = 1 << slotid @@ -71,6 +73,7 @@ class SecConfigure: sec.setLoDirection(loDirection) sec.setUseInputpower(True) sec.setInputpowerDelta(50) + sec.setRotorTurningSpeed(turningSpeed) for x in self.NimManager.satList: print "Add sat " + str(x[0]) @@ -102,9 +105,9 @@ class SecConfigure: self.linked = { } self.satposdepends = { } self.equal = { } - + nim_slots = self.NimManager.nim_slots - + for slot in nim_slots: x = slot.slot nim = slot.config @@ -155,11 +158,20 @@ class SecConfigure: loValue = rotorParam.EAST else: loValue = rotorParam.WEST + turn_speed_dict = { "fast": rotorParam.FAST, "slow": rotorParam.SLOW } + if turn_speed_dict.has_key(nim.turningSpeed.value): + turning_speed = turn_speed_dict[nim.turningSpeed.value] + else: + beg_time = localtime(nim.fastTurningBegin.value) + end_time = localtime(nim.fastTurningEnd.value) + turning_speed = ((beg_time.tm_hour+1) * 60 + beg_time.tm_min + 1) << 16 + turning_speed |= (end_time.tm_hour+1) * 60 + end_time.tm_min + 1 self.addLNBSimple(sec, slotid = x, diseqcmode = 3, longitude = nim.longitude.float, loDirection = loValue, latitude = nim.latitude.float, - laDirection = laValue) + laDirection = laValue, + turningSpeed = turning_speed) elif nim.configMode.value == "advanced": #advanced config self.updateAdvanced(sec, x) print "sec config completed" @@ -196,18 +208,18 @@ class SecConfigure: sec.setLNBLOFL(currLnb.lofl.value * 1000) 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.increased_voltage.value: sec.setLNBIncreasedVoltage(lnbParam.ON) else: sec.setLNBIncreasedVoltage(lnbParam.OFF) - - dm = currLnb.diseqcMode.value + + dm = currLnb.diseqcMode.value if dm == "none": sec.setDiSEqCMode(diseqcParam.NONE) elif dm == "1_0": @@ -227,10 +239,10 @@ class SecConfigure: sec.setToneburst(diseqcParam.A) elif currLnb.toneburst.value == "B": sec.setToneburst(diseqcParam.B) - + # Committed Diseqc Command cdc = currLnb.commitedDiseqcCommand.value - + c = { "none": diseqcParam.SENDNO, "AA": diseqcParam.AA, "AB": diseqcParam.AB, @@ -243,9 +255,9 @@ class SecConfigure: sec.setCommittedCommand(long(cdc)) sec.setFastDiSEqC(currLnb.fastDiseqc.value) - + sec.setSeqRepeat(currLnb.sequenceRepeat.value) - + if currLnb.diseqcMode.value == "1_0": currCO = currLnb.commandOrder1_0.value else: @@ -260,9 +272,9 @@ class SecConfigure: sec.setRepeats({"none": 0, "one": 1, "two": 2, "three": 3}[currLnb.diseqcRepeats.value]) setCommandOrder = False - - # 0 "committed, toneburst", - # 1 "toneburst, committed", + + # 0 "committed, toneburst", + # 1 "toneburst, committed", # 2 "committed, uncommitted, toneburst", # 3 "toneburst, committed, uncommitted", # 4 "uncommitted, committed, toneburst" @@ -283,10 +295,19 @@ class SecConfigure: sec.setLoDirection(rotorParam.EAST) else: sec.setLoDirection(rotorParam.WEST) - + if currLnb.powerMeasurement.value: sec.setUseInputpower(True) sec.setInputpowerDelta(currLnb.powerThreshold.value) + turn_speed_dict = { "fast": rotorParam.FAST, "slow": rotorParam.SLOW } + if turn_speed_dict.has_key(currLnb.turningSpeed.value): + turning_speed = turn_speed_dict[currLnb.turningSpeed.value] + else: + beg_time = localtime(currLnb.fastTurningBegin.value) + end_time = localtime(currLnb.fastTurningEnd.value) + turning_speed = ((beg_time.tm_hour + 1) * 60 + beg_time.tm_min + 1) << 16 + turning_speed |= (end_time.tm_hour + 1) * 60 + end_time.tm_min + 1 + sec.setRotorTurningSpeed(turning_speed) else: sec.setUseInputpower(False) @@ -817,7 +838,11 @@ def InitNimManager(nimmgr): nim.longitudeOrientation = ConfigSelection(choices={"east": _("East"), "west": _("West")}, default = "east") nim.latitude = ConfigFloat(default=[50,767], limits=[(0,359),(0,999)]) nim.latitudeOrientation = ConfigSelection(choices={"north": _("North"), "south": _("South")}, default="north") - + nim.turningSpeed = ConfigSelection(choices = [("fast", _("Fast")), ("slow", _("Slow")), ("fast epoch", _("Fast epoch")) ], default = "fast") + btime = datetime(1970, 1, 1, 7, 0); + nim.fastTurningBegin = ConfigDateTime(default = mktime(btime.timetuple()), formatstring = _("%H:%M"), increment = 900) + etime = datetime(1970, 1, 1, 19, 0); + nim.fastTurningEnd = ConfigDateTime(default = mktime(etime.timetuple()), formatstring = _("%H:%M"), increment = 900) # get other frontends of the same type satNimList = nimmgr.getNimListOfType(slot.type, slot.slot) satNimListNames = {} @@ -887,7 +912,11 @@ def InitNimManager(nimmgr): nim.advanced.lnb[x].latitudeOrientation = ConfigSelection(choices = [("north", _("North")), ("south", _("South"))], default = "north") nim.advanced.lnb[x].powerMeasurement = ConfigYesNo(default=True) nim.advanced.lnb[x].powerThreshold = ConfigInteger(default=50, limits=(0, 100)) - + nim.advanced.lnb[x].turningSpeed = ConfigSelection(choices = [("fast", _("Fast")), ("slow", _("Slow")), ("fast epoch", _("Fast epoch"))], default = "fast") + btime = datetime(1970, 1, 1, 7, 0); + nim.advanced.lnb[x].fastTurningBegin = ConfigDateTime(default=mktime(btime.timetuple()), formatstring = _("%H:%M"), increment = 600) + etime = datetime(1970, 1, 1, 19, 0); + nim.advanced.lnb[x].fastTurningEnd = ConfigDateTime(default=mktime(etime.timetuple()), formatstring = _("%H:%M"), increment = 600) elif slot.isCompatible("DVB-C"): nim.configMode = ConfigSelection( choices = { diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py index e07b45e1..de04dc45 100644 --- a/lib/python/Screens/Satconfig.py +++ b/lib/python/Screens/Satconfig.py @@ -5,6 +5,9 @@ from Components.MenuList import MenuList from Components.NimManager import nimmanager from Components.config import getConfigListEntry, config, ConfigNothing +from time import mktime, localtime +from datetime import datetime + class NimSetup(Screen, ConfigListScreen): def createSimpleSetup(self, list, mode): if mode == "single": @@ -25,6 +28,14 @@ class NimSetup(Screen, ConfigListScreen): list.append(getConfigListEntry(" ", self.nimConfig.longitudeOrientation)) list.append(getConfigListEntry(_("Latitude"), self.nimConfig.latitude)) list.append(getConfigListEntry(" ", self.nimConfig.latitudeOrientation)) + self.turningSpeed = getConfigListEntry(_("Rotor turning speed"), self.nimConfig.turningSpeed) + self.list.append(self.turningSpeed) + if self.nimConfig.turningSpeed.value == "fast epoch": + self.turnFastEpochBegin = getConfigListEntry(_("Begin time"), self.nimConfig.fastTurningBegin) + self.turnFastEpochEnd = getConfigListEntry(_("End time"), self.nimConfig.fastTurningEnd) + self.list.append(self.turnFastEpochBegin) + self.list.append(self.turnFastEpochEnd) + # elif self.nimConfig.positionerMode.value == "manual": # manual # pass @@ -40,13 +51,16 @@ class NimSetup(Screen, ConfigListScreen): self.advancedUsalsEntry = None self.advancedLof = None self.advancedPowerMeasurement = None + self.turningSpeed = None + self.turnFastEpochBegin = None + self.turnFastEpochEnd = None self.cableScanType = None if self.nim.isCompatible("DVB-S"): self.configMode = getConfigListEntry(_("Configuration Mode"), self.nimConfig.configMode) self.list.append(self.configMode) - + if self.nimConfig.configMode.value == "simple": #simple setup self.diseqcModeEntry = getConfigListEntry(_("DiSEqC Mode"), self.nimConfig.diseqcMode) self.list.append(self.diseqcModeEntry) @@ -115,7 +129,7 @@ class NimSetup(Screen, ConfigListScreen): def newConfig(self): checkList = (self.configMode, self.diseqcModeEntry, self.advancedSatsEntry, \ self.advancedLnbsEntry, self.advancedDiseqcMode, self.advancedUsalsEntry, \ - self.advancedLof, self.advancedPowerMeasurement, self.cableScanType) + self.advancedLof, self.advancedPowerMeasurement, self.turningSpeed, self.cableScanType) for x in checkList: if self["config"].getCurrent() == x: self.createSetup() @@ -124,6 +138,12 @@ class NimSetup(Screen, ConfigListScreen): if self.have_advanced and self.nim.config_mode == "advanced": self.fillAdvancedList() for x in self["config"].list: + if x in [self.turnFastEpochBegin, self.turnFastEpochEnd]: + # workaround for storing only hour*3600+min*60 value in configfile + # not really needed.. just for cosmetics.. + tm = localtime(x[1].value) + dt = datetime(1970, 1, 1, tm.tm_hour, tm.tm_min) + x[1].value = int(mktime(dt.timetuple())) x[1].save() nimmanager.sec.update() @@ -165,8 +185,15 @@ class NimSetup(Screen, ConfigListScreen): self.list.append(getConfigListEntry(" ", currLnb.latitudeOrientation)) self.advancedPowerMeasurement = getConfigListEntry("Use Power Measurement", currLnb.powerMeasurement) self.list.append(self.advancedPowerMeasurement) - if currLnb.powerMeasurement.value == "yes": - self.list.append(getConfigListEntry("Power Threshold in mA", currLnb.powerThreshold)) + if currLnb.powerMeasurement.value: + self.list.append(getConfigListEntry(_("Power threshold in mA"), currLnb.powerThreshold)) + self.turningSpeed = getConfigListEntry(_("Rotor turning speed"), currLnb.turningSpeed) + self.list.append(self.turningSpeed) + if currLnb.turningSpeed.value == "fast epoch": + self.turnFastEpochBegin = getConfigListEntry(_("Begin time"), currLnb.fastTurningBegin) + self.turnFastEpochEnd = getConfigListEntry(_("End time"), currLnb.fastTurningEnd) + self.list.append(self.turnFastEpochBegin) + self.list.append(self.turnFastEpochEnd) self.advancedLof = getConfigListEntry(_("LOF"), currLnb.lof) self.list.append(self.advancedLof) if currLnb.lof.value == "user_defined": |
