sec.setLNBLOFL(9750000)
sec.setLNBLOFH(10600000)
sec.setLNBThreshold(11700000)
- sec.setLNBIncreasedVoltage(lnbParam.OFF)
+ sec.setLNBIncreasedVoltage(False)
sec.setRepeats(0)
sec.setFastDiSEqC(fastDiSEqC)
- sec.setSeqRepeat(0)
+ sec.setSeqRepeat(False)
sec.setCommandOrder(0)
#user values
def linkNIMs(self, sec, nim1, nim2):
print "link tuner", nim1, "to tuner", nim2
- if nim2 == (nim1 - 1):
- self.linkInternally(nim1)
+# if nim2 == (nim1 - 1):
+# self.linkInternally(nim1)
+#
+# for internally connect tuner A to B
+ self.linkInternally(nim1)
sec.setTunerLinked(nim1, nim2)
def getRoot(self, slotid, connto):
for slot in nim_slots:
if slot.type is not None:
- used_nim_slots.append((slot.slot, slot.description, slot.config.configMode.value != "nothing" and True or False, slot.isCompatible("DVB-S2"), slot.frontend_id is None and -1 or slot.frontend_id))
+ used_nim_slots.append((slot.slot, slot.description, slot.config.configMode.value != "nothing" and True or False, slot.isCompatible("DVB-S2"), slot.isCompatible("DVB-T2"), slot.frontend_id is None and -1 or slot.frontend_id))
eDVBResourceManager.getInstance().setFrontendSlotInformations(used_nim_slots)
for slot in nim_slots:
pass
lnbSat = {}
- for x in range(1,37):
+ for x in range(1,69):
lnbSat[x] = []
#wildcard for all satellites ( for rotor )
print "add", x[0], "to", lnb
lnbSat[lnb].append(x[0])
- for x in range(1,37):
+ for x in range(1,69):
if len(lnbSat[x]) > 0:
currLnb = config.Nims[slotid].advanced.lnb[x]
sec.addLNB()
- if x < 33:
+ if x < 65:
sec.setLNBNum(x)
tunermask = 1 << slotid
manufacturer_name = configManufacturer.value
manufacturer = ProductDict[manufacturer_name]
product_name = manufacturer.product.value
- sec.setLNBSatCR(manufacturer.scr[product_name].index)
- sec.setLNBSatCRvco(manufacturer.vco[product_name][manufacturer.scr[product_name].index].value*1000)
- sec.setLNBSatCRpositions(manufacturer.positions[product_name][0].value)
- sec.setLNBLOFL(manufacturer.lofl[product_name][0].value * 1000)
- sec.setLNBLOFH(manufacturer.lofh[product_name][0].value * 1000)
- sec.setLNBThreshold(manufacturer.loft[product_name][0].value * 1000)
- configManufacturer.save_forced = True
- manufacturer.product.save_forced = True
- manufacturer.vco[product_name][manufacturer.scr[product_name].index].save_forced = True
-
+ manufacturer_scr = manufacturer.scr
+ manufacturer_positions_value = manufacturer.positions[product_name][0].value
+ position_idx = (x-1) % manufacturer_positions_value
+ if product_name in manufacturer_scr:
+ diction = manufacturer.diction[product_name].value
+ if x <= manufacturer_positions_value or diction !="EN50607": #for every allowed position
+ sec.setLNBSatCR(manufacturer_scr[product_name].index)
+
+ if diction =="EN50607":
+ sec.setLNBSatCRformat(1) #JESS
+ else:
+ sec.setLNBSatCRformat(0) #DiSEqC
+ sec.setLNBSatCRvco(manufacturer.vco[product_name][manufacturer_scr[product_name].index].value*1000)
+ sec.setLNBSatCRpositions(manufacturer_positions_value)
+ sec.setLNBLOFL(manufacturer.lofl[product_name][position_idx].value * 1000)
+ sec.setLNBLOFH(manufacturer.lofh[product_name][position_idx].value * 1000)
+ sec.setLNBThreshold(manufacturer.loft[product_name][position_idx].value * 1000)
+ configManufacturer.save_forced = True
+ manufacturer.product.save_forced = True
+ manufacturer.vco[product_name][manufacturer_scr[product_name].index].save_forced = True
+ else: #positionnumber out of range
+ print "positionnumber out of range"
+ else:
+ print "no product in list"
+
if currLnb.unicable.value == "unicable_user":
#TODO satpositions for satcruser
+ if currLnb.dictionuser.value == "EN50607":
+ sec.setLNBSatCRformat(1)
+ sec.setLNBSatCR(currLnb.satcruserEN50607.index)
+ sec.setLNBSatCRvco(currLnb.satcrvcouserEN50607[currLnb.satcruserEN50607.index].value*1000)
+ else:
+ sec.setLNBSatCRformat(0)
+ sec.setLNBSatCR(currLnb.satcruserEN50494.index)
+ sec.setLNBSatCRvco(currLnb.satcrvcouserEN50494[currLnb.satcruserEN50494.index].value*1000)
+
sec.setLNBLOFL(currLnb.lofl.value * 1000)
sec.setLNBLOFH(currLnb.lofh.value * 1000)
sec.setLNBThreshold(currLnb.threshold.value * 1000)
- sec.setLNBSatCR(currLnb.satcruser.index)
- sec.setLNBSatCRvco(currLnb.satcrvcouser[currLnb.satcruser.index].value*1000)
- sec.setLNBSatCRpositions(1) #HACK
+ sec.setLNBSatCRpositions(64) #HACK
elif currLnb.unicable.value == "unicable_matrix":
setupUnicable(currLnb.unicableMatrixManufacturer, currLnb.unicableMatrix)
elif currLnb.unicable.value == "unicable_lnb":
# pass # nyi in drivers
if currLnb.increased_voltage.value:
- sec.setLNBIncreasedVoltage(lnbParam.ON)
+ sec.setLNBIncreasedVoltage(True)
else:
- sec.setLNBIncreasedVoltage(lnbParam.OFF)
+ sec.setLNBIncreasedVoltage(False)
dm = currLnb.diseqcMode.value
if dm == "none":
# finally add the orbital positions
for y in lnbSat[x]:
self.addSatellite(sec, y)
- if x > 32:
- satpos = x > 32 and (3604-(36 - x)) or y
+ if x > 64:
+ satpos = x > 64 and (3604-(68 - x)) or y
else:
satpos = y
currSat = config.Nims[slotid].advanced.sat[satpos]
elif currSat.tonemode.value == "off":
sec.setToneMode(switchParam.OFF)
- if not currSat.usals.value and x < 34:
+ if not currSat.usals.value and x < 66:
sec.setRotorPosNum(currSat.rotorposition.value)
else:
sec.setRotorPosNum(0) #USALS
def __init__(self, slot, type, description, has_outputs = True, internally_connectable = None, multi_type = {}, frontend_id = None, i2c = None, is_empty = False):
self.slot = slot
- if type not in ("DVB-S", "DVB-C", "DVB-T", "DVB-S2", None):
+ if type not in ("DVB-S", "DVB-C", "DVB-T", "DVB-S2", "DVB-T2", None):
print "warning: unknown NIM type %s, not using." % type
type = None
self.i2c = i2c
self.frontend_id = frontend_id
self.__is_empty = is_empty
-
- def isCompatible(self, what):
- if not self.isSupported():
- return False
- compatible = {
+ self.compatible = {
None: (None,),
"DVB-S": ("DVB-S", None),
"DVB-C": ("DVB-C", None),
"DVB-T": ("DVB-T", None),
- "DVB-S2": ("DVB-S", "DVB-S2", None)
+ "DVB-S2": ("DVB-S", "DVB-S2", None),
+ "DVB-T2": ("DVB-T", "DVB-T2", None)
}
- return what in compatible[self.type]
-
+
def getType(self):
+ try:
+ if self.isMultiType():
+ return self.multi_type[self.config.multiType.value]
+ except:
+ pass
return self.type
+
+ def isCompatible(self, what):
+ if not self.isSupported():
+ return False
+ return what in self.compatible[self.getType()]
+
+ def canBeCompatible(self, what):
+ if self.isCompatible(what):
+ return True
+ for type in self.getMultiTypeList().values():
+ if what in self.compatible[type]:
+ return True
+ return False
def connectableTo(self):
connectable = {
"DVB-S": ("DVB-S", "DVB-S2"),
"DVB-C": ("DVB-C",),
"DVB-T": ("DVB-T",),
- "DVB-S2": ("DVB-S", "DVB-S2")
+ "DVB-S2": ("DVB-S", "DVB-S2"),
+ "DVB-T2": ("DVB-T", "DVB-T2",)
}
- return connectable[self.type]
+ return connectable[self.getType()]
def getSlotName(self):
# get a friendly description for a slot name.
return {
"DVB-S": "DVB-S",
"DVB-T": "DVB-T",
- "DVB-S2": "DVB-S2",
"DVB-C": "DVB-C",
+ "DVB-S2": "DVB-S2",
+ "DVB-T2": "DVB-T2",
None: _("empty")
- }[self.type]
+ }[self.getType()]
friendly_type = property(getFriendlyType)
friendly_full_description = property(getFriendlyFullDescription)
config_mode = property(lambda self: config.Nims[self.slot].configMode.value)
config = property(lambda self: config.Nims[self.slot])
- empty = property(lambda self: self.type is None)
+ empty = property(lambda self: self.getType() is None)
class NimManager:
def getConfiguredSats(self):
entry["frontend_device"] = entry["internally_connectable"] = None
if not (entry.has_key("multi_type")):
entry["multi_type"] = {}
+
+ # get MultiType from DTV_ENUM_DELSYS
+ if entry["frontend_device"] is not None:
+ types = [type for type in ["DVB-C", "DVB-T2", "DVB-T", "DVB-S2", "DVB-S", "ATSC"] if eDVBResourceManager.getInstance().frontendIsCompatible(entry["frontend_device"], type)]
+ if "DVB-T2" in types and "DVB-T" in types:
+ # DVB-T2 implies DVB-T support
+ types.remove("DVB-T")
+ if "DVB-S2" in types and "DVB-S" in types:
+ # DVB-S2 implies DVB-S support
+ types.remove("DVB-S")
+ if len(types) > 1:
+ entry["multi_type"] = {}
+ for type in types:
+ entry["multi_type"][str(types.index(type))] = type
+
self.nim_slots.append(NIM(slot = id, description = entry["name"], type = entry["type"], has_outputs = entry["has_outputs"], internally_connectable = entry["internally_connectable"], multi_type = entry["multi_type"], frontend_id = entry["frontend_device"], i2c = entry["i2c"], is_empty = entry["isempty"]))
def hasNimType(self, chktype):
for slot in self.nim_slots:
- if slot.isCompatible(chktype):
+ if slot.canBeCompatible(chktype):
return True
- for type in slot.getMultiTypeList().values():
- if chktype == type:
- return True
return False
def getNimType(self, slotid):
- return self.nim_slots[slotid].type
+ return self.nim_slots[slotid].getType()
def getNimDescription(self, slotid):
return self.nim_slots[slotid].friendly_full_description
for slot in self.getNimListOfType(type, exception = slotid):
if self.hasOutputs(slot):
slots.append(slot)
+
+ # remove duplicates from list
+ slots = list(set(slots))
+
# remove nims, that have a conntectedTo reference on
for testnim in slots[:]:
for nim in self.getNimListOfType("DVB-S", slotid):
if nimConfig.content.items.has_key("configMode") and nimConfig.configMode.value == "loopthrough" and int(nimConfig.connectedTo.value) == testnim:
slots.remove(testnim)
break
+
+ if nimConfig.content.items.has_key("configMode") and nimConfig.configMode.value == "advanced":
+ try:
+ if (nimConfig.advanced.unicableconnected is not None) and (nimConfig.advanced.unicableconnected.value == True):
+ if int(nimConfig.advanced.unicableconnectedTo.value) == testnim:
+ slots.remove(testnim)
+ break
+ except:
+ pass
+
+
slots.sort()
return slots
type = self.getNimType(slotid)
if type == "DVB-S2":
type = "DVB-S"
+ elif type == "DVB-T2":
+ type = "DVB-T"
nimList = self.getNimListOfType(type, slotid)
for nim in nimList[:]:
mode = self.getNimConfig(nim)
type = self.getNimType(slotid)
if type == "DVB-S2":
type = "DVB-S"
+ elif type == "DVB-T2":
+ type = "DVB-T"
nimList = self.getNimListOfType(type, slotid)
positionerList = []
for nim in nimList[:]:
# the C(++) part should can handle this
# the configElement should be only visible when diseqc 1.2 is disabled
-def InitNimManager(nimmgr):
+def InitNimManager(nimmgr, update_slots = []):
hw = HardwareInfo()
addNimConfig = False
try:
root = doc.getroot()
entry = root.find("lnb")
+ lscr=("scr1","scr2","scr3","scr4","scr5","scr6","scr7","scr8","scr9","scr10",
+ "scr11","scr12","scr13","scr14","scr15","scr16","scr17","scr18","scr19","scr20",
+ "scr21","scr22","scr23","scr24","scr25","scr26","scr27","scr28","scr29","scr30",
+ "scr31","scr32")
for manufacturer in entry.getchildren():
m={}
for product in manufacturer.getchildren():
+ p={} #new dict empty for new product
scr=[]
- lscr=("scr1","scr2","scr3","scr4","scr5","scr6","scr7","scr8")
for i in range(len(lscr)):
scr.append(product.get(lscr[i],"0"))
for i in range(len(lscr)):
scr.pop()
else:
break;
- lof=[]
- lof.append(int(product.get("positions",1)))
- lof.append(int(product.get("lofl",9750)))
- lof.append(int(product.get("lofh",10600)))
- lof.append(int(product.get("threshold",11700)))
- scr.append(tuple(lof))
- m.update({product.get("name"):tuple(scr)})
+
+ p.update({"frequencies":tuple(scr)}) #add scr frequencies to dict product
+
+ diction = product.get("format","EN50494").upper()
+ if diction =="JESS" or diction =="UNICABLE2" or diction =="SCD2" or diction =="EN50607":
+ diction = "EN50607"
+ else:
+ diction = "EN50494"
+ p.update({"diction":tuple([diction])}) #add diction to dict product
+
+ positions=[]
+ positions.append(int(product.get("positions",1)))
+ for cnt in range(positions[0]):
+ lof=[]
+ lof.append(int(product.get("lofl",9750)))
+ lof.append(int(product.get("lofh",10600)))
+ lof.append(int(product.get("threshold",11700)))
+ positions.append(tuple(lof))
+
+ p.update({"positions":tuple(positions)}) #add positons to dict product.
+
+ m.update({product.get("name"):p}) #add dict product to dict manufacturer
unicablelnbproducts.update({manufacturer.get("name"):m})
entry = root.find("matrix")
for manufacturer in entry.getchildren():
m={}
for product in manufacturer.getchildren():
+ p={} #new dict empty for new product
scr=[]
- lscr=("scr1","scr2","scr3","scr4","scr5","scr6","scr7","scr8")
for i in range(len(lscr)):
scr.append(product.get(lscr[i],"0"))
for i in range(len(lscr)):
scr.pop()
else:
break;
- lof=[]
- lof.append(int(product.get("positions",1)))
- lof.append(int(product.get("lofl",9750)))
- lof.append(int(product.get("lofh",10600)))
- lof.append(int(product.get("threshold",11700)))
- scr.append(tuple(lof))
- m.update({product.get("name"):tuple(scr)})
- unicablematrixproducts.update({manufacturer.get("name"):m})
+
+ p.update({"frequencies":tuple(scr)}) #add scr frequencies to dict product
+
+ diction = product.get("format","EN50494").upper()
+ if diction =="JESS" or diction =="UNICABLE2" or diction =="SCD2" or diction =="EN50607":
+ diction = "EN50607"
+ else:
+ diction = "EN50494"
+ p.update({"diction":tuple([diction])}) #add diction to dict product
+
+ positions=[]
+ positions.append(int(product.get("positions",1)))
+ for cnt in range(positions[0]):
+ lof=[]
+ lof.append(int(product.get("lofl",9750)))
+ lof.append(int(product.get("lofh",10600)))
+ lof.append(int(product.get("threshold",11700)))
+ positions.append(tuple(lof))
+
+ p.update({"positions":tuple(positions)}) #add positons to dict product
+
+ m.update({product.get("name"):p}) #add dict product to dict manufacturer
+ unicablematrixproducts.update({manufacturer.get("name"):m}) #add dict manufacturer to dict unicablematrixproducts
UnicableLnbManufacturers = unicablelnbproducts.keys()
UnicableLnbManufacturers.sort()
"unicable_user": "Unicable "+_("User defined")}
unicable_choices_default = "unicable_lnb"
- advanced_lnb_satcruser_choices = [ ("1", "SatCR 1"), ("2", "SatCR 2"), ("3", "SatCR 3"), ("4", "SatCR 4"),
- ("5", "SatCR 5"), ("6", "SatCR 6"), ("7", "SatCR 7"), ("8", "SatCR 8")]
+ advanced_lnb_satcr_user_choicesEN50494 = [("1", "SatCR 1"), ("2", "SatCR 2"), ("3", "SatCR 3"), ("4", "SatCR 4"), ("5", "SatCR 5"), ("6", "SatCR 6"), ("7", "SatCR 7"), ("8", "SatCR 8")]
+
+ advanced_lnb_satcr_user_choicesEN50607 = [("1", "SatCR 1"), ("2", "SatCR 2"), ("3", "SatCR 3"), ("4", "SatCR 4"), ("5", "SatCR 5"), ("6", "SatCR 6"), ("7", "SatCR 7"), ("8", "SatCR 8"),
+ ("9", "SatCR 9"), ("10", "SatCR 10"), ("11", "SatCR 11"), ("12", "SatCR 12"), ("13", "SatCR 13"), ("14", "SatCR 14"), ("15", "SatCR 15"), ("16", "SatCR 16"),
+ ("17", "SatCR 17"), ("18", "SatCR 18"), ("19", "SatCR 19"), ("20", "SatCR 20"), ("21", "SatCR 21"), ("22", "SatCR 22"), ("23", "SatCR 23"), ("24", "SatCR 24"),
+ ("25", "SatCR 25"), ("26", "SatCR 26"), ("27", "SatCR 27"), ("28", "SatCR 28"), ("29", "SatCR 29"), ("30", "SatCR 30"), ("31", "SatCR 31"), ("32", "SatCR 32")]
+
+ advanced_lnb_diction_user_choices = [("EN50494", "Unicable(EN50494)"), ("EN50607", "JESS(EN50607)")]
prio_list = [ ("-1", _("Auto")) ]
prio_list += [(str(prio), str(prio)) for prio in range(65)+range(14000,14065)+range(19000,19065)]
advanced_satlist_choices = nimmgr.satList + [
(3601, _('All Satellites')+' 1', 1), (3602, _('All Satellites')+' 2', 1),
(3603, _('All Satellites')+' 3', 1), (3604, _('All Satellites')+' 4', 1)]
- advanced_lnb_choices = [("0", "not available")] + [(str(y), "LNB " + str(y)) for y in range(1, 33)]
+ advanced_lnb_choices = [("0", "not available")] + [(str(y), "LNB " + str(y)) for y in range(1, 65)]
advanced_voltage_choices = [("polarization", _("Polarization")), ("13V", _("13 V")), ("18V", _("18 V"))]
advanced_tonemode_choices = [("band", _("Band")), ("on", _("On")), ("off", _("Off"))]
advanced_lnb_toneburst_choices = [("none", _("None")), ("A", _("A")), ("B", _("B"))]
if isinstance(section.unicable, ConfigNothing):
if lnb == 1:
section.unicable = ConfigSelection(unicable_choices, unicable_choices_default)
- elif lnb == 2:
- section.unicable = ConfigSelection(choices = {"unicable_matrix": _("Unicable Martix"),"unicable_user": "Unicable "+_("User defined")}, default = "unicable_matrix")
+# elif lnb == 2:
else:
- section.unicable = ConfigSelection(choices = {"unicable_user": _("User defined")}, default = "unicable_user")
-
- def fillUnicableConf(sectionDict, unicableproducts, vco_null_check):
- for y in unicableproducts:
- products = unicableproducts[y].keys()
- products.sort()
- tmp = ConfigSubsection()
- tmp.product = ConfigSelection(choices = products, default = products[0])
- tmp.scr = ConfigSubDict()
- tmp.vco = ConfigSubDict()
- tmp.lofl = ConfigSubDict()
- tmp.lofh = ConfigSubDict()
- tmp.loft = ConfigSubDict()
- tmp.positions = ConfigSubDict()
- for z in products:
+ section.unicable = ConfigSelection(choices = {"unicable_matrix": _("Unicable Martix"),"unicable_user": "Unicable "+_("User defined")}, default = "unicable_matrix")
+# section.unicable = ConfigSelection(choices = {"unicable_user": _("User defined")}, default = "unicable_user")
+ def fillUnicableConf(sectionDict, unicableproducts, vco_null_check):
+ for manufacturer in unicableproducts:
+ products = unicableproducts[manufacturer].keys()
+ products.sort()
+ products_valide = []
+ products_valide_append = products_valide.append
+ tmp = ConfigSubsection()
+ tmp.scr = ConfigSubDict()
+ tmp.vco = ConfigSubDict()
+ tmp.lofl = ConfigSubDict()
+ tmp.lofh = ConfigSubDict()
+ tmp.loft = ConfigSubDict()
+ tmp.positions = ConfigSubDict()
+ tmp.diction = ConfigSubDict()
+ for article in products:
+ positionslist = unicableproducts[manufacturer][article].get("positions")
+ positions = int(positionslist[0])
+ dictionlist = [unicableproducts[manufacturer][article].get("diction")]
+ if lnb <= positions or dictionlist[0][0] !="EN50607":
+ tmp.positions[article] = ConfigSubList()
+ tmp.positions[article].append(ConfigInteger(default=positions, limits = (positions, positions)))
+ tmp.diction[article] = ConfigSelection(choices = dictionlist, default = dictionlist[0][0])
+
scrlist = []
- vcolist = unicableproducts[y][z]
- tmp.vco[z] = ConfigSubList()
- for cnt in range(1,1+len(vcolist)-1):
+ scrlist_append = scrlist.append
+ vcolist=unicableproducts[manufacturer][article].get("frequencies")
+ tmp.vco[article] = ConfigSubList()
+ for cnt in range(1,len(vcolist)+1):
vcofreq = int(vcolist[cnt-1])
if vcofreq == 0 and vco_null_check:
- scrlist.append(("%d" %cnt,"SCR %d " %cnt +_("not used")))
+ scrlist_append(("%d" %cnt,"SCR %d " %cnt +_("not used")))
else:
- scrlist.append(("%d" %cnt,"SCR %d" %cnt))
- tmp.vco[z].append(ConfigInteger(default=vcofreq, limits = (vcofreq, vcofreq)))
- tmp.scr[z] = ConfigSelection(choices = scrlist, default = scrlist[0][0])
-
- positions = int(vcolist[len(vcolist)-1][0])
- tmp.positions[z] = ConfigSubList()
- tmp.positions[z].append(ConfigInteger(default=positions, limits = (positions, positions)))
-
- lofl = vcolist[len(vcolist)-1][1]
- tmp.lofl[z] = ConfigSubList()
- tmp.lofl[z].append(ConfigInteger(default=lofl, limits = (lofl, lofl)))
-
- lofh = int(vcolist[len(vcolist)-1][2])
- tmp.lofh[z] = ConfigSubList()
- tmp.lofh[z].append(ConfigInteger(default=lofh, limits = (lofh, lofh)))
-
- loft = int(vcolist[len(vcolist)-1][3])
- tmp.loft[z] = ConfigSubList()
- tmp.loft[z].append(ConfigInteger(default=loft, limits = (loft, loft)))
- sectionDict[y] = tmp
-
- if lnb < 3:
- print "MATRIX"
- section.unicableMatrix = ConfigSubDict()
- section.unicableMatrixManufacturer = ConfigSelection(UnicableMatrixManufacturers, UnicableMatrixManufacturers[0])
- fillUnicableConf(section.unicableMatrix, unicablematrixproducts, True)
-
- if lnb < 2:
- print "LNB"
- section.unicableLnb = ConfigSubDict()
- section.unicableLnbManufacturer = ConfigSelection(UnicableLnbManufacturers, UnicableLnbManufacturers[0])
- fillUnicableConf(section.unicableLnb, unicablelnbproducts, False)
+ scrlist_append(("%d" %cnt,"SCR %d" %cnt))
+ tmp.vco[article].append(ConfigInteger(default=vcofreq, limits = (vcofreq, vcofreq)))
+
+ tmp.scr[article] = ConfigSelection(choices = scrlist, default = scrlist[0][0])
+
+ tmp.lofl[article] = ConfigSubList()
+ tmp.lofh[article] = ConfigSubList()
+ tmp.loft[article] = ConfigSubList()
+
+ tmp_lofl_article_append = tmp.lofl[article].append
+ tmp_lofh_article_append = tmp.lofh[article].append
+ tmp_loft_article_append = tmp.loft[article].append
+
+ for cnt in range(1,positions+1):
+ lofl = int(positionslist[cnt][0])
+ lofh = int(positionslist[cnt][1])
+ loft = int(positionslist[cnt][2])
+ tmp_lofl_article_append(ConfigInteger(default=lofl, limits = (lofl, lofl)))
+ tmp_lofh_article_append(ConfigInteger(default=lofh, limits = (lofh, lofh)))
+ tmp_loft_article_append(ConfigInteger(default=loft, limits = (loft, loft)))
+ products_valide_append(article)
+
+ if len(products_valide)==0:
+ products_valide_append("None")
+ tmp.product = ConfigSelection(choices = products_valide, default = products_valide[0])
+ sectionDict[manufacturer] = tmp
+
+ if lnb < 65:
+ print "MATRIX"
+ section.unicableMatrix = ConfigSubDict()
+ section.unicableMatrixManufacturer = ConfigSelection(UnicableMatrixManufacturers, UnicableMatrixManufacturers[0])
+ fillUnicableConf(section.unicableMatrix, unicablematrixproducts, True)
+
+ if lnb < 2: #Konfiguration nur fuer LNB1 zulassen
+ print "LNB"
+ section.unicableLnb = ConfigSubDict()
+ section.unicableLnbManufacturer = ConfigSelection(UnicableLnbManufacturers, UnicableLnbManufacturers[0])
+ fillUnicableConf(section.unicableLnb, unicablelnbproducts, False)
#TODO satpositions for satcruser
- section.satcruser = ConfigSelection(advanced_lnb_satcruser_choices, default="1")
- tmp = ConfigSubList()
- tmp.append(ConfigInteger(default=1284, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1400, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1516, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1632, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1748, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1864, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=1980, limits = (950, 2150)))
- tmp.append(ConfigInteger(default=2096, limits = (950, 2150)))
- section.satcrvcouser = tmp
-
- nim.advanced.unicableconnected = ConfigYesNo(default=False)
- nim.advanced.unicableconnectedTo = ConfigSelection([(str(id), nimmgr.getNimDescription(id)) for id in nimmgr.getNimListOfType("DVB-S") if id != x])
-
+
+ section.dictionuser = ConfigSelection(advanced_lnb_diction_user_choices, default="EN50494")
+ section.satcruserEN50494 = ConfigSelection(advanced_lnb_satcr_user_choicesEN50494, default="1")
+ section.satcruserEN50607 = ConfigSelection(advanced_lnb_satcr_user_choicesEN50607, default="1")
+
+ tmp = ConfigSubList()
+ tmp.append(ConfigInteger(default=1284, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1400, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1516, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1632, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1748, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1864, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1980, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=2096, limits = (950, 2150)))
+ section.satcrvcouserEN50494 = tmp
+
+ tmp.append(ConfigInteger(default=1284, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1400, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1516, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1632, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1748, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1864, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1980, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=2096, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1284, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1400, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1516, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1632, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1748, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1864, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1980, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=2096, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1284, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1400, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1516, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1632, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1748, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1864, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=1980, limits = (950, 2150)))
+ tmp.append(ConfigInteger(default=2096, limits = (950, 2150)))
+ section.satcrvcouserEN50607 = tmp
+
+ nim.advanced.unicableconnected = ConfigYesNo(default=False)
+ nim.advanced.unicableconnectedTo = ConfigSelection([(str(id), nimmgr.getNimDescription(id)) for id in nimmgr.getNimListOfType("DVB-S") if id != x])
+
def configDiSEqCModeChanged(configElement):
section = configElement.section
if configElement.value == "1_2" and isinstance(section.longitude, ConfigNothing):
section.increased_voltage = ConfigYesNo(False)
section.toneburst = ConfigSelection(advanced_lnb_toneburst_choices, "none")
section.longitude = ConfigNothing()
- if lnb > 32:
+ if lnb > 64:
tmp = ConfigSelection(advanced_lnb_allsat_diseqcmode_choices, "1_2")
tmp.section = section
configDiSEqCModeChanged(tmp)
tmp.tonemode = ConfigSelection(advanced_tonemode_choices, "band")
tmp.usals = ConfigYesNo(default=True)
tmp.rotorposition = ConfigInteger(default=1, limits=(1, 255))
- lnbnum = 33+x-3601
+ lnbnum = 65+x-3601
lnb = ConfigSelection([("0", "not available"), (str(lnbnum), "LNB %d"%(lnbnum))], "0")
lnb.slot_id = slot_id
lnb.addNotifier(configLNBChanged, initial_call = False)
if nimmgr.nim_slots[slot_id].description == 'Alps BSBE2':
open("/proc/stb/frontend/%d/tone_amplitude" %(fe_id), "w").write(configElement.value)
- def tunerTypeChanged(nimmgr, configElement):
- fe_id = configElement.fe_id
-
- cur_type = int(open("/proc/stb/frontend/%d/mode" % (fe_id), "r").read())
- if cur_type != int(configElement.value):
- print "tunerTypeChanged feid %d from %d to mode %d" % (fe_id, cur_type, int(configElement.value))
-
- try:
- oldvalue = open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "r").readline()
- open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write("0")
- except:
- print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
-
- frontend = eDVBResourceManager.getInstance().allocateRawChannel(fe_id).getFrontend()
- frontend.closeFrontend()
- open("/proc/stb/frontend/%d/mode" % (fe_id), "w").write(configElement.value)
- frontend.reopenFrontend()
- try:
- open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write(oldvalue)
- except:
- print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
- nimmgr.enumerateNIMs()
- else:
- print "tuner type is already already %d" %cur_type
-
- empty_slots = 0
- for slot in nimmgr.nim_slots:
- x = slot.slot
- nim = config.Nims[x]
- addMultiType = False
+ def createSatConfig(nim, x, empty_slots):
+ print "[Nimmanager] slot %d create config satellite.." % slot.slot
try:
- nim.multiType
+ nim.toneAmplitude
except:
- addMultiType = True
- if slot.isMultiType() and addMultiType:
- typeList = []
- for id in slot.getMultiTypeList().keys():
- type = slot.getMultiTypeList()[id]
- typeList.append((id, type))
- nim.multiType = ConfigSelection(typeList, "0")
-
- nim.multiType.fe_id = x - empty_slots
- nim.multiType.addNotifier(boundFunction(tunerTypeChanged, nimmgr))
-
- empty_slots = 0
- for slot in nimmgr.nim_slots:
- x = slot.slot
- nim = config.Nims[x]
-
- if slot.isCompatible("DVB-S"):
nim.toneAmplitude = ConfigSelection([("11", "340mV"), ("10", "360mV"), ("9", "600mV"), ("8", "700mV"), ("7", "800mV"), ("6", "900mV"), ("5", "1100mV")], "7")
nim.toneAmplitude.fe_id = x - empty_slots
nim.toneAmplitude.slot_id = x
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)
- config_mode_choices = [ ("nothing", _("nothing connected")),
- ("simple", _("simple")), ("advanced", _("advanced"))]
- if len(nimmgr.getNimListOfType(slot.type, exception = x)) > 0:
- config_mode_choices.append(("equal", _("equal to")))
- config_mode_choices.append(("satposdepends", _("second cable of motorized LNB")))
- if len(nimmgr.canConnectTo(x)) > 0:
- config_mode_choices.append(("loopthrough", _("loopthrough to")))
- nim.advanced = ConfigNothing()
- tmp = ConfigSelection(config_mode_choices, "nothing")
- tmp.slot_id = x
- tmp.addNotifier(configModeChanged, initial_call = False)
- nim.configMode = tmp
- elif slot.isCompatible("DVB-C"):
- nim.configMode = ConfigSelection(
- choices = {
- "enabled": _("enabled"),
- "nothing": _("nothing connected"),
- },
- default = "enabled")
+
+ def createCableConfig(nim, x):
+ print "[Nimmanager] slot %d create config cable.." % slot.slot
+ try:
+ nim.cable
+ except:
list = [ ]
n = 0
for x in nimmgr.cablesList:
nim.cable.scan_sr_6875 = ConfigYesNo(default = True)
nim.cable.scan_sr_ext1 = ConfigInteger(default = 0, limits = (0, 7230))
nim.cable.scan_sr_ext2 = ConfigInteger(default = 0, limits = (0, 7230))
- elif slot.isCompatible("DVB-T"):
- nim.configMode = ConfigSelection(
- choices = {
- "enabled": _("enabled"),
- "nothing": _("nothing connected"),
- },
- default = "enabled")
+
+ def createTerrestrialConfig(nim, x):
+ print "[Nimmanager] slot %d create config terrestrial.." % slot.slot
+ try:
+ nim.terrestrial
+ except:
list = []
n = 0
for x in nimmgr.terrestrialsList:
n += 1
nim.terrestrial = ConfigSelection(choices = list)
nim.terrestrial_5V = ConfigOnOff()
+
+ def tunerTypeChanged(nimmgr, configElement):
+ fe_id = configElement.fe_id
+ eDVBResourceManager.getInstance().setFrontendType(nimmgr.nim_slots[fe_id].frontend_id, nimmgr.nim_slots[fe_id].getType())
+ import os
+ if os.path.exists("/proc/stb/frontend/%d/mode" % fe_id):
+ cur_type = int(open("/proc/stb/frontend/%d/mode" % (fe_id), "r").read())
+ if cur_type == int(configElement.value):
+ print "tuner type is already already %d" %cur_type
+ return
+ print "tunerTypeChanged feid %d from %d to mode %d" % (fe_id, cur_type, int(configElement.value))
+
+ print "tunerTypeChanged feid %d, mode %d" % (fe_id, int(configElement.value))
+
+ try:
+ oldvalue = open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "r").readline()
+ open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write("0")
+ except:
+ print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
+
+ frontend = eDVBResourceManager.getInstance().allocateRawChannel(fe_id).getFrontend()
+ frontend.closeFrontend()
+
+ if os.path.exists("/proc/stb/frontend/%d/mode" % fe_id):
+ open("/proc/stb/frontend/%d/mode" % (fe_id), "w").write(configElement.value)
+
+ frontend.reopenFrontend()
+ try:
+ open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write(oldvalue)
+ except:
+ print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
+ nimmgr.enumerateNIMs()
+
+ empty_slots = 0
+ for slot in nimmgr.nim_slots:
+ print "[InitNimManager] check multi type slot %d" % slot.slot
+ x = slot.slot
+ nim = config.Nims[x]
+ addMultiType = False
+ try:
+ nim.multiType
+ except:
+ addMultiType = True
+ if slot.isMultiType() and addMultiType:
+ print "[InitNimManager] slot %d is multi type : " % slot.slot, slot.getMultiTypeList()
+ typeList = []
+ for id in slot.getMultiTypeList().keys():
+ type = slot.getMultiTypeList()[id]
+ typeList.append((id, type))
+ nim.multiType = ConfigSelection(typeList, "0")
+ nim.multiType.fe_id = x - empty_slots
+ nim.multiType.addNotifier(boundFunction(tunerTypeChanged, nimmgr))
+
+ empty_slots = 0
+ for slot in nimmgr.nim_slots:
+ x = slot.slot
+ nim = config.Nims[x]
+
+ if update_slots and (x not in update_slots):
+ continue
+
+ if slot.isCompatible("DVB-S"):
+ createSatConfig(nim, x, empty_slots)
+ config_mode_choices = [ ("nothing", _("nothing connected")),
+ ("simple", _("simple")), ("advanced", _("advanced"))]
+ if len(nimmgr.getNimListOfType(slot.getType(), exception = x)) > 0:
+ config_mode_choices.append(("equal", _("equal to")))
+ config_mode_choices.append(("satposdepends", _("second cable of motorized LNB")))
+ if len(nimmgr.canConnectTo(x)) > 0:
+ config_mode_choices.append(("loopthrough", _("loopthrough to")))
+ nim.advanced = ConfigNothing()
+ tmp = ConfigSelection(config_mode_choices, "nothing")
+ tmp.slot_id = x
+ tmp.addNotifier(configModeChanged, initial_call = False)
+ nim.configMode = tmp
+ elif slot.isCompatible("DVB-C"):
+ nim.configMode = ConfigSelection(
+ choices = {
+ "enabled": _("enabled"),
+ "nothing": _("nothing connected"),
+ },
+ default = "enabled")
+ createCableConfig(nim, x)
+ elif slot.isCompatible("DVB-T"):
+ nim.configMode = ConfigSelection(
+ choices = {
+ "enabled": _("enabled"),
+ "nothing": _("nothing connected"),
+ },
+ default = "enabled")
+ createTerrestrialConfig(nim, x)
else:
+ print "[Nimmanager] slot %d create config nothing.." % slot.slot
empty_slots += 1
nim.configMode = ConfigSelection(choices = { "nothing": _("disabled") }, default="nothing");
- if slot.type is not None:
- print "pls add support for this frontend type!", slot.type
+ if slot.getType() is not None:
+ print "pls add support for this frontend type!", slot.getType()
# assert False
nimmgr.sec = SecConfigure(nimmgr)