+ def canEqualTo(self, slotid):
+ type = self.getNimType(slotid)
+ if self.getNimConfig(slotid) == "DVB-S2":
+ type = "DVB-S"
+ nimList = self.getNimListOfType(type, slotid)
+ for nim in nimList[:]:
+ mode = self.getNimConfig(nim)
+ if mode.configMode.value == "loopthrough" or mode.configMode.value == "satposdepends":
+ nimList.remove(nim)
+ return nimList
+
+ def canDependOn(self, slotid):
+ type = self.getNimType(slotid)
+ if self.getNimConfig(slotid) == "DVB-S2":
+ type = "DVB-S"
+ nimList = self.getNimListOfType(type, slotid)
+ positionerList = []
+ for nim in nimList[:]:
+ mode = self.getNimConfig(nim)
+ nimHaveRotor = mode.configMode.value == "simple" and mode.diseqcMode.value == "positioner"
+ if not nimHaveRotor and mode.configMode.value == "advanced":
+ for x in range(3601, 3605):
+ lnb = int(mode.advanced.sat[x].lnb.value)
+ if lnb != 0:
+ nimHaveRotor = True
+ break
+ if nimHaveRotor:
+ alreadyConnected = False
+ for testnim in nimList:
+ testmode = self.getNimConfig(testnim)
+ if testmode.configMode.value == "satposdepends" and int(testmode.connectedTo.value) == int(nim):
+ alreadyConnected = True
+ break
+ if not alreadyConnected:
+ positionerList.append(nim)
+ return positionerList
+