self.addSatellite(sec, orbpos)
elif (diseqcmode == 3): # diseqc 1.2
if self.satposdepends.has_key(slotid):
- tunermask |= (1 << self.satposdepends[slotid])
+ for slot in self.satposdepends[slotid]:
+ tunermask |= (1 << slot)
sec.setLatitude(latitude)
sec.setLaDirection(laDirection)
sec.setLongitude(longitude)
tunermask = 1 << slotid
if self.equal.has_key(slotid):
- tunermask |= (1 << self.equal[slotid])
+ for slot in self.equal[slotid]:
+ tunermask |= (1 << slot)
elif self.linked.has_key(slotid):
- tunermask |= (1 << self.linked[slotid])
+ for slot in self.linked[slotid]:
+ tunermask |= (1 << slot)
if currLnb.lof.value == "universal_lnb":
sec.setLNBLOFL(9750000)
slots.append(self.nim_slots[slotid].internallyConnectableTo())
for type in self.nim_slots[slotid].connectableTo():
for slot in self.getNimListOfType(type, exception = slotid):
- # FIXME we restrict loopthrough from dvb-s2 to dvb-s, because the c++ part can't handle it
- if not (type == "DVB-S" and self.getNimType(slot)):
- if self.hasOutputs(slot):
- slots.append(slot)
+ if self.hasOutputs(slot):
+ slots.append(slot)
+ # remove nims, that have a conntectedTo reference on
+ for testnim in slots[:]:
+ for nim in self.getNimListOfType("DVB-S", slotid):
+ nimConfig = self.getNimConfig(nim)
+ if nimConfig.content.items.has_key("configMode") and nimConfig.configMode.value == "loopthrough" and int(nimConfig.connectedTo.value) == testnim:
+ slots.remove(testnim)
+ break
slots.sort()
return slots
def getNimConfig(self, slotid):
return config.Nims[slotid]
+
+ def getSatName(self, pos):
+ for sat in self.satList:
+ if sat[0] == pos:
+ return sat[1]
+ return _("N/A")
def getSatList(self):
return self.satList
def getSatListForNim(self, slotid):
list = []
if self.nim_slots[slotid].isCompatible("DVB-S"):
+ nim = config.Nims[slotid]
#print "slotid:", slotid
#print "self.satellites:", self.satList[config.Nims[slotid].diseqcA.index]
#print "diseqcA:", config.Nims[slotid].diseqcA.value
- configMode = config.Nims[slotid].configMode.value
+ configMode = nim.configMode.value
if configMode == "equal":
- slotid=0 #FIXME add handling for more than two tuners !!!
- configMode = config.Nims[slotid].configMode.value
+ slotid = int(nim.connectedTo.value)
+ nim = config.Nims[slotid]
+ configMode = nim.configMode.value
+ elif configMode == "loopthrough":
+ slotid = self.sec.getRoot(slotid, int(nim.connectedTo.value))
+ nim = config.Nims[slotid]
+ configMode = nim.configMode.value
if configMode == "simple":
- dm = config.Nims[slotid].diseqcMode.value
+ dm = nim.diseqcMode.value
if dm in ["single", "toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"]:
- list.append(self.satList[config.Nims[slotid].diseqcA.index])
+ list.append(self.satList[nim.diseqcA.index])
if dm in ["toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"]:
- list.append(self.satList[config.Nims[slotid].diseqcB.index])
+ list.append(self.satList[nim.diseqcB.index])
if dm == "diseqc_a_b_c_d":
- list.append(self.satList[config.Nims[slotid].diseqcC.index])
- list.append(self.satList[config.Nims[slotid].diseqcD.index])
+ list.append(self.satList[nim.diseqcC.index])
+ list.append(self.satList[nim.diseqcD.index])
if dm == "positioner":
for x in self.satList:
list.append(x)
elif configMode == "advanced":
for x in self.satList:
- if int(config.Nims[slotid].advanced.sat[x[0]].lnb.value) != 0:
+ if int(nim.advanced.sat[x[0]].lnb.value) != 0:
list.append(x)
-
return list
def getRotorSatListForNim(self, slotid):
list = []
if self.nim_slots[slotid].isCompatible("DVB-S"):
#print "slotid:", slotid
-
#print "self.satellites:", self.satList[config.Nims[slotid].diseqcA.value]
#print "diseqcA:", config.Nims[slotid].diseqcA.value
configMode = config.Nims[slotid].configMode.value
x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_TONEBURST, configElement.value))
config.sec.delay_after_toneburst = x
+ x = ConfigInteger(default=20, limits = (0, 9999))
+ x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_SWITCH_CMDS, configElement.value))
+ config.sec.delay_after_change_voltage_before_switch_command = x
+
x = ConfigInteger(default=200, 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.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 = ConfigInteger(default=500, 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.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 = ConfigInteger(default=500, 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 = ConfigInteger(default=500, 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.addNotifier(lambda configElement: secClass.setParam(secClass.MOTOR_COMMAND_RETRIES, configElement.value))
config.sec.motor_command_retries = x
- x = ConfigInteger(default=20, limits = (0, 9999))
- x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_SWITCH_CMDS, configElement.value))
- config.sec.delay_after_change_voltage_before_switch_command = x
-
# TODO add support for satpos depending nims to advanced nim configuration
# so a second/third/fourth cable from a motorized lnb can used behind a
# diseqc 1.0 / diseqc 1.1 / toneburst switch