Jump to content


Huevos

Member Since 14 Feb 2012
Offline Last Active Today, 12:00
*****

#427564 36E scan problem

Posted by Huevos on 7 June 2014 - 12:35

This is one of the worst hacks I've ever seen. I thought OpenPLi didn't allow hacks. And anyway TSIDs dont have to be unique. There are often multiple identical TSIDs on 28E in cases of dual illumination.


#422005 FTA/Encrypted flag in ServiceScan/lamedb

Posted by Huevos on 10 May 2014 - 11:54

Or from today zap to it...

Good. I look forward to testing that.

 

It's a shame there is no way to override this flag  in DBEdit.




#418707 'All satellites' in tuner config

Posted by Huevos on 21 April 2014 - 23:49

So E2 can select a compatible LNB for what you are trying to receive. Here's an example... All sats1 set up as Ku (universal). All sats2 set with C-band LNB. All sats 3 Ka-band LNB, etc. Then E2 decides which LNB is compatible with what you are trying to receive. This is fact, not a guess.




#415548 I'm not sure this is blindscan

Posted by Huevos on 4 April 2014 - 10:59

Real feedhunters do not use a normal settop box or blindscan... It is much faster to use e.g. a spectrum analyser to find feeds.... You can see a whole coordinate at once... Indeed blindscsn is in fact too slow and too blind to guarantee you find them...

Littlesat, I never use my spectrum analyser for feed hunting. A lot of the time feeds are much lower power, and when surrounded by DTH transponders are often invisible on the spectrum. Also feeds come up long before the event and are easy to find before they disappear. Modern blindscan receivers do a full band scan in just a few minutes and if you run automatic filters on the output you can avoid any DTH transponder and just find the feeds. And obviously if you know the satellite you can just scan the part of the band that is used for feeds on that satellite and this significantly speeds up the process.

 

And BTW spectrum analyser is analogue so you still need to open every single transponder to find out if it is a feed.




#415494 I'm not sure this is blindscan

Posted by Huevos on 4 April 2014 - 00:43

Guys, try to be a bit more open minded. The are literally hundreds of feeds every day. Lots in HD, not encrypted, (sports and news). BTW, what is a "real feedhunter"?




#414581 FTA/Encrypted flag in ServiceScan/lamedb

Posted by Huevos on 28 March 2014 - 21:37

Mine too, and it has been asked for several times in the past.


#414373 FTA/Encrypted flag in ServiceScan/lamedb

Posted by Huevos on 28 March 2014 - 07:33

Littlesat the added value is you can see the encrypted channels at a glance before zapping, rather than zapping through each and every channel to find this out.


#409360 Crash after blindscan - ET9000

Posted by Huevos on 1 March 2014 - 23:10

Adapted version of the plugin for openPli.

 

Thanks to the author Huevos  :)

Just want to make clear I wasn't the original author of the plugin. It was already adapted into ViX by Andy before I touched it. I just made it user friendly and added the filters.

 

@Littlesat, what do you mean about dirty hacks? The thing is the blindscan driver is different not just for every manufacturer but also for every tuner. So with receivers like the Ultimo, Uno, Duo2 there is more than one driver needed for the same receiver. So how do you suggest that should be dealt with without a method of recognizing the box/tuner type from inside the .py file?




#407874 Preferred tuner for recording

Posted by Huevos on 23 February 2014 - 00:00

Thanks Dima. Working fine for me so far.




#397174 Satfinder, BSoD.

Posted by Huevos on 6 January 2014 - 19:22

Ok, thx. You mean, that the Pli-Update isn't the same like a reflash?

Maybe something went wrong with one of your updates and you still have an old version ScanSetup.py from before Satfinder was updated.




#382781 Satfinder exit behaviour after ScanSetup mod

Posted by Huevos on 26 October 2013 - 19:41

NIM selection migrated to main screen.

 

--- plugin.old.py	Sat Oct 26 17:03:26 2013
+++ plugin.py	Sat Oct 26 17:04:19 2013
@@ -15,9 +15,8 @@
 from Components.TuneTest import Tuner
 
 class Satfinder(ScanSetup):
