fixed sequence to floating point conversion in usals parameters
[enigma2.git] / lib / python / Components / NimManager.py
index ebe17984d655f8f5c6df75aa05486d0a93fd633e..b3be2603f433db5aca0c9034ccd569e88ce49684 100644 (file)
@@ -10,7 +10,11 @@ from config import configSequence
 from config import configsequencearg
 from config import configSatlist
 
-from enigma import *
+from enigma import eDVBSatelliteEquipmentControl, \
+       eDVBSatelliteLNBParameters as lnbParam, \
+       eDVBSatelliteDiseqcParameters as diseqcParam, \
+       eDVBSatelliteSwitchParameters as switchParam, \
+       eDVBSatelliteRotorParameters as rotorParam
 
 import xml.dom.minidom
 from xml.dom import EMPTY_NAMESPACE
@@ -30,19 +34,21 @@ def tryOpen(filename):
        return procFile
 
 class SecConfigure:
-       def addLNBSimple(self, slotid, diseqcmode, toneburstmode = 0, diseqcpos = 0, orbpos = 0, longitude = 0, latitude = 0, loDirection = 0, laDirection = 0):
+       def addLNBSimple(self, sec, slotid, diseqcmode, toneburstmode = 0, diseqcpos = 0, orbpos = 0, longitude = 0, latitude = 0, loDirection = 0, laDirection = 0):
                #simple defaults
-               sec = eDVBSatelliteEquipmentControl.getInstance()
                sec.addLNB()
-               sec.setLNBTunerMask(1 << slotid)
+               tunermask = 1 << slotid
+               if self.linked.has_key(slotid):
+                       tunermask |= (1 << self.linked[slotid])
+               sec.setLNBTunerMask(tunermask)
                sec.setLNBLOFL(9750000)
                sec.setLNBLOFH(10600000)
                sec.setLNBThreshold(11750000)
                sec.setRepeats(0)
                sec.setFastDiSEqC(0)
                sec.setSeqRepeat(0)
-               sec.setVoltageMode(0) #HV
-               sec.setToneMode(0)              #HILO
+               sec.setVoltageMode(switchParam.HV)
+               sec.setToneMode(switchParam.HILO)
                sec.setCommandOrder(0)
                #user values
                sec.setDiSEqCMode(diseqcmode)
@@ -67,53 +73,233 @@ class SecConfigure:
                                sec.setVoltageMode(0)
                                sec.setToneMode(0)
                                self.satList.append(int(x[1]))
-                               
 
-       def linkNIMs(self, nim1, nim2):
-               eDVBSatelliteEquipmentControl.getInstance().setTunerLinked(nim1, nim2)
-               
+       def linkNIMs(self, sec, nim1, nim2):
+               print "link tuner", nim1, "to tuner", nim2
+               sec.setTunerLinked(nim1, nim2)
+
        def getSatList(self):
                return self.satList
 
        def update(self):
-               eDVBSatelliteEquipmentControl.getInstance().clear()
-               
+               sec = eDVBSatelliteEquipmentControl.getInstance()
+               sec.clear() ## this do unlinking NIMs too !!
+               print "sec config cleared"
                self.satList = []
 
+               self.linked = { }
+               for slot in self.NimManager.nimslots:
+                       x = slot.slotid
+                       nim = config.Nims[x]
+                       if slot.nimType == self.NimManager.nimType["DVB-S"]:
+                               if currentConfigSelectionElement(nim.configMode) == "loopthrough":
+                                       self.linkNIMs(sec, x, nim.linkedTo.value)
+                                       self.linked[nim.linkedTo.value]=x
+
                for slot in self.NimManager.nimslots:
                        x = slot.slotid
                        nim = config.Nims[x]
                        if slot.nimType == self.NimManager.nimType["DVB-S"]:
                                print "slot: " + str(x) + " configmode: " + str(nim.configMode.value)
                                if currentConfigSelectionElement(nim.configMode) == "loopthrough":
