+
+class TestTuneMenu(Screen):
+ skin = """
+ <screen position="350,230" size="550,300" title="Tuning Test" >
+ <widget name="testlist" position="10,0" size="440,250" itemHeight="35"/>
+ <widget name="resultlist" position="470,0" size="60,250" itemHeight="35"/>
+ <widget source="text" render="Label" position="100,270" size="450,30" font="Regular;22" />
+ </screen>"""
+
+ def __init__(self ,session ,tuneInfo, tunelist,NimType):
+ self.session = session
+ self.NimType = NimType
+ self.tuneInfo = tuneInfo
+ self.tunelist = tunelist
+ self.model = 4
+ self["actions"] = NumberActionMap(["OkCancelActions","WizardActions","NumberActions"],
+ {
+ "left": self.nothing,
+ "right":self.nothing,
+ "ok": self.TestAction,
+ "cancel": self.keyCancel,
+ "up": self.keyup,
+ "down": self.keydown,
+ "0": self.numberaction,
+ "1": self.numberaction,
+ "2": self.numberaction,
+ "3": self.numberaction,
+ "4": self.numberaction,
+ "5": self.numberaction,
+ "6": self.numberaction,
+ "7": self.numberaction,
+ "8": self.numberaction,
+ "9": self.numberaction,
+
+ }, -2)
+ Screen.__init__(self, session)
+ self.text = _("Press 'EXIT' key to finish tune test.")
+ self["text"] = StaticText(self.text)
+ self.createConfig()
+ session.nav.stopService() # try to disable foreground service
+
+ self.tunemsgtimer = eTimer()
+ self.tunemsgtimer.callback.append(self.tunemsg)
+
+ self.camstep = 1
+ self.camtimer = eTimer()
+ self.camtimer.callback.append(self.cam_state)
+
+ self.tunerlock = 0
+ self.tuningtimer = eTimer()
+ self.tuningtimer.callback.append(self.updateStatus)
+ self.setSourceVar()
+ self.avswitch = AVSwitch()
+
+ def createConfig(self):
+ self.menulength= len(self.tunelist)
+ self["testlist"] = MenuList(self.tunelist)
+ self.rlist = []
+ for x in range(self.menulength):
+ self.rlist.append((".."))
+ self["resultlist"] = TestResultList(self.rlist)
+
+ def TestAction(self):
+ print "line - ",self["testlist"].getCurrent()[1]
+ self.currentindex = index = self["testlist"].getCurrent()[1]
+ result = 0
+ self.TestTune(index)
+
+ def nothing(self):
+ print "nothing"
+
+ def keyup(self):
+ print "self.menulength = ",self.menulength
+ print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
+ if self["testlist"].getCurrent()[1]==0:
+ self["testlist"].moveToIndex(self.menulength-1)
+ self["resultlist"].moveToIndex(self.menulength-1)
+ else:
+ self["testlist"].up()
+ self["resultlist"].up()
+
+
+ def keydown(self):
+ print "self.menulength = ",self.menulength
+ print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
+ if self["testlist"].getCurrent()[1]==(self.menulength-1):
+ self["testlist"].moveToIndex(0)
+ self["resultlist"].moveToIndex(0)
+ else:
+ self["testlist"].down()
+ self["resultlist"].down()
+
+ def numberaction(self, number):
+ if number >= self.menulength:
+ return
+ index = int(number)
+ self["testlist"].moveToIndex(index)
+ self["resultlist"].moveToIndex(index)
+
+ def keyCancel(self):
+ print "testtunemenu exit"
+ if not '..' in self.rlist and not 'fail' in self.rlist:
+ self.close(True)
+ else:
+ self.close(False)
+# if self.oldref is not None:
+# self.session.nav.playService(self.oldref)
+
+ def TestTune(self,index):
+ ref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
+ self.session.nav.stopService() # try to disable foreground service
+ getTuneInfo=self.tuneInfo[index]
+ if getTuneInfo["cam"] is True:
+ self.camstep = 1
+ self.camtimer.start(100,True)
+ if getTuneInfo["type"].startswith("DVB-S"):
+ if getTuneInfo["pol"] == "H":
+ ref.setData(0,1)
+ ref.setData(1,0x6D3)
+ ref.setData(2,0x3)
+ ref.setData(3,0xA4)
+ else:
+ ref.setData(0,0x19)
+ ref.setData(1,0x1325)
+ ref.setData(2,0x3ef)
+ ref.setData(3,0x1)
+ if getTuneInfo["sat"] == "160": # Eutelsat W2
+ ref.setData(4,0xA00000)
+ elif getTuneInfo["sat"] == "100": # Eutelsat
+ ref.setData(4,0x64af79)
+ elif getTuneInfo["sat"] == "130": # Hotbird
+ ref.setData(4,0x820000)
+ elif getTuneInfo["sat"] == "192": # Astra
+ ref.setData(4,0xC00000)
+ elif getTuneInfo["sat"] == "620": # Intelsat 902
+ ref.setData(4,0x26c0000) # need to fix later
+ elif getTuneInfo["sat"] == "642": # Intelsat 906
+ ref.setData(4,0x282AF79) # need to fix later
+ elif getTuneInfo["type"].startswith("DVB-C"):
+ ref.setData(0,0x19)
+ ref.setData(1,0x1325)
+ ref.setData(2,0x3ef)
+ ref.setData(3,0x1)
+ ref.setData(4,-64870) # ffff029a
+ elif getTuneInfo["type"].startswith("DVB-T"):
+ ref.setData(0,0x19)
+ ref.setData(1,0x1325)
+ ref.setData(2,0x3ef)
+ ref.setData(3,0x1)
+ ref.setData(4,-286391716) # eeee025c
+ self.session.nav.playService(ref)
+ if getTuneInfo["color"]=="CVBS":
+ self.avswitch.setColorFormat(0)
+ elif getTuneInfo["color"]=="RGB":
+ self.avswitch.setColorFormat(1)
+ elif getTuneInfo["color"]=="YC":
+ self.avswitch.setColorFormat(2)
+ if getTuneInfo["ratio"] == "4:3":
+ self.avswitch.setAspectRatio(0)
+ elif getTuneInfo["ratio"] == "16:9":
+ self.avswitch.setAspectRatio(6)
+ self.tuningtimer.start(2000,True)
+ self.tunemsgtimer.start(3000, True)
+
+ def cam_state(self):
+ current_index = self.currentindex
+ if self.camstep == 1:
+ slot = 0
+ state = eDVBCI_UI.getInstance().getState(slot)
+ print '-1-stat',state
+ if state > 0:
+ self.camstep=2
+ self.camtimer.start(100,True)
+ else:
+ self.session.nav.stopService()
+ self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
+ self.rlist[current_index]="fail"
+ self.tunemsgtimer.stop()
+ elif self.camstep == 2:
+ slot = 0
+ appname = eDVBCI_UI.getInstance().getAppName(slot)
+ print 'appname',appname
+ if appname is None:
+ self.session.nav.stopService()
+ self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
+ self.rlist[current_index]="fail"
+ self.tunemsgtimer.stop()
+ else:
+ self.camstep=3
+ self.camtimer.start(100,True)
+ elif self.camstep==3:
+ slot = 1
+ state = eDVBCI_UI.getInstance().getState(slot)
+ print '-2-stat',state
+ if state > 0:
+ self.camstep=4
+ self.camtimer.start(100,True)
+ else:
+ self.session.nav.stopService()
+ self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
+ self.rlist[current_index]="fail"
+ self.tunemsgtimer.stop()
+ elif self.camstep == 4:
+ slot = 1
+ appname = eDVBCI_UI.getInstance().getAppName(slot)
+ print 'appname',appname
+ if appname is None:
+ self.session.nav.stopService()
+ self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
+ self.rlist[current_index]="fail"
+ self.tunemsgtimer.stop()
+ else:
+ self.setSource()
+ self.camstep = 5
+
+ def updateStatus(self):
+ current_index = self.currentindex
+ getTuneInfo=self.tuneInfo[current_index]
+ result = eSctest.getInstance().getFrontendstatus(getTuneInfo["slot"])
+ tunno = getTuneInfo["slot"]+1
+ hv = getTuneInfo["pol"]
+ if hv == "H":
+ hv = "Hor"
+ elif hv == "V":
+ hv = "Ver"
+ else :
+ hv == ""
+
+ print "eSctest.getInstance().getFrontendstatus - %d"%result
+ if result == 0 or result == -1:
+ self.tunerlock = 0
+ self.tunemsgtimer.stop()
+ self.session.nav.stopService()
+ self.avswitch.setColorFormat(0)
+ self.session.open( MessageBox, _("Tune%d %s Locking Fail..."%(tunno,hv)), MessageBox.TYPE_ERROR)
+ self.rlist[current_index]="fail"
+ else :
+ self.tunerlock = 1
+
+ def tuneback(self,yesno):
+ current_index=self.currentindex
+ self.session.nav.stopService() # try to disable foreground service
+ if yesno and self.tunerlock == 1:
+ getTuneInfo=self.tuneInfo[current_index]
+ if getTuneInfo["cam"] and self.camstep < 5: # need fix to depending about CAM exist
+ self.rlist[current_index]="fail"
+ else :
+ self.rlist[current_index]="pass"
+ else:
+ self.rlist[current_index]="fail"
+ if self.tuneInfo[current_index]["color"] == "YC":
+ self.avswitch.setColorFormat(0)
+ self.resetSource()
+ self["resultlist"].updateList(self.rlist)
+
+ def tunemsg(self):
+ self.tuningtimer.stop()
+ self.session.openWithCallback(self.tuneback, TuneMessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO)
+
+ def setSourceVar(self):
+ self.input_pad_num=len(self.NimType)-1
+ if self.input_pad_num == 0:
+ self.setTuner = 'A'
+ elif self.input_pad_num == 1:
+ self.setTuner = 'B'
+ elif self.input_pad_num == 2:
+ self.setTuner = 'C'
+
+# ikseong - for 22000 tp
+ def setSource(self):
+# fix input source
+ inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
+ print "<setsource> inputname : ",inputname
+ fd=open(inputname,"w")
+ fd.write("CI0")
+ fd.close()
+# fix ci_input Tuner
+ filename = ("/proc/stb/tsmux/ci0_input")
+ fd = open(filename,'w')
+ fd.write(self.setTuner)
+ print "setTuner(CI0) : ",self.setTuner
+ fd.close()
+ print "CI loop test!!!!!!!!!!!!!!"
+
+ def resetSource(self):
+ inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
+ print "<resetsource> inputname : ",inputname
+ fd=open(inputname,"w")
+ fd.write(self.setTuner)
+ fd.close()
+ print "CI loop test end!!!!!!!!!!!!!!"