-	def __init__(self, session, feid):
+	def __init__(self, session):
 		self.initcomplete = False
-		self.feid = feid
 		self.oldref = None
 		self.frontendData = None
 		service = session and session.nav.getCurrentService()
@@ -28,7 +27,6 @@
 
 		ScanSetup.__init__(self, session)
 		self.setTitle(_("Satfinder"))
-
 		self["introduction"].setText(_("Press OK to scan"))
 		self["Frontend"] = FrontendStatus(frontend_source = lambda : self.frontend, update_interval = 100)
 
@@ -42,7 +40,7 @@
 		self.initcomplete = True
 		self.oldref = self.session.nav.getCurrentlyPlayingServiceReference()
 		self.onClose.append(self.__onClose)
-		self.onShow.append(self.__onShow)
+		self.onShow.append(self.prepareFrontend)
 
 	def openFrontend(self):
 		res_mgr = eDVBResourceManager.getInstance()
@@ -60,15 +58,16 @@
 			print "getResourceManager instance failed"
 		return False
 
-	def __onShow(self):
-		if self.oldref is not None:
-			self.session.nav.stopService() # try to disable foreground service
+	def prepareFrontend(self):
+		self.frontend = None
 		if not self.openFrontend():
-			if self.session.pipshown: # try to disable pip
-				self.session.pipshown = False
-				del self.session.pip
-				if not self.openFrontend():
-					self.frontend = None # in normal case this should not happen
+			self.session.nav.stopService()
+			if not self.openFrontend():
+				if self.session.pipshown: # try to disable pip
+					self.session.pipshown = False
+					del self.session.pip
+					if not self.openFrontend():
+						self.frontend = None # in normal case this should not happen
 		self.tuner = Tuner(self.frontend)
 		self.retune(None)
 
@@ -76,19 +75,18 @@
 		self.session.nav.playService(self.oldref)
 
 	def createSetup(self):
-		self.typeOfTuningEntry = None
-		self.satEntry = None
-
 		self.list = []
-
+		self.satfinderTunerEntry = getConfigListEntry(_("Tuner"), self.satfinder_scan_nims)
+		self.list.append(self.satfinderTunerEntry)		
+		self.tuning_sat = self.scan_satselection[self.getSelectedSatIndex(self.feid)]
 		self.satEntry = getConfigListEntry(_('Satellite'), self.tuning_sat)
 		self.list.append(self.satEntry)
+		self.updatePreDefTransponders()
 		self.typeOfTuningEntry = getConfigListEntry(_('Tune'), self.tuning_type)
 		self.list.append(self.typeOfTuningEntry)
 
 		nim = nimmanager.nim_slots[self.feid]
 
-		self.systemEntry = None
 		if self.tuning_type.getValue() == "manual_transponder":
 			if nim.isCompatible("DVB-S2"):
 				self.systemEntry = getConfigListEntry(_('System'), self.scan_sat.system)
@@ -108,23 +106,23 @@
 				self.list.append(self.modulationEntry)
 				self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
 				self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
-		elif self.tuning_transponder and self.tuning_type.getValue() == "predefined_transponder":
-			self.list.append(getConfigListEntry(_("Transponder"), self.tuning_transponder))
+		elif self.preDefTransponders and self.tuning_type.getValue() == "predefined_transponder":
+			self.list.append(getConfigListEntry(_("Transponder"), self.preDefTransponders))
 		self["config"].list = self.list
 		self["config"].l.setList(self.list)
+		self.retune(None)
 
 	def newConfig(self):
 		cur = self["config"].getCurrent()
 		if cur in (self.typeOfTuningEntry, self.systemEntry):
 			self.createSetup()
+		elif cur == self.satfinderTunerEntry:
+			self.feid = int(self.satfinder_scan_nims.value)
+			self.prepareFrontend()
+			self.createSetup()
 		elif cur == self.satEntry:
-			self.updateSats()
 			self.createSetup()
 
-	def sat_changed(self, config_element):
-		self.newConfig()
-		self.retune(config_element)
-
 	def retune(self, configElement):
 		returnvalue = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
 		satpos = int(self.tuning_sat.getValue())