-                                       self.linkNIMs(x, nim.linkedTo.value)
-                                       nim = config.Nims[nim.linkedTo.value]
+                                       pass
                                elif currentConfigSelectionElement(nim.configMode) == "simple":         #simple config
                                        if currentConfigSelectionElement(nim.diseqcMode) == "single":                   #single
-                                               self.addLNBSimple(slotid = x, orbpos = int(nim.diseqcA.vals[nim.diseqcA.value][1]), toneburstmode = 0, diseqcmode = 0, diseqcpos = 4)
+                                               self.addLNBSimple(sec, slotid = x, orbpos = int(nim.diseqcA.vals[nim.diseqcA.value][1]), toneburstmode = diseqcParam.NO, diseqcmode = diseqcParam.NONE, diseqcpos = diseqcParam.SENDNO)
                                        elif currentConfigSelectionElement(nim.diseqcMode) == "toneburst_a_b":          #Toneburst A/B
-                                               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)
+                                               self.addLNBSimple(sec, slotid = x, orbpos = int(nim.diseqcA.vals[nim.diseqcA.value][1]), toneburstmode = diseqcParam.A, diseqcmode = diseqcParam.V1_0, diseqcpos = diseqcParam.SENDNO)
+                                               self.addLNBSimple(sec, slotid = x, orbpos = int(nim.diseqcB.vals[nim.diseqcB.value][1]), toneburstmode = diseqcParam.B, diseqcmode = diseqcParam.V1_0, diseqcpos = diseqcParam.SENDNO)
                                        elif currentConfigSelectionElement(nim.diseqcMode) == "diseqc_a_b":             #DiSEqC A/B
-                                               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(sec, slotid = x, orbpos = int(nim.diseqcA.vals[nim.diseqcA.value][1]), toneburstmode = diseqcParam.NO, diseqcmode = diseqcParam.V1_0, diseqcpos = diseqcParam.AA)
+                                               self.addLNBSimple(sec, slotid = x, orbpos = int(nim.diseqcB.vals[nim.diseqcB.value][1]), toneburstmode = diseqcParam.NO, diseqcmode = diseqcParam.V1_0, diseqcpos = diseqcParam.AB)
                                        elif currentConfigSelectionElement(nim.diseqcMode) == "diseqc_a_b_c_d":         #DiSEqC A/B/C/D
-                                               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)
+                                               self.addLNBSimple(sec, slotid = x, orbpos = int(nim.diseqcA.vals[nim.diseqcA.value][1]), toneburstmode = diseqcParam.NO, diseqcmode = diseqcParam.V1_0, diseqcpos = diseqcParam.AA)
+                                               self.addLNBSimple(sec, slotid = x, orbpos = int(nim.diseqcB.vals[nim.diseqcB.value][1]), toneburstmode = diseqcParam.NO, diseqcmode = diseqcParam.V1_0, diseqcpos = diseqcParam.AB)
+                                               self.addLNBSimple(sec, slotid = x, orbpos = int(nim.diseqcC.vals[nim.diseqcC.value][1]), toneburstmode = diseqcParam.NO, diseqcmode = diseqcParam.V1_0, diseqcpos = diseqcParam.BA)
+                                               self.addLNBSimple(sec, slotid = x, orbpos = int(nim.diseqcD.vals[nim.diseqcD.value][1]), toneburstmode = diseqcParam.NO, diseqcmode = diseqcParam.V1_0, diseqcpos = diseqcParam.BB)
                                        elif currentConfigSelectionElement(nim.diseqcMode) == "positioner":             #Positioner
-                                               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
+                                               if currentConfigSelectionElement(nim.latitudeOrientation) == "north":
+                                                       laValue = rotorParam.NORTH
+                                               else:
+                                                       laValue = rotorParam.SOUTH
+                                               if currentConfigSelectionElement(nim.longitudeOrientation) == "east":
+                                                       loValue = rotorParam.EAST
+                                               else:
+                                                       loValue = rotorParam.WEST
+                                               self.addLNBSimple(sec, slotid = x, diseqcmode = 3,
+                                                       longitude = configsequencearg.getFloat(nim.longitude),
+                                                       loDirection = loValue,
+                                                       latitude = configsequencearg.getFloat(nim.latitude),
+                                                       laDirection = laValue)
+#                                      pass
                                elif currentConfigSelectionElement(nim.configMode) == "nothing":
                                        pass
