X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/2821b9ed4e733b3e5d6438d501d0997e0711eb59..a60363079001c45eca98f1247064e1e80a69bb9c:/lib/python/Components/NimManager.py diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py index aa9b7c45..dbce97bb 100644 --- a/lib/python/Components/NimManager.py +++ b/lib/python/Components/NimManager.py @@ -28,7 +28,7 @@ def tryOpen(filename): return procFile class SecConfigure: - def addLNBSimple(self, slotid, orbpos, toneburstmode, diseqcmode, diseqcpos): + def addLNBSimple(self, slotid, diseqcmode, toneburstmode = 0, diseqcpos = 0, orbpos = 0, longitude = 0, latitude = 0, loDirection = 0, laDirection = 0): #simple defaults sec = eDVBSatelliteEquipmentControl.getInstance() sec.addLNB() @@ -47,8 +47,25 @@ class SecConfigure: sec.setToneburst(toneburstmode) sec.setCommittedCommand(diseqcpos) #print "set orbpos to:" + str(orbpos) - sec.addSatellite(orbpos) - self.satList.append(orbpos) + + if (0 <= diseqcmode < 3): + sec.addSatellite(orbpos) + self.satList.append(orbpos) + elif (diseqcmode == 3): # diseqc 1.2 + sec.setLatitude(latitude) + sec.setLaDirection(laDirection) + sec.setLongitude(longitude) + sec.setLoDirection(loDirection) + sec.setUseInputpower(True) + sec.setInputpowerDelta(50) + + for x in self.NimManager.satList: + print "Add sat " + str(x[1]) + sec.addSatellite(int(x[1])) + sec.setVoltageMode(0) + sec.setToneMode(0) + self.satList.append(int(x[1])) + def linkNIMs(self, nim1, nim2): eDVBSatelliteEquipmentControl.getInstance().setTunerLinked(nim1, nim2) @@ -71,20 +88,20 @@ class SecConfigure: nim = config.Nims[nim.linkedTo.value] if nim.configMode.value == 0: #simple config if nim.diseqcMode.value == 0: #single - self.addLNBSimple(x, int(nim.diseqcA.vals[nim.diseqcA.value][1]), 0, 0, 4) + self.addLNBSimple(slotid = x, orbpos = int(nim.diseqcA.vals[nim.diseqcA.value][1]), toneburstmode = 0, diseqcmode = 0, diseqcpos = 4) elif nim.diseqcMode.value == 1: #Toneburst A/B - self.addLNBSimple(x, int(nim.diseqcA.vals[nim.diseqcA.value][1]), 1, 0, 4) - self.addLNBSimple(x, int(nim.diseqcB.vals[nim.diseqcB.value][1]), 1, 0, 4) + self.addLNBSimple(slotid = x, orbpos = int(nim.diseqcA.vals[nim.diseqcA.value][1]), toneburstmode = 1, diseqcmode = 0, diseqcpos = 4) + self.addLNBSimple(slotid = x, orbpos = int(nim.diseqcB.vals[nim.diseqcB.value][1]), toneburstmode = 1, diseqcmode = 0, diseqcpos = 4) elif nim.diseqcMode.value == 2: #DiSEqC A/B - self.addLNBSimple(x, int(nim.diseqcA.vals[nim.diseqcA.value][1]), 0, 1, 0) - self.addLNBSimple(x, int(nim.diseqcB.vals[nim.diseqcB.value][1]), 0, 1, 1) + self.addLNBSimple(slotid = x, orbpos = int(nim.diseqcA.vals[nim.diseqcA.value][1]), toneburstmode = 0, diseqcmode = 1, diseqcpos = 0) + self.addLNBSimple(slotid = x, orbpos = int(nim.diseqcB.vals[nim.diseqcB.value][1]), toneburstmode = 0, diseqcmode = 1, diseqcpos = 1) elif nim.diseqcMode.value == 3: #DiSEqC A/B/C/D - self.addLNBSimple(x, int(nim.diseqcA.vals[nim.diseqcA.value][1]), 0, 1, 0) - self.addLNBSimple(x, int(nim.diseqcB.vals[nim.diseqcB.value][1]), 0, 1, 1) - self.addLNBSimple(x, int(nim.diseqcC.vals[nim.diseqcC.value][1]), 0, 1, 2) - self.addLNBSimple(x, int(nim.diseqcD.vals[nim.diseqcD.value][1]), 0, 1, 3) + self.addLNBSimple(slotid = x, orbpos = int(nim.diseqcA.vals[nim.diseqcA.value][1]), toneburstmode = 0, diseqcmode = 1, diseqcpos = 0) + self.addLNBSimple(slotid = x, orbpos = int(nim.diseqcB.vals[nim.diseqcB.value][1]), toneburstmode = 0, diseqcmode = 1, diseqcpos = 1) + self.addLNBSimple(slotid = x, orbpos = int(nim.diseqcC.vals[nim.diseqcC.value][1]), toneburstmode = 0, diseqcmode = 1, diseqcpos = 2) + self.addLNBSimple(slotid = x, orbpos = int(nim.diseqcD.vals[nim.diseqcD.value][1]), toneburstmode = 0, diseqcmode = 1, diseqcpos = 3) elif nim.diseqcMode.value == 4: #Positioner - print "FIXME: positioner suppport" + self.addLNBSimple(slotid = x, diseqcmode = 3, longitude = float(str(nim.longitude.value[0]) + "." + str(nim.longitude.value[1])), loDirection = nim.longitudeOrientation.value - 2, latitude = float(str(nim.latitude.value[0]) + "." + str(nim.latitude.value[1])), laDirection = nim.latitudeOrientation.value) pass else: #advanced config print "FIXME add support for advanced config" @@ -326,6 +343,9 @@ class NimManager: if (config.Nims[slotid].diseqcMode.value == 3): list.append(self.satList[config.Nims[slotid].diseqcC.value]) list.append(self.satList[config.Nims[slotid].diseqcD.value]) + if (config.Nims[slotid].diseqcMode.value == 4): + for x in self.satList: + list.append(x) return list #callbacks for c++ config @@ -401,15 +421,15 @@ def InitNimManager(nimmgr): nim.configMode.value = 0 #reset to simple nim.configMode.save() - nim.diseqcMode = configElement(cname + "diseqcMode", configSelection, 2, (_("Single"), _("Toneburst A/B"), _("DiSEqC A/B"), _("DiSEqC A/B/C/D")))#, _("Positioner"))); + nim.diseqcMode = configElement(cname + "diseqcMode", configSelection, 2, (_("Single"), _("Toneburst A/B"), _("DiSEqC A/B"), _("DiSEqC A/B/C/D"), _("Positioner"))); nim.diseqcA = configElement(cname + "diseqcA", configSatlist, 192, nimmgr.satList); nim.diseqcB = configElement(cname + "diseqcB", configSatlist, 130, nimmgr.satList); nim.diseqcC = configElement(cname + "diseqcC", configSatlist, 0, nimmgr.satList); nim.diseqcD = configElement(cname + "diseqcD", configSatlist, 0, nimmgr.satList); nim.positionerMode = configElement(cname + "positionerMode", configSelection, 0, (_("USALS"), _("manual"))); - nim.longitude = configElement(cname + "longitude", configSequence, [5,100], configsequencearg.get("FLOAT", [(0,90),(0,999)])); + nim.longitude = configElement(cname + "longitude", configSequence, [5,100], configsequencearg.get("FLOAT", [(0,100),(0,999)])); nim.longitudeOrientation = configElement(cname + "longitudeOrientation", configSelection, 0, (_("East"), _("West"))) - nim.latitude = configElement(cname + "latitude", configSequence, [50,767], configsequencearg.get("FLOAT", [(0,90),(0,999)])); + nim.latitude = configElement(cname + "latitude", configSequence, [50,767], configsequencearg.get("FLOAT", [(0,100),(0,999)])); nim.latitudeOrientation = configElement(cname + "latitudeOrientation", configSelection, 0, (_("North"), _("South"))) satNimList = nimmgr.getNimListOfType(nimmgr.nimType["DVB-S"], slot.slotid) satNimListNames = []