@@ -148,80 +146,62 @@
 		elif self.tuning_type.getValue() == "predefined_transponder":
 			tps = nimmanager.getTransponders(satpos)
 			l = len(tps)
-			if l > self.tuning_transponder.index:
-				transponder = tps[self.tuning_transponder.index]
+			if l > self.preDefTransponders.index:
+				transponder = tps[self.preDefTransponders.index]
 				returnvalue = (transponder[1] / 1000, transponder[2] / 1000,
 					transponder[3], transponder[4], 2, satpos, transponder[5], transponder[6], transponder[8], transponder[9])
 				self.tune(returnvalue)
 
 	def createConfig(self, foo):
-		self.tuning_transponder = None
-		self.tuning_type = ConfigSelection(choices = [("manual_transponder", _("Manual transponder")), ("predefined_transponder", _("Predefined transponder"))])
-		orbital_position = 192
+		self.preDefTransponders = None
+		self.tuning_type = ConfigSelection(choices = [("manual_transponder", _("User defined transponder")), ("predefined_transponder", _("Predefined transponder"))])
+		self.orbital_position = 192
 		if self.frontendData and self.frontendData.has_key('orbital_position'):
-			orbital_position = self.frontendData['orbital_position']
-		self.tuning_sat = getConfigSatlist(orbital_position, nimmanager.getSatListForNim(self.feid))
+			self.orbital_position = self.frontendData['orbital_position']
 		ScanSetup.createConfig(self, self.frontendData)
 