-                               else:                                                                                                                                   #advanced config
-                                       print "FIXME add support for advanced config"
-               
+                               else: #advanced config
+                                       self.updateAdvanced(sec, x)
+               print "sec config completed"
+
+       def updateAdvanced(self, sec, slotid):
+               lnbSat = {}
+               for x in range(1,33):
+                       lnbSat[x] = []
+               for x in self.NimManager.satList:
+                       lnb = config.Nims[slotid].advanced.sat[x[1]].lnb.value
+                       if lnb != 0:
+                               print "add", x[1], "to", lnb
+                               lnbSat[lnb].append(x[1])
+               for x in range(1,33):
+                       if len(lnbSat[x]) > 0:
+                               currLnb = config.Nims[slotid].advanced.lnb[x]
+                               sec.addLNB()
+
+                               tunermask = 1 << slotid
+                               if self.linked.has_key(slotid):
+                                       tunermask |= (1 << self.linked[slotid])
+                               sec.setLNBTunerMask(tunermask)
+
+                               if currentConfigSelectionElement(currLnb.lof) == "universal_lnb":
+                                       sec.setLNBLOFL(9750000)
+                                       sec.setLNBLOFH(10600000)
+                                       sec.setLNBThreshold(11750000)
+                               elif currentConfigSelectionElement(currLnb.lof) == "c_band":
+                                       sec.setLNBLOFL(5150000)
+                                       sec.setLNBLOFH(5150000)
+                                       sec.setLNBThreshold(5150000)
+                               elif currentConfigSelectionElement(currLnb.lof) == "user_defined":
+                                       sec.setLNBLOFL(currLnb.lofl.value[0] * 1000)
+                                       sec.setLNBLOFH(currLnb.lofh.value[0] * 1000)
+                                       sec.setLNBThreshold(currLnb.threshold.value[0] * 1000)
+                                       
+                               if currentConfigSelectionElement(currLnb.output_12v) == "0V":
+                                       pass # nyi in drivers
+                               elif currentConfigSelectionElement(currLnb.output_12v) == "12V":
+                                       pass # nyi in drivers
+                                       
+                               if currentConfigSelectionElement(currLnb.increased_voltage) == "yes":
+                                       sec.setLNBIncreasedVoltage(lnbParam.ON)
+                               else:
+                                       sec.setLNBIncreasedVoltage(lnbParam.OFF)
+                                       
+                               if currentConfigSelectionElement(currLnb.diseqcMode) == "none":
+                                       sec.setDiSEqCMode(diseqcParam.NONE)
+                               elif currentConfigSelectionElement(currLnb.diseqcMode) == "1_0":
+                                       sec.setDiSEqCMode(diseqcParam.V1_0)
+                               elif currentConfigSelectionElement(currLnb.diseqcMode) == "1_1":
+                                       sec.setDiSEqCMode(diseqcParam.V1_1)
+                               elif currentConfigSelectionElement(currLnb.diseqcMode) == "1_2":
+                                       sec.setDiSEqCMode(diseqcParam.V1_2)
+                                       
+                               if currentConfigSelectionElement(currLnb.diseqcMode) != "none":
+                                       if currentConfigSelectionElement(currLnb.toneburst) == "none":
+                                               sec.setToneburst(diseqcParam.NO)
+                                       elif currentConfigSelectionElement(currLnb.toneburst) == "A":
+                                               sec.setToneburst(diseqcParam.A)
+                                       elif currentConfigSelectionElement(currLnb.toneburst) == "B":
+                                               sec.setToneburst(diseqcParam.B)
+                                               
+                                       if currentConfigSelectionElement(currLnb.commitedDiseqcCommand) == "none":
+                                               sec.setCommittedCommand(diseqcParam.SENDNO)
+                                       elif currentConfigSelectionElement(currLnb.commitedDiseqcCommand) == "AA":
+                                               sec.setCommittedCommand(diseqcParam.AA)
+                                       elif currentConfigSelectionElement(currLnb.commitedDiseqcCommand) == "AB":
+                                               sec.setCommittedCommand(diseqcParam.AB)
+                                       elif currentConfigSelectionElement(currLnb.commitedDiseqcCommand) == "BA":
+                                               sec.setCommittedCommand(diseqcParam.BA)
+                                       elif currentConfigSelectionElement(currLnb.commitedDiseqcCommand) == "BB":
+                                               sec.setCommittedCommand(diseqcParam.BB)
+                                               
+                                       if currentConfigSelectionElement(currLnb.fastDiseqc) == "yes":
+                                               sec.setFastDiSEqC(True)
+                                       else:
+                                               sec.setFastDiSEqC(False)
+                                               
+                                       if currentConfigSelectionElement(currLnb.sequenceRepeat) == "yes":
+                                               sec.setSeqRepeat(True)
+                                       else:
+                                               sec.setSeqRepeat(False)
+                                               
+                                       if currentConfigSelectionElement(currLnb.diseqcMode) == "1_0":
+                                               currCO = currLnb.commandOrder1_0.value
+                                       else:
+                                               currCO = currLnb.commandOrder.value
+                                               
+                                               if currLnb.uncommittedDiseqcCommand.value > 0:
+                                                       sec.setUncommittedCommand(0xF0|(currLnb.uncommittedDiseqcCommand.value-1))
+                                               else:
+                                                       sec.setUncommittedCommand(0) # SENDNO
+                                               
+                                               if currentConfigSelectionElement(currLnb.diseqcRepeats) == "none":
+                                                       sec.setRepeats(0)
+                                               elif currentConfigSelectionElement(currLnb.diseqcRepeats) == "One":
+                                                       sec.setRepeats(1)
+                                               elif currentConfigSelectionElement(currLnb.diseqcRepeats) == "Two":
+                                                       sec.setRepeats(2)
+                                               elif currentConfigSelectionElement(currLnb.diseqcRepeats) == "Three":
+                                                       sec.setRepeats(3)
+                                               
+                                       setCommandOrder=False
+                                       if currCO == 0: # committed, toneburst
+                                               setCommandOrder=True
+                                       elif currCO == 1: # toneburst, committed
+                                               setCommandOrder=True
+                                       elif currCO == 2: # committed, uncommitted, toneburst
+                                               setCommandOrder=True
+                                       elif currCO == 3: # toneburst, committed, uncommitted
+                                               setCommandOrder=True
+                                       elif currCO == 4: # uncommitted, committed, toneburst
+                                               setCommandOrder=True
+                                       elif currCO == 5: # toneburst, uncommitted, commmitted
+                                               setCommandOrder=True
+                                       if setCommandOrder:
+                                               sec.setCommandOrder(currCO)
+                                               
+                               if currentConfigSelectionElement(currLnb.diseqcMode) == "1_2":
+                                       latitude = configsequencearg.getFloat(currLnb.latitude)
+                                       sec.setLatitude(latitude)
+                                       longitude = configsequencearg.getFloat(currLnb.longitude)
+                                       sec.setLongitude(longitude)
+                                       if currentConfigSelectionElement(currLnb.latitudeOrientation) == "north":
+                                               sec.setLaDirection(rotorParam.NORTH)
+                                       else:
+                                               sec.setLaDirection(rotorParam.SOUTH)
+                                       if currentConfigSelectionElement(currLnb.longitudeOrientation) == "east":
+                                               sec.setLoDirection(rotorParam.EAST)
+                                       else:
+                                               sec.setLoDirection(rotorParam.WEST)
+                                               
+                               if currentConfigSelectionElement(currLnb.powerMeasurement) == "yes":
+                                       sec.setUseInputpower(True)
+                                       sec.setInputpowerDelta(currLnb.powerThreshold.value[0])
+                               else:
+                                       sec.setUseInputpower(False)
+                                               
+                               # finally add the orbital positions
+                               for y in lnbSat[x]:
+                                       sec.addSatellite(y)
+                                       currSat = config.Nims[slotid].advanced.sat[y]
+                                       if currentConfigSelectionElement(currSat.voltage) == "polarization":
+                                               sec.setVoltageMode(switchParam.HV)
+                                       elif currentConfigSelectionElement(currSat.voltage) == "13V":
+                                               sec.setVoltageMode(switchParam._14V)
+                                       elif currentConfigSelectionElement(currSat.voltage) == "18V":
+                                               sec.setVoltageMode(switchParam._18V)
+                                               
+                                       if currentConfigSelectionElement(currSat.tonemode) == "band":
+                                               sec.setToneMode(switchParam.HILO)
+                                       elif currentConfigSelectionElement(currSat.tonemode) == "on":
+                                               sec.setToneMode(switchParam.ON)
+                                       elif currentConfigSelectionElement(currSat.tonemode) == "off":
+                                               sec.setToneMode(switchParam.OFF)
+                                               
+                                       if  currentConfigSelectionElement(currSat.usals) == "no":
+                                               sec.setRotorPosNum(currSat.rotorposition.value[0])
+                                       else:
+                                               sec.setRotorPosNum(0) #USALS
+
        def __init__(self, nimmgr):
                self.NimManager = nimmgr
                self.update()
-               
+
 class nimSlot:
        def __init__(self, slotid, nimtype, name):
                self.slotid = slotid
@@ -354,19 +540,20 @@ class NimManager:
                                        list.append(x)
                return list
 
-       #callbacks for c++ config
-       def nimConfigModeChanged(self, slotid, mode):
-               if (mode != 2): # not linked
-                       print "Unlinking slot " + str(slotid)
-                       # TODO call c++ to unlink nim in slot slotid
-               if (mode == 2): # linked
-                       pass
-                       #FIXME!!!
-                       #if (len(self.getNimListOfType(self.nimType["DVB-S"], slotid)) > 0):
-                       #       print "Linking slot " + str(slotid) + " to " + str(nimmgr.getConfigPrefix(slotid).value)
-                       # TODO call c++ to link nim in slot slotid with nim in slot nimmgr.getConfigPrefix(slotid).value
-       def nimLinkedToChanged(self, slotid, val):
-               print "Linking slot " + str(slotid) + " to " + str(val)
+#      #callbacks for c++ config
+#      def nimConfigModeChanged(self, slotid, mode):
+#              if (mode != 2): # not linked
+#                      print "Unlinking slot " + str(slotid)
+#                      # TODO call c++ to unlink nim in slot slotid
+#              if (mode == 2): # linked
+#                      pass
+#                      #FIXME!!!
+#                      #if (len(self.getNimListOfType(self.nimType["DVB-S"], slotid)) > 0):
+#                      #       print "Linking slot " + str(slotid) + " to " + str(nimmgr.getConfigPrefix(slotid).value)
+#                      # TODO call c++ to link nim in slot slotid with nim in slot nimmgr.getConfigPrefix(slotid).value
+
+#      def nimLinkedToChanged(self, slotid, val):
+#              print "Linking slot " + str(slotid) + " to " + str(val)
 
        def nimDiseqcModeChanged(self, slotid, mode):
                #print "nimDiseqcModeChanged set to " + str(mode)