-		self.updateSats()
-
-		for x in (self.tuning_type, self.tuning_sat, self.scan_sat.frequency,
+		for x in (self.tuning_type, self.scan_sat.frequency,
 			self.scan_sat.inversion, self.scan_sat.symbolrate,
 			self.scan_sat.polarization, self.scan_sat.fec, self.scan_sat.pilot,
 			self.scan_sat.fec_s2, self.scan_sat.fec, self.scan_sat.modulation,
 			self.scan_sat.rolloff, self.scan_sat.system):
 			x.addNotifier(self.retune, initial_call = False)
-
-	def updateSats(self):
-		orb_pos = self.tuning_sat.orbital_position
-		if orb_pos is not None:
-			transponderlist = nimmanager.getTransponders(orb_pos)
-			list = []
-			default = None
-			index = 0
-			for x in transponderlist:
-				if x[3] == 0:
-					pol = "H"
-				elif x[3] == 1:
-					pol = "V"
-				elif x[3] == 2:
-					pol = "CL"
-				elif x[3] == 3:
-					pol = "CR"
-				else:
-					pol = "??"
-				if x[4] == 0:
-					fec = "FEC Auto"
-				elif x[4] == 1:
-					fec = "FEC 1/2"
-				elif x[4] == 2:
-					fec = "FEC 2/3"
-				elif x[4] == 3:
-					fec = "FEC 3/4"
-				elif x[4] == 4:
-					fec = "FEC 5/6"
-				elif x[4] == 5:
-					fec = "FEC 7/8"
-				elif x[4] == 6:
-					fec = "FEC 8/9"
-				elif x[4] == 7:
-					fec = "FEC 3/5"
-				elif x[4] == 8:
-					fec = "FEC 4/5"
-				elif x[4] == 9:
-					fec = "FEC 9/10"
-				elif x[4] == 15:
-					fec = "FEC None"
-				else:
-					fec = "FEC Unknown"
-				e = "%d %s %d %s" % ((x[1] / 1000), pol, (x[2] / 1000), fec)
-
-				if default is None:
-					default = str(index)
-				list.append((str(index), e))
-				index += 1
-			self.tuning_transponder = ConfigSelection(choices = list, default = default)
-			self.tuning_transponder.addNotifier(self.retune, initial_call = False)
+			
+		satfinder_nim_list = []
+		for n in nimmanager.nim_slots:
+			if not n.isCompatible("DVB-S"):
+				continue
+			if n.config_mode  in ("loopthrough", "satposdepends", "nothing"):
+				continue
+			if n.config_mode == "advanced" and len(nimmanager.getSatListForNim(n.slot)) < 1:
+				continue
+			satfinder_nim_list.append((str(n.slot), n.friendly_full_description))
+		self.satfinder_scan_nims = ConfigSelection(choices = satfinder_nim_list)
+		self.feid = int(self.satfinder_scan_nims.value)
+		
+		self.satList = []
+		self.scan_satselection = []
+		for slot in nimmanager.nim_slots:
+			if slot.isCompatible("DVB-S"):
+				self.satList.append(nimmanager.getSatListForNim(slot.slot))
+				self.scan_satselection.append(getConfigSatlist(self.orbital_position, self.satList[slot.slot]))
+			else:
+				self.satList.append(None)
+		
+	def getSelectedSatIndex(self, v):
+		index    = 0
+		none_cnt = 0
+		for n in self.satList:
+			if self.satList[index] == None:
+				none_cnt = none_cnt + 1
+			if index == int(v):
+				return (index-none_cnt)
+			index = index + 1
+		return -1
+
+	def updatePreDefTransponders(self):
+		ScanSetup.predefinedTranspondersList(self, self.tuning_sat.orbital_position)
+		self.preDefTransponders.addNotifier(self.retune, initial_call = False)
 
 	def keyGoScan(self):
 		self.frontend = None
@@ -247,20 +227,11 @@
 
 		self.keyGo()
 
-	def restartPrevService(self, yesno):
-		if yesno:
-			if self.frontend:
-				self.frontend = None
-				del self.raw_channel
-		else:
-			self.oldref = None
-		self.close(None)
-
 	def keyCancel(self):
-		if self.oldref:
-			self.session.openWithCallback(self.restartPrevService, MessageBox, _("Zap back to service before satfinder?"), MessageBox.TYPE_YESNO)
-		else:
-			self.restartPrevService(False)
+		if self.oldref and self.frontend:
+			self.frontend = None
+			del self.raw_channel
+		self.close(None)
 
 	def tune(self, transponder):
 		if self.initcomplete:
@@ -268,52 +239,24 @@
 				self.tuner.tune(transponder)
 				self.transponder = transponder
 
-class SatNimSelection(Screen):
-	skin = """
-		<screen position="140,165" size="400,130" title="select Slot">
-			<widget name="nimlist" position="20,10" size="360,100" />
-		</screen>"""
-
-	def __init__(self, session):
-		Screen.__init__(self, session)
-		Screen.setTitle(self, _("Satfinder"))
-
-		nimlist = nimmanager.getNimListOfType("DVB-S")
-		nimMenuList = []
-		for x in nimlist:
-			if not nimmanager.getNimConfig(x).configMode.getValue() in ("loopthrough", "satposdepends", "nothing"):
-				nimMenuList.append((nimmanager.nim_slots[x].friendly_full_description, x))
-
-		self["nimlist"] = MenuList(nimMenuList)
-
-		self["actions"] = ActionMap(["OkCancelActions"],
-		{
-			"ok": self.okbuttonClick ,
-			"cancel": self.close
-		}, -1)
-
-	def okbuttonClick(self):
-		selection = self["nimlist"].getCurrent()[1]
-		self.session.open(Satfinder, selection)
-
 def SatfinderMain(session, **kwargs):
 	nims = nimmanager.getNimListOfType("DVB-S")
 
 	nimList = []
 	for x in nims:
-		if not nimmanager.getNimConfig(x).configMode.getValue() in ("loopthrough", "satposdepends", "nothing"):
-			nimList.append(x)
+		if nimmanager.getNimConfig(x).configMode.getValue() in ("loopthrough", "satposdepends", "nothing"):
+			continue
+		if nimmanager.getNimConfig(x).configMode.getValue() == "advanced" and len(nimmanager.getSatListForNim(x)) < 1:
+			continue
+		nimList.append(x)
 
 	if len(nimList) == 0:
-		session.open(MessageBox, _("No satellite frontend found!!"), MessageBox.TYPE_ERROR)
+		session.open(MessageBox, _("No satellites configured. Plese check your tuner setup."), MessageBox.TYPE_ERROR)
 	else:
 		if session.nav.RecordTimer.isRecording():
 			session.open(MessageBox, _("A recording is currently running. Please stop the recording before trying to start the satfinder."), MessageBox.TYPE_ERROR)
 		else:
-			if len(nimList) == 1:
-				session.open(Satfinder, nimList[0])
-			else:
-				session.open(SatNimSelection)
+			session.open(Satfinder)
 
 def SatfinderStart(menuid, **kwargs):
 	if menuid == "scan":

 

 

Attached Files




#375871 Satfinder, BSoD.

Posted by Huevos on 26 September 2013 - 10:55

Thanks. It will happen on all receivers with multiple tuners. I've looked at the code and there is no attempt to set the tuner the scan is being done on, so it just defaults to tuner A. Can't see any way to solve it by just editing plugin.py, so one of the OpenPli experts is going to need to edit ScanSetup.py if this is ever to work properly. The guy that wrote the mod only had a single tuner box and although Erik tested it this fault didn't show at the time, probably due to same config on both tuners.

On the VU Duo it is also reproducible, tuner A = 19.2, 23.5 & 28.2, tuner B = 13,  19,2, 23.5 & 28.2
Scan on B on 28.2




#282028 satellites.xml is loosing transponders

Posted by Huevos on 7 June 2012 - 09:17

Any progress on this issue? [...] Removing obsolete feeds from OpenPLI's satellites.xml is also a very good idea.

And indeed, that can take one hour for all those feeds that aren't there anymore...


I have now made a website where you can download a customisable satellites.xml without the feed transponders. Just make sure that only active transponders is checked in the extra options at the bottom.

satellites.xml without feed transponders


#262128 Parameters shown on Infobar are wrong

Posted by Huevos on 9 March 2012 - 18:24

Pieterg, thanks for pointing me in the right direction.

Littlesat, you've got a choice (as this is only cosmetic), either use data that you are in control of (lamedb) and display the correct parameters, or use the data you are not in control of and when it doesn't work properly just tell everyone it is down to the manfacturer of the receiver and it is up to them to correct it. Just one more question: why should the data in lamedb be wrong anyway? What is the cause?

True {'inversion': 'Auto', 'tuner_signal_quality': 65535, 'modulation': '8PSK', 'tuner_type': 'Satellite',
False {'inversion': 'On', 'tuner_signal_quality': 65535, 'modulation': 'QPSK', 'tuner_type': 'Satellite',
'symbol_rate': 22000000, 'system': 'DVB-S2', 'polarization_abbreviation': 'H', 'tuner_signal_power': 51760,
'symbol_rate': 22000000, 'system': 'DVB-S', 'polarization_abbreviation': 'H', 'tuner_signal_power': 51760,
'polarization': 'Horizontal', 'tuner_bit_error_rate': 0, 'fec_inner': '2/3', 'orbital_position': 'Astra 1H/1KR/1L/1M/2C(19.2E Ku-band)',
'polarization': 'Horizontal', 'tuner_bit_error_rate': 0, 'fec_inner': 'Auto', 'orbital_position': 'Astra 1H/1KR/1L/1M/2C(19.2E Ku-band)',
'frequency': 11361000, 'tuner_signal_quality_db': None, 'tuner_locked': 1, 'tuner_number': 0, 'tuner_synced': 1, 'tuner_state': 'LOCKED',
'frequency': 11361000, 'tuner_signal_quality_db': None, 'tuner_locked': 1, 'tuner_number': 0, 'tuner_synced': 1, 'tuner_state': 'LOCKED'}
'pilot': 'Auto', 'rolloff': '0.35'}



#262100 Parameters shown on Infobar are wrong

Posted by Huevos on 9 March 2012 - 15:19

Do we get it with a VU box

Well it happens on the Vu Duo

... with an ET box I do not see this... so in fact we suggest now that incorrect values are forwarded from the frontend (via the drivers)...

I did intent to return the values from the frontend in the first place.... Because usually these are the real values....

Hard to solve this without asking VU to upgrade it in their drivers..........????

Et9200 displays fec ok but not modulation and system. Why is manual scan screen finding the current transponder ok if is a driver problem?