@@ -390,10 +577,10 @@ def InitNimManager(nimmgr):
        for x in range(nimmgr.nimCount):
                config.Nims.append(ConfigSubsection())
                
-       def nimConfigModeChanged(slotid, configElement):
-               nimmgr.nimConfigModeChanged(slotid, configElement.value)
-       def nimLinkedToChanged(slotid, configElement):
-               nimmgr.nimLinkedToChanged(slotid, configElement.value)
+#      def nimConfigModeChanged(slotid, configElement):
+#              nimmgr.nimConfigModeChanged(slotid, configElement.value)
+#      def nimLinkedToChanged(slotid, configElement):
+#              nimmgr.nimLinkedToChanged(slotid, configElement.value)
        def nimDiseqcModeChanged(slotid, configElement):
                nimmgr.nimDiseqcModeChanged(slotid, configElement.value)
                
@@ -437,7 +624,7 @@ def InitNimManager(nimmgr):
                        nim.diseqcD = configElement(cname + "diseqcD", configSatlist, 0, nimmgr.satList);
                        nim.positionerMode = configElement(cname + "positionerMode", configSelection, 0, (("usals", _("USALS")), ("manual", _("manual"))));
                        nim.longitude = configElement(cname + "longitude", configSequence, [5,100], configsequencearg.get("FLOAT", [(0,90),(0,999)]));
-                       nim.longitudeOrientation = configElement(cname + "longitudeOrientation", configSelection, 0, (_("East"), _("West")))
+                       nim.longitudeOrientation = configElement(cname + "longitudeOrientation", configSelection, 0, (("east", _("East")), ("west", _("West"))))
                        nim.latitude = configElement(cname + "latitude", configSequence, [50,767], configsequencearg.get("FLOAT", [(0,90),(0,999)]));
                        nim.latitudeOrientation = configElement(cname + "latitudeOrientation", configSelection, 0, (("north", _("North")), ("south", _("South"))))
                        satNimList = nimmgr.getNimListOfType(nimmgr.nimType["DVB-S"], slot.slotid)
@@ -447,13 +634,13 @@ def InitNimManager(nimmgr):
                        nim.linkedTo = configElement(cname + "linkedTo", configSelection, 0, satNimListNames);
                        
                        #perhaps the instance of the slot is more useful?
-                       nim.configMode.addNotifier(boundFunction(nimConfigModeChanged,x))
+#                      nim.configMode.addNotifier(boundFunction(nimConfigModeChanged,x))
                        nim.diseqcMode.addNotifier(boundFunction(nimDiseqcModeChanged,x))
                        nim.diseqcA.addNotifier(boundFunction(nimPortAChanged,int(x)))
                        nim.diseqcB.addNotifier(boundFunction(nimPortBChanged,x))
                        nim.diseqcC.addNotifier(boundFunction(nimPortCChanged,x))
                        nim.diseqcD.addNotifier(boundFunction(nimPortDChanged,x))
-                       nim.linkedTo.addNotifier(boundFunction(nimLinkedToChanged,x))
+#                      nim.linkedTo.addNotifier(boundFunction(nimLinkedToChanged,x))
                        
                        # advanced config:
                        nim.advanced = ConfigSubsection()
@@ -478,12 +665,12 @@ def InitNimManager(nimmgr):
                                nim.advanced.lnb[x].lofh = configElement(cname + "advanced.lnb" + str(x) + ".lofh", configSequence, [10600], configsequencearg.get("INTEGER", (0, 99999)))
                                nim.advanced.lnb[x].threshold = configElement(cname + "advanced.lnb" + str(x) + ".threshold", configSequence, [11750], configsequencearg.get("INTEGER", (0, 99999)))
                                nim.advanced.lnb[x].output_12v = configElement(cname + "advanced.lnb" + str(x) + ".output_12v", configSelection, 0, (("0V", _("0 V")), ("12V", _("12 V"))))
-                               nim.advanced.lnb[x].increased_voltage = configElement(cname + "advanced.lnb" + str(x) + ".increased_voltage", configSelection, 0, (("yes", _("Yes")), ("no", _("No"))))
+                               nim.advanced.lnb[x].increased_voltage = configElement(cname + "advanced.lnb" + str(x) + ".increased_voltage", configSelection, 0, (("no", _("No")), ("yes", _("Yes"))))
                                nim.advanced.lnb[x].toneburst = configElement(cname + "advanced.lnb" + str(x) + ".toneburst", configSelection, 0, (("none", _("None")), ("A", _("A")), ("B", _("B"))))
                                nim.advanced.lnb[x].diseqcMode = configElement(cname + "advanced.lnb" + str(x) + ".diseqcMode", configSelection, 0, (("none", _("None")), ("1_0", _("1.0")), ("1_1", _("1.1")), ("1_2", _("1.2"))))
                                nim.advanced.lnb[x].commitedDiseqcCommand = configElement(cname + "advanced.lnb" + str(x) + ".commitedDiseqcCommand", configSelection, 0, (("none", _("None")), ("AA", _("AA")), ("AB", _("AB")), ("BA", _("BA")), ("BB", _("BB"))))
-                               nim.advanced.lnb[x].fastDiseqc = configElement(cname + "advanced.lnb" + str(x) + ".fastDiseqc", configSelection, 0, (("yes", _("Yes")), ("no", _("No"))))
-                               nim.advanced.lnb[x].sequenceRepeat = configElement(cname + "advanced.lnb" + str(x) + ".sequenceRepeat", configSelection, 0, (("yes", _("Yes")), ("no", _("No"))))
+                               nim.advanced.lnb[x].fastDiseqc = configElement(cname + "advanced.lnb" + str(x) + ".fastDiseqc", configSelection, 0, (("no", _("No")), ("yes", _("Yes"))))
+                               nim.advanced.lnb[x].sequenceRepeat = configElement(cname + "advanced.lnb" + str(x) + ".sequenceRepeat", configSelection, 0, (("no", _("No")), ("yes", _("Yes"))))
                                nim.advanced.lnb[x].commandOrder1_0 = configElement(cname + "advanced.lnb" + str(x) + ".commandOrder1_0", configSelection, 0, ("committed, toneburst", "toneburst, committed"))
                                nim.advanced.lnb[x].commandOrder = configElement(cname + "advanced.lnb" + str(x) + ".commandOrder", configSelection, 0, ("committed, toneburst", "toneburst, committed", "committed, uncommitted, toneburst", "toneburst, committed, uncommitted", "uncommitted, committed, toneburst", "toneburst, uncommitted, commmitted"))
                                disCmd = ["none"]
@@ -491,9 +678,9 @@ def InitNimManager(nimmgr):
                                        disCmd.append("Input " + str(y))
                                nim.advanced.lnb[x].uncommittedDiseqcCommand = configElement(cname + "advanced.lnb" + str(x) + ".uncommittedDiseqcCommand", configSelection, 0, disCmd)
                                nim.advanced.lnb[x].diseqcRepeats = configElement(cname + "advanced.lnb" + str(x) + ".diseqcRepeats", configSelection, 0, (("none", _("None")), ("one", _("One")), ("two", _("Two")), ("three", _("Three"))))
-                               nim.advanced.lnb[x].longitude = configElement(cname + "advanced.lnb" + str(x) + ".longitude", configSequence, [5,100], configsequencearg.get("FLOAT", [(0,90),(0,999)]));
-                               nim.advanced.lnb[x].longitudeOrientation = configElement(cname + "advanced.lnb" + str(x) + ".longitudeOrientation", configSelection, 0, (_("East"), _("West")))
-                               nim.advanced.lnb[x].latitude = configElement(cname + "advanced.lnb" + str(x) + ".latitude", configSequence, [50,767], configsequencearg.get("FLOAT", [(0,90),(0,999)]));
+                               nim.advanced.lnb[x].longitude = configElement(cname + "advanced.lnb" + str(x) + ".longitude", configSequence, [5,100], configsequencearg.get("FLOAT", [(0,90),(0,999)]))
+                               nim.advanced.lnb[x].longitudeOrientation = configElement(cname + "advanced.lnb" + str(x) + ".longitudeOrientation", configSelection, 0, (("east", _("East")), ("west", _("West"))))
+                               nim.advanced.lnb[x].latitude = configElement(cname + "advanced.lnb" + str(x) + ".latitude", configSequence, [50,767], configsequencearg.get("FLOAT", [(0,90),(0,999)]))
                                nim.advanced.lnb[x].latitudeOrientation = configElement(cname + "advanced.lnb" + str(x) + ".latitudeOrientation", configSelection, 0, (("north", _("North")), ("south", _("South"))))
                                nim.advanced.lnb[x].powerMeasurement = configElement(cname + "advanced.lnb" + str(x) + ".powerMeasurement", configSelection, 0, (("yes", _("Yes")), ("no", _("No"))))
                                nim.advanced.lnb[x].powerThreshold = configElement(cname + "advanced.lnb" + str(x) + ".powerThreshold", configSequence, [50], configsequencearg.get("INTEGER", (0, 